grow procedural moss
iggi.dev is a small, friendly toolkit for procedural moss and ground-cover
generation. drop it into a Unity, Godot, or three.js scene and watch your
rocks, ruins, and roof tiles slowly furr up.
quick start
// JavaScript
import { Iggi } from 'iggi-dev';
const iggi = new Iggi({
density: 0.62,
height: 1.2,
hue: 'moss-warm',
spread: 'organic'
});
scene.add(iggi.cover(rock));
parameters
density 0.0 — 1.0 how thickly moss grows on the surface
height 0.1 — 4.0 strand height in cm
hue moss-warm | shade | spore overall color family
spread patchy | organic | uniform growth pattern across the surface
moisture 0.0 — 1.0 affects sheen and saturation
live tuning
scrub the sliders below — the stats panel updates in real time. parameter
changes feed directly into the simulated scene below the HUD.
density
0.62
height
1.2
moisture
0.48
spore-rate
0.34
examples
copy / paste these into your project. tested on three.js r160+ and Unity 2023.
temple ruin
// three.js
const ruin = await loadGLTF('temple.glb');
iggi.cover(ruin, {
density: 0.78,
height: 2.1,
hue: 'shade',
moisture: 0.71
});
cobblestone path
// Godot 4 (gdscript)
var iggi = Iggi.new()
iggi.density = 0.31
iggi.spread = "patchy"
iggi.hue = "moss-warm"
iggi.cover(path_mesh)
forest floor field
// Unity (C#)
var iggi = new Iggi {
density = 0.94f,
height = 0.6f,
spread = "organic"
};
iggi.Cover(terrain);
API reference
class Iggi
new Iggi(opts) construct a generator with optional default options.
.cover(target) attach moss geometry to any mesh, group, or terrain.
.set(param, value) update a parameter and trigger a soft regrowth.
.shed() remove all generated moss. plays a small spore-puff effect.
.snapshot() returns the current parameter set as a portable JSON.
events
on('grown') fires once when the initial cover finishes growing.
on('paramchange') fires whenever .set() is called, with old + new value.
on('shed') fires after .shed() finishes.