Not an animation of organisms
The image is not a collection of sprites following paths. It is one deterministic particle system on a wrapped two-dimensional world. The default seed places 2,000 particles into 24 loose colonies, divided evenly among three populations. From the first step onward, no outline tells a colony where its edge is.
What looks like a membrane is made by the particles themselves. Neighbours prefer to sit at a shell-like distance, very close particles repel, and each population has a slightly different shell radius and preferred crowding. A cell can stretch, split, absorb newly seeded matter, or lose its coherence because there is no hidden body underneath keeping it intact.
Even at maximum glow, the points remain visible. Confluon deliberately draws no fabricated hulls or nuclei: if the simulation has not organised, the renderer does not pretend that it has.
The shell every particle casts
A particle does not simply attract its nearest neighbours. It contributes a soft circular shell field. For population s, the contribution at distance r is a Gaussian ring:
At each particle, Confluon sums the rings cast by nearby particles of the same population. The result U is local crowding with structure: neighbours on the useful shell count strongly; particles much nearer or farther away count less. This is why the matter can arrange into perforated skins instead of collapsing into solid dots.
A preferred neighbourhood
Each population has a preferred field value. A second Gaussian, the growth response, gives the highest score when the current neighbourhood is near that target:
Close-range repulsion contributes an opposing energy R. Ignoring the other populations for a moment, a particle follows the downhill direction of E = R − G. It is trying to reduce overlap while moving toward a neighbourhood where the shell field has the right density.
There is no momentum in this model. Velocity is the current energy-gradient direction, speed-limited and integrated over a fixed step. It behaves less like a ball in empty space and more like microscopic matter in a medium where inertia dissipates quickly.
Three populations, one asymmetric ecology
Same-population interactions make formations; cross-population sensing makes drama. The ecology is deliberately cyclic and non-reciprocal. A negative value attracts, a positive value avoids:
- Cyan senses ember
- Attraction (−0.18), while ember avoids cyan (+0.27).
- Ember senses violet
- Attraction (−0.16), while violet avoids ember (+0.23).
- Violet senses cyan
- Attraction (−0.17), while cyan avoids violet (+0.25).
That lack of symmetry matters. If every attraction were returned equally, the groups would mostly merge or orbit in balanced pairs. Here one population can pursue another that is actively trying to leave, while a third interrupts both. The cross forces are weaker and longer-range than the internal formation rule, so encounters deform cells without automatically dissolving them.
The Ecology control scales this existing cross-population derivative. It does not add a visual effect after the fact: changing it changes the motion rule itself.
Why local descent stays alive
The energy language can sound as if the field should simply relax to one final minimum. The subtlety inherited from the Particle Lenia formulation is that each particle greedily improves its own local energy. It does not calculate the move that would minimise one global energy for the whole population.
When one particle moves, it changes the field perceived by its neighbours. Their next locally useful move changes the first particle's situation in return. This moving landscape allows spinning, crawling, reorganising attractors and sudden transitions instead of only static packing.
Confluon is informed by the published Particle Lenia field, growth, repulsion, and local-energy interpretation. Its three-species ecology, browser implementation, performance forces, formation analysis, visual design, and collective musical mapping were developed independently. It includes no upstream creatures, code, or visual assets.
The performer enters the equation
Performance gestures are temporary forces applied inside the same world:
- Gather
- A radial pull with a soft Gaussian reach. Nearby matter is herded toward the pointer.
- Orbit
- A tangential force plus a small radial bias. Local formations wind around the gesture.
- Divide
- The radial force reverses, opening a cavity and pushing membranes apart.
- Seed
- A double click or tap introduces 50 particles of one population at that position.
- Settle
- Internal forces are softened while the whole population is encouraged toward a common centre.
Releasing a gesture matters as much as applying it. Matter returns immediately to its own rules, carrying the altered arrangement into the next negotiation. The player does not pose a frozen shape; they change the conditions from which the field continues.
Seven readings of one state
Neither the renderer nor the sound engine needs all particle-to-particle detail. The Rust core reduces each frame to seven collective readings:
- Energy
- The normalised mean of each particle's local energy.
- Coherence
- The stronger of shared travel direction or collective rotation.
- Activity
- Mean particle speed, scaled into a bounded performance signal.
- Density
- The average same-population shell field.
- Formations
- Connected same-population groups containing at least four particles.
- Transition
- A short-lived measure of change in energy and activity.
- Encounter
- The pressure of nearby cross-population sensing.
The engine also reports the position, size, and species of up to eight large visible formations. These are not labels added by image recognition; they come from a same-species union-find pass over the neighbour pairs already used by the simulation. They let the sound occupy the same places as the structures on screen.
Deterministic, but not predetermined
An integer seed fixes the initial colonies and every seeded decision after that. The simulation advances at 30 fixed steps per second, independent of the display refresh. The seed, population, ecology, flow, gesture strength, selected mode, and aesthetic settings live in the URL.
Determinism does not mean there is a prewritten sequence. It means the same engine version and the same inputs can retrace the same consequences. A performed take also needs its gesture stream; an untouched field needs only its seed and settings. This is why a Confluon URL is closer to a score than a screenshot.
Open the instrument, change Ecology or Life, then use Share. The shared or copied URL records that complete starting state so another browser can enter the same field.
What kind of model is this?
Confluon is an artificial-life instrument, not a biological simulation. Its populations do not represent cells, species, chemistry, or evolution in the scientific sense. The model borrows a useful idea from artificial life: simple, local, repeatable rules can produce organisation that was never explicitly drawn.
Its test is therefore not “does this predict nature?” but “does this rule remain legible, surprising, playable, and musically consequential?” The implementation keeps conservation of particle count, bounded motion, and direct state-to-sound coupling because those constraints make the instrument honest about what is happening inside it.
Sources and further reading
- Mordvintsev, A., Niklasson, E. & Randazzo, E. (2022). “Particle Lenia and the energy-based formulation.” The field, growth, repulsion, local-energy analysis, and original per-particle sonification experiment.
- Google Research. Reproducible Particle Lenia notebook.
- Confluon source documentation. Research basis and implementation differences.