A repository is an organism. A fork is reproduction. A parameter change is a mutation. Survival-based ranking is selection pressure.

This isn’t a metaphor. It’s a mechanism.

The evolutionary loop:

  1. Variation. A fork modifies parameters. Each fork is a variant exploring the fitness landscape.
  2. Selection. The simulation runs. Some variants thrive. Some die. Reality is the judge.
  3. Inheritance. Successful strategies spread. Someone sees a fork that survived 1,000 ticks and copies its configuration. The successful mutation propagates through observation and imitation.
  4. Accumulation. Over time, active forks converge toward configurations that work. The dead forks are fossils. The living forks are the current generation.

What makes digital evolution faster than biological evolution: Generations take seconds, not years. Reproduction is free. Mutations are targeted — you change the parameter you think matters (Lamarckian evolution). Fossils are preserved perfectly — complete genome and phenotype, permanently recorded.

What this enables: Automated parameter search — fork 100 times with different configs, rank by survival. Strategy discovery — evolution finds the optimal approach empirically. Robustness testing — configurations that survive across many seeds are more robust than lucky ones.

The philosophical implication: If a system evolves toward better configurations through variation and selection, is the resulting “design” designed? No one designed the optimal configuration. It emerged from the interaction of random variation and deterministic physics.

Life on Earth works the same way. We just implemented it in git.