The field

How the field works

Confluon starts with 2,000 points and no target image. Each point reads a local field, seeks a useful neighbourhood, and responds differently to the other two populations. Membranes, cells, ruptures, and encounters emerge from those local rules.

The organisms are not drawn

This is one deterministic particle system on a wrapped two-dimensional world, not sprites following paths. A new field places 2,000 particles in 24 loose colonies, divided evenly among three populations. No outline tells a colony where its edge should be.

The particles make the apparent membrane. Neighbours favour a shell-like distance, close particles repel, and each population has its own shell radius and preferred crowding. With no hidden body holding it together, a cell can stretch, split, absorb newly seeded matter, or fall apart.

Look closely

The points remain visible even at maximum glow. There are no fabricated hulls or nuclei. If the simulation has not organised, the renderer does not tidy it up.

The shell every particle casts

Each particle contributes a soft circular shell field. For population s, its contribution at distance r is a Gaussian ring:

Ks(r) = ws exp(−(r − μs)² / σs²) μ sets the preferred shell radius · σ sets its width · w sets its contribution

Confluon sums the rings cast by nearby particles of the same population. The result U measures structured local crowding: neighbours on the useful shell count strongly, while nearer or farther particles count less. That lets the matter form 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:

Gs(U) = exp(−(U − μG,s)² / σG,s²) Too empty and too crowded are both worse than the population's preferred local field.

Close-range repulsion contributes an opposing energy R. Within one population, a particle follows the downhill direction of E = RG: away from overlap and towards a neighbourhood with the right shell density.

The model has no momentum. Velocity is the current energy-gradient direction, speed-limited and integrated over a fixed step. It behaves like matter in a strongly damping medium, not a ball moving through empty space.

Three populations, one asymmetric ecology

Same-population interactions make formations; cross-population sensing drives encounters. 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).

Because the forces are not reciprocal, one population can pursue another that is trying to leave while the third interrupts both. Cross forces are weaker and longer-range than the formation rule, so encounters deform cells without automatically dissolving them.

The Ecology control scales this existing cross-population derivative. Changing it alters the motion rule, not a visual effect applied afterwards.

Why the field does not simply settle

Each particle greedily improves its own local energy, an idea taken from the Particle Lenia formulation. The system does not calculate a single global minimum for the whole population.

One move changes the field seen by neighbouring particles, and their moves change it again. That moving landscape allows spinning, crawling, reorganisation, and sudden transitions rather than only static packing.

What is original here

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 soft radial pull around a protected inner space. Matter approaches without collapsing onto 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 double-tap introduces 50 particles of one population at that position.
Settle (S)
Hold the key to soften internal forces and encourage the population towards a common centre. Release it to restore local negotiation.

A quick poke produces a short recoil that persists after release. A moving mouse or hovering pen is sensed without pressing: fast movement alarms nearby matter, while a still pointer attracts attention. On release, the organisms return to their own rules from a changed arrangement. The player changes the conditions; they do not pose a frozen shape. Pressure, speed, and horizontal position also colour and place the shared sound, so contact is heard as well as seen.

Seven readings of one state

The Rust core reduces the particle detail 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. They come from a same-species union-find pass over the simulation's existing neighbour pairs, not image recognition. The sound can therefore 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 in fixed 1/30-second steps, independent of the display refresh. The seed, population, ecology, flow, gesture strength, selected mode, and aesthetic settings live in the URL.

For one engine revision, the same seed, settings, and step-indexed gestures retrace the same engine state. The URL records the starting state; reproducing a performed take also requires its gesture stream.

Try it

Open the instrument and change Ecology or Life. The browser address records that complete starting state. Opening it with the same engine revision recreates the field before performance gestures begin.

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.

The useful questions are whether the rules stay legible, surprising, playable, and musically consequential. Particle conservation, bounded motion, and direct state-to-sound coupling make it clear what is happening inside the instrument.

Sources and further reading

  1. 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.
  2. Google Research. Reproducible Particle Lenia notebook.
  3. Confluon source documentation. Research basis and implementation differences.