The evolvable controller: a recurrent regulatory network that maps §3's senses to its effectors, carries state across ticks, grows by duplication, and encodes no guild identity. The world does the selecting — there is no fitness target.
lockedhybrid encodingasexual · recurrent
5.1
What the genome is
Chosen after surveying Avida, Aevol, NEAT and Banzhaf's ARN: take the tractable encoding, drop their selection machinery, keep the biological growth mechanism.
An explicit network. The genome is a list of nodes plus directed weighted edges — like NEAT, but with no innovation numbers (those exist for crossover, and cells divide asexually).
Fixed interface, evolvable interior. Every cell carries all of §3's sense-inputs and effector-outputs as nodes; evolution wires the hidden network between them. An unused effector simply evolves near-zero drive — nothing presets a guild.
The world selects. NEAT and Aevol both assume a fitness target; we take only their representation. Survival and reproduction in the ecology are the only selection.
Why duplication and not NEAT's connection-splitting: real regulatory networks grow by duplicating a regulator then diverging it, and that mechanism alone produces lifelike (scale-free, modular) topology — structure for free, before any selection. It is load-bearing, not flavour.
Senses (reserve C/N, size, light, inorganic C/N, 3 markers, gradients, contact) → evolvable recurrent hidden core → effector drives. The interface is fixed; only the interior evolves.
5.2
How it computes
Continuous and recurrent, with memory built in.
One synchronous update per tick. Each node's new value = a bounded function of its weighted inputs plus the previous tick's hidden state. Nothing is run to equilibrium — state persists.
That persistence is the memory (H7). A small cell can't read a spatial gradient (§3), so it compares now against its remembered past and run-and-tumbles; diel rhythm can also be learned. The recurrence is what makes that possible.
Depth costs ticks. A signal crossing a deep chain takes several ticks to arrive — biologically reasonable latency, and it keeps each tick's compute O(nodes).
5.3
How it grows
Mutation operators, applied at division from the dedicated mutation RNG stream (§4).
The headline operator: copy a node with its edges (a paralog, initially redundant), then let point mutation push the copy toward a new role.
Duplication-and-divergence — the complexity engine. The paralog starts neutral; divergence comes from ordinary point mutation afterward.
Point — perturb edge weights, node biases, and the marker tag (Gaussian).
Add / remove edge, and node deletion — so networks can shrink, not only grow. Aevol's lesson: deletions are what bound bloat.
PARSIMONY — WEAK COST + CAP
A weak per-node upkeep (value in §6) gives a gentle pressure to shed persistently-useless structure — set small enough that a fresh duplicate stays quasi-neutral long enough to maybe diverge. A separate hard node cap bounds runtime regardless of where that cost lands, keeping "fast on mobile" (engineering) decoupled from "complexity is costly" (biology).
5.4
Heredity & differentiation
Copy then mutate. At division the genome is duplicated and the copy mutated. Daughters share a genotype.
Differentiation without genetic difference. The recurrent state is inherited and may be split asymmetrically (§1), so two cells with the same genome can behave differently — a colony can specialise its cells by state and position alone.
The marker tag is 3 evolvable genome scalars (the emitted barcode); emission rate is an output; the response is wiring from the 3 marker-sense inputs. Kin recognition, greenbeard cooperation, and cheating all fall out of co-encoding tag and response.
5.5
Genome → phenotype
How outputs become behaviour, and where a run starts.
Outputs are target drives. Effector outputs set target efforts and allocations; §3.3's standing machinery relaxes toward those targets and pays maintenance at its current level — so machinery is slow and hysteretic, and idle capacity still costs.
Minimal seed. A run starts from sparse, near input→output genomes with small random weights — no hidden structure handed in, so behaviour and guilds emerge.
log
Decisions & carry-ins
encodingHybrid — explicit recurrent net, asexual (no innovation numbers), world-selected (no fitness target).H7Memory — resolved: persistent recurrent state, one synchronous update per tick.growthDuplication-and-divergence as the complexity engine; point / add / remove / delete round it out.parsimonyWeak per-node upkeep (§6 value) + hard node cap (runtime guardrail).diff'nState-driven differentiation on one genome; recurrent state inherited, asymmetric split allowed.→ §6New dials: mutation / duplication / deletion rates, weight-perturbation size, tag-mutation rate, per-node cost, node cap, machinery relax rate — mostly decoupled from the §1–§3 physics constants.