Skip to content

cimcai/alifeencyclopedia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An Encyclopedia of Artificial Life Systems

Faithful, runnable implementations of 15 classic artificial-life systems — from Conway's Game of Life to self-replicating Langton's Loops, Tierra, Avida, and Brainfuck program soups — measured with a single, cross-system battery of emergent-complexity metrics.

The fifteen-system suite

This repository is two things at once:

  1. A catalogue — one clean, audited implementation of each system behind a shared BaseSimulation interface (step() / get_state()), so any system can be run, snapshotted, and measured the same way.
  2. A measurement study — a five-family battery of complexity measures applied uniformly across the suite, and a 28-page monograph that reports the results.

The headline finding: complexity measures split into two kinds. Dynamics-based measures (damage spreading, activity) rank systems by behavior and are largely insensitive to how you serialize state; information/construction-based measures (entropy, assembly index, k-gram diversity) are dominated by the encoding. Lead cross-system claims with the former; reserve the latter for within-representation comparisons.


Featured

Monograph (28 pp.) docs/alife_encyclopedia.pdf — the full catalogue + framework
Survey paper docs/measures_of_complexity.pdf — the five-family battery, focused
ALIFE 2026 abstract docs/alife2026_measures_lba.pdf — the 2-page version

Self-replication, for real

Langton's Loops is implemented with the complete 219-rule transition table (876 rules under 4-fold rotational symmetry) and the canonical seed loop — which serializes to exactly 86 live cells, matching Langton (1984). Seeded with a single loop it genuinely reproduces: a construction arm extends, the genome is copied, and daughter loops bud and reproduce in turn.

Langton's Loops replicating

Two kinds of complexity measure

Two kinds of measure

(a) The dynamics plane (update activity vs. damage-spreading fraction) separates frozen systems from sensitive ones — a behavioral ordering that survives changes of measurement horizon and distance metric. (b) High-order entropy ranks systems almost entirely by serialization (byte-tape VMs at the top, binary grids near zero). The contrast between the two panels is the study's central point.

A slice of the 13-system × 5-family battery:

System Damage spreading Update activity High-order entropy
Stringmol 0.45 ± 0.33 0.139 −0.92
Rule 30 0.22 ± 0.04 0.479 −1.83
Rule 110 0.06 ± 0.04 0.686 −1.09
Langton's Loops 0.050 ± 0.007 0.013 0.054
Genetic algorithm 0.00 ± 0.00 0.413 0.06
BFF (Brainfuck) 0.002 0.062 5.20

Damage/activity are dynamics-based; high-order entropy (an entropy–compression residual, bits/symbol) is representation-sensitive. Full table in data/processed/complexity_measures/cross_system_measures.csv.


The catalogue

Family System Fidelity
Discrete CA Conway's Game of Life (2D / 3D) ★★★★★ / ★★★★☆
Discrete CA Rule 30, Rule 110 ★★★★★
Discrete CA Langton's Loops ★★★★★
Discrete CA Wireworld ★★★★★
Continuous CA Lenia ★★★★☆
Agent-based Boids ★★★★☆
Evolutionary Genetic algorithm ★★★★☆
Virtual machine Tierra, Avida ★★★★☆
Artificial chemistry Stringmol ★★★☆☆
Program soup BFF (Brainfuck / Forth) ★★★★★
Morphological Xenobots ★☆☆☆☆

Fidelity is a separately audited five-star rating of how closely the code matches the source paper; it is reported with every entry because a faithfulness gap is a confound for any complexity number. See the monograph and docs/FAITHFULNESS_IMPROVEMENT_SUMMARY.md.

Installation

pip install -r requirements.txt

Quick start

Run any system through the shared interface:

from simulations.conway import Conway2D

sim = Conway2D(config={'width': 50, 'height': 50, 'density': 0.3})
sim.run(steps=100, collect_metrics=True)
print(sim.get_metrics_summary())
from simulations.cellular_automata import LangtonLoops

sim = LangtonLoops(config={'width': 100, 'height': 100})
sim.run(steps=200)          # seed loop buds daughter loops

Reproduce the study's artifacts:

# The five-family battery across every system (writes CSV/JSON + figures)
python scripts/experiments/cross_system_measures.py
python scripts/experiments/plot_cross_system_measures.py
python scripts/experiments/plot_battery_heatmap.py

# Damage-spreading robustness sweep (horizon x distance metric)
python scripts/experiments/damage_robustness.py

# README hero assets (Langton GIF + system montage)
python scripts/experiments/make_readme_assets.py

Repository structure

alifeencylopedia/
├── simulations/          # One implementation per system (shared BaseSimulation interface)
│   ├── conway/  cellular_automata/  boids/  genetic_algorithms/  tierra/  symbiosis/  ...
├── analysis/
│   └── metrics/          # complexity_measures.py — the five-family battery
├── scripts/experiments/  # Battery runner, robustness sweep, figure + asset generators
├── docs/                 # Monograph + papers (LaTeX + PDF), per-system verification notes
└── data/processed/       # Battery results (CSV/JSON) and figures behind the papers

Documentation

Citing this work

If you use this repository, please cite it — see CITATION.cff (GitHub renders a "Cite this repository" button from it). For the original systems, see docs/citations.md.

License

Released under the MIT License.

About

Faithful implementations of 15 classic artificial-life systems + a five-family battery of emergent-complexity measures.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages