The generator

A swarm on the composition simplex, steered by a readout on the fly's connectome

The generator does not choose from a list. Twenty-four walkers move over the space of eight-element compositions; a readout on the MaleCNS connectome scores wherever they stand; the most promising new points go to rung 0 of the fidelity ladder, and rung 0's verdict is taught back to the readout. E224, the decisive test, asked whether the fly's measured wiring is what makes it work; on its pre-registered measure, it is not.

Point at a find for its composition.

Every proposal that qualified (driving force at 90 K of −40 meV/atom or lower), drawn in the round it qualified, each arm on the same seed. Amber: a new distinct find, more than 0.15 L1 from every earlier find of that arm; dim teal: a find within 0.15 of an earlier one. VEC × δ places each composition by valence electron concentration and atomic size mismatch, the two axes the project's MAP-Elites niches are binned on (grid lines are the niche edges, forager/search/generate.py). The element wheel places it at the fraction-weighted mean of eight unit vectors, one per element. Both flatten eight dimensions to two. The searches recorded only these winners, stamped with their round: walker positions between rounds and rejected proposals were never written down, so no trajectories are drawn. Below, the running count of distinct finds. Data: runs/odt_map/stage_b_e224_*.json, stage_b_e201b.json, stage_b_e195c.json.

How it works

generator diagram
The generator: walkers on the composition simplex, a readout on the connectome, rewards from rung 0. E224 and the other searches on this page ran on the eight elements listed below; chromium was not among them.
  1. Walkers. 24 walkers run and tumble on the composition simplex of Hf, Mo, Nb, Ta, Ti, V, W, Zr: each holds a composition and a heading, steps 0.05 along it, keeps the heading while the circuit scores the new point higher and turns when it does not; ten steps a round (forager/search/forage.py, FlyGenerator in forager/search/generate.py).
  2. Proposals. After each round the four best-scoring positions that lie more than 0.05 L1 from everything already proposed go to the verifier; if fewer than four are new, uniform draws fill the batch.
  3. The circuit. The score comes from the whole MaleCNS v1.0 connectome, 164,506 neurons and 25,135,527 edges, each edge signed by its presynaptic neuron's measured transmitter. The composition is broadcast onto 17,479 afferent neurons (olfactory, mechanosensory, visual and compass inputs), propagated four steps, and read by a linear readout, learned from the reward, over 794 LAL, DNa and MBON neurons plus the PFL and descending cells the plastic sites add (runs/e224_A_s0.log); the Kenyon-cell-to-MBON synapses are plastic, as in the fly's mushroom body. Each walker's step and patience are scaled by fixed random gains: the head's own gain field was the worst of three options on the clean reward (E198b) and is off.
  4. The reward. Rung 0 prices each proposal with the embedded cluster expansion in the DFT frame: its formation energy over random decorations, minus T·Smix at 90 K, is the driving force d to separate into the bcc pure elements. The verdict is p = 1/(1 + ed/25 meV) and the readout is taught 2p − 1. A proposal qualifies at d ≤ −40 meV/atom (p ≥ 0.832). MACE's off-lattice hull only vetoes beyond 100 meV/atom. Every search on this page was paid by the v5 expansion (runs/ece_v5_pureref9); the ladder has since moved to E237's ensemble.

These searches ran on the refractory eight above; chromium, the ninth element of the goal, was not in them.

How it is scored

One seed is 200 rounds of 4 proposals: 800 verifications. Two finds within 0.15 in L1 (the sum of absolute differences in atomic fraction) are the same alloy, so finds are clustered greedily in the order they were made and each cluster counts once: that is distinct finds (forager/search/trial.py). AUC_Q is the running count of distinct finds averaged over the run's 800 verifications, so an arm that finds its alloys early scores above one that finds the same number late. Arms are compared seed by seed.

What the controlled comparisons found

1. The learning had been starved (E61)

A generator that learns has to beat its own frozen twin: the same wiring, walkers and step size, with plasticity off. At first this one did not; on the 5,311-neuron mushroom-body circuit it led the twin by +0.45 ± 0.51 AUC_Q, p = 0.40 (E60). The Kenyon-cell threshold had been calibrated on raw input, and recurrent inhibition then silenced most of what cleared it: on the fly's own proposals 0.07 % of the 4,064 Kenyon cells were active, three cells, against a 10 % target. Calibrating against the code that actually fires fixed it.

fly − frozen twin, AUC_Qp (Wilcoxon)seeds won
starved code, learning rate 0.1+0.45 ± 0.510.406 of 8
starved code, learning rate 1.0+2.66 ± 1.140.0207 of 8
code at its intended density, 0.1+4.68 ± 1.400.00398 of 8

On eight fresh seeds (100 to 107) the difference was +5.02 ± 0.90; over all sixteen the fly won sixteen of sixteen, p = 1.2 × 10−5. That was on the rung-0 screen of that week, 60 rounds of 4 proposals (E61). The frozen twin is E224's arm D.

2. The fly against elitist (E201b, E195c)

Elitist keeps the eight best compositions it has seen and proposes jittered copies. It has no model and no notion of direction, so it is the bar a learning generator has to clear. Three seeds each, the same verifier and budget:

seed 0seed 1seed 2mean ± sd
fly (whole-brain head)300
135.4
268
138.4
330
167.5
299.3 ± 31.0
147.1 ± 17.7
elitist (keep the best, mutate)249
156.2
243
134.3
223
143.9
238.3 ± 13.6
144.8 ± 11.0

