click paper to plant · red dot = SPIKE · orange = CURL · grey = HATCH/SCRIBBLE
Multiple growth tips navigate the page simultaneously. Each tick a tip reads the local ink density under its nib. Empty space: heavy contour — the silhouette. Existing ink: fine hatching — the interior. The mass builds from the outside in. No negative space is permitted. Tendrils branch, curl, spike, scribble at ridges. One teacher: the page itself.
Click to replant from a new seed point. Drag pace to watch the build, or run fast to see the final mass.
click paper to plant · red dot = SPIKE · orange = CURL · grey = HATCH/SCRIBBLE
// the one rule that is the whole drawing: density → weight d < 2 heavy contour 2.2px · 0.92 opacity // the silhouette — reads as mass from far d < 6 secondary 1.5px · 0.78 // just inside the edge d < 12 fill 0.85px · 0.56 // the body filling in d ≥ 12 hatch 0.52px · 0.48 // every pass darkens. accumulates to black. // moods, sampled each tick from context: TENDRIL heading += curvature + field(x,y,t) + tremor curvature drifts ± per tick, clamped to ±0.22 // the cape, going where it wants. CURL curvature snaps to 0.10–0.20 rad/step, decays after 12–35 ticks // fabric remembering a fold. SPIKE heading offset ±65°–130°, 5–13 short steps, then returns ink weight overridden to heavy regardless of density // the tooth. the thorn. fires near the frontier (d < 10). HATCH heading locked to diagonal ±noise, short steps, weight capped at thin fires when d > 14 — inside the body // shadow follows form. parallel lines cross the mass. SCRIBBLE brief oscillation ±20°–35° around heading, medium weight fires when edgeness is high — near an existing ridge // the tangled wrinkle. where a form turns back on itself. // field: two overlapping slow-rotating sinusoids in polar coords // gives nearby tips a shared swirling bias — the cape quality // branch: new tip from live parent at ±heading offset, p=0.05/tick // death: by age, or saturation (d > 50, p rises with density)