Era 0 asks two questions, at the same budget of births. Does selection over inherited lineages of programs find better programs than the same AI mutating the founder afresh each time (H1)? And does the AI add anything that blind rules under the same selection do not (H2)? In every run three arms start from PM-0: the lineage, bred by a 7-billion-parameter model under selection; Aleator vulgaris, the same model with no heredity, every child a fresh mutation of PM-0; and blind rules, selection with heredity but mutations drawn by a page of fixed rules, with no model at all. Each arm's champion is picked on eight training instances, then scored on a frozen panel of eight it never saw.
Does selection matter? The lineage's champion scored higher on the frozen panel than Aleator's in eight of ten runs and tied in two: H1 is supported, p = 1/256. Does the model add anything to selection? Blind rules under the same selection, with no model at all, scored higher than the lineage in five of ten runs: H2 is not supported, p = 403/512.
Each run is one lane. An arm's champion is its child with the best certified training score in the whole run, ties to the earlier birth; the panel then scores it once, on eight instances that were never used for selection, two of them the instances with published records. The tick is PM-0, the founder, on the same panel.
| run | lineage | Aleator | rules | PM-0 | dᵢ |
|---|---|---|---|---|---|
| era-0-1 | 0.20243 | 0.18515 | 0.20308 | 0.16618 | +0.01728 |
| era-0-2 | 0.20393 | 0.18515 | 0.20260 | 0.16618 | +0.01877 |
| era-0-3 | 0.18515 | 0.18515 | 0.20400 | 0.16618 | 0 |
| era-0-4 | 0.20447 | 0.18515 | 0.20285 | 0.16618 | +0.01932 |
| era-0-5 | 0.19964 | 0.18515 | 0.20102 | 0.16618 | +0.01449 |
| era-0-6 | 0.18515 | 0.18515 | 0.19603 | 0.16618 | 0 |
| era-0-7 | 0.20393 | 0.18515 | 0.19775 | 0.16618 | +0.01877 |
| era-0-8 | 0.20006 | 0.18515 | 0.20143 | 0.16618 | +0.01491 |
| era-0-9 | 0.20354 | 0.18515 | 0.20285 | 0.16618 | +0.01838 |
| era-0-10 | 0.20311 | 0.18515 | 0.20143 | 0.16618 | +0.01796 |
| era-0-pilot-2 (pilot) | 0.20107 | 0.18515 | 0.20143 | 0.16618 | +0.01592 |
The founder and each arm's champion from era-0-1, packing the panel's (26, 1): 26 disks in the unit square, drawn from the packing the judge certified. PM-0 lays its disks on a grid, each 90% of half its cell. With no margin at all, that grid scores 0.20516 on the panel. No champion of any arm, in any run, scored above it; the best reached 0.20447. What selection found was a smaller margin for PM-0's own grid, not another arrangement.
Each test is exact: the observed sum of the ten differences against all 1,024 ways of flipping their signs, so the p-value is a fraction and no distribution is assumed. H1 is the primary hypothesis, at 0.05. H2 to H4 share Holm's correction. The interval is the set of shifts the same test does not reject, 2.5% each way. A hypothesis is supported by a positive mean with p below its threshold, and a negative result is reported as plainly as a positive one.
| Hypothesis | difference | mean | median | p, exact | 95% interval | verdict |
|---|---|---|---|---|---|---|
| H1 The lineage's champion scores higher on the panel than Aleator's, run for run. | panel(lineage) − panel(Aleator) | +0.01399 | +0.01762 | 1/2560.0039 | +0.00842 to +0.01850 | supported |
| H2 The lineage's champion scores higher on the panel than the blind rules' champion, run for run. | panel(lineage) − panel(rules) | −0.00217 | +0.00001 | 403/5120.7871 | −0.00744 to +0.00216 | not supportedHolm |
| H3 The blind rules' champion scores higher on the panel than PM-0. | panel(rules) − panel(PM-0) | +0.03513 | +0.03584 | 1/10240.0010 | +0.03328 to +0.03667 | supportedHolm |
| H4 Selection overfits: training exceeds panel by more in the lineage than in Aleator. | (training − panel), lineage − Aleator | +0.00041 | +0.00020 | 1/2560.0039 | +0.00009 to +0.00080 | supportedHolm |
H1 is supported. After Holm's correction H3 and H4 are supported, H2 is not.
Aleator has no heredity: every child is one edit from PM-0, so its champion can be no better than the best single edit the model offered. In all ten runs that best edit scored the same, 0.18515 on the panel: the model wrote one idea, a smaller margin for PM-0's grid, six different ways. The lineage and the blind rules could stack edits and keep shrinking the margin; Aleator could not.
So H1 shows that heredity lets small gains accumulate, the least that evolution must do. It says nothing about whether the model's edits are better than blind ones. That is H2's question, and H2 was not supported: the result that matters most here is the one the controls give.
Section 4 names one sensitivity check and section 6 two descriptive measures. None of them is a hypothesis; each is reported as the protocol says.
| measure | what it found |
|---|---|
| Equal tokens (§4, sensitivity) | The lineage used more model tokens in every run; cut at Aleator's total, its champion was higher in eight runs and tied in two, p = 1/256. Three of the cut champions had never lived on the panel and lived there once for this. |
| Forecasts (§6) | Median interval score over the runs, lower is better: lineage 0.314, Aleator 0.315, blind rules 55.5. Forecasts are sealed before judgment and never selected on. |
| Toward the records (§6) | Share of PM-0's gap to the best published sum of radii closed by each final champion: on (26, 1), lineage 16% to 31%, Aleator 16%, blind rules 24% to 31%; on (32, 1), lineage 25% to 49%, Aleator 25%, blind rules 38% to 48%. Records from Packomania's table of variable-sized circles in a square, read 2026-10-24. |
From strata/era-0.more-2026-10-23.json.
The run drawn here is era-0-1: the first run in by name, chosen by its name and not by its result. Aleator's champion is one edit from PM-0, as every Aleator child is. The lineage's champion, lineage-99-13, is 14 inherited edits deep, and the blind rules' 17.
| generation | arm | champion | training | panel |
|---|---|---|---|---|
| 25 | lineage | lineage-22-7 | 0.20033 | 0.19837 |
| 25 | Aleator | aleator-4-0 | 0.18698 | 0.18515 |
| 25 | rules | rules-14-4 | 0.18698 | 0.18515 |
| 50 | lineage | lineage-22-7 | 0.20033 | 0.19837 |
| 50 | Aleator | aleator-4-0 | 0.18698 | 0.18515 |
| 50 | rules | rules-44-7 | 0.19073 | 0.18887 |
| 75 | lineage | lineage-22-7 | 0.20033 | 0.19837 |
| 75 | Aleator | aleator-4-0 | 0.18698 | 0.18515 |
| 75 | rules | rules-65-12 | 0.20300 | 0.20102 |
| 100 | lineage | lineage-99-13 | 0.20442 | 0.20243 |
| 100 | Aleator | aleator-4-0 | 0.18698 | 0.18515 |
| 100 | rules | rules-91-12 | 0.20508 | 0.20308 |
Every ancestor, from PM-0 to the champion, with the lines its mutation changed and the training score its child earned. The champion's score on the panel: 0.20243.
Every birth lands in one category. Stillborn: the edit was not the one asked for, so no life. Died: it lived and earned no score, by spending its fuel, crashing, or writing what the deciders cannot read. Lived: it was scored. Quarantine and void would mean the world or the judges failed; they are counted in the table. Counted over the ten confirmatory runs in.
| arm | births | lived | died | stillborn | quarantined | void | model tokens | fuel |
|---|---|---|---|---|---|---|---|---|
| lineage | 16,000 | 9,778 | 4,576 | 1,646 | 0 | 0 | 28,265,511 | 2.64 × 10¹³ |
| Aleator | 16,000 | 9,292 | 5,271 | 1,437 | 0 | 0 | 25,819,372 | 2.75 × 10¹³ |
| rules | 16,000 | 6,161 | 2,799 | 7,040 | 0 | 0 | 0 | 1.63 × 10¹³ |
A run's name is its seed: every draw in it comes from the record that grows from its name, so the same name gives the same bytes. Each run's head, the hash of its last record, is timestamped on Bitcoin through OpenTimestamps when it comes in.
| run | machine class | state | records | head | head timestamp |
|---|---|---|---|---|---|
| era-0-1 | CUDA 12.8, Linux x86_64 | complete | 12,651 | 33ab41e898e1103c… | timestamped |
| era-0-2 | CUDA 12.8, Linux x86_64 | complete | 12,711 | 5e27737362809763… | timestamped |
| era-0-3 | CUDA 12.8, Linux x86_64 | complete | 12,555 | aa3bfdc87877e006… | timestamped |
| era-0-4 | CUDA 12.8, Linux x86_64 | complete | 12,679 | 12b03e57d0c04685… | timestamped |
| era-0-5 | CUDA 12.8, Linux x86_64 | complete | 12,591 | 94d8af76495884de… | timestamped |
| era-0-6 | CUDA 12.8, Linux x86_64 | complete | 12,575 | 0e6f37bdb20d9a21… | timestamped |
| era-0-7 | CUDA 12.8, Linux x86_64 | complete | 12,701 | a3e06f0a53690646… | timestamped |
| era-0-8 | CUDA 12.8, Linux x86_64 | complete | 12,555 | ceb8ad0cd836a846… | timestamped |
| era-0-9 | CUDA 12.8, Linux x86_64 | complete | 12,547 | a9649bb42b88b3e0… | timestamped |
| era-0-10 | CUDA 12.8, Linux x86_64 | complete | 12,527 | 6df617c9dd3deac9… | timestamped |
| era-0-pilot-2 | CUDA 12.8, Linux x86_64 | complete | 12,661 | 484c94a9f25c038d… | timestamped |
| era-0-pilot | Metal, Apple M2 | stopped at generation 9, superseded by amendment 1 | 1,151 | — | not yet |
The protocol was timestamped before the pilot's first birth, and every run's first record carries its hash. The one amendment, which moved the model to a single class of rented GPUs whose machines answer the same requests byte for byte alike, was timestamped before any data it affects.
Replayed on 2026-10-23 (era-0.replay-2026-10-23.json): in ten runs, 48,000 of 48,000 births re-derived from their kept answers, 2,885 model answers asked again and returned byte for byte, and 37,971 of 37,971 lives re-run with the same outcome. Away from home, on another machine from a fresh copy with no compiled cache, era-0-1 came out the same: 4,800 of 4,800 births and 3,819 of 3,819 lives (era-0-1.replay-away-2026-10-23.json; the one difference, the host Python's patch release, is named in the file).
Every gain in era 0 was a smaller margin for PM-0's grid, and no champion got past what that grid can do. So era 1 asked whether a lineage can leave its founder's design, and changed four things, each fixed and timestamped before its first birth.
No champion of any arm crossed it; the best reached 0.20512. Blind rules scored higher than the lineage in nine of ten runs. The era 1 report.