Initializing
Epoch—
Interactions0
Interactions/Second—
Operations/Interaction—
Compression Ratio—

Abiogenesis Simulation

This simulation explores how self-replicating programs can emerge spontaneously from simple interactions, without any explicit fitness landscape.

Based on Computational Life: How Well-formed, Self-replicating Programs Emerge from Simple Interaction by Blaise Agüera y Arcas et al.

How It Works

  • 64 random 64-byte programs are initialized, each position containing values from 0 to 63.
  • Each epoch, programs are paired randomly and interact exactly once. Interactions concatenate two programs into a 128-byte program that executes on a Turing machine.
  • Programs can modify themselves through the "Program Write" operation.
  • Random mutations occur with 0.012% probability per byte per epoch. Note that this isn't necessarily, but it speeds things up.
  • After execution, the modified program is split back into two fragments, replacing the originals.
  • Over time, successful replicators spread through the population, creating measurable patterns in compression and computational activity.

Operation Reference

The instruction set is a modified version of Brainfuck that enables self-modifying programs. Each operation has a numeric code (1-10) and visual symbol in the fragment display.

Buffer Right - Move buffer pointer right
Buffer Left - Move buffer pointer left
Buffer Increment - Increase value at buffer pointer
Buffer Decrement - Decrease value at buffer pointer
Program Right - Move program pointer right
Program Left - Move program pointer left
Program Read - Copy program value to buffer
Program Write - Copy buffer value to program
Loop Start - Skip to matching end if buffer value = 0
Loop End - Jump back to matching start if buffer value ≠ 0
Non-operation - Any other byte value