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
  • Uniform-color waves = self-replicating programs spreading

How to explore

  • Lower mutation to let dominant replicators 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.