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