Capstone — Discover, Measure and Explain a New System

Page content

Cellular Automata From First Principles 58: Capstone — Discover, Measure and Explain a New System

The book began with one tiny rule applied to one tiny neighborhood.

We end with a different question:

Can we discover a cellular system, characterize its behavior, test its robustness and explain what we actually know about it?

That is the capstone.


Choose a system family

The capstone can use any family we built:

elementary cellular automata
Life-like rules
multi-state rules
stochastic systems
continuous CA
Lenia
neural cellular automata

A strong choice is a parameterized system large enough to contain surprises but small enough to search reproducibly.

For example:

search_space = {
    "mu": (0.10, 0.20),
    "sigma": (0.008, 0.04),
    "radius": (8, 24),
    "dt": (0.05, 0.20),
}

State the discovery objective before searching

Do not begin with:

find something cool

Define observable criteria.

For example:

survives 2,000 steps
remains spatially bounded
maintains nonzero activity
moves at least 10 cells
recovers at least 70% after a fixed perturbation

These criteria do not define life or intelligence.

They define the experiment.


for candidate in sample_candidates(search_space, seed=1234):
    result = evaluate_candidate(candidate)
    save_result(candidate, result)

Record every candidate with:

parameters
seed
code version
metrics
termination reason

Then rank without deleting the failures.


Refine promising regions

Suppose several candidates cluster near:

mu ≈ 0.145
sigma ≈ 0.018

Search locally around that region.

coarse discovery
local refinement
robustness testing

Do not mistake one lucky seed for a stable region of behavior.


Build a behavioral fingerprint

For each finalist, measure multiple dimensions:

fingerprint = {
    "mean_mass": mean_mass,
    "activity": activity,
    "entropy": entropy,
    "centroid_speed": speed,
    "compactness": compactness,
    "damage_recovery": recovery,
    "sensitivity": sensitivity,
}

The point is not to collapse these into one magical complexity score.

The point is to describe the system from several defensible angles.


Test neighboring parameters

If a pattern exists only at one exact floating-point coordinate, that tells us something important.

Evaluate nearby values:

mu ± ε
sigma ± ε
radius ± 1
dt ± ε

Then ask:

Is behavior stable in a region?
Does it change smoothly?
Is there a sharp transition?

A parameter map is often more informative than the champion itself.


Perturb the system

Use a perturbation suite rather than one hand-picked success case.

small circular deletion
large deletion
additive noise
translated initial state
changed update rate
larger canvas

Record:

recovery success
recovery time
final morphology error
mass change
continued motion

Now robustness becomes measured behavior.


Compare against baselines

A discovery is easier to interpret when compared with alternatives.

For example:

candidate
nearby parameter candidate
random parameter candidate
static/persistent baseline
high-activity noise-like baseline

If every random system scores similarly, our metric is not discriminating enough.


Inspect mechanism where possible

For a hand-designed continuous CA, inspect:

kernel response
growth response
local field distributions
regions of positive/negative update

For an NCA, inspect:

hidden-channel trajectories
probe predictions
channel ablations
spatial shuffles
local interventions

The question is not:

Can we tell a beautiful story about the mechanism?

It is:

Which claims survive intervention and measurement?


Produce the artifact set

A finished capstone should generate at least:

config.json
metrics.csv
behavioral-fingerprint.json
parameter-map.png
representative-state.png
activity-timeseries.png
perturbation-comparison.png
animation.mp4 or gif
README/report.md

Every figure should be traceable to a run.


Write the conclusion in layers

Separate observation from interpretation.

For example:

Observation

The candidate remains bounded for 2,000 steps and its centroid moves 18.4 cells.

Observation

Across 20 circular damage trials, 16 return below the predefined morphology-error threshold.

Interpretation

This behavior is consistent with a persistent mobile structure with measurable regenerative capacity under the tested perturbations.

Then state the limit:

This does not establish biological life, agency or intelligence.

Precision makes the result stronger, not weaker.


The entire book in one workflow

We can now summarize the journey:

local state
local neighborhood
local rule
repeated dynamics
emergence
measurement
search
artificial life
learned local rules
robustness and generalization
reproducible experimentation

The deepest idea has remained unchanged from the first chapter:

Complex global behavior can arise from simple local interactions.

But we have added a second principle that matters just as much:

Interesting behavior becomes knowledge only when we can reproduce, measure, challenge and explain it.

That is where cellular automata stop being merely fascinating pictures and become a laboratory for computation, emergence and self-organization.