Primordium in a world without edges. Hundreds of particles, each one of a few species, obey one tiny rule: how strongly am I pulled toward — or pushed away from — each other species? Those forces live in the colour grid at the bottom of the panel. The camera travels, and the world comes along.
For two particles at distance r (scaled to the interaction radius, 0→1):
f = a·(1 − |2r−1−core| / (1−core))The world is a torus a little larger than your widest view, always centred on the camera. Whatever drifts past its far edge comes back on the opposite side, out of sight, as fresh primordial soup: a new species, at rest. The number of particles never grows, yet there is always new soup ahead of you.
Click a form and the camera follows it, re-identifying it four times a second as particles join and leave. The form remembers its own particles: brushing past another form does not make it that one, only a lasting merger slowly does. In Look mode, drag a form to tow it: every particle in it receives the very same push, so its shape and its own motion stay intact. In Push and Pull mode, dragging stirs the swarm as in Primordium; right-drag still looks around.
While you follow a form, its life story builds up top right: its age, its size over time in the colours of its species, how much of it is still the form you picked, and what happened to it — brushing past another form, merging, splitting, being swallowed, dissolving. Rewind and the story goes back with you.
The camera on the card (or o) saves a portrait of the life as one picture: the form
large, a growth strip of moments from its life at one shared scale (a frame is kept every 5 seconds),
and its story. Rewound, it portrays the life as it stood then.
Feed the form (or g) drops twenty particles in a ring around the form you follow;
in Feed mode a click drops a handful under the cursor and holding strews more. Pick a species
under food, or a mix, and watch whether the form takes it in and changes colour; the life story
tells you how much it took. Food is never made: it is fetched from far out of sight, so the number of
particles stays the same.
Travel (or t) takes the form you follow to a new world: new rules from a new seed,
fresh soup all around and, at first, a clear zone around the form. The form keeps the rules of its old
world among its own particles and keeps its colours; the locals get colours in between. How guests and
locals treat each other is new as well — the meeting — and Meeting rolls
another. The grid then shows three parts: the locals' rules top left, the guest's own bottom right,
the meeting in between. Randomize, the presets and Load change only the locals' rules. The soup belongs
to the locals, so the guests are never renewed: the form lives on only by holding together or by
taking in locals (or by being fed its own kind). Travel again and every species it then holds goes along.
Rewind and you are back in the old world, exactly.
With New laws on a voyage switched on, the new world also has other laws of nature: another radius, force, glide, core and speed. The form keeps the laws it left with — the line under the voyage buttons shows them — whether the switch is on or off, and from then on the sliders change the world only. Every particle feels the others by the laws of its own species: a guest with a wide radius notices locals that do not notice it yet, and a guest from a slower world lives in slow motion among them. No real physics allows that, which is the point. On its own the form stays exactly what it was; a form that takes in locals holds particles living by different laws.
The last 60 seconds are kept, rules and all: rewind past a Mutate or a slider change and the grid and sliders go back with it. Press play and history continues from that moment. Leave it alone and exactly the same future unfolds again — touch anything and it takes another course. Changing the number of particles or species builds a new world and starts the timeline over.
When you touch the past, the future you had seen plays on for a while as what-if ghosts: hollow
rings in the species colours, drawn only where a particle now is somewhere else, and a dashed bracket
where your form would have been. You watch the two futures part; after 15 seconds they have nothing in
common left and the ghosts have faded (w turns them off).
Toggle Audio and the swarm conducts a generative ambient piece: a breathing drone under a soft pentatonic melody. Frantic motion makes the notes busier and brighter, settling makes them sparse and calm.
Follow a form and the melody becomes its voice: a small form sings high, a large one low; it plays faster as it moves faster; and its species colour the sound, each one an overtone as strong as its share, so you hear it change when it eats something else. Its life sounds too: a greeting when you pick it, a light tick at every contact, a rising chord when it merges, a falling interval when it splits, a dull thud when it is swallowed, a sparkle when it takes in food, and a dying fall when it dissolves.
space pause · r randomize · m mutate ·
e evolve · p palette · a sound ·
n respawn · s save PNG · h hide panel ·
i this panel · f follow · esc let go ·
j life story · o portrait · t travel · g feed · w ghosts ·
, . step in time · l live · arrows look around ·
shift+arrows tow · + − 0 zoom
A single self-contained HTML file · no libraries, no network, no assets. Built with Claude.