Artificial life field station
BFF Primordial Soup
Browser implementation of the paper's 2D BFF spatial soup, with worker execution and compressed visualization.
What you are seeing
- Each cell holds a 64-byte BFF program (tape)
- Color = the tape's dominant opcode, compressed to one pixel (< > { } - + . , [ ])
- Dark cells contain no opcode bytes
- Falling entropy means the byte population is becoming less random
- Uniform-color waves can signal an emerging replicator, but the image alone is not proof of replication
How to explore
- Lower mutation to let persistent structures stabilize
- Raise mutation to keep the soup turbulent
- Lower max steps to speed up the run at the cost of fidelity
- Randomize resets the soup while keeping the current controls
How it works
1) The substrate
240×135 grid of programs, each a 64-byte BFF tape. Instructions and data share the same bytes: there is no separate code memory. The initial soup is uniform random noise.
2) Interaction
Each epoch, nearby programs are greedily paired within a Chebyshev radius-2 neighborhood, concatenated, then interpreted together for up to 8192 steps before being split back into the grid.
3) Browser implementation
The simulation runs in a Web Worker to keep the page responsive at paper-scale defaults. The canvas shows one compressed pixel per tape using its dominant opcode rather than rendering all 64 bytes.
Inspired by Computational Life (Agüera y Arcas et al., 2024) — self-replication from random initial conditions with no designed fitness. Interpreter semantics were checked against the authors’ CuBFF reference implementation.