DOCUMENTATION / ARTIFICIAL LIFE

Petri Ecology.

A Particle Life community of biobot species, food and debris.

Open the experiment

What the page shows

Thousands of particles of seven species in a dish: xenobots, three kinds of anthrobot (circlers, straight-line movers and wigglers), neurobots, food and debris. Each species is attracted to or repelled by each of the others by a set amount, and the biobot species also swim. From those few numbers come swarms, chases, rafts and cell-like clusters.

Interaction table
Row species toward column species: positive (attraction) or negative (repulsion), from −1 to 1. Hover a cell to highlight the two species it connects.
Species rows
For each species: how abundant it is, how it swims and how fast.

How to use it

Presets
Cleanup crew (bots sweep up debris), Predator–prey chase, Rafts (food riding on wigglers), Spirograph neurobots, Comets (self-propelled clusters with no swimming at all).
Interaction table
Drag a cell up or down (or focus it and use the arrow keys) to change how one species responds to another.
Randomize / Mutate
A whole new random table, or a small nudge to every value.
Reset positions
Scatter all particles again with the same rules.
Abundance / motility / speed
Per species: share of the population, swimming style (passive, linear, circler, wiggler, spirograph) and speed.
Population
Total particle count.
Trails
How long particles leave fading trails.
Low Reynolds number
On: particles stop as soon as nothing pushes them, as real microswimmers do. Off: they coast.
Share link
Copy a link with your exact table and settings.

Try this: open “Comets”, where nothing swims, and notice the clusters still travel. Then make one table entry asymmetric yourself (A attracted to B, B repelled by A) and watch A chase B.

Background and theory

Particle Life

Particle Life is a classic artificial life model. Every pair of particles closer than a set range feels a force that depends on distance: a strong repulsion at very short range keeps them from overlapping, and beyond that a push or pull whose strength comes from the interaction table. The force for species A near species B uses the entry for A toward B, which need not equal B toward A.

Why asymmetry makes things move

In physics, forces come in equal and opposite pairs (Newton’s third law), so a closed system can’t set itself moving. Particle Life breaks that rule on purpose: if A is attracted to B but B is repelled by A, A chases B and B flees, and the pair travels together. Clusters of such pairs become self-propelled comets and worms. That broken symmetry is a simple stand-in for living things, which spend energy to move.

The biobot species

Real anthrobots fall into circlers, straight-line movers and wigglers, depending on their shape and where their cilia are; neurobots, xenobots with added nerve cells, have been seen tracing looping, spirograph-like paths. Each biobot species here swims in its real counterpart’s style on top of the Particle Life forces.

Low Reynolds number

For something cell-sized in water, drag overwhelms inertia: there is no coasting, and motion stops the moment the push does. The Low Reynolds switch applies that physics.

Methods

State

N particles (2,000–40,000) in the unit disk, each with a species (7: five biobot kinds, food and debris), a position, a velocity and a heading. Species are assigned in proportion to their abundance weights and interleaved, so that any prefix of the particle list keeps the same mix. On slower devices the page simulates fewer particles, and the proportions survive.

Pair forces

Particles closer than rmax = 0.1 interact. With x = r / rmax, β = 0.3 and aAB the table entry for species A toward species B:

f(x)={3(xβ−1)forx<βaAB(1−|2x−1−β|1−β)forβ≤x<1

The acceleration of A is Σ f(x) · (unit vector toward B) × 10 rmax. The repulsion is three times the usual Particle Life value: with the usual value, self-attracting species collapsed into dense balls at this range. Because aAB and aBA are independent, momentum is not conserved.

Swimming

Each biobot species adds thrust along its heading. The heading follows its motility mode (ξ is unit Gaussian noise per step; ± is a fixed handedness per particle):

Linear
Rotational diffusion only, D = 0.3 rad²/s.
Circler
Steady turning at ±2.5 rad/s, plus diffusion D = 0.05.
Wiggler
Turning rate ±5 sin(φ), with an oscillator phase φ advancing at 9 rad/s, plus diffusion D = 0.3.
Spirograph
Turning rate ±(2.5 + 2 sin(φ)), with φ advancing at 0.6 rad/s: the rate itself oscillates, tracing rosettes.
Passive
No thrust (food and debris).

Integration

v←(v+adt)·φφ=0.5dt/τx←x+vdt+2Ddt·ξD=10−5

The velocity half-life τ is 0.03 s with Low Reynolds on (motion stops almost at once when the push does) and 0.25 s with it off. The thrust gain, (1 − φ) / (φ dt), makes a lone swimmer settle at its configured speed whatever the drag. Particles that cross the rim are reflected, and so are their velocity and heading. The time step is the frame duration, capped at 1/30 s.

Presets and evaluation

The presets are hand-tuned interaction tables, checked by eye for the behavior they name. Cleanup crew and Rafts use one-sided attraction (debris or food is drawn to bots, while bots ignore it), so bots keep swimming and drag material along instead of locking into static clusters. A preset meant to make a cell within a cell produced self-propelled comets instead, so it was renamed Comets. Nothing here is fitted to data or measured quantitatively; there are no seeds, runs or statistics.

Results and what they mean

Petri Ecology is a sandbox rather than a research run, and it has no single result. What it shows is how little it takes to get community-level behavior: a 7 × 7 table of numbers produces sorting, chasing, carrying and cleaning.

Read each table value as a stand-in for something a lab can measure, such as how strongly two kinds of cells stick together or move toward a chemical signal. The design question it points to is which combinations of behaviors would make a useful community in a dish, for example one that clears debris, and the presets are small worked examples.

Limits and open questions

  • Real biobots mostly interact through contact and fluid flow, not attraction at a distance.
  • The table values are invented to make interesting communities, not measured.
  • Food and debris are passive dots; nothing is eaten or consumed.
A behavior that appears here is a hypothesis about what a community could do, not evidence that real biobots would do it.