flybench

Does the simulated fly still do the things a real fly does?

An open benchmark for whole-brain fruit fly simulations: 36 behaviours from the literature, one score per model. The reference model already fails half of them. Beat it.

behaviours tested
36
5 core · 31 hard
best hard-tier score
0.65
Adaptive LIF (b 2 mV, tau 200 ms) — beatable
working gain window
0.45–0.45
published value: 1.0
brain firing at gain 1.0
34%
on one taste of sugar

Three ways in

git clone https://github.com/brandoncho369/flybench && cd flybench && pip install -e ".[dev]"
flybench toy && flybench run        # synthetic brain, 10 s — then see the README for the real one
flybench run -c flywire783 --gain 0.42 --seeds 3 -o results/mine.json --label "my run"
flybench submit results/mine.json   # validates, commits, opens the PR

What it found so far

The published model uses gain 1.0. FlyWire re-predicted every synapse in July 2025 and the connections got heavier; nobody re-tuned. On today's data that gain makes 34% of the brain fire at a taste of sugar. Sweep the one knob:

core reflexes passed
0.000.501.000.30.350.40.450.50.71gain →

shaded: gain 0.45–0.45, every core reflex passes

share of brain firing (peak)
0%20%40%0.30.350.40.450.50.71gain →

shaded: gain 0.45–0.45, every core reflex passes

gaincorehardbrain firingwhat happens
0.30
0.67
0.57
13%taste never reaches the proboscis
0.35
0.67
0.53
20%taste never reaches the proboscis
0.40 · 3 seeds
0.67
0.47
21%taste barely reaches the proboscis
0.45 · 3 seeds
1.00
0.65
15%passes every known reflex
0.50
0.83
0.56
23%too much of the brain fires
0.70
0.87
0.58
27%too much of the brain fires
1.00 · Shiu 2024 · 3 seeds
0.77
0.51
34%too much of the brain fires

A higher score is not the same as a more accurate fly. It means more of the listed behaviours are reproduced; every row is a hypothesis with its constants attached. Three random seeds sharpen it: 0.40 fires the proboscis on only two of three, so it is a knife edge, while 0.45 passes every core task on every seed. Inside the window the model still fails most of the hard tier, and the starkest failure is the simplest: after a half-second taste of sugar, about 8% of the brain keeps firing at a constant rate forever. A real fly is at rest a second later.

Two things “did it fire?” cannot see. Counting spikes shows the giant fiber firing 129 times per looming stimulus where the real one fires once, and MN9 at 360 Hz: the reflexes work only in the sense that the wire conducts. And re-running the reflexes on a copy of the brain with every synapse count jittered ±25%, a stand-in for a second individual, shows that at 0.45 escape is robust and taste is a coin flip: one of three jittered brains never extends the proboscis. At gain 1.0 taste becomes robust across individuals, and a fifth of the brain fires. One knob trades robustness for sparseness; no setting buys both; every real fly has both.

One real mechanism, and what it does and doesn't buy. Adding spike-frequency adaptation, a documented property of fly neurons with literature constants applied to every neuron identically, makes the reflexes survive a different individual, returns the brain to rest, brings MN9 down to 48 Hz, and shrinks the looming response from 30% of descending neurons to 13%. It does not fix dose response, does not fix habituation (the second pulse is still 2.5× the first, the opposite of biology), leaves the giant fiber at 116 spikes per loom, and leaves 88% of projection neurons answering one odour. Adaptation explains part of the fly's robustness and none of its selectivity. That is a research agenda, not a leaderboard win.

Same model, the Minecraft brain

The viral Minecraft and Beat Saber demos ran this same model on Janelia's male CNS connectome at gain 0.65. We pulled that exact dataset from neuPrint (176k neurons, brain plus nerve cord) and scored it. There is no single gain that works: at 0.45 looming is clean but sugar never reaches the proboscis; at 0.65 sugar works but bitter also triggers feeding, 39% of descending neurons fire at a shadow, and the brain never quiets down. In between, sugar passes on one seed out of three. The taste pathway is also handicapped by the dataset itself: 13% of the male sugar neurons are predicted glutamatergic, which the model treats as inhibitory. Different animal, different annotations, same five constants. Details in docs/MALECNS.md.

gaincorehardCNS firingwhat happens
0.45 · 3 seeds
0.90
0.59
15%bitter alone extends the proboscis
0.50 · 3 seeds
0.90
0.57
20%bitter alone extends the proboscis
0.55 · 3 seeds
0.73
0.56
22%too much of the brain fires
0.65 · Minecraft demo · 3 seeds
0.57
0.58
23%too much of the brain fires

Rows from other connectomes are separate experiments on the same instrument, not entries in the ranking above: the thresholds were set on FlyWire, and "fraction firing" is over a different denominator (this dataset includes the ventral nerve cord).

Leaderboard

FlyWire v783 (female brain) · ranked by core, then hard · snapshot 2026-09-27

A model must reproduce the known reflexes before its hard-tier wins count. Submissions are pull requests: CI validates the report, a maintainer re-runs it, and rows that reproduce are marked verified. How to submit →

#runmodelcorehardgradedspec.status● core tasks● hard tasks
1Adaptive LIF (b 2 mV, tau 200 ms)flybench.models.adaptive_lif.AdaptiveLIFSimulator1.000.650.75 [0.73, 0.77]+0.31open · ✓ verified · 3 seeds
2Terminal LIF 0.45flybench.models.terminal_lif.TerminalLIFSimulator1.000.570.70 [0.69, 0.70]+0.25self-reported · 3 seeds
3LIF gain 0.4LIFSimulator1.000.550.64–self-reported
4LIF gain 0.45 (3 seeds)baselineReferenceLIFSimulator1.000.510.64 [0.64, 0.65]+0.20closed · ✓ verified · 3 seeds
5LIF gain 0.7LIFSimulator0.870.580.70–self-reported
6LIF gain 0.5LIFSimulator0.830.560.67–self-reported
7Shiu 2024 (gain 1.0)LIFSimulator0.770.510.63 [0.62, 0.64]+0.18self-reported · 3 seeds
8LIF gain 0.3LIFSimulator0.670.570.58–self-reported
9LIF gain 0.35LIFSimulator0.670.530.58–self-reported
10LIF gain 0.4 (3 seeds)LIFSimulator0.670.470.63 [0.59, 0.66]–self-reported · 3 seeds

