The question
In September 2026 Janelia released MaleCNS: the first complete wiring diagram of a fly's brain and ventral nerve cord together, 164,606 neurons and about 6,234,901 connections carrying 90 million synapses. Two years earlier, Shiu and colleagues showed that an almost embarrassingly simple neuron model, the leaky integrate-and-fire (LIF), dropped onto a brain-only wiring diagram with a single fitted number, predicts which neurons fire when you feed the fly sugar, and matches real behaviour about nine times in ten.
Nobody had run that model on the whole nervous system. With the nerve cord attached, you can for the first time poke an identified sensory neuron and read out an identified motor neuron: the actual muscle command, not a proxy. So the question was simply: does the wiring alone, with no learning and one global weight, carry a signal from sense organ to muscle across the entire fly? And if so, which behaviours does it get right, which does it get wrong, and where does the approach itself break?
- Setup: the model, the one number, and why Shiu's number doesn't transfer
- E1 · Taste → feeding · E2 · Looming → escape · E3 · Steering · E4 · Courtship song
- E5 · Robustness: 144 runs and a verdict table · E6 · The second routes
- Phase 7 · Showing the fly a picture, and where it stops · Gallery, UV, the scanning eye
- What this is and isn't · Changelog
Setup
The model
Every neuron is a leaky integrate-and-fire unit with Shiu et al.'s 2024 parameters copied verbatim: resting and reset potential −52 mV, threshold −45 mV, membrane time constant 20 ms, synaptic time constant 5 ms, refractory period 2.2 ms, 1.8 ms conduction delay, 0.1 ms time step. Each connection's strength is one global weight × the number of synapses in the reconstruction. Its sign comes from the presynaptic neuron's predicted neurotransmitter: acetylcholine excites, GABA and glutamate inhibit, everything else is treated as excitatory. There is no learning, no neuromodulation, no gap junctions, no dendrites. Edges with fewer than 5 synapses are dropped (3 and 10 are tested in E5).
The engine is a custom PyTorch sparse implementation running on one RTX A6000: the full 164,606-neuron network takes under 0.1 GB of GPU memory and runs at about a third of real time. Before trusting it we checked it spike-for-spike against Brian2, the standard reference simulator, on a 4,000-neuron subgraph downstream of the taste neurons: 3,675 spikes in both, identical timing.


The one number, and why it doesn't transfer
Shiu's single fitted parameter is the per-synapse weight, 0.275 mV. We expected to inherit it. We couldn't. MaleCNS is a denser reconstruction than the FlyWire brain it was fitted on, and at 0.275 mV any input at all ignites the whole network: the sugar experiment lit up 15,508 neurons and 1,324,213 spikes in a second, and activity re-ignites itself 300 ms after the input stops. At 0.15 mV the same input drives 728 neurons and 69,632 spikes, the network falls silent when the input stops, and the rest condition is silent (0 spikes in 500 ms). Every result below uses 0.15 mV, and E5 tests 0.12 and 0.20 as well.

E1 · Taste → feeding
The replication. Sugar-sensing neurons on the labellum are driven at 150 Hz and the readout is MN9, the motor neuron of the proboscis-extension muscle, plus the second-order taste neurons Shiu named (Rattle, Usnea, Zorro, Phantom, Fudog for sugar; Scapula for bitter). MaleCNS names taste neurons by sensillum rather than receptor, so sugar/bitter identity had to be resolved by connectivity first: LB3a–d project 21–37 % of their output onto the sugar second-order cells, LB1a–d onto bitter.
| condition | MN9 (Hz) | Rattle | Scapula | spikes | active neurons |
|---|---|---|---|---|---|
| rest | 0.0 | — | — | 0 | 0 |
| sugar | 41.8 | 51.7 | 0.0 | 69,632 | 728 |
| sugar + bitter | 0.0 | 48.7 | 153.3 | 289,124 | 5,265 |
| bitter alone | 0.0 | 0.0 | 170.4 | 65,403 | 635 |
| sugar, shuffled wiring | 0.0 | 0.0 | — | 37,684 | 273 |
Sugar drives MN9 (41.8 Hz; one of the two MN9 cells fires at 83.7 Hz, the other is silent, which is itself a prediction). Adding bitter input silences MN9 completely while the sugar pathway (Rattle) stays active: the veto happens downstream of the sensory neurons, in the circuit, exactly as in the real fly. Shuffled wiring: nothing. All three claims are robust across all nine E5 settings.

