The sequel to Primordium: the same one tiny rule — how strongly is each species pulled toward, or pushed away from, each other species? — but now the whole simulation lives on your GPU, so instead of hundreds of particles there are hundreds of thousands. At that density you no longer see dots: you see membranes, storms, arteries and living tissue.
Checking every particle against every other is impossible at this scale, so Primordium II takes the continuum limit of the original's force law:
The grid is still asymmetric — A chasing B need not equal B chasing A — and that imbalance is what turns dull symmetry into pursuit, flight and predation.
Every organism is generated from a 32-bit seed: copy it to save a creature or paste a friend's, then Load. Mutate nudges the rules; Evolve keeps mutating so the ecosystem drifts on its own. Drag a matrix cell up/down to hand-tune one relationship, and drag the canvas to stir the swarm. The presets (Cells, Chase, Snakes, Gas) are hand-built starting points.
Toggle Audio (key a) and the swarm conducts a generative ambient piece: a
breathing drone under a soft pentatonic melody through a long feedback delay. The swarm's kinetic
energy is the conductor — frantic motion makes the notes busier and brighter, stable structures
make it sparse and calm. All synthesised live with the Web Audio API.
space pause · r randomize · m mutate ·
e evolve · p palette · a sound ·
n respawn · h hide panel · i this panel
A single self-contained HTML file · no libraries, no network, no assets. WebGL2: the physics runs in fragment shaders, rendered with HDR trails and bloom. Built with Claude.
This world needs WebGL2 with float-texture rendering, which your browser or GPU doesn't offer.
The original runs everywhere: enter Primordium I →