Worm@ · Colony journal · Open lab notebook
Evolution in a colony of connectome-driven Caenorhabditis elegans: a running record
Abstract
This record follows a colony of simulated nematodes in which every individual runs the complete wiring diagram of the C. elegans nervous system — 300 neurons, 4528 chemical synapses and 1179 gap junctions. Worms inherit their parent’s synapse strengths with random mutations (σ = 3% per synapse per generation) and feed, learn, reproduce and die without intervention; nothing in the model rewards any particular wiring. Since 2026-10-17, 65 worms have lived here across 2 generations (P0–F1); 59 are alive now. The wiring of the 25 living colony-born worms differs from the original connectome by 2.38% on average (neutral expectation ≈ 2.39%). 14 observations have been recorded (7 population, 2 model, 3 behaviour, 1 environment, 1 evolution), the latest on 2026-10-17 19:18 UTC: Transgenerational inheritance: born avoiding PA14.
| Alive | 59 worms · 15 eggs · 0 in dauer | Ever lived | 65 · 6 deaths |
|---|---|---|---|
| Generations | deepest alive F1 · mean 0.4 | Founder lines alive | 35 |
| Divergence | 2.38% (n = 25) | Soil | 21.2 °C · 50% moisture · clear |
| Deaths by cause | infection 6 | ||
1Introduction
C. elegans is the only animal whose nervous system has been mapped completely, synapse by synapse. Worm@ gives that map a body and a world: each worm’s behaviour — following smells, backing away from danger, slowing on food, turning, laying eggs — arises from activity spreading through its own copy of the connectome. When a worm reproduces, its offspring inherit that copy with small random changes. Which worms survive long enough to reproduce decides which changes spread.
This journal is the colony’s record. It is written by the simulation itself: a detector watches the world and notes each first and each milestone the moment it happens, together with the exact rule that detected it and the measurements behind it. Nothing here is curated or edited by hand.
2Methods
2.1 Nervous system
Each worm carries the hermaphrodite connectome of Cook et al. (2019), as compiled by the OpenWorm ConnectomeToolbox. Most C. elegans neurons signal with graded potentials rather than spikes, so each neuron is a leaky integrator with a rectified, saturating output:
τ · dv/dt = −v + g_chem · Σ w · r_pre + g_gap · Σ w · (v_other − v) + input + noise
r = clamp(v, 0, 1) // τ = 0.15 s, g_chem = 0.9, g_gap = 0.05Sensory neurons are driven by the worm’s surroundings — odours of bacteria and of the pathogen PA14, touch, temperature (AFD), ascaroside pheromone (ADL) — and the motor circuit drives the body-wall muscles of a 16-point body crawling through soil with obstacles.
2.2 Life cycle
Worms hatch as L1 larvae, grow through four larval stages when fed and become self-fertilising adults that lay an egg about every 15 minutes while well fed, up to a brood of 25. Eggs hatch after 30 minutes. Starving or crowded larvae enter the dauer stage (after 10 min of hunger, or 3 min of crowding without food); adults starve, die of PA14 infection, dry out in parched soil (after 2 h), or die of old age (mean lifespan 2 days). The population is capped at 120 worms and eggs: crowding stops egg laying.
2.3 Inheritance, mutation and selection
child.w[i] = parent.w[i] · (1 + σ · N(0, 1)) // every chemical synapse, σ = 0.03
child.avoidance = parent.avoidance · 0.6 // learned PA14 avoidance, partly inheritedThere is no fitness function. Selection is only implicit: a mutation spreads if the worms carrying it find food, avoid PA14 and lay eggs before they die. Gap junctions are not mutated.
2.4 Environment
Soil temperature follows the real time of day (UTC) and the weather, and shade is cooler; each worm prefers the temperature it was well fed at and steers towards it. Rain soaks the soil and drought dries it. Every worm leaves a trace of pheromone that spreads and fades (half-life 20 min). Food morsels — harmless bacteria or PA14 — appear, are eaten and vanish.
2.5 Measures
Evolution is measured over the living colony-born worms (generation ≥ 1); founders carry the original connectome by definition. With w a worm’s synapse weights and w0 the original connectome:
divergence(w) = Σ |w_i − w0_i| / Σ |w0_i|
circuitChange(w, C) = Σ_{i∈C} |w_i| / Σ_{i∈C} |w0_i| − 1
// neutral mutation alone, after g generations: one SD, and the expected value
neutralSD(C, g) = σ · √g · √(Σ_{i∈C} w0_i²) / Σ_{i∈C} |w0_i|
E[divergence](g) ≈ σ · √(2/π) · √g
z = mean circuitChange / neutralSD(C, ḡ)A circuit is a set of synapses between named neuron classes (Table 2). The neutral SD treats the colony mean like a single line of descent, which overestimates drift for a population, so the z-scores are conservative. A synapse change counts as spread when at least 90% of the colony-born worms carry a change of more than 10% in the same direction.
2.6 How observations are recorded
A detector runs inside the simulation every 5 seconds and the colony is measured every 10 minutes. Each kind of observation is recorded once, ever, under a unique key; milestones are recorded at fixed steps (generations F1–F5, then every 5th; circuit changes of 2, 5, 10, 20, 30 and 50%). Every entry shows its detection rule as code and the measurements at that moment. Times are UTC; T+ is world time, the time the simulated world had been running. Entries dated from stored records, or found already true when the record began, are marked Reconstructed. Changes to the model are recorded as revisions, since observations made under different revisions are not directly comparable.
Model revision 2 parameters
// Connectome-driven worms with inheritance, learning and soil climate
connectome: "sha256:621afa41afec"
neurons: 300
chemicalSynapses: 4528
gapJunctions: 1179
mutationSd: 0.03
lifespanDays: 2
broodSize: 25
eggIntervalMin: 15
hatchMin: 30
maxPopulation: 120
avoidanceInherited: 0.6
dauerAfterMin: 10
crowdDauerAfterMin: 3
desiccationDeathH: 2
pheromoneHalfLifeMin: 20
lifeSpeed: 1
3Observations
Every first and every milestone, in the order it happened. Each entry links to itself (its number), shows when it was detected in UTC and in world time, and — unless hidden — the rule that detected it and the data at that moment.
- O-001T+ —
The colony is founded
Jasper (P0 #001) was the first worm placed in the soil. Every worm here starts from the same wiring: the C. elegans connectome.
Jasper · w001 ↗// O-001 · 2026-10-17T18:02:14Z · T+ — · reconstructed rule: min(worms.bornAt) data: { "worm": "w001" } - O-002T+0d 00:00:00
The record begins
From here on every observation is detected and timestamped automatically, as it happens. Milestones from before this moment are reconstructed from the colony's stored records and marked as such.
// O-002 · 2026-10-17T18:02:15Z · T+0d 00:00:00 rule: journal.rows.length === 0 data: { "worldTime": "0 min", "wormsEver": 30, "livingWorms": 30 } - O-003T+0d 00:00:00
Model revision 2: Connectome-driven worms with inheritance, learning and soil climate
Faster life history: worms now live about 2 days instead of 4, and a well-fed hatchling grows up in about 3.6 hours instead of 5.4, so the colony turns over generations about twice as fast. Each worm runs a graded-potential network on the C. elegans connectome (chemical synapses and gap junctions), drives a 16-point body, eats, grows through L1–L4, lays eggs, learns to avoid PA14 and dies. Offspring inherit the parent's synapse strengths with small random mutations and part of its learned avoidance. The soil has a daily temperature cycle, moisture and a pheromone field; the weather brings rain and drought.
// O-003 · 2026-10-17T18:02:15Z · T+0d 00:00:00 rule: !journal.has("model:" + MODEL.revision) data: { "neurons": 300, "hatchMin": 30, "broodSize": 25, "lifeSpeed": 1, "connectome": "sha256:621afa41afec", "mutationSd": 0.03, "gapJunctions": 1179, "lifespanDays": 2, "dauerAfterMin": 10, "maxPopulation": 120, "eggIntervalMin": 15, "chemicalSynapses": 4528, "desiccationDeathH": 2, "avoidanceInherited": 0.6, "crowdDauerAfterMin": 3, "pheromoneHalfLifeMin": 20 } - O-004T+0d 00:00:04
10 worms alive at once
The living population reached 10 worms (0 eggs waiting to hatch). (Already the case when this record began; the exact moment was not observed.)
// O-004 · 2026-10-17T18:02:20Z · T+0d 00:00:04 · reconstructed rule: worms.filter(w => !w.dead).length >= 10 data: { "eggs": 0, "living": 30, "deepestGeneration": 0 } - O-005T+0d 00:00:04
25 worms alive at once
The living population reached 25 worms (0 eggs waiting to hatch). (Already the case when this record began; the exact moment was not observed.)
// O-005 · 2026-10-17T18:02:20Z · T+0d 00:00:04 · reconstructed rule: worms.filter(w => !w.dead).length >= 25 data: { "eggs": 0, "living": 30, "deepestGeneration": 0 } - O-006T+0d 00:08:22
First serious PA14 infection
Ember (P0 #023) fed on Pseudomonas aeruginosa (PA14), which is attracted to like ordinary bacteria, and its gut became seriously infected.
Ember · w023 ↗// O-006 · 2026-10-17T18:10:40Z · T+0d 00:08:22 rule: worm.peakInfection >= 0.5 data: { "worm": "w023", "avoidance": 0.04, "infection": 0.65 } - O-007T+0d 00:15:01
First egg
Jasper (P0 #001) laid the colony's first egg (egg-laying is driven by serotonin from the HSN neurons). The offspring will carry its synapse strengths, each changed by a small random mutation.
Jasper · w001 ↗// O-007 · 2026-10-17T18:17:20Z · T+0d 00:15:01 rule: worm.eggsLaid >= 1 data: { "age": "15 min", "worm": "w001", "energy": 0.45 } - O-008T+0d 00:21:24
First rain
Rain began to fall: the soil soaks, food grows faster, crawling gets easier, and raindrops startle worms near where they hit.
// O-008 · 2026-10-17T18:23:56Z · T+0d 00:21:24 rule: weather.kind === "rain" // changed from the previous tick data: { "moisture": 0.484, "soilWater": 0.6, "temperature": 21.88 } - O-009T+0d 00:26:43
Learning: the first worm to learn to avoid PA14
After getting sick, Ember (P0 #023) learned to avoid the smell of PA14 that first attracted it — aversive olfactory learning (Zhang, Lu & Bargmann 2005). Its avoidance index rose to 0.4.
Ember · w023 ↗// O-009 · 2026-10-17T18:29:16Z · T+0d 00:26:43 rule: worm.avoidance - worm.inheritedAvoidance >= 0.4 data: { "worm": "w023", "avoidance": 0.401, "inherited": 0, "peakInfection": 1 } - O-010T+0d 00:45:04
Generation F1
Rufus (F1 #039) hatched: the first F1 worm, 1 generation from the founders. Its wiring differs from the original connectome by 2.37% (2.37% from its parent).
Rufus · w039 ↗// O-010 · 2026-10-17T18:48:01Z · T+0d 00:45:04 rule: worm.generation > deepestGeneration // noted at F1–F5, every 5th to F50, then every 25th data: { "worm": "w039", "generation": 1, "line": ["w026", "w039"], "divergence": 0.0237, "fromParent": 0.0237, "expectedNeutral": 0.0239 } - O-011T+0d 00:50:43
First death: infection
Cleo (P0 #007) died of a PA14 infection, the colony's first death from the pathogen, at 50 min of age.
Cleo · w007 ↗// O-011 · 2026-10-17T18:53:41Z · T+0d 00:50:43 rule: worm.dead && worm.causeOfDeath === "infection" data: { "worm": "w007", "generation": 0, "age": "50 min", "eggsLaid": 3 } - O-012T+0d 00:51:18
The colony's wiring has diverged 2% from the connectome
Averaged over the 9 living descendants, synapse strengths now differ from the original C. elegans connectome by 2.38%. Neutral mutation alone would give about 2.39% at their generations; selection changes which synapses move, more than how far.
// O-012 · 2026-10-17T18:54:16Z · T+0d 00:51:18 rule: mean(descendants.map(w => Σ|w.chemW - original| / Σ|original|)) >= 0.02 data: { "descendants": 9, "meanGeneration": 1, "divergence": 0.02383, "expectedNeutral": 0.02394 } - O-013T+0d 01:00:01
50 worms alive at once
The living population reached 50 worms (17 eggs waiting to hatch).
// O-013 · 2026-10-17T19:03:01Z · T+0d 01:00:01 rule: worms.filter(w => !w.dead).length >= 50 data: { "living": 53, "eggs": 17, "deepestGeneration": 1 } - O-014T+0d 01:15:03
Transgenerational inheritance: born avoiding PA14
Iris (F1 #058) hatched already avoiding PA14, without ever having met it: what its parent Pip learned was passed on to the next generation (as in Moore, Kaletsky & Murphy 2019).
Iris · w058 ↗// O-014 · 2026-10-17T19:18:06Z · T+0d 01:15:03 rule: worm.inheritedAvoidance >= 0.3 data: { "worm": "w058", "parent": "w003", "inheritedAvoidance": 0.371, "share": 0.6 }
4Figures
| Circuit | F1n=25 | Colony | Neutral SD | z |
|---|---|---|---|---|
| Smell → keep goingAWA/AWC/ASE → AIY | +0.44% | +0.44% | ±1.03% | 0.4 |
| Smell → turnAWA/AWC/ASE → AIB/AIZ | −0.19% | −0.19% | ±0.95% | -0.2 |
| Danger → back awayASH/ADL → AVA/AVD/AIB | +0.24% | +0.24% | ±0.79% | 0.3 |
| Food → slow downCEPD/CEPV/ADE/PDE → any | +0.09% | +0.09% | ±0.36% | 0.2 |
| Nose touch → reverseALM/AVM/FLP → AVA/AVD | +0.02% | +0.02% | ±1.01% | 0.0 |
| Tail touch → forwardPLM/PVD → AVB/PVC | +0.03% | +0.03% | ±1.51% | 0.0 |
| Turning → reversalAIB/AIZ/RIM → AVA | +0.08% | +0.08% | ±1.39% | 0.1 |
| Forward driveAVB/PVC → DB/VB | +0.08% | +0.08% | ±0.79% | 0.1 |
| Backward driveAVA/AVD/AVE → DA/VA/AS | +0.05% | +0.05% | ±0.34% | 0.2 |
| Overall divergenceall chemical synapses | 2.38% | 2.38% | neutral ≈ 2.39% | |
5Data availability
Everything on this page — every entry with its rule and measurements, every 10-minute sample, the per-generation figures and the model parameters — is served as JSON by the simulation server:
GET https://api.wormat.org/api/journalEntries are written to the database the moment they are detected and are never edited afterwards. Individual worms can be looked up at /worm/<id>.
How to cite
Worm@ (2026). Evolution in a colony of connectome-driven Caenorhabditis elegans: a running record. Model revision 2. https://wormat.org/journal (accessed 2026-10-17).
References
- Cook et al., Nature 2019. Whole-animal connectomes of both Caenorhabditis elegans sexes. doi.org/10.1038/s41586-019-1352-7 — The wiring of every brain.
- Pierce-Shimomura, Morse & Lockery, J. Neurosci. 1999. The fundamental role of pirouettes in Caenorhabditis elegans chemotaxis. doi.org/10.1523/JNEUROSCI.19-21-09557.1999 — Turning when a smell fades.
- Gray, Hill & Bargmann, PNAS 2005. A circuit for navigation in Caenorhabditis elegans. doi.org/10.1073/pnas.0409009101 — Local search after leaving food; the AIY / AIB / AVA turning circuit.
- Zhang, Lu & Bargmann, Nature 2005. Pathogenic bacteria induce aversive olfactory learning in Caenorhabditis elegans. doi.org/10.1038/nature04216 — Learning to avoid PA14.
- Mori & Ohshima, Nature 1995. Neural regulation of thermotaxis in Caenorhabditis elegans. doi.org/10.1038/376344a0 — AFD and the preferred temperature.
- Golden & Riddle, Science 1982. A pheromone influences larval development in the nematode Caenorhabditis elegans. doi.org/10.1126/science.6896933 — Crowding pheromone and the dauer decision.
- Jang et al., Neuron 2012. Neuromodulatory state and sex specify alternative behaviors through antagonistic synaptic pathways in C. elegans. doi.org/10.1016/j.neuron.2012.06.034 — Hermaphrodites avoiding ascaroside pheromone via ADL.
- Moore, Kaletsky & Murphy, Cell 2019. Piwi/PRG-1 Argonaute and TGF-β mediate transgenerational learned pathogenic avoidance. doi.org/10.1016/j.cell.2019.05.024 — Avoidance passed to offspring, fading over generations.
- OpenWorm ConnectomeToolbox. github.com/openworm/ConnectomeToolbox — the connectome data.