E2 · Looming → escape
The first brain-to-cord result. The looming-sensitive visual projection neurons LC4 and LPLC2 (311 cells) are driven at 100 Hz, standing in for an object expanding on the retina. The readouts are the Giant Fibre (DNp01, the famous escape neuron), and in the nerve cord the jump muscle motor neuron TTMn and the wing depressor motor neurons DLMn.
| condition | Giant Fibre DNp01 (Hz) | TTMn jump (Hz) | DLMn wing (Hz) | TTMn first spike |
|---|---|---|---|---|
| looming | 248.0 | 53.3 | 74.5 | 18.5 ms |
| looming, Giant Fibre silenced | 247.7 (silenced output) | 22.0 | 68.7 | 50.0 ms |
| looming, shuffled wiring | 0.0 | 0.0 | 0.1 | — |
Looming drives the Giant Fibre hard and both motor pools fire within 20 ms, with the jump command (TTMn) arriving after the wing command (DLMn), which is the right order for a take-off. Then the interesting part: silencing the Giant Fibre cuts TTMn from 53.3 to 22.0 Hz but leaves DLMn almost untouched (74.5 → 68.7 Hz), and delays the first TTMn spike from 18.5 to 50.0 ms. The Giant Fibre is not the only road from eye to muscle. Real flies have a fast GF-mediated escape and a slower, GF-independent one; the wiring reproduces both. E6 traces the second road.

E3 · Steering
Can one descending neuron on one side bias the nerve cord to that side? DNa01, DNa02 (turning) and DNp09 (walking) are each driven on the right only, and the readout is the total spike output of the ~700 nerve-cord motor neurons split by side, summarised as an index (R − L)/(R + L): +1 means all right, 0 means symmetric.
| right-side driver | VNC output L (Hz, summed) | VNC output R | index (R−L)/(R+L) |
|---|---|---|---|
| DNa01 | 118.3 | 690.3 | +0.71 |
| DNa01, shuffled | 49.7 | 18.0 | -0.47 (output 67.7 vs 808.7 intact) |
| DNa02 | 91.0 | 453.0 | +0.67 |
| DNa02, shuffled | 159.3 | 160.3 | +0.00 |
| DNp09 (walk) | 848.7 | 425.3 | -0.33 |
The turning neurons bias the cord strongly to their own side (0.71 and 0.67), which is what a turn command should do. Shuffling the wiring collapses the total nerve-cord output to a few percent of intact, so the shuffled index is noise from a handful of cells and the criterion for "shuffle kills it" is output < 25 % of intact or |index| < 0.3. The walking neuron DNp09 comes out slightly contralateral (-0.33); it was predicted bilateral, and that claim failed E5 at the working weight, so it is reported as not robust.

E4 · Courtship song
The experiment that needs a male and a nerve cord, which no previous dataset had. P1 neurons, the male-specific courtship command cells, are driven at 150 Hz. The circuit in the literature runs P1 → pIP10 (descending) → dPR1 (cord) → wing motor neurons (hg1–4, ps1) that produce the pulse song.
| condition | pIP10 (Hz) | dPR1 | hg1–4 wing MNs | ps1 wing MN |
|---|---|---|---|---|
| P1 driven | 91.0 | 87.2 | 57.3 | 58.8 |
| P1 driven, pIP10 silenced | 111.2 (silenced output) | 55.2 | 20.7 | 39.5 |
| P1 driven, shuffled wiring | 0.0 | 0.0 | 0.0 | 0.0 |
The whole chain fires, brain to wing muscle, and the shuffle kills every stage. But as with escape, silencing the textbook relay (pIP10) only reduces the wing motor neurons, to roughly a third of intact; it does not abolish them. There is a second route into the song circuit. Honest caveat: the motor loop is open (no wings, no proprioception), so this shows song initiation, not the 30 ms pulse rhythm.

