flymsg

source

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.

Open model-side

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.