Distinct finds, with AUC_Q beneath; E201b seed 0 · E201b seed 1 · E195c seed 2. From runs/odt_map/stage_b_e201b.json and stage_b_e195c.json.

The fly makes +61 distinct finds on elitist, about 2 seed-sd, at the same rate: AUC_Q +2.3, a tie. Two things qualify that lead. Its finds are shallower, −66.8 against −73.7 meV/atom on average over E201b's two seeds. And FlyGenerator carries three diversity devices elitist never had: a filter that proposes nothing within 0.05 L1 of anything proposed before, a uniform restart after six moves without improvement, and 24 walkers. Its stream of finds holds no near-duplicates where elitist's holds 3 to 9 %. It finds wider, not better, and width is what the count rewards. E224's arm F gives elitist the same three devices.

3. E224: does the measured wiring matter?

The decisive test, pre-registered on 22 September (E224): eight arms, paired by seed, five seeds each, 800 verifications per seed. A is the generator above, on the measured wiring. B is a degree-preserving rewire of the whole graph: 98.4 % of the 25,135,527 edges move, every neuron keeps its in-degree, out-degree and transmitter sign (runs/e224_B_s*_control.log). C is a random digraph with the same neurons and edge count, degrees resampled. D is the frozen twin, E elitist, F elitist given the fly's diversity devices, G a ridge readout driving the same swarm, H MAP-Elites at its own budget. The primary test is A against B on distinct finds; the bar is that all five paired differences share a sign and their median is at least 31. The referees put the wiring's chance of clearing it below 15 %.

A · real wiringB · rewire, degrees keptC · random headD · frozen twinA − B
seed 0333
155.6
301
159.3
290
141.6
116
76.9
+32
seed 1278
150.8
332
161.7
245
111.9
54
33.0
−54
seed 2333
183.0
315
165.4
319
167.3
122
66.8
+18
seed 315
1.7
240
115.1
1
0.0
0
0.0
−225
seed 4203
88.8
334
158.1
330
178.3
running−131

Distinct finds, with AUC_Q beneath. Computed from runs/odt_map/stage_b_e224_<arm>_s<seed>.json; the distinct counts are recomputed from the recorded winners and agree with the dumps.

The bar is not met. The five paired differences A − B are +32, −54, +18, −225, −131: their signs disagree, median −54. On distinct finds the measured wiring does not beat a degree-preserving rewire of itself. Against the random head (C), which keeps neither the degrees nor the edge signs, A − C is +43, +33, +14, +14, −127.

Seed 3 is a cold-start stall. Qualifying proposals per 50 rounds: real wiring 0 / 0 / 1 / 34, random head 0 / 0 / 0 / 1, rewire 113 / 191 / 194 / 198. With the same seed and the same walker gains, the real and random heads qualify nothing for 150 rounds; the rewired head starts at once. The dumps keep only winners, so the stalled rounds cannot be reconstructed from them; a replay of arm A seed 3 with a per-decision ledger is queued behind the remaining arms.

Still running on the Mac: D (frozen twin) 4 of 5 seeds; E (elitist) not started; F (elitist + dedup + restarts) not started; G (ridge readout on the same swarm) not started; H (MAP-Elites at its own budget) not started. The pre-registered scorecard (scripts/search/e224_score.py) runs when the chain finishes.

The circuit while it searches

|rate| 01

Each decision the circuit scores the proposal before the verifier answers. The panel draws the run's neurons where MaleCNS v1.0 measured them, all of them in the brain for this circuit, which has no nerve-cord neurons: at their soma positions, and as measured skeletons, each coloured by its simulated rate at that moment, in the run viewer's scale. The loop steps through 96 of the run's 240 decisions.

This is an earlier configuration: E79's mushroom-body run of 15 September. The replay of the current configuration with a per-decision ledger (E224 arm A, seed 0) is queued behind E224 and replaces this loop when it lands. The run used 5,311 neurons; the loop draws 2,400 of them at their soma positions from MaleCNS v1.0 and 64 as measured skeletons (the full viewer draws 4,096 and 64); 21 have no soma location in MaleCNS and are not drawn.

Open the full run viewer →

What this leaves

The generator is a working search: in 800 verifications a seed typically yields a few hundred distinct qualifying compositions for the ladder to walk. What E224's primary test does not support is the claim that the fly's particular wiring is the reason. A copy rewired to keep every neuron's degree and sign made as many distinct finds or more on 3 seeds of 5. The arms still running say whether elitist with the same diversity devices (F) or a plain ridge readout on the same swarm (G) does as well too.

Sources: EXPERIMENTS.md entries E60, E61, E198b, E201b, E195c, E224 and the referee design of 22 September ("Two designs from the parallel referees"); code in forager/search/ and forager/brain/; data exported by scripts/site/export_generator_data.py.

Forager · darth_hidious · MIT licence for the code. Connectome: MaleCNS v1.0 (FlyEM / HHMI Janelia, University of Cambridge, MRC LMB, Google Research), CC BY 4.0. Energy model: an embedded cluster expansion (pyeCE) trained on the RHEA DFT database. Off-lattice screen: MACE-MP-0. DFT: Quantum ESPRESSO. Formal checks: Lean 4 and Mathlib. Structures rendered with OVITO; line drawings made with MetaPost and the fiziko library.
Built with PRISMWebsite and visualizations made using Claude