E5 · Robustness: 162 runs and a verdict table
Every claim above was re-run across the full grid, edge threshold {3, 5, 10} synapses × weight {0.12, 0.15, 0.20} mV, with the shuffle control at every setting. A claim is robust only if it passes all 9 and the shuffle fails all 9. 12 of 19 claims survive.
| claim | settings pass | shuffle kills | verdict | fails at |
|---|---|---|---|---|
| E1 sugar -> MN9 fires (>5 Hz) | 9/9 | 9/9 | robust | |
| E1 sugar: Rattle on, Scapula off | 9/9 | n/a | robust | |
| E1 bitter suppresses MN9 (<25% of sugar) | 9/9 | n/a | robust | |
| E2 looming -> GF (>100 Hz) | 9/9 | 9/9 | robust | |
| E2 looming -> TTMn & DLMn (>5 Hz) | 9/9 | 9/9 | robust | |
| E2 GF silenced -> TTMn reduced (<75% of intact) | 9/9 | n/a | robust | |
| E2 GF silenced -> TTMn abolished (<25%) | 4/9 | n/a | not robust | min3/w0.15; min3/w0.2; min5/w0.15; min5/w0.2; min10/w0.2 |
| E2 GF silenced -> DLMn unchanged (>75% of intact) | 9/9 | n/a | robust | |
| E4 P1 -> pIP10 & dPR1 (>20 Hz) | 9/9 | 9/9 | robust | |
| E4 P1 -> hg1-4 & ps1 wing MNs (>5 Hz) | 9/9 | 9/9 | robust | |
| E4 pIP10 silenced -> wing MNs reduced (<75%) | 9/9 | n/a | robust | |
| E4 pIP10 silenced -> wing MNs abolished (<25%) | 0/9 | n/a | not robust | min3/w0.12; min3/w0.15; min3/w0.2; min5/w0.12; min5/w0.15; min5/w0.2; min10/w0.12; min10/w0.15; min10/w0.2 |
| E6 GF+AN19B001 silenced -> DLMn abolished (<10% of intact) | 6/9 | n/a | not robust | min3/w0.2; min5/w0.2; min10/w0.2 |
| E6 GF+AN19B001 silenced -> TTMn <25% of intact | 6/9 | n/a | not robust | min3/w0.2; min5/w0.2; min10/w0.2 |
| E6 pIP10+pMP2 silenced -> wing MNs abolished (<5% of intact) | 8/9 | n/a | not robust | min3/w0.2 |
| E3 DNa01_R -> ipsilateral VNC (index > 0.3) | 9/9 | 9/9 | robust | |
| E3 DNa02_R -> ipsilateral VNC (index > 0.3) | 9/9 | 9/9 | robust | |
| E3 DNp09_R -> bilateral VNC (|index| < 0.3) | 6/9 | n/a | not robust | min3/w0.15; min5/w0.15; min10/w0.15 |
| Network stays bounded (<5% of neurons active) | 6/9 | n/a | not robust | min3/w0.2; min5/w0.2; min10/w0.2 |
The pattern in the failures is informative. The two "abolished" claims fail because the alternate routes found in E6 carry a third of the signal regardless of parameters. The "network stays bounded" and E6 double-silencing claims fail only at 0.20 mV, where the model is back in the runaway regime, which is why 0.15 mV is the working point and 0.20 is treated as out of range rather than as evidence against the circuit.

E6 · The second routes
When silencing the textbook hub doesn't abolish the output, what is carrying it? For each silenced run we ranked every neuron type still exciting the target motor neurons by drive = its firing rate × its signed synaptic weight onto them, then confirmed by silencing the top candidate on top of the hub.
Escape without the Giant Fibre
With DNp01 silenced, a third of the remaining excitation onto the jump and wing motor neurons comes from AN19B001: four cholinergic ascending neurons in the cord firing at 124 Hz, themselves driven by the looming detectors LC4 (31 % of their input) and the escape descending neurons DNp02, DNp04, DNp06 and DNp11. Silencing the Giant Fibre and AN19B001 takes TTMn from 53.3 to 6.5 Hz and DLMn from 74.5 to 0.8 Hz. That is the second escape road: a parallel descending set converging on a cord interneuron that distributes to the same muscles.
Song without pIP10
With pIP10 silenced, dPR1 is still driven at 55 Hz, 17.5 % of it from pMP2, two cholinergic descending neurons that also drive the other song-related cord types dMS2, vMS12 and TN1a. Silencing pIP10 and pMP2 together takes dPR1, hg1–4 and ps1 all to 0 Hz. Both double-silencings are robust at 0.12 and 0.15 mV and fail only in the runaway regime.

