Roadmap: what the model covers, and what waits on outside evidence
Status on 2026-10-16. This page is the index. Each verdict is recorded on the linked page, and the table adds none. What remains open needs a measurement from an animal, a published map, hardware, or a lock that is written and not yet run.
The integrity audit records the numerical/provenance baseline and the accepted corrections. Run integrity specifies immutable executions, checkpoint compatibility and explicit electrical numerical modes. Approximations lists every simplification of the model with its status and what would remove it.
Evidence-gated delivery milestones (planned 2026-10-16)
The milestone plan maps every currently open issue to one primary delivery gate: S0 numerical reliability → S1 sourced sensory physiology → S2 evidenced body coupling → S3 independent prospective prediction → S4 external reproduction/claims audit. H1 native/Series S qualification and H2 full-fidelity viewer/WebXR qualification run in parallel; neither is a substitute for independent animal data.
These are evidence-based planning identifiers, not yet native GitHub Milestone objects or fixed delivery dates. blocked/negative results remain visible and do not count as passes. The merged #221 adds diagnostic Quest evidence, not a qualified XR release; closed #40 records its delivered Series S baseline, with remaining physical fault gates on #224.
Results
| Result | Verdict | Record |
|---|---|---|
| Validation battery, criterion v4 | 29/29 at w_syn 0.192, replicated |
validation |
| N1, one degree-preserving shuffle | 5/29, all of them stability |
related |
| Four null families, 20 draws | the one-hop headline sits above every draw | nulls |
| Engine against Shiu et al. brian2 | agrees within noise (r ≥ 0.998) | comparison |
| Dimorphism T1–T4 | courtship runs through fru/dsx; escape and feeding do not | dimorphism |
| Held-out ORN_DM1 → DM1_lPN | fails specific and stability | benchmarks |
| Kenyon cell sparseness v1–v5 | dense or silent, never sparse | model |
| Kenyon cell sparseness v7 | within only with the variant eLN set; coupling changes nothing | model |
| Kenyon cell sparseness v8 | v7 replicates under the exact continuous clamp (8 of 10 variant arms) | model |
| KC → MBON11 depression v1 | inconsistent: both odors go silent | model |
| One-bit looming jump | silence fails | behavior |
| Residual partner scan v2, replicated as v3 | DNp02 and DNp06 | behavior |
| Partner follow-up v1 | the left mirror replicates; DNp06 alone reaches the jump bit | behavior |
| T4/T5 through the eye v1 | neither | eye |
| Synapse weight rule v1 | undecided: density and count rank Liu et al.'s uEPSPs alike (Δρ +0.015) | model |
| T4/T5 v2 | robust: neither; contrast crosses the lamina, stops in the medulla | eye |
| T4/T5 v3 | robust: neither; the edge reaches the graded medulla at ≤1.4 mV | eye |
| T4/T5 v4 | robust: neither; medulla ±10 mV at gain 16, LMC 200 Hz; T4 unselective | eye |
| Timestep convergence v1 (SF2) | converged at 0.1 ms; weak-pathway latencies move with the step | validation |
| Simple baselines v1 (SF2) | all 7 positive responses specific against 199 degree-preserving shuffles | validation |
| Weak-pathway metrics v1 (SF2) | latency not converged (sugar MN9); jitter indeterminate for bitter | validation |
| Identifiability re-read v1 (SF2) | post-hoc; five parameters blocked, no interval | validation |
| Pulse vs sine song v1 (#36) | uninformative, the no-go: 14 of 32 neuropils resolve a sign | benchmarks |
| Looming → giant fiber timing v1 (#34) | uninformative, the no-go: the giant fiber fires in every cell | benchmarks |
| Looming → giant fiber timing v2 (#34) | uninformative: peaks follow the stimulus; the flies' interval holds the onset slope | benchmarks |
| APL claw contrast v1 (#85) | uninformative, the no-go: with APL the mean KC sits below rest | validation |
| NeuroMechFly jump v1 | short | embodiment |
| Male vs female synapse counts | median 1.81× over matched types, a reconstruction difference | comparison |
| Published sugar set, FAFB LB3 split | 14 sugar-like and 6 LB3d-like neurons | comparison |
| Motor map | every row unmapped |
validation/motor_map.yaml |
| Held-out behavior milestone | no eligible case left in the frozen partition | validation |
Scientific fidelity programme (2026-10-13; SF1 done 2026-10-14)
The scientific fidelity architecture defines separate numerical, physiological and behavioral validation gates. This is a forward plan, not a change to any verdict above.
| Stage | Deliverable | Acceptance | Dependency |
|---|---|---|---|
| SF1 | Done (#147): validation/evidence.yaml |
Every new scored parameter carries source, units, uncertainty and role; CI rejects new evidence records with missing fields | Source audit |
| SF2 | #148: convergence converged; path-metrics latency not converged (sugar MN9); identifiability post-hoc, parameters blocked; baselines specific | Those checks are archived. Uncertainty propagation stays blocked; no biological interval is invented | SF1 |
| SF3 | Independent physiology benchmarks | T4/T5 and Kenyon-cell experiments preregistered against external measurements | #140, #95, #85 |
| SF4 | Neuromechanical held-out validation | Cited motor map and animal-data evaluation without tuning on holdout | #19, #36, #90 |
| SF5 | Independent reproduction package (#151; index, guide and claims audit in replication) | External team can reproduce runs and distinguish model validation from numerical parity | SF1–SF4 |
Do not call SF4 or SF5 complete without external evidence. Historical 29/29 calibration and failed held-out results remain unchanged.
Brain coverage
Numbers from scripts/brain_coverage.py, which reads data/ and changes nothing.
| Part | In the model | Left out, and why |
|---|---|---|
| Neurons | All 165,122 traced MaleCNS neurons, brain and VNC | Untraced fragments (not in the release's neuron list) |
| Chemical synapses | 124,025,046, signed by the presynaptic transmitter: 59.24% excitatory, 38.16% inhibitory | 2.61% leave neurons with sign 0 (model): 3,602 neurons whose transmitter is unclear or missing (1.65%) and 541 modulatory ones (0.95%) |
| Unsigned, cross-checked | — | Of the 3,602, 1,381 match a FlyWire type; 540 of those types are at least 90% one transmitter, and 288 neurons would get a fast one (0.34% of synapses). Not applied: the gain is small and the FlyWire label is a second prediction, from a female brain, not a measurement |
| Electrical synapses | Optional (sim.Gap), none by default; a spike crosses when the lock sets spike_mv and spike_ms. Kenyon cell v4 scanned subthreshold coupling; v5, with measured coupling and eLN spikelets, stayed silent |
Not visible in EM at this resolution; identified pairs have no conductance a LIF can use (#85) |
| Neuromodulation | None as a fast sign; one optional, locked rule: dopamine-gated depression at KC → MBON11 (Hige et al. 2015); v1 inconsistent, because the model's Kenyon cell code is not sparse | No per-type gain or time constant measured outside a few synapses (#85) |
| Eyes | Every column with a measured viewing direction (flymsg eye: 843 R, 835 L); photoreceptor terminals and the column grid are in the volume: 875 (L) and 892 (R) columns; R7 and R8 map to 533–698 columns per side; R1–R6 to 182 (L) and 380 (R), many being fragments |
The default stimulus is still Poisson spikes into a named type. Column directions, looming and edge coverage, and graded photoreceptor kicks exist; the gain is a compensation the lock states (eye, #84) |
| Other sense organs | Sensory axons enter as neurons (2,635 ORN, 672 Johnston's organ, VNC sensory) | Their cell bodies and transduction are in the periphery, outside the volume |
| 3D view | The scene's neurons at source resolution; 114 neuropil shells; every soma in the volume as a point (140,024); graded neurons glow by potential in eye replays | 25,098 neurons without a soma in the volume, mostly sensory |
Realism plan
Each step uses sourced values only, stays optional until validated, is locked before its run, and is judged against a measurement it was not built from. Ordered by how much realism it adds and how much evidence exists.
| Step | What | Evidence | Independent test |
|---|---|---|---|
| P1 | Eye (#84): directions, stimuli, graded input done; T4/T5 v1 neither: the spiking lamina cannot invert contrast; v2 robust neither over 17 configurations: graded L1–L3 carry contrast, the spiking medulla does not pass it; v3 robust neither: the graded medulla receives the edge at ≤1.4 mV, at most about 5% of the measured swings | Zhao et al. 2025, Nern et al. 2025, Lappalainen et al. 2024 | T4/T5 direction selectivity (Maisak et al. 2013); GF size/velocity split (Ache et al. 2019) |
| P2 | Kenyon cell sparseness (#95): v1–v5 dense or silent, never sparse. v4 used subthreshold coupling and it drained PNs. v5, with the measured coupling and eLN spikelets of 0–2 ms, stayed silent. v7, replicated by v8 under the exact clamp: sparse only when lLN1_bc joins the eLN set, and only by removing chemical contacts; coupling changes nothing | KC→KC synapses axo-axonal (Eichler et al. 2017); APL non-spiking | 5–10% of KCs per odor (Honegger et al. 2011) |
| P3 | Odors as receptor response vectors (#96): flymsg odor (done) |
DoOR (Münch & Galizia 2016), Hallem & Carlson 2006 | KC overlap between odors; KC → MBON11 v2 (#85) |
| P4 | Body and jump: FlyGym body, TTM actuator, open and closed loop built; jump v1 short (one leg, no TLM) (#90, #94) | Zumstein et al. 2004, Allen & Murphey 2007 | Escape takeoff velocity ≈ 0.48 m/s (Card & Dickinson 2008) |
| P5 | Non-spiking neurons for the documented types (#97): engine class done (sim.Graded); no Drosophila release curve (only Calliphora R → LMC), so locks scan the curve over the measured voltage ranges |
Zheng et al. 2006, Juusola et al. 2016 (operating ranges); Amin et al. 2020 (APL); photoreceptors, lamina | Known graded responses (e.g. L1/L2) |
Still outside the default model: a gap-junction list, per-type neuromodulation
(#85) and per-type membrane parameters.
sim.Gap can express a caller-stated junction, and a spikelet term when the same lock
sets spike_mv and spike_ms. sim.Graded can express a caller-stated release curve.
sim.Membrane can express caller-stated per-neuron membrane and threshold parameters. All
three stay off unless a lock names them.
Done model-side
| Item | Where |
|---|---|
| Engine parity with Shiu et al. 2024 (brian2) | model |
| Calibration battery 29/29; held-out ORN_DM1 fails | validation, benchmarks |
| Sensitivity grid (#28) | validation |
| One-bit looming loop; DNp01 silence check fails | behavior |
Residual TTMn_R drive: DNp02 and DNp06, replicated (#20) |
behavior |
| KC → MBON11 depression v1 run: inconsistent (#85) | model |
| Left mirror replicates; DNp06 alone sufficient at 200 Hz (#76) | behavior |
| M0 interface, M1 jump body, M2 closed loop (engineering) | embodiment |
| Eye map, column stimuli, graded photoreceptor kicks | eye |
| Odors as DoOR receptor vectors | data |
| Graded neurons and electrical synapses; spikelets when a lock sets them | model |
| T4/T5 v1 neither; v2, v3 and v4 robust neither | eye |
| NeuroMechFly jump v1 short; closed loop cuts input at takeoff | embodiment |
| R0 incremental CPU runtime; native executor matches the oracle | runtime |
| Archived outputs; figures redraw from a clone | results/ |
| Viewer baseline of the live scenes (#153) | viz |
| Evidence records for sourced parameters (SF1, #147) | scientific fidelity |
| Taylor solver for the continuous clamp (#155, ADR accepted 2026-10-14) | ADR |
| Timestep convergence v1: converged at 0.1 ms (SF2, #148) | validation |
| Weak-pathway metrics v1: latency not converged (sugar MN9, SF2, #148) | validation |
| Identifiability re-read v1: post-hoc, parameters blocked (SF2, #148) | validation |
| Replication package: index, operator guide, claims audit (SF5, #151) | replication |
| Faster per-neuron membranes, bit-identical (#182) | model |
| Graded potentials in the 3D replay; eye-on live scene | viz |
| Optional WebXR observer (experimental, unqualified on a headset, #177) | viz, ADR |
| B6 v2 pose contract (G1, #178); body-wiring ADR accepted 2026-10-14 | embodiment, ADR |
| Geometric optics onto the measured columns (G2, #179) | eye |
| G5 schedule, evidence gate and record, synthetic only (#180) | embodiment |
Blocked on evidence
| Issue | Blocked by | Unblocked by | Ready when it arrives |
|---|---|---|---|
| #34 M2 | No measured LC4 tuning: the transducer's gain and ceiling are stated by the caller | LC4 or LPLC2 spike rates to looming discs at the deposited r/v, with trial variability, mapped to MaleCNS bodyIds, against an input that follows only the stimulus onset and a holdout partition written beforehand (von Reyn et al. 2014 and Ache et al. 2019 are context, not that source) | sensory_runtime.schedule_sensory_drive, the closed loop with its three controls |
| #84 eye | No measured Drosophila release curve. The column → direction table exists. T4/T5 v2, v3 and v4: robust neither; in v4 a 16-fold lamina → medulla gain at an LMC rate of 200 Hz brings the medulla to the order of the measured swings (symmetric, where the recordings are not) and T4 stays unselective | A measured lamina → medulla gain or LMC release curve, judged against Maisak et al. 2013 | eye: geometry, eye.edge_coverage, sim.Graded, validation/t4t5.yaml v4 (run: robust neither) |
| #85 electrical, modulation | No junctional conductance; no gap-junction list; no per-type modulatory effect | Paired recordings with conductance and input resistance; a ShakB puncta map on MaleCNS bodyIds; receptor maps with measured effects | sim.Gap (off by default; a spike crosses when the lock sets spike_mv and spike_ms) and the sign table with its documented exclusions |
| #19, #35 M3 | Neuron → muscle is cited from MANC for 406 of 708 motor neurons (flymsg muscles); no published assignment of a muscle to a FlyBody actuator; FlyBody has no tergotrochanter joint (FlyGym's NeuroMechFly has the coxa-trochanter joint, #90) |
A muscle-level map for TTMn_L and TTMn_R with force and timing, and a body that has the joint |
validation/motor_map.yaml (fail-closed, every row unmapped), the M0 contracts, the timestep rules |
| #36 M4 | song.yaml v1 run: uninformative, the no-go (14 of 32 neuropils resolve a sign; the model's pulse/sine index is about 0.05); the data were never opened |
A qualified measured JO input, with source calibration/sex gates and ADR acceptance, before a version 2; then an eligible case other than song v1, which needs a new manifest version, since the v1 partition has no unused confirmatory case | Baker identity audit, v2 proposal and licence scope; predictions and frozen v1 locks preserved |
Blocked on hardware
| Issue | Blocked by | Ready |
|---|---|---|
| #39 R1 | Dynamic continuous clamp, refused on every native lane | Series S GPU parity bit for bit, 12 version-1 fixtures (2026-10-15) and 60 version-2 fixtures (2026-10-16), including the 12 gap-all-free cases |
| #40 R2 | GPU fault and hard termination on the console | Launch, cancel, stop to suspension with checkpoint and bit-for-bit resume; full connectome bit for bit at about 2,320 steps/s |
| #177 WebXR | A headset: stereo, scale, frame times, session end and context loss | ?xr=1 in the viewer, session-state tests (ADR) |
What an animal test could check
Model predictions on MaleCNS, stated so that an experiment could test them. None is a claim about the fly.
- Escape without the giant fiber. With both DNp01 silenced, looming still drives
TTMnin the model. Flies without a functional giant fiber still take off from looming, through slower takeoffs (von Reyn et al. 2014); the model is consistent with that, which is not a test. - DNp02 and DNp06. In the model, with DNp01 silenced, silencing either DNp02 or DNp06
removes every
TTMn_Rspike (twelve seeds, scan v2 and v3). For an animal: with the giant fiber silenced, silencing DNp02 or DNp06 should abolish the remaining looming-evoked takeoffs. The follow-up (#76) adds the side and whether the pair is sufficient. - Left and right differ. The residual drive is weaker on the left in this animal. One connectome cannot say whether that is individual variation or a population bias.
Open model-side
-
Integrity corrections are implemented under the accepted ADRs; the baseline and the corrections accepted on 2026-10-13 are recorded in the audit. Archived results and already registered boundary-reset protocols preserve their original physics.
-
T4/T5 v3: robust neither (eye). With Mi1, Tm3, Mi4, Mi9 and C3 graded, the edge reaches the medulla at ≤1.4 mV, with the measured sign only in Tm3, C3 and Mi9; from an LMC rate of 100 Hz tonic lamina release holds Mi1 and Mi4 below release (Tm3 from 200 Hz). T4/T5 v4 (#140): the medulla anchored at its settled dark potential, the lamina → medulla gain scanned over 1–16, Behnia et al. 2014's delays set; robust neither: at gain 16 and an LMC rate of 200 Hz the medulla swings about ±10 mV, and T4 fires without the measured polarity or direction (eye).
- Kenyon cell sparseness v7: within only with the variant eLN set lLN2T+lLN1_bc (model). With lLN2T alone Kenyon cells stay dense; the coupling moves no arm, so what the antennal lobe lacks is which cholinergic local-neuron contacts onto PNs are chemical, a question EM types cannot answer. v8 (v7 under the continuous clamp by the Taylor action, seeds 95–97, #155) replicates it: 8 of 10 variant arms within, every arm within 19 cells of v7.
- #24 viewer benchmark: the baseline of
the live scenes is committed (viz,
scripts/bench_check.pycompares a new run); a physical phone stays open.
Completion plan
Status on 2026-10-17. flymsg is complete when a model prediction passes an independent held-out benchmark (M4, #36); everything else serves that. An open problem closes with a measurement, a lock and a run, never with a chosen value, so the order follows the evidence that exists. The sensorimotor environment plan sets the gates a headless closed-loop experiment needs on the way (#176); it is a plan, not a result.
M4 candidate progress (2026-10-17). The Baker identity audit extends complete named MaleCNS coverage from 2 to 12 of 28 classes: 11 retain unresolved sex compatibility, and AVLP_pr36 remains excluded for dimorphism. Fourteen classes are partial and two absent. The v2 proposal documents the licence basis for private noncommercial analysis and the separate review of public outputs. Root-ID updating is complete; next resolve missing identity/sex evidence and obtain the measured JO input before a prospective partition and lock. No candidate is benchmark eligible and no responses were opened.
1. Now: nothing outside is needed.
| Issue | Work | Exit |
|---|---|---|
| #24 | Done: baseline of the live scenes (#153); scripts/bench_check.py compares a new run |
Baseline committed; regression thresholds from it; a physical phone stays open |
| #139 | Done: v1 undecided (Δρ +0.015, interval −0.011 to +0.054); count stays | More power needs measured pairs across more LHN types |
| #19 | Done (#142): the muscle is the type's; neuron-level matches recorded (140 of 623 disagree) | Muscle → body actuator (#19, #35) stays blocked on evidence |
| #36 | Done: song.yaml v1 uninformative, the no-go (14 of 32 neuropils resolve a sign; median |index| about 0.05). The Pacheco data were never opened |
A version 2 needs a measured JO band-pass or carrier-tuned input, then an eligible case written in a new manifest version before its data (the v1 partition has none left); #36 stays blocked on evidence |
2. Already read: T4/T5 v4, KC and APL, looming v1 and v2, and jump3d v2.
| Issue | Work |
|---|---|
| #140 | T4/T5 v4 run: robust neither; the medulla reaches the order of the measured swings at gain 16 with LMC 200 Hz (symmetric, where the recordings are not) and T4 stays unselective |
| #85 | KC v7 within only with lLN2T+lLN1_bc, replicated by v8 under the exact clamp; APL claw contrast v1 uninformative, the no-go (the mean KC sits below rest) |
| #34 | gf_looming.yaml v1: the model's DNp01 peak time before collision against Dombrovski et al. 2025's deposited giant-fiber recordings at r/v 10–80 ms, timing only, engineered LC4/LPLC2 forms with scanned gains (benchmarks); run: uninformative, the model's giant fiber fires in every cell, so no cell stays graded like the recordings. v2 (passive giant fibers) run: uninformative, the flies' interval holds the onset slope and the model's peaks follow the stimulus |
| Jump | jump3d v2 judged on take-off velocity (0.48 m/s, Card & Dickinson 2008) before distance |
3. Blocked on measurements that do not exist. Junctional conductances and a gap-junction list (#85), a Drosophila voltage → release curve (#97), muscle → body actuator (#19, #35), per-type neuromodulatory gains. Meanwhile: envelopes over measured ranges and inverse predictions (what value the result would need), never a chosen value.
The sensorimotor gate G1 (B6 v2 pose contract, #178) is complete. G2's geometric projection (#179) is implemented but qualification remains open; G2 runs on the real eye once the micro-CT → NeuroMechFly head registration has a source. G5 (#180) has its schedule, evidence gate and record on synthetic components; the body-wiring ADR is accepted, and a biological closed loop refuses until G3 and G4 are measured.
4. Hardware. On a Series S in Dev Mode the version-1 lane is qualified (#39, #40): 12 of 12
fixtures bit for bit, cancel, suspension with checkpoint and resume, and the default full
connectome bit for bit at about 2,320 steps/s once float32 arithmetic is exact (event-driven
delivery alone was about 1,630). Version-2 fixtures (graded, coupled) run on the DX12 lane (#215) and
match bit for bit on the Series S, 60 of 60. A graded million-step job on the
installed worker 90249e45 reached step 1,000,000 and stayed in checkpointing
with checkpoint.bin.tmp empty. That trial stays interrupted. A native publish
that does not grow its temporary file is recorded as failed and is not
replaced; one that grows is replaced and recorded as completed. The
interrupted trial was not rerun. The lifecycle
collector (#222) names the worker's last state and step when a throughput wait
expires. A GPU fault with hard termination is unmeasured. The full-content Quest 2 partial WebXR trial (#177) failed its frame-time gate; the complete qualification matrix remains open, so the observer stays experimental, and the native
executor refuses a fixture group it has not qualified.
A Quest 2 is available and USB debugging is verified (2026-10-15); #177 stays open until its hardware matrix passes. Merged #227 and #230 add the diagnostic bounded skeleton renderer. The 16 MiB motion campaign is a veto, not a pass of the #177 matrix. The qualification runbook provides the collector, predeclared timing budget, synthetic closed-loop CLI and G0–G7 ledger.
Sources for each step are in leads; the simplifications they would lift are in approximations.