Filled dot = task passed; hollow = failed; dashed = task added after this result was run (hover for the task name and partial score). Full per-check values in LEADERBOARD.md and results/*.json.

The tasks

Core

Reflexes the reference model must reproduce. A model that fails these is broken.

Silence in, silence out

stability

With no sensory drive the network must not spontaneously light up. A model whose gain is too high "passes" every reflex because everything fires; this task is the guard against that. (Real flies do have spontaneous activity — the LIF model has none by construction, so quiet is the correct answer here.)

Shiu et al. 2024, Nature — model is silent without input by design

Sugar → proboscis extension

sugar_to_proboscis

The canonical reflex. Activating sugar-sensing gustatory receptor neurons should drive MN9, the motor neuron that extends the proboscis. This is the headline result of Shiu et al. 2024 and a behaviour every fly lab can reproduce with a drop of sucrose. Selector provenance — FlyWire v783: sub_class "sugar/water" (Engert et al. 2022 annotations). MaleCNS v1.0: the gustatory companion paper (Cell 2026; bioRxiv 10.1101/2025.08.25.671814) classifies labellar bristle GRNs by receptor driver line: LB3b sweet (Gr64f), LB3c sweet + low salt (Ir56b), LB3a water (ppk28), LB3d high salt / aversive (Ir7c, ppk23), LB1a–d bitter, LB1e amino-acid aversion (glutamatergic). The sugar set is therefore LB3b–c only. Our earlier wiring inference (docs/MALECNS.md) had put LB3a and LB3d in the sugar set because they also synapse onto the Shiu 2022 second-order sugar neurons; those cells respond to water as well as sugar (Shiu et al. 2024), so the wiring was consistent with the labels, not evidence against them. Provenance tag: MEASURED (receptor lines), not inferred.

Dethier 1976; Shiu et al. 2024 (Nature) Fig. 2

Bitter suppresses the sugar response

bitter_suppression

Co-activating bitter GRNs with sugar GRNs should reduce MN9 output relative to sugar alone. Flies reject sucrose laced with quinine; the connectome should show why (bitter-driven inhibition onto the sugar pathway). Scope note: bitter suppression in the fly has two components. Bitter compounds also inhibit sugar transduction inside the sensillum itself (French et al. 2015, J Neurosci 35:3990: optogenetically driven sugar-cell responses are not reduced by strychnine, so the peripheral effect acts on transduction, upstream of any synapse). A connectome model can only show the central component, so this task tests whether central inhibition alone suffices to reduce MN9; a partial reduction is the expected biological answer, not a defect.

Shiu et al. 2024 (Nature) Fig. 3; Jaeger et al. 2018; French et al. 2015 (J Neurosci 35:3990)

Looming → giant fiber escape

looming_to_giant_fiber

LPLC2 and LC4 are the visual projection neurons that detect an expanding (looming) object. They converge on the Giant Fiber, the descending neuron that triggers the takeoff escape. Drive the detectors; the GF should fire.

von Reyn et al. 2014; Ache et al. 2019; Shiu et al. 2024

Bitter alone does not extend the proboscis

taste_specificity

A negative control. Bitter GRNs alone should not drive MN9; if they do, the model has lost the sign of its inhibitory synapses or the gain is high enough that any input reaches any output.

Shiu et al. 2024 (Nature)

Hard

Behaviours a wiring diagram plus five constants is not expected to give you. The reference model fails most of these on purpose; they are the research agenda.

Proboscis response scales with sugar intensity

dose_response

Real flies extend the proboscis more reliably and more strongly as sucrose concentration rises; GRN firing rate encodes concentration. A model whose MN9 output is all-or-nothing (saturating at the refractory limit the moment any input arrives) has lost that gradation. Weak drive (20 Hz on the sugar GRNs) should give a clearly smaller MN9 response than strong drive (100 Hz), and both should be above baseline. The 100 Hz "strong" drive is the Shiu et al. 2024 convention; the one recorded number for a labellar sugar GRN is ~40 spikes per 500 ms (≈80 Hz) at 100 mM sucrose (Zhang, Guo & Montell 2016, Neuron 91:863), so a third condition drives the GRNs at that measured rate and asks only that the pathway still conducts.

Dethier 1976; Dahanukar et al. 2007 (Neuron); Zhang, Guo & Montell 2016 (Neuron 91:863); Shiu et al. 2024

Repeated sugar gives a smaller second response

adaptation

Sensory responses adapt: a second identical sugar pulse shortly after the first evokes a weaker proboscis response (short-term adaptation in GRNs and downstream circuits; over longer timescales, PER habituation). A memoryless point-neuron model cannot do this by construction — every pulse looks like the first — so the reference LIF is expected to fail here. That is the point: this task measures something the wiring diagram alone does not give you.

Duerr & Quinn 1982 (PNAS, PER habituation); Paranjpe et al. 2012 (J. Neurosci.)

One odour channel stays one channel

olfactory_sparse_coding

Olfactory receptor neurons of a single glomerulus (DA1, the cVA pheromone channel) synapse onto their own projection neurons. Lateral inhibition by local neurons keeps the antennal lobe output sparse: driving DA1 ORNs should fire DA1 PNs strongly while most PNs of the other ~50 glomeruli stay quiet, and the third-order lateral horn should not light up wholesale. A model with the wrong excitation/inhibition balance turns one odour into "all odours".

Olsen & Wilson 2008 (Nature); Wilson 2013 (Annu. Rev. Neurosci.); Kohl et al. 2013

Taste does not trigger escape; looming does not trigger feeding

crosstalk

Negative controls across circuits. Sugar on the labellum should not fire the Giant Fiber, and a looming shadow should not extend the proboscis. Both circuits pass their own reflex tests in the core tier; this task asks whether they stay separate, which fails when the global gain is high enough that activity spreads through shared interneurons.

von Reyn et al. 2014; Shiu et al. 2024

Looming recruits the takeoff ensemble, not the whole descending tract

looming_dn_ensemble

The Giant Fiber is not alone: looming also drives DNp02, DNp11 and other descending neurons that prepare the takeoff (leg extension, wing raise), and the response is selective — a few dozen of the ~1300 descending neurons, not a general alarm. Checks that the named looming DNs fire and that the descending population as a whole stays mostly silent.

Ache et al. 2019 (Curr. Biol.); Namiki et al. 2018 (eLife); Dombrovski et al. 2023 (Nature)

A uniform flash is not a looming object

flash_is_not_loom

LPLC2/LC4 respond to expanding edges, not to the whole eye lighting up. Driving every photoreceptor at once (a full-field flash) should therefore not fire the Giant Fiber the way looming does. In a pure connectome model motion selectivity has to emerge from the lamina/medulla circuitry and the synaptic delays alone — no dendritic nonlinearities, no adaptation — so this is expected to be hard. Failure here means the model's visual front end is a brightness detector, which is worth knowing before wiring it to a game.

von Reyn et al. 2014 (Nat. Neurosci.); Card & Dickinson 2008 (Curr. Biol.); Klapoetke et al. 2017 (Nature)

The brain goes quiet again after the stimulus ends

return_to_rest

A real fly tastes sugar, extends its proboscis, and a second later is at rest again. In this model a half-second taste of sugar leaves ~8% of the brain firing at a constant rate indefinitely: recurrent excitation sustains itself and nothing in a static wiring diagram with five constants can switch it off (no spike-frequency adaptation, no short-term synaptic depression, no neuromodulation). This task stimulates for 500 ms, then measures 1–1.3 s after the stimulus stopped. It is the clearest single number for "what a wiring diagram is missing".

Dethier 1976 (PER duration); Shiu et al. 2024 (activity tracks stimulus); Benda & Herz 2003 (adaptation)

Neurons fire at fly rates, not at their refractory ceiling

physiological_rates

Passing the reflex tasks only requires that a pathway conducts. This task asks whether the readouts fire the way the real neurons do. The Giant Fiber produces a single spike per escape (von Reyn et al. 2014; Ache et al. 2019: "the timing of a single spike in the GF determines whether a fly uses a short or long takeoff"): it should spike once when the loom arrives and be silent before. For MN9 no electrophysiological recording exists in the literature (Gordon & Scott 2009, Schwarz et al. 2017, McKellar & Simpson 2020 and Shiu et al. 2022 are behaviour, optogenetics or calcium imaging), so the MN9 ceiling here is a convention, not a measurement, and is labelled as such. The reference LIF model pins both readouts at ~430 Hz — their 2.2 ms refractory ceiling — which is a saturating network, not a reflex.

von Reyn et al. 2014 (Nat Neurosci 17:962); Ache et al. 2019 (Curr Biol 29:1073) — single GF spike per loom. MN9 ceiling: convention (no MN9 electrophysiology published)

The reflexes survive a different individual's synapse counts

wiring_robustness

A connectome is one animal. Synapse counts between the same two cell types differ between individuals and between hemispheres of the same fly by tens of percent, while the behaviour is the same in every fly. So a model that only reproduces a reflex at one exact set of synapse counts has fit the specimen, not the species. Here every synapse count is multiplied by independent lognormal noise (sigma 0.25, i.e. roughly ±25%) — a stand-in for a second individual with the same wiring diagram — and the two core reflexes must still work and the brain must still be quiet at rest. Real flies have homeostatic mechanisms that make this robustness automatic; a five-constant model has none.

Schlegel et al. 2024 (FlyWire vs hemibrain: cell-type connectivity conserved, synapse counts vary); Takemura et al. 2015; Marder & Goaillard 2006 (robustness to parameter variation)

Looming reaches the jump muscle, not just the giant fiber

looming_to_jump_muscle

The first brain-to-muscle test. The giant fiber does not end in the brain: it descends the neck and synapses directly onto the tergotrochanteral motor neuron (TTMn, the jump muscle) and, through the peripherally synapsing interneuron (PSI), onto the dorsal longitudinal motor neurons (DLMn, the flight power muscles). That is the whole escape: legs push, wings start. This task needs the ventral nerve cord, so it runs on MaleCNS and is skipped on brain-only connectomes such as FlyWire FAFB. A looming stimulus should fire GF, then TTMn and DLMn; the jump muscle should fire a few times, not continuously; and sugar should not make the fly jump.

Tanouye & Wyman 1980 (GF -> TTM and DLM); Allen, Godenschwege, Tanouye & Phelan 2006 (the GF circuit); von Reyn et al. 2014 (single GF spike per escape)

The giant fiber fires once, wherever the loom comes from

gf_azimuth_invariance

A looming object at −45°, 0° or +45° azimuth evokes the same giant-fiber response: a single spike (Ache et al. 2019; von Reyn et al. 2014), with no directional selectivity across azimuth (J Exp Biol 2023, DSI never above 0.5, n = 10 flies). This is the first recording-match task: the GF spike count is compared to the measured one, not to a convention. Stimulus geometry (provenance INFERRED, see docs/rfcs/16_gf_azimuth_invariance.md): the model has no eyes, so a loom at −45° drives the left-side LPLC2/LC4 detectors, +45° the right-side ones, 0° both, each neuron at the same 150 Hz used by task 4. The mapping uses the `side` annotation, not receptive fields; a dataset without side labels skips this task. Pre-registered prediction (before the first run): the reference LIF passes "seen" and "invariant" and fails "one spike" at every azimuth (~120 spikes per loom in task 13).

Ache et al. 2019 (Curr Biol 29:1073); von Reyn et al. 2014 (Nat Neurosci 17:962); azimuthal invariance: J Exp Biol 2023 226:jeb244790

The antennal-lobe output saturates the way the recording says

pn_transfer_function

Olsen, Bhandawat & Wilson 2010 (Neuron 66:287) recorded ORN → PN transfer in four glomeruli: PN = Rmax·ORN^1.5 / (ORN^1.5 + σ^1.5), Rmax 163–170 spikes/s, σ 11.8–16.3 spikes/s. So a projection neuron never exceeds ~170 Hz and its input–output curve is compressive: from the fit, ORN input at 10 / 30 / 100 Hz gives PN ≈ 62 / 126 / 158 Hz. This task drives the DA1 ORNs at those three rates and checks the ceiling, the ordering, the compression and the dynamic range, not the absolute rates (which depend on the global gain). Recording-match task; pre-registered in docs/rfcs/17. The dynamic-range check was added after the first run (dated in the RFC): a model whose PNs are already saturated at 10 Hz input passes the ratio checks vacuously, so the task also requires the 10 Hz response to be clearly smaller than the 100 Hz one. Provenance: rates and fit MEASURED; using DA1 for glomeruli the paper did not fit is a CONVENTION (Schlief & Wilson 2007 show the same shape for DA1).

Olsen, Bhandawat & Wilson 2010 (Neuron 66:287); Schlief & Wilson 2007 (Nat Neurosci 10:623)

One odour channel responds to one odour

da1_sparseness

Schlief & Wilson 2007 (Nat Neurosci 10:623) measured the lifetime sparseness of DA1 projection neurons across an odour panel: S = 0.90 (Willmore & Tolhurst 2001 measure; 1 = one stimulus only, 0 = all equally). Task 8 asks whether one odour recruits most PNs; this task asks the other question — whether one PN responds to most odours. Recording-match task, pre-registered in docs/rfcs/18. Odour panel (CONVENTION, see the RFC): eight single-glomerulus "odours", each the ORNs of one glomerulus at 100 Hz — DA1 (cVA, the cognate channel), DM1, DM2, DM4, DL1, DL5, VA1v, DC1. A dataset missing any of them skips the task rather than shrinking the panel.

Schlief & Wilson 2007 (Nat Neurosci 10:623); Willmore & Tolhurst 2001 (sparseness measure)

The giant fiber reaches the jump muscle in under a millisecond

gf_to_muscle_latency

Augustin et al. 2019 (eNeuro) measured brain-stimulus-to-muscle latencies of 0.93 ms (TTM) and 1.44 ms (DLM), including a 0.35 ms neuromuscular delay, so GF → TTMn ≈ 0.6 ms: the synapse is electrical. Engel & Wu 1996: a DLM response ≥ 3.0 ms is the non-GF pathway. This task measures first-spike latency from the GF's first spike to TTMn and DLMn on a loom. MaleCNS only (needs the nerve cord). Pre-registered in docs/rfcs/19: the reference model, with one 1.8 ms chemical delay for every synapse, is expected to fail the TTMn latency by construction — the task names a missing mechanism (gap junctions), not a wrong parameter. First run (RFC outcome): 11.8 ms, because one GF spike through a summed chemical synapse cannot bring TTMn to threshold; the electrical synapse in the fly makes a single spike sufficient. DLMn also fired before TTMn.

Augustin et al. 2019 (eNeuro 6:ENEURO.0423-18.2019; ModelDB 245415); Engel & Wu 1996 (J Neurosci 16:3486); Tanouye & Wyman 1980

Water extends, high salt does not, high salt suppresses sugar

taste_modalities

The labellum carries four gustatory channels and one proboscis motor neuron has to read them with the right sign. Water GRNs (ppk28, LB3a) drive proboscis extension in thirsty flies (Cameron et al. 2010; Chen & Dahanukar 2017); high-salt GRNs (Ir7c / ppk23, LB3d) do not, and high salt added to sucrose suppresses the extension (Zhang et al. 2013; Jaeger et al. 2018). Task 03 tests the bitter channel; this task tests the other three the export has carried since Phase 0. Scope note: Jaeger et al. put part of high-salt aversion in bitter GRNs, which this task does not drive, so a weak suppression means "LB3d-driven central suppression alone is not enough", not "the fly has none". Check 2 is a null check (a dead network passes it). Pre-registered predictions and the outcome: docs/rfcs/20_taste_modalities.md.

Cameron et al. 2010 (Nature 465:91); Chen & Dahanukar 2017 (Cell Rep 18:1140); Zhang et al. 2013 (Science 340:1334); Jaeger et al. 2018 (eLife 7:e37167)

Each lobula columnar type drives its own descending neuron, and not the others

lc_dn_matrix

Optogenetic activation of single LC types evokes type-specific behaviours (Wu et al. 2016, 22 types screened): LC4, LC6, LPLC1, LPLC2 → takeoff; LC16 → backward walking; LC10 → neither. The descending neurons behind two of those are known: LC4 and LPLC2 synapse onto the giant fiber (von Reyn 2017; Klapoetke 2017; Ache 2019) and LC4 onto DNp02 / DNp11 (Dombrovski 2023); LC16 drives the four moonwalker DNs (Sen 2017). This task drives each LC type at the task-04 loom rate and reads four DNs; the `matrix` check scores every cell with a citation: "+" the DN must spike, "-" it must not (a null check). The off-diagonal is the point — task 04 already tests the diagonal. Cells without a citation are "?" and not scored (LC6 and LPLC1 evoke takeoff but their DN targets are not established). Pre-registered predictions and outcome: docs/rfcs/21_lc_dn_matrix.md.

Wu et al. 2016 (eLife 5:e21022); Sen et al. 2017 (Curr Biol 27:766); Dombrovski et al. 2023 (Nature 613:534); von Reyn et al. 2017 (Neuron 94:1190); Klapoetke et al. 2017 (Nature 551:237); Ribeiro et al. 2018 (Curr Biol 28:2211); Morimoto et al. 2020 (eLife 9:e57685)

P1 drives pIP10 drives the song wing motor neurons, on either wing, not the legs

courtship_song_chain

The male song command chain (von Philipsborn et al. 2011): the male-specific P1 cluster (the pMP-e / pMP4 lineage) → the descending neuron pIP10 → thoracic song premotor neurons (dPR1, vPR6, TN1; Lillvis et al. 2024) → the wing motor neurons that make song (hg1–4, ps1, b1, i1, i2, iii1, iii3; O'Sullivan et al. 2018). P1 or pIP10 activation elicits song; one pIP10 is enough and a unilateral pIP10 sings with either wing, no side bias (von Philipsborn 2011). pIP10 activation gives wing extension, not walking (Cande et al. 2018), so the leg motor pool is the null readout. MaleCNS only — P1 and pIP10 are male-specific and the chain needs the nerve cord; on a female or brain-only dataset this task is not applicable (`dataset_only`), which is a different statement from "matches no neurons". Nothing here scores song rhythm. Pre-registered predictions and outcome: docs/rfcs/22_courtship_song_chain.md.

von Philipsborn et al. 2011 (Neuron 69:509); Lillvis et al. 2024 (Curr Biol); O'Sullivan et al. 2018 (Curr Biol 28:2705); Cande et al. 2018 (eLife 7:e34275); Cachero et al. 2010 (Curr Biol 20:1589); Yu et al. 2010 (Curr Biol 20:1602)

A ramping common drive recruits the front-leg motor neurons smallest first

leg_mn_size_principle

Henneman's size principle in the fly leg: the tibia flexor motor neurons are recruited in order of size, slow (smallest) first, fast (largest) last, as drive and force rise (Azevedo et al. 2020). The wiring says the opposite would happen on drive alone: every premotor neuron distributes its synapses onto a muscle's MNs in proportion to MN size, so "if MN recruitment were dictated entirely by the magnitude of premotor input ... a common input [would] first recruit the largest, fastest MNs", and "the intrinsic electrical properties of the largest MNs must compensate" (Lesser, Azevedo et al. 2024). This task ramps the front-left leg's excitatory central premotor pool from 0 to 100 Hz over one second and scores the Spearman correlation between each MN's size (its total input synapse count, r = 0.94 with surface area in Lesser 2024) and its first-spike time: the size principle is a positive correlation. A model of uniform point neurons is predicted to fail it, largest first; that failure is the finding the task exists to record, and a model that passes has to have put something real in the MNs. MaleCNS only (the leg MNs live in the nerve cord); on FlyWire it is not applicable. The wing steering MNs are not scored: MaleCNS reproduces Lesser 2024's leg/wing contrast per premotor neuron (median rho(weight, size) 0.41 leg vs 0.10 wing) but pooled excitatory drive scales with size in both (0.99 / 0.95), so no model could pass a wing null under a common ramp. Pre-registered predictions and outcome: docs/rfcs/23_leg_mn_size_principle.md.

Azevedo et al. 2020 (eLife 9:e56754); Lesser, Azevedo et al. 2024 (Nature 631:369); Henneman 1957 (Science 126:1345); Henneman, Somjen & Carpenter 1965 (J Neurophysiol 28:560)

DNp15 prefers yaw rotation to forward translation, and bIPS prefers the reverse

optic_flow_rotation

The lobula plate's horizontal-system cells (HSN/HSE/HSS) respond to front-to-back motion on their own eye and H2 to back-to-front motion on its eye, projecting across the midline. Both converge on the descending neuron DNp15 (DNHS1), which responds to yaw rotation (Suver et al. 2016), and on the bilateral GABAergic bIPS, which inhibits the contralateral DNp15 (Nat Neurosci 2025: "a competitive disinhibitory network for robust optic flow processing"). That paper's result: DNp15 is more selective for rotational than translational optic flow than HS is, and bIPS responds most to binocular symmetric (translational) flow and subtracts it at DNp15. The model has no eyes, so optic flow is the set of tangential cells it would drive (INFERRED from the cells' known preferred directions): a right yaw turn = left HS + right H2, forward translation = both HS, each at the task-02 100 Hz. Checks: DNp15 responds to yaw on the correct side and not the other (a null), prefers rotation to translation, is suppressed by the contralateral symmetric component, and bIPS prefers symmetric flow. The rotation/translation comparisons are subject to the RFC S1 ceiling gate. bIPS is CB0268 on FlyWire v783 (the Chiappe lab's own label) and PS321 on MaleCNS (INFERRED homologue: same HS/H2 inputs, same crossed inhibition of DNp15). Pre-registered predictions and outcome: docs/rfcs/24_optic_flow_rotation.md.

Nat Neurosci 2025 (doi 10.1038/s41593-025-01948-9, A competitive disinhibitory network for robust optic flow processing in Drosophila); Suver et al. 2016 (J Neurosci 36:11768); Schnell et al. 2010 (J Neurophysiol 103:1646, HS tuning); Krapp et al. 2001 (J Neurophysiol 85:724, H2)

Antennal JO-C/E and JO-F both reach the grooming command neurons; only JO-F reaches the moonwalker DN

antennal_grooming_vs_backward

Johnston's organ neurons (JONs) in the antenna drive antennal grooming through a command circuit — the brain interneuron aBN1 and the descending pair aDN1/aDN2 (Hampel et al. 2015). Hampel et al. 2020 split the JONs by subpopulation: optogenetic activation of JO-C/E or of JO-F elicits antennal grooming, but only JO-F also elicits backward locomotion (5–8× control), which the authors attribute to the moonwalker descending neurons (MDN; Bidaye et al. 2014); JO-C/E activation gives grooming and wing flapping, no backward walking. This task drives each JON population at the task-02 100 Hz and reads aDN1/aDN2 (DNg62, DNge078 — Hampel 2015's names are the MaleCNS synonyms; the same types on FlyWire v783) and MDN. Two positive checks, one positive check whose readout is inferred from behaviour (JO-F → MDN), and one null: JO-C/E must not fire MDN. Neither JON population makes a direct synapse on MDN in either connectome; JO-F's route is two-hop (via DNge132/DNae007 on FlyWire, GNG583/pIP1 on MaleCNS) and JO-C/E's is four times weaker on FlyWire and three times stronger on MaleCNS (via pIP1), so the null is the check with the prediction at risk. The roadmap's bristle version (BM-Ant vs BM-InOm, Eichler et al. 2025) waits for those types to be annotated in the datasets. Pre-registered predictions and outcome: docs/rfcs/25_antennal_grooming_vs_backward.md.

Hampel et al. 2020 (eLife 9:e59976); Hampel et al. 2015 (eLife 4:e08758); Bidaye et al. 2014 (Science 344:97, MDN); Sen et al. 2017 (Curr Biol 27:766)

Kenyon cell odour responses are sparse, and less sparse without APL

mb_sparseness_apl

An odour activates only ~5 % of the ~2,000 Kenyon cells per hemisphere (Honegger et al. 2011; Turner et al. 2008), and that sparseness is enforced by the single GABAergic APL neuron, which reads the whole KC population and inhibits all of it (Lin et al. 2014: blocking APL output with shibire increases KC odour responses, lowers population sparseness, raises the overlap between odours, and impairs learned discrimination of similar odours). This task drives the task-18 odour panel (eight glomeruli, each a whole ORN type at 100 Hz) with the mushroom body intact and with APL silenced — its outgoing synapses zeroed for the condition (`silence`, the in silico shibire; the neuron stays, so its own inputs are untouched). It is the first task to use silencing and lists `requires_capabilities: [can_silence]`, so a simulator that cannot do it skips the task rather than failing it. Checks: three odours each activate under 20 % of KCs with APL intact; silencing APL raises that fraction for the same three; and it lowers the population sparseness of the KC response for two. Pre-registered predictions and outcome: docs/rfcs/26_mb_sparseness_apl.md.

Lin et al. 2014 (Nat Neurosci 17:559); Honegger, Campbell & Turner 2011 (J Neurosci 31:11772); Turner, Bazhenov & Laurent 2008 (J Neurophysiol 99:734); Willmore & Tolhurst 2001 (Network 12:255)

CO2 reaches its own projection neurons, its extraglomerular channel and the lateral horn; other odours do not

co2_pathway_specificity

CO2 is sensed by the Gr21a/Gr63a neurons of the V glomerulus (ORN_V; Suh et al. 2004) and is innately aversive. The V glomerulus has its own projection neurons — a bilateral cholinergic PN (PNvbi, FlyWire V_ilPN) that targets the lateral horn on both sides (Lin et al. 2013) — and, per bioRxiv 2026.01.05.697655 ("Structural basis of CO2 valence coding"), a second, extraglomerular channel: the non-GABAergic local neuron LN23, driven only by ORN_V, relays to the multiglomerular PNm1 (M_smPNm1), whose activation "induced strong aversion" and whose silencing (via LN23) "fully abolished aversion"; PNvbi's primary target is the lateral horn neuron LHPD5c1. This task drives ORN_V at the task-02 100 Hz and reads V_ilPN, LN23, PNm1 and LHPD5c1 (four positives), then drives two other glomeruli of the task-18 panel (DA1, DM1) and requires PNm1 and V_ilPN to stay silent (three nulls): in the wiring neither receives a synapse from any ORN but ORN_V, and PNm1's LN23 input carries only CO2. The nulls test the task-18 finding — that this model's antennal lobe broadcasts one glomerulus to most PNs — on the one channel the fly keeps private. LHPD5c1 is not a null: it also receives DM1/DM4/DP1m PNs directly (the paper: it "integrates CO2 + food cues"). Pre-registered predictions and outcome: docs/rfcs/27_co2_pathway_specificity.md.

bioRxiv 2026.01.05.697655 (Structural basis of CO2 valence coding in Drosophila); Suh et al. 2004 (Nature 431:854); Lin et al. 2013 (Nature 501:81); Jones et al. 2007 (Nature 445:86)

DNa02 reaches the leg motor neurons faster and harder than DNa01, on its own side, without waking its twin

steering_dna02_vs_dna01

Two descending neurons per side steer the walking fly. Rayshubskiy et al. 2025: DNa02 predicts high-gain steering (rotational velocity is a steep function of DNa02 activity, shallow of DNa01), its activity leads DNa01's, and "DNa02 makes more direct synaptic connections onto motor neurons, as compared to DNa01"; the two receive "see-saw" input, excitation of one copy with inhibition of the contralateral copy, and unilateral DNa02 activation gives an ipsilateral steering bias. MaleCNS v1.0 agrees on the wiring: the right DNa02 makes 490 direct synapses on 11 right leg MNs, the right DNa01 104 on 6, neither touches a left-leg MN or its contralateral twin. This task drives each right DN alone at the task-02 100 Hz and reads the leg motor pools by side and the left DNa02. Checks: both DNs recruit the right leg MNs; the DNa02 recruitment is faster (first-spike latency ratio) and stronger (rate ratio); DNa02 drives its own side more than the other; and the left DNa02 stays silent (the see-saw null). MaleCNS only (leg MNs are in the nerve cord); FlyWire records it as not applicable. Pre-registered predictions and outcome: docs/rfcs/28_steering_dna02_vs_dna01.md.

Rayshubskiy et al. 2025 (eLife 13:RP102230); Bidaye et al. 2020 (Neuron 108:469, DNa01/DNa02 steering); Chen et al. 2018 (Nat Neurosci 21:1290)

The compass keeps one bump, keeps it in the dark, and picks one of two cues

epg_ring_attractor

The head-direction system of the fly is a ring attractor: the EPG neurons of the ellipsoid body carry a single bump of activity (~90° FWHM) that tracks heading, persists when the visual cue is removed, drifts slowly in darkness, and when two cues compete one wins (Seelig & Jayaraman 2015; Kim et al. 2017; Turner-Evans et al. 2017; Green et al. 2017). The circuit is EPG → PEN → EPG local excitation with the glutamatergic Delta7 neurons providing global inhibition (Hulse et al. 2021, the hemibrain central complex). This task cues one ellipsoid-body wedge — the EPGs of PB glomerulus 4, both sides, at the task-02 100 Hz for 500 ms — and reads the ring as eight wedges by PB glomerulus number (the community and neuPrint labels carry it; the wedge-to-angle map, 45° per glomerulus with left and right merged, is INFERRED from Wolff, Iyer & Rubin 2015). The population vector's length (one bump ≈ 0.85, spread or two bumps ≈ 0) and angle are the readouts, during the cue and 200–700 ms after it ends; a second condition cues two opposite wedges. Shipped in the expected-fail tier: a uniform LIF with no adaptation and a 20 ms membrane has nothing to hold a bump with, and the task exists to say how it fails. Pre-registered predictions and outcome: docs/rfcs/29_epg_ring_attractor.md.

Seelig & Jayaraman 2015 (Nature 521:186); Kim et al. 2017 (Science 356:849); Turner-Evans et al. 2017 (eLife 6:e23496); Green et al. 2017 (Nature 546:101); Hulse et al. 2021 (eLife 10:e66039); Wolff, Iyer & Rubin 2015 (J Comp Neurol 523:997)

The egg-laying command is driven by oviEN, held down by oviIN, and not started by pC1

egg_laying_ovidn

Egg laying in the female is commanded by the oviposition descending neurons: "activation of female-specific oviDNs is necessary and sufficient for egg laying" (Wang et al. 2020). Their major excitatory input is the oviposition excitatory neurons (oviENs), and "GABAergic oviposition inhibitory neurons (oviINs) mediate feed-forward inhibition from pC1 neurons to both oviDNs and their major excitatory input, the oviENs" — in virgins the pC1 → oviIN drive holds egg laying down, and after mating sex peptide silences the abdominal inputs to pC1 and oviIN, disinhibiting oviDN. FlyWire v783 (a female) carries oviDNa/b, oviIN and the female pC1a–e by name; the oviENs are not labelled, and SMP550 is taken as oviEN (INFERRED: the oviDNs' largest excitatory input, 185 synapses, and the oviINs' largest target, −429 — exactly the paper's motif). Conditions: oviEN alone; oviEN with oviIN driven; pC1 alone. Checks: oviEN drives oviDN; adding oviIN halves it (the task-03 suppression convention); pC1 drives oviIN and does not drive oviDN (the virgin null). FlyWire only — MaleCNS has no oviDN and its pC1 are the male types; recorded as not applicable there. Pre-registered predictions and outcome: docs/rfcs/30_egg_laying_ovidn.md.

Wang et al. 2020 (Nature 579:101, Neural circuitry linking mating and egg laying in Drosophila females); Wang et al. 2021 (Nature 596:433, oviDN and the egg-laying sequence)

Foxglove and Bluebell switch the walking commands off; sugar switches Foxglove on

halt_walk_off

Sapkal et al. 2024 found two ways a fly stops. The "walk-OFF" mechanism is two GABAergic brain neurons found by optogenetic screen, Foxglove and Bluebell, that inhibit specific walking-promoting descending neurons: Foxglove strongly inhibits BDN2 (forward velocity) and oDN1, Bluebell inhibits oDN1 — "oDN1 and BDN2 stood apart as important nodes" — "comparable to taking one's foot off the gas pedal"; both are downstream of the sugar sensory pathway and Foxglove responds to sugar more strongly in starved flies (halting to feed). The "brake" mechanism, cholinergic ascending neurons in the nerve cord, is not scored here. FlyWire v783 carries all of them under the paper's labels (Foxglove = CB0890, Bluebell = DNg60, oDN1 = DNg97, BDN2 = DNg100). P9 (DNp09) is not scored: neither halt neuron contacts it in v783. The model has no walking fly, so the walking command is stood in for by the shared excitatory inputs of the two walking DNs, PVLP137 and CB0529 (four cells), driven at the task-02 100 Hz (CONVENTION, declared: they are selected because they are the DNs' largest common inputs, not for any behaviour of their own). Checks: sugar drives Foxglove; the walking input drives BDN2 and oDN1; adding Foxglove halves both; adding Bluebell halves oDN1 (the task-03 suppression convention, under the S1/S2 gates). MaleCNS has no Foxglove under any name and is skipped. Pre-registered predictions and outcome: docs/rfcs/31_halt_walk_off.md.

Sapkal et al. 2024 (Nature 634:191, Neural circuit mechanisms underlying context-specific halting in Drosophila); Bidaye et al. 2020 (Neuron 108:469)

Through a real visual front end, a loom reaches the loom detectors and the giant fiber

flyvis_loom_escape

The escape tasks so far drive the loom detectors themselves (LPLC2 and LC4 at 150 Hz): a convention that assumes the optic lobe has already done its job. This task replaces it with a published model of the optic lobe: flyvis (Lappalainen et al. 2024), a connectome-constrained network of 65 cell types on a 721-column retina, sees a rendered stimulus and its output types (T4/T5, T2/T3, Tm/TmY) drive the same types in the connectome, column by column (an inferred retinotopy, see flybench/frontends/flyvis_frontend.py); the LIF's own wiring from there to LPLC2, LC4 and the giant fiber does the rest. A dark disc expanding with r/v = 40 ms (von Reyn 2014, Ache 2019) must fire LPLC2 and LC4 (Klapoetke 2017; Ache 2019) and give the giant fiber at least one spike (von Reyn 2014). A full-field brightening (the task-11 null, now through the eye) is measured and reported but not scored: see the checks. Front-end outputs are cached and committed (data/frontends/flyvis), so runs need neither torch nor flyvis; a dataset without the optic-lobe types skips the task. Pre-registered predictions and outcome: docs/rfcs/32_flyvis_loom_escape.md.

Lappalainen et al. 2024 (Nature 634:1132, flyvis); von Reyn et al. 2014 (Nat Neurosci 17:962); Klapoetke et al. 2017 (Nature 551:237); Ache et al. 2019 (Curr Biol 29:1073)

A loom makes the body jump; a flash and rest do not (first embodied task)

embodied_loom_escape

The first task of the embodied track (docs/ROADMAP.md item 51): the brain's spikes drive a physics body and the body's behaviour is scored. The jump command is a spike of the tergotrochanteral motor neuron (TTMn) where the dataset has a nerve cord, or the giant fiber plus the measured 0.93 ms GF→TTM delay (Augustin et al. 2019) where it has none; the body is NeuroMechFly in FlyGym (MuJoCo), which runs one fixed middle-leg extension program per command (flybench/embodied/flygym_body.py). Takeoff is a physics event: all six feet off the ground within 30 ms of a command. A loom (the task-4 LPLC2/LC4 convention) must produce a takeoff within the drive; a fly at rest must not jump; a full-field flash through the flyvis front end must not make it jump. The loom through the eye (task 32) is measured, not scored, because task 32 already scores that failure. Feed-forward: nothing from the body returns to the brain. Pre-registered predictions and outcome: docs/rfcs/33_embodied_loom_escape.md.

Card & Dickinson 2008 (Curr Biol 18:1300, doi:10.1016/j.cub.2008.07.094); von Reyn et al. 2014 (Nat Neurosci 17:962, doi:10.1038/nn.3741); Trimarchi & Schneiderman 1995 (J Exp Biol 198:1099); Allen et al. 2006 (J Neurosci 26:1264, doi:10.1523/JNEUROSCI.4258-05.2006); Augustin et al. 2019 (J Physiol 597:2233); Lobato-Rios et al. 2022 (Nat Methods 19:620, doi:10.1038/s41592-022-01466-7); Wang-Chen et al. 2024 (Nat Methods 21:2353, doi:10.1038/s41592-024-02497-y)

The jump without the giant fiber — a loom through the eye reaches TTMn with the GF silenced

ttmn_without_gf

Flies take off from a loom in two modes (Card & Dickinson 2008; von Reyn et al. 2014): the giant-fiber short mode, and a long mode that survives silencing the GF and ends in the same tergotrochanteral muscle. Task 33 found, unasked, that the flyvis loom made the body jump on MaleCNS with the GF at 0 Hz. Here the GF's outgoing synapses are zeroed for the condition (`silence`, as in task 26) and the question is asked directly, on the body: does the loom through the eye still reach TTMn and make NeuroMechFly leave the ground before the movie's collision; does the task-4 convention loom also have a GF-free route; does the flash's jump (task 33) survive the GF's silencing (predicted not to — see the RFC); does the fly stay put at rest. The GF-intact loom is measured, not scored (task 33 owns it). MaleCNS in practice (TTMn needs a nerve cord). Pre-registered predictions and outcome: docs/rfcs/34_ttmn_without_gf.md.

Card & Dickinson 2008 (Curr Biol 18:1300, doi:10.1016/j.cub.2008.07.094); von Reyn et al. 2014 (Nat Neurosci 17:962, doi:10.1038/nn.3741); Engel & Wu 1996 (J Comp Physiol A 178:105); Lobato-Rios et al. 2022 (Nat Methods 19:620, doi:10.1038/s41592-022-01466-7)

Which descending neurons carry the giant-fiber-free loom route to the jump muscle

gf_free_route_to_ttmn

Task 34 showed a route from the flyvis eye to TTMn that survives silencing the giant fiber and that the flash does not use. This task asks which descending neurons carry it, on the body (NeuroMechFly, TTMn as the command). Every condition is the rendered loom with the GF silenced plus one more silenced set: nothing more (the route exists); every descending neuron (the route must descend — a check on the task itself); the three direct loom-DN inputs to TTMn (DNp02, DNp06, DNp10 — predicted, from anatomy, not to matter, because task 32 found LC4 and LPLC2 silent to this loom); the candidate set named by a fixed, disclosed procedure from one development spike dump (docs/rfcs/35, stage 2: nine DN types converging on the GF-coupled interneurons GFC2 and IN20A.22A, none of them a loom DN of the literature); and the top five candidates one at a time. MaleCNS in practice: the candidate types are this dataset's names and the toy has no GFC2, so it is skipped there; GFC2 (the GF-coupled interneuron the route runs through) is read out in every condition. Pre-registered in two disclosed stages: docs/rfcs/35_gf_free_route_to_ttmn.md.

von Reyn et al. 2014 (Nat Neurosci 17:962, doi:10.1038/nn.3741); Card & Dickinson 2008 (Curr Biol 18:1300, doi:10.1016/j.cub.2008.07.094); Allen et al. 2006 (J Neurosci 26:1264, doi:10.1523/JNEUROSCI.4258-05.2006); Dombrovski et al. 2023 (Nature 613:534, doi:10.1038/s41586-022-05586-0)

The closed loop — the body's own eyes, an approaching object, and the jump

closed_loop_escape

Phase 7b. The brain's visual input is the body's: every 10 ms NeuroMechFly's two compound eyes are rendered in MuJoCo, mapped one-to-one onto flyvis's 721-hexal retina, run through the pretrained flyvis network frame by frame with its state carried, and the resulting rates drive the connectome's own optic-lobe cells; a spike of TTMn (or the GF plus the measured 0.93 ms where there is no nerve cord) starts the jump program, and the eyes see the world from wherever the body now is. A black 2 mm sphere approaches the eyes at 50 mm/s (r/v = 40 ms, the geometry of every escape task here) and must produce a takeoff before contact; the same sphere on a 10 mm near-miss path and a motionless sphere must not. Nobody is predicted to pass: at a real eye's resolution the loom is a small, late event. Needs flygym, flyvis and torch installed; skipped otherwise. Pre-registered predictions and outcome: docs/rfcs/36_closed_loop_escape.md.

Card & Dickinson 2008 (Curr Biol 18:1300, doi:10.1016/j.cub.2008.07.094); von Reyn et al. 2014 (Nat Neurosci 17:962, doi:10.1038/nn.3741); Lappalainen et al. 2024 (Nature 634:1132, doi:10.1038/s41586-024-07939-3); Lobato-Rios et al. 2022 (Nat Methods 19:620, doi:10.1038/s41592-022-01466-7); Wang-Chen et al. 2024 (Nat Methods 21:2353, doi:10.1038/s41592-024-02497-y)