Phase 7 · Showing the fly a picture, and where it stops
Everything above drives named neurons directly. The obvious next question was whether we could give the simulated fly an image, let its own retina and optic lobe do the work, and watch what gets through. MaleCNS annotates the hexagonal column of every optic-lobe cell, which gave us a map of 892 ommatidia per eye, a viewing direction for each, and column assignments for the photoreceptors and all 13,579 T4/T5 motion-detector cells. Validated against the Mi1 soma sheet: R² 0.92. An image is projected onto that hexagonal retina, blurred by the 5° acceptance angle of a fly ommatidium, and converted to firing rates.

Where it stopped
Stages one to three work. The image is legible on the eye and splits into ON (Mi1) and OFF (Tm1) edge maps, the real first computation of the fly's medulla. Then the motion detectors T4 and T5, which should respond to the image moving across the eye, fire at essentially zero (0.00 Hz T4a, 0.11 Hz T5c on the photograph), and the looming detectors LC4/LPLC2 sit at 1.2 Hz for a looming disc and 1.3 Hz with shuffled wiring: indistinguishable from noise. A looming disc reaches the Giant Fibre at 2 Hz (shuffle: 0, but the shuffled network fires DNp04/DNp11 at 12 Hz instead), against the 248.0 Hz we get driving LC4 directly in E2. Nothing from pixels is a reportable result.

The reason is structural, and it is the most useful thing Phase 7 produced. A fly photoreceptor releases histamine, which inhibits the lamina; the lamina neurons L1 and L2 depolarise when light goes off. The whole ON pathway is then built on disinhibition: L1 stops inhibiting Mi1. A rate-coded integrate-and-fire neuron with no tonic firing cannot express "less inhibition". Measured directly, Mi1 receives +0.26 mV/ms of excitation against −0.48 mV/ms of inhibition and never crosses threshold. The sensorimotor circuits in E1–E6 worked because they are feed-forward chains of excitation. Early vision is push-pull and sign-inverting, and it is exactly where "structure dominates neuron model" stops being true. We did not fix this by raising the weight until T4 fires; that re-enters the runaway regime. The fix is per-cell-type gain training with the wiring frozen, as in Lappalainen et al. 2024, and that is the next step once GPU time allows.
Gallery, UV, the scanning eye
The parts of the pipeline that do work, the eye and the ON/OFF maps, make pictures worth looking at. Each row below is one image: the original, what 892 ommatidia sample, the fly's colour (no red receptor, and no UV in a normal photograph), then the OFF and ON edge maps, which are the actual Tm1 and Mi1 firing after a 400 ms run of the entire nervous system on that image.


Flies see ultraviolet, and a camera does not. The top row of Figure 14 is a real reflected-UV photograph of winter jasmine by Dave Kennard (Wikimedia Commons, CC BY-SA 3.0): the flower's centre goes black in UV, a landing target invisible to us. The bottom row is a generated black-eyed Susan with the documented UV bullseye for the species painted on as a reflectance model, labelled as such. To display UV we put it in red, the channel the fly lacks; so orange in the "with UV" tiles is a convention, not a colour the fly experiences.

What this is and isn't
- It is a structural hypothesis generator, not a fly. No neuromodulation, gap junctions, dendritic computation or plasticity. Neurotransmitter predictions are ~85–90 % accurate, so a mis-signed hub neuron can flip a result.
- The motor loop is open. No body, no proprioceptive feedback. E3 and E4 show the initiation of a turn or a song, not a sustained rhythm.
- One global weight. It had to be re-fitted for this dataset (0.15 mV, not Shiu's 0.275), and results at 0.20 mV are discounted as runaway rather than counted against the circuit.
- Vision is the limit of the approach. Phase 7 shows that the first two synapses of fly vision cannot be carried by a rate LIF on wiring alone; anything about what the fly "sees" waits on gain training.
- Two neurons await literature. AN19B001 and pMP2 are model-derived and unverified.
Changelog
- 2026-10-10 — Page created. Correction logged: an earlier internal draft reported the pixel-driven looming → Giant Fibre rate as 27 Hz; the current result files say 2 Hz. The 27 came from a run before a contrast-floor fix and had been carried in prose rather than re-read. All numbers on this page are generated from the result files at build time.
- 2026-10-09 — Gallery, UV channel, eye-scanning video; Phase 7 built and the ON-pathway sign problem measured.
- 2026-10-03 — E5 sweep extended to 162 runs with verdicts; E6 route tracing; export and figures.
- 2026-09-19 → 10-01 — Engine, Brian2 validation, weight re-fit, E1–E4, explainer videos.