DOCUMENTATION / ARTIFICIAL LIFE
Petri Ecology.
A Particle Life community of biobot species, food and debris.
Open the experimentWhat 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:
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
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.