Nobody in there knows anything. Each ant runs a ~10-line state machine — forage, follow a scent gradient, grab food, carry it home — sensing the world only through a few sniff samples of two invisible fields. Yet out of that blindness, highways emerge.
Ants edit the world instead of talking to each other. Outbound ants lay a teal to-food scent; carriers lay an amber to-home scent. Both diffuse outward and evaporate. An ant smelling stronger scent turns toward it, slightly randomizing its heading — so shorter round-trips get walked more often, laid more strongly, followed more: a feedback loop that crystallizes into trunk trails with no planner anywhere. When a source dies, evaporation lets the memory fade and the colony re-explores.
The two pheromone fields live on the GPU as ping-pong float framebuffers: each tick splats deposits as blended point sprites, then a fragment shader does a diffusion/evaporation step; a final pass composites terrain, glow, day-night light and rain over the field. The ants themselves are updated on the CPU in a typed-array loop (a few thousand is cheap) and drawn as points. A coarser CPU mirror of the same math is what ants actually sense — sight and smell agree because they run the same rules.
Rain spikes evaporation and scatters scent — watch trails wash out and the colony pull inward, then rebuild routes from scouts' memories within minutes. Starve it and births stop before deaths begin; the population tracks the granary. The whole run is deterministic: every visit with the same seed replays this exact history, down to individual ants.
Try: hold space for slow motion · drag to drop sugar · right-drag to build walls · hover any ant for its biography.