Each nanobot in this grid is a fixed pixel of an N×N array and holds two local chemical readings: an activator u (its own base pigment) and an inhibitor v (a signal secreted by triggered neighbors). There is no central controller — every bot only reads its own concentrations and diffuses signal to its 4 nearest neighbors, exactly the Gray–Scott reaction–diffusion model used to design real programmable-material patterns:
∂u/∂t = Du·∇²u − u·v² + f·(1−u)
∂v/∂t = Dv·∇²v + u·v² − (f+k)·v
- u·v² — a nanobot converts its own pigment into inhibitor signal fastest where a neighbor has already been triggered, so a single stimulus spreads.
- f·(1−u) — pigment slowly regenerates ("feed"), so a triggered cell can eventually reset and be re-painted.
- (f+k)·v — signal decays ("kill"), which is what stops the pattern from simply filling the whole canvas.
Every nanobot's on-screen color is driven only by its own v reading, mapped straight to an applied electrochromic voltage — a stand-in for a real electrochromic pixel that darkens under a local electrical trigger, the mechanism real nanorobot-embedded "living paintings" and adaptive displays use to change appearance without any wiring or central computer. Painting with the cursor injects extra v into the bots under the brush, exactly like a light or heat stimulus hitting the material; the swarm then keeps evolving that seed on its own via the same local rule, which is why the canvas never fully stabilizes and can partially self-heal after a disruption.
Depending on (f, k) the same distributed rule produces spots, labyrinthine walls, or travelling stripes — the presets above jump between those regimes, the same way a fabrication team tunes reaction rates to target a specific pattern class.