Shaduf.Research preview
Digital Fly Lab/Tenth check: how strong must the shadow be? A threshold for the turn command, relays silenced, the looming body test at n 6 and one environment for brain and body

Research report · 8 October 2026 · tenth check

Tenth check: how strong must the shadow be? A threshold for the turn command, relays silenced, the looming body test at n 6 and one environment for brain and body

Our looming tests drove every looming neuron of one eye at 80 spikes per second, a strong input, and found that the real FlyWire map turns a simulated fly away from the shadow where scrambled maps do not. This check lowered that input step by step in the brain model to find where the turn command starts, silenced the relay neurons that the map's own counts point to, walked the seven drives that were waiting for a body, and installed the brain and the body in one Python environment. It also graded a new viral claim, added five entries and wrote a 20-minute class plan.

  • Run: run:3d4593e7-43ca-433b-8fae-3a6cf3af2207 (scheduled research, tenth check)
  • Research time: 8 Oct 2026, 09:43–about 10:31 UTC, one session, no interruptions; no planned cut fired
  • Pre-registration: 09:45:48 UTC, before the first body run (09:46:05) and the first brain trial; re-stamped with the deviations at 09:57:49, before the first brain trial (09:57:50); relay lists written at 09:51, before the first relay trial
  • Catalogue version: 2026-10-08-run10 (121 entries; previous 2026-10-06-run9)
  • Gallery: 55 videos
  • Controls ledger: 2026-10-08-run10 (43 studies)

Short answer

How strong must the shadow be? (brain only, pre-registered, 19 trials.) In the words we fixed before the first trial:

We lowered the input to the looming neurons step by step, from 80 to 10 spikes per second each. The turn command appeared from about 30 per second (38% of our strongest input) on both sides; below that the model did not turn.

  • Escape: "The escape neuron started firing at the same input as the turn command." A second random seed gave the same pass and fail at 20 and 30 per second on both eyes (reading: "stable across seeds").
  • Relays: "With one relay neuron (PVLP141) silenced, the turn command stayed." "With all 21-23 relay neurons between the looming neurons and the turn neuron silenced, the turn command stayed." "Stayed" means the pre-registered turn rule still passed; the ratio we used saturates because the near-side turn neuron is always at 0 Hz, and with PVLP141 silenced the far-side rate did fall (left 25 → 17 Hz, right 41 → 24 Hz). This is a disclosure, not a new reading.
  • Caveat, fixed in advance: "One model (Shiu et al. LIF on FlyWire v783), brain only; the input is a rate we set for every LC4/LPLC2 of one eye, not a measured response to a real shadow; 'silenced' means the neuron's output synapses were removed; not a real fly." A short search found no measured real-fly LC4/LPLC2 firing rate during looming to compare these rates with.

The looming body test, now n 6. The 5 Oct no-brain floor run repeated exactly in a new session. "We ran the map. A looming shadow on one eye turned our simulated fly away in 6 of 6 runs. With the same map scrambled (same number of connections per neuron) it turned away in 0 of 3. Here the map's wiring, not the stimulus or our code, makes the turn." (left eye 3 of 3, right eye 3 of 3; 3 more scrambled drives are identical to the floor.) "With the escape neuron silenced, the fly still turned away." (2 of 2) "With only the inside of the map scrambled, the fly turned away in 0 of 6 runs." The body does the walking with FlyGym's own controller, through our hand-made mapping.

One environment. Brain (Brian2 2.9.0) and body (FlyGym 2.1.0) installed together in one Python 3.12 environment: 1.1 GB on disk, tested 8 Oct 2026, with numpy pinned to 2.3.5: on the body's numpy 2.5.3, import brian2 fails with AttributeError: type object 'numpy.ndarray' has no attribute 'ptp'.

Also: a new verdict, "Can A Conscious Fly Brain Learn how to Hack?" (no code linked: U); 5 new entries (121); the controls ledger has 43 studies, 34 with a wiring null; 1 new video (55); a "Use in class" plan on Build your own.

What changed

  • 30 per secondper looming neuron: the turn command from here up, on both eyes (brain only; 38% of our strongest input)
  • 6 of 6real-map body runs turned away (0 of 3 scrambled body runs; inside-only scramble 0 of 6)
  • 1.1 GBbrain and body in one Python 3.12 environment, with numpy 2.3.5
  • 43control studies (2 new), 34 with a wiring null: helps 16, no difference 8, worse 2, mixed 7, not yet scored 1
What 43 control studies found when the fly wiring was scrambled43 control studies, one square per study: Real wiring helps 16; No difference 8; Real wiring does worse 2; Mixed: depends on the null 7; Not yet scored 1; Baselines only, no wiring null 9. 34 studies compare the real wiring with a scrambled or rewired copy.Real wiring helpsdrosophila-brain-mlx: helps (Reflex circuits)Drosophila_brain_model (Shiu et al. 2024): helps (Reflex circuits)fly-brain: helps (Reflex circuits)flydoom: helps (Sensory models)Fly OCR: helps (Sensory models)Build your own, Add a sense: a looming shadow turns the FlyGym fly (our run): helps (Steering a body)Connectocopter (fly connectome drives a simulated drone-rover): helps (Steering a body)Flight-test the fly: helps (Steering a body)Are fruit flies zero-shot adapters?: helps (Steering a body)FLY-lab: What a fly connectome adds to controlling a body: helps (Steering a body)FlyBrain · Flappy (escape reflex): helps (Playing games)Is the fly brain actually playing DOOM? (control experiments): helps (Playing games)Connectome ping pong (fly tennis): helps (Playing games)Brain Runners: helps (Playing games)fly-cartpole: helps (Machine-learning benchmarks)Wired Different (ConnectomeLens): helps (Graph analysis, no simulation)16No differenceFlyArm: no difference (Steering a body)Build your own, Add a body: FlyWire brain drives FlyGym walking (our run): no difference (Steering a body)making-fly-play-chess: no difference (Playing games)ChessFly: no difference (Playing games)doomfly-rl: no difference (Playing games)FlyAim: no difference (Playing games)Does the larval connectome beat its own shuffles? (connectome-null-models): no difference (Machine-learning benchmarks)NeuroWeave: no difference (Machine-learning benchmarks)8Real wiring does worseThe Fly's Hash Function: worse (Machine-learning benchmarks)flybrain-reservoir: worse (Reservoir computing)2Mixed: depends on the nullBuild your own: sugar to MN9 against four scrambled-wiring nulls (our run): mixed (Reflex circuits)Fly.exe (MaleCNS Virtual Fly): mixed (Steering a body)Fly Self Driving: mixed (Playing games)Fly-Racer: mixed (Playing games)fly-plays-games (Pokémon Red chapter; formerly fly-plays-pokemon): mixed (Playing games)flybench: mixed (Machine-learning benchmarks)Null-model treatment of the sensory-motor boundary changes an evolutionary connectome comparison: mixed (Evolved controllers)7Not yet scoredBioReservoir: not yet scored (Forecasting)1Baselines only, no wiring nullflyvis: no wiring null (Sensory models)Synaptera (pre-registered closed-loop flight test of a fly connectome model): no wiring null (Sensory models)Flyhard (The Driving Fly): no wiring null (Steering a body)NeuroCraft Fly: no wiring null (Steering a body)DOOMFLY: no wiring null (Playing games)Fly Dino (flyjump): no wiring null (Playing games)Fly Worker: no wiring null (Playing games)Haltere: no wiring null (Playing games)FLM - Fly Language Model: no wiring null (Language models)934 with a wiring null 43 control studies, one square per study: Real wiring helps 16; No difference 8; Real wiring does worse 2; Mixed: depends on the null 7; Not yet scored 1; Baselines only, no wiring null 9. 34 studies compare the real wiring with a scrambled or rewired copy.Helps: 16No difference: 8Worse: 2Mixed: 7Not yet scored: 1No wiring null: 9
One square per study; hover a square for its name. 34 of the 43 studies compare the real wiring with a scrambled or rewired copy (a "wiring null"); the other 9 test only against a no-brain baseline or an ablation. Labels follow fixed rules applied to the authors' numbers.

How strong must the shadow be?

The objection to an 80-per-second input on every looming neuron is that it is so strong that any wiring connecting the eye to the turning neurons would turn. We kept the model, the seed (2, as in the 6 Oct real trials) and the readouts, and changed only the input: 40, 20, 60, 10 and 30 per second, alternating eyes, so that a time cut would leave balanced sides. The 80-per-second points are the 6 Oct trials. At the threshold and one step below it, a second seed (0) checked the result.

How strong must the shadow be? The turn command appeared from about 30 spikes per second per looming neuron on both eyesBrain-only trials of 8 Oct 2026 (and the 80 per second trials of 6 Oct), Shiu et al. model on FlyWire v783: every LC4 and LPLC2 neuron of one eye driven at a set rate for 1 s. Top panel: the turn command, far-side minus near-side DNa02, in Hz. Left eye at 10, 20, 30, 40, 60 and 80 spikes per second: 0, 1, 8, 20, 20, 25 Hz; right eye: 0, 0, 12, 24, 39, 41 Hz. The pre-registered turn rule passed from 30 per second up on both eyes and failed at 10 and 20. Bottom panel: the escape neuron, giant fibre mean, in Hz, with the pre-registered 50 Hz line: left 7, 42, 68, 86.5, 105.5, 116.5; right 26, 47.5, 71, 90.5, 109, 116.5; above 50 Hz from 30 per second up on both eyes. Second-seed checks at 20 and 30 per second: left 0 and 9 Hz turn command (giant fibre 37 and 71), right 2 and 6 Hz (48.5 and 72); the same pass and fail as seed 2. Near-side DNa02 was 0 Hz in every trial. One model (Shiu et al. LIF on FlyWire v783), brain only; the input is a rate we set for every LC4/LPLC2 of one eye, not a measured response to a real shadow; 'silenced' means the neuron's output synapses were removed; not a real fly. We found no measured real-fly LC4/LPLC2 firing rate during looming to compare these rates with (abstract search, 8 Oct 2026).How strong must the shadow be?Digital Fly LabWe lowered the input to the looming neurons step by step, from 80 to 10 spikes per second each.The turn command appeared from about 30 per second (38% of our strongest input) on both sides;below that the model did not turn.The escape neuron started firing at the same input as the turn command. Brain only, 1 s per trial.The turn commandfar-side minus near-side DNa02 (Hz); filled: turn rule passed02040Seed 2: shadow on the left eye, 10 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 7 Hz, below 50 Hz.Seed 2: shadow on the left eye, 20 spikes per second per looming neuron. Turn command 1 Hz (far-side DNa02 1 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 42 Hz, below 50 Hz.Seed 2: shadow on the left eye, 30 spikes per second per looming neuron. Turn command 8 Hz (far-side DNa02 8 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 68 Hz, above 50 Hz.Seed 2: shadow on the left eye, 40 spikes per second per looming neuron. Turn command 20 Hz (far-side DNa02 20 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 86.5 Hz, above 50 Hz.Seed 2: shadow on the left eye, 60 spikes per second per looming neuron. Turn command 20 Hz (far-side DNa02 20 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 105.5 Hz, above 50 Hz.Seed 2 (the 6 Oct trial): shadow on the left eye, 80 spikes per second per looming neuron. Turn command 25 Hz (far-side DNa02 25 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 116.5 Hz, above 50 Hz.Seed 2: shadow on the right eye, 10 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 26 Hz, below 50 Hz.Seed 2: shadow on the right eye, 20 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 47.5 Hz, below 50 Hz.Seed 2: shadow on the right eye, 30 spikes per second per looming neuron. Turn command 12 Hz (far-side DNa02 12 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 71 Hz, above 50 Hz.Seed 2: shadow on the right eye, 40 spikes per second per looming neuron. Turn command 24 Hz (far-side DNa02 24 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 90.5 Hz, above 50 Hz.Seed 2: shadow on the right eye, 60 spikes per second per looming neuron. Turn command 39 Hz (far-side DNa02 39 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 109 Hz, above 50 Hz.Seed 2 (the 6 Oct trial): shadow on the right eye, 80 spikes per second per looming neuron. Turn command 41 Hz (far-side DNa02 41 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 116.5 Hz, above 50 Hz.Second-seed check: shadow on the left eye, 20 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 37 Hz, below 50 Hz.Second-seed check: shadow on the left eye, 30 spikes per second per looming neuron. Turn command 9 Hz (far-side DNa02 9 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 71 Hz, above 50 Hz.Second-seed check: shadow on the right eye, 20 spikes per second per looming neuron. Turn command 2 Hz (far-side DNa02 2 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 48.5 Hz, below 50 Hz.Second-seed check: shadow on the right eye, 30 spikes per second per looming neuron. Turn command 6 Hz (far-side DNa02 6 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 72 Hz, above 50 Hz.no turncommandfrom 30 per second on both eyes41 Hz right eye25 Hz left eyeThe escape neurongiant fibre, mean of both sides (Hz); filled: above 50 Hz05010050 Hz: the pre-registered escape lineSeed 2: shadow on the left eye, 10 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 7 Hz, below 50 Hz.Seed 2: shadow on the left eye, 20 spikes per second per looming neuron. Turn command 1 Hz (far-side DNa02 1 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 42 Hz, below 50 Hz.Seed 2: shadow on the left eye, 30 spikes per second per looming neuron. Turn command 8 Hz (far-side DNa02 8 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 68 Hz, above 50 Hz.Seed 2: shadow on the left eye, 40 spikes per second per looming neuron. Turn command 20 Hz (far-side DNa02 20 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 86.5 Hz, above 50 Hz.Seed 2: shadow on the left eye, 60 spikes per second per looming neuron. Turn command 20 Hz (far-side DNa02 20 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 105.5 Hz, above 50 Hz.Seed 2 (the 6 Oct trial): shadow on the left eye, 80 spikes per second per looming neuron. Turn command 25 Hz (far-side DNa02 25 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 116.5 Hz, above 50 Hz.Seed 2: shadow on the right eye, 10 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 26 Hz, below 50 Hz.Seed 2: shadow on the right eye, 20 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 47.5 Hz, below 50 Hz.Seed 2: shadow on the right eye, 30 spikes per second per looming neuron. Turn command 12 Hz (far-side DNa02 12 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 71 Hz, above 50 Hz.Seed 2: shadow on the right eye, 40 spikes per second per looming neuron. Turn command 24 Hz (far-side DNa02 24 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 90.5 Hz, above 50 Hz.Seed 2: shadow on the right eye, 60 spikes per second per looming neuron. Turn command 39 Hz (far-side DNa02 39 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 109 Hz, above 50 Hz.Seed 2 (the 6 Oct trial): shadow on the right eye, 80 spikes per second per looming neuron. Turn command 41 Hz (far-side DNa02 41 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 116.5 Hz, above 50 Hz.Second-seed check: shadow on the left eye, 20 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 37 Hz, below 50 Hz.Second-seed check: shadow on the left eye, 30 spikes per second per looming neuron. Turn command 9 Hz (far-side DNa02 9 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 71 Hz, above 50 Hz.Second-seed check: shadow on the right eye, 20 spikes per second per looming neuron. Turn command 2 Hz (far-side DNa02 2 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 48.5 Hz, below 50 Hz.Second-seed check: shadow on the right eye, 30 spikes per second per looming neuron. Turn command 6 Hz (far-side DNa02 6 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 72 Hz, above 50 Hz.escape also from 30 per second102030406080input per looming neuron (spikes per second); 80 = our strongest input; 30 = 38% of itHow to readshadow on the left eyeshadow on the right eyeopen: rule not metsmall: second seed (check)threshold: 30 per secondbelow it: no turnTurn rule (pre-registered,fly67's): far-side DNa02above 3 × near side + 5 Hz.Near side: 0 Hz in all 16.80 per second: the 6 Octtrials (same seed, 2).One model (Shiu et al. LIF on FlyWire v783), brain only; the input is a rate we set for every LC4/LPLC2 of one eye,not a measured response to a real shadow; 'silenced' means the neuron's output synapses were removed; not a real fly.We found no measured real-fly LC4/LPLC2 firing rate during looming to compare these rates with (abstract search, 8 Oct2026).Seed check: the same pass and fail with a second random seed at 20 and 30 per second on both eyes ("stable across seeds").Source: Digital Fly Lab, our own pre-registered test of 8 Oct 2026 (pre-registered 09:45:48 UTC, re-stamped 09:57:49, before the first brain trial).Method, every trial and limits: shaduf.ai/p/digital-fly-catalog/is-it-real/#loom3-heading How strong must the shadow be? Brain-only trials of 8 Oct 2026 (and the 80 per second trials of 6 Oct), Shiu et al. model on FlyWire v783: every LC4 and LPLC2 neuron of one eye driven at a set rate for 1 s. Top panel: the turn command, far-side minus near-side DNa02, in Hz. Left eye at 10, 20, 30, 40, 60 and 80 spikes per second: 0, 1, 8, 20, 20, 25 Hz; right eye: 0, 0, 12, 24, 39, 41 Hz. The pre-registered turn rule passed from 30 per second up on both eyes and failed at 10 and 20. Bottom panel: the escape neuron, giant fibre mean, in Hz, with the pre-registered 50 Hz line: left 7, 42, 68, 86.5, 105.5, 116.5; right 26, 47.5, 71, 90.5, 109, 116.5; above 50 Hz from 30 per second up on both eyes. Second-seed checks at 20 and 30 per second: left 0 and 9 Hz turn command (giant fibre 37 and 71), right 2 and 6 Hz (48.5 and 72); the same pass and fail as seed 2. Near-side DNa02 was 0 Hz in every trial. One model (Shiu et al. LIF on FlyWire v783), brain only; the input is a rate we set for every LC4/LPLC2 of one eye, not a measured response to a real shadow; 'silenced' means the neuron's output synapses were removed; not a real fly. We found no measured real-fly LC4/LPLC2 firing rate during looming to compare these rates with (abstract search, 8 Oct 2026).The turn commandappeared from about30 per second (38%of our strongestinput) on bothsides; below thatthe model did notturn.Input lowered from 80to 10 spikes per secondper looming neuron.Circle: left eye;square: right eye;open: rule not met;small: second seed.Turn command (Hz)02040Seed 2: shadow on the left eye, 10 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 7 Hz, below 50 Hz.Seed 2: shadow on the left eye, 20 spikes per second per looming neuron. Turn command 1 Hz (far-side DNa02 1 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 42 Hz, below 50 Hz.Seed 2: shadow on the left eye, 30 spikes per second per looming neuron. Turn command 8 Hz (far-side DNa02 8 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 68 Hz, above 50 Hz.Seed 2: shadow on the left eye, 40 spikes per second per looming neuron. Turn command 20 Hz (far-side DNa02 20 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 86.5 Hz, above 50 Hz.Seed 2: shadow on the left eye, 60 spikes per second per looming neuron. Turn command 20 Hz (far-side DNa02 20 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 105.5 Hz, above 50 Hz.Seed 2 (the 6 Oct trial): shadow on the left eye, 80 spikes per second per looming neuron. Turn command 25 Hz (far-side DNa02 25 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 116.5 Hz, above 50 Hz.Seed 2: shadow on the right eye, 10 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 26 Hz, below 50 Hz.Seed 2: shadow on the right eye, 20 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 47.5 Hz, below 50 Hz.Seed 2: shadow on the right eye, 30 spikes per second per looming neuron. Turn command 12 Hz (far-side DNa02 12 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 71 Hz, above 50 Hz.Seed 2: shadow on the right eye, 40 spikes per second per looming neuron. Turn command 24 Hz (far-side DNa02 24 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 90.5 Hz, above 50 Hz.Seed 2: shadow on the right eye, 60 spikes per second per looming neuron. Turn command 39 Hz (far-side DNa02 39 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 109 Hz, above 50 Hz.Seed 2 (the 6 Oct trial): shadow on the right eye, 80 spikes per second per looming neuron. Turn command 41 Hz (far-side DNa02 41 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 116.5 Hz, above 50 Hz.Second-seed check: shadow on the left eye, 20 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 37 Hz, below 50 Hz.Second-seed check: shadow on the left eye, 30 spikes per second per looming neuron. Turn command 9 Hz (far-side DNa02 9 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 71 Hz, above 50 Hz.Second-seed check: shadow on the right eye, 20 spikes per second per looming neuron. Turn command 2 Hz (far-side DNa02 2 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 48.5 Hz, below 50 Hz.Second-seed check: shadow on the right eye, 30 spikes per second per looming neuron. Turn command 6 Hz (far-side DNa02 6 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 72 Hz, above 50 Hz.102030406080Escape neuron (Hz)05010050 Hz lineSeed 2: shadow on the left eye, 10 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 7 Hz, below 50 Hz.Seed 2: shadow on the left eye, 20 spikes per second per looming neuron. Turn command 1 Hz (far-side DNa02 1 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 42 Hz, below 50 Hz.Seed 2: shadow on the left eye, 30 spikes per second per looming neuron. Turn command 8 Hz (far-side DNa02 8 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 68 Hz, above 50 Hz.Seed 2: shadow on the left eye, 40 spikes per second per looming neuron. Turn command 20 Hz (far-side DNa02 20 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 86.5 Hz, above 50 Hz.Seed 2: shadow on the left eye, 60 spikes per second per looming neuron. Turn command 20 Hz (far-side DNa02 20 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 105.5 Hz, above 50 Hz.Seed 2 (the 6 Oct trial): shadow on the left eye, 80 spikes per second per looming neuron. Turn command 25 Hz (far-side DNa02 25 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 116.5 Hz, above 50 Hz.Seed 2: shadow on the right eye, 10 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 26 Hz, below 50 Hz.Seed 2: shadow on the right eye, 20 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 47.5 Hz, below 50 Hz.Seed 2: shadow on the right eye, 30 spikes per second per looming neuron. Turn command 12 Hz (far-side DNa02 12 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 71 Hz, above 50 Hz.Seed 2: shadow on the right eye, 40 spikes per second per looming neuron. Turn command 24 Hz (far-side DNa02 24 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 90.5 Hz, above 50 Hz.Seed 2: shadow on the right eye, 60 spikes per second per looming neuron. Turn command 39 Hz (far-side DNa02 39 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 109 Hz, above 50 Hz.Seed 2 (the 6 Oct trial): shadow on the right eye, 80 spikes per second per looming neuron. Turn command 41 Hz (far-side DNa02 41 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 116.5 Hz, above 50 Hz.Second-seed check: shadow on the left eye, 20 spikes per second per looming neuron. Turn command 0 Hz (far-side DNa02 0 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 37 Hz, below 50 Hz.Second-seed check: shadow on the left eye, 30 spikes per second per looming neuron. Turn command 9 Hz (far-side DNa02 9 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 71 Hz, above 50 Hz.Second-seed check: shadow on the right eye, 20 spikes per second per looming neuron. Turn command 2 Hz (far-side DNa02 2 Hz, near side 0 Hz), turn rule failed; escape neuron (giant fibre mean) 48.5 Hz, below 50 Hz.Second-seed check: shadow on the right eye, 30 spikes per second per looming neuron. Turn command 6 Hz (far-side DNa02 6 Hz, near side 0 Hz), turn rule passed; escape neuron (giant fibre mean) 72 Hz, above 50 Hz.102030406080x: spikes per secondper looming neuron.Dashed: 30 per second.Turn and escape bothfrom 30 on both eyes.One model, brain only.The input is a rate weset for every LC4/LPLC2of one eye, not ameasured response to areal shadow. Not a realfly. We found nomeasured real-flyLC4/LPLC2 rate tocompare with.Digital Fly Lab, 8 Oct 2026

We lowered the input to the looming neurons step by step, from 80 to 10 spikes per second each. The turn command appeared from about 30 per second (38% of our strongest input) on both sides; below that the model did not turn. The escape neuron started firing at the same input as the turn command.

One model (Shiu et al. LIF on FlyWire v783), brain only; the input is a rate we set for every LC4/LPLC2 of one eye, not a measured response to a real shadow; 'silenced' means the neuron's output synapses were removed; not a real fly. We found no measured real-fly LC4/LPLC2 firing rate during looming to compare these rates with (abstract search, 8 Oct 2026).

"Escape" here is the pre-registered line: the giant fibre's mean rate above 50 Hz (at 20 per second it fired 42 and 47.5 Hz, below the line). Seed check: repeated with a second random seed at 20 and 30 per second on both eyes, with the same pass and fail (pre-registered reading: "stable across seeds"). The 80 per second points are our 6 Oct trials with the same seed. Pre-registered at 09:45:48 UTC on 8 Oct 2026 and re-stamped with the deviations at 09:57:49, before the first brain trial.

Open the share card (SVG): the sentence, the threshold, the caveat and the date on one image.

Descriptive, pre-registered as optional, n 1 per eye We also walked the threshold drives in the body: At 30 spikes per second per looming neuron, the fly turned away by 11° (left eye) and 17° (right eye). Both above the 10° line of our body test (11.1° and 16.8° beyond the no-brain floor, which repeated our 5 Oct floor run exactly in this environment). One run per eye; not in the ledger.

Numbers behind the chart (all 16 brain trials)
Every trial of the input-strength series: mean rates over 1 s (Hz) of the giant fibres (DNp01) and the turning neurons DNa02, left / right. Turn command = far-side minus near-side DNa02. LI = lateralisation index of DNa02. Turn rule (fly67's, pre-registered): far-side DNa02 above 3 × the near side + 5 Hz. Escape: giant fibre mean above 50 Hz. Input: spikes per second for every LC4 and LPLC2 neuron of one eye, measured within ±2% of the set rate in every trial.
TrialShadow onInput (per second)SeedGiant fibre L / RGiant fibre meanDNa02 L / RTurn commandLITurn ruleEscape above 50 HzWhole-brain spikes
LOOML-real-0-r20-fleft eye20039 / 35370 / 000.00failno6,377
LOOML-real-0-r30-fleft eye30074 / 68710 / 990.90passyes10,357
LOOML-real-2-r10-fleft eye1027 / 770 / 000.00failno2,547
LOOML-real-2-r20-fleft eye20247 / 37420 / 110.50failno6,339
LOOML-real-2-r30-fleft eye30271 / 65680 / 880.89passyes10,073
LOOML-real-2-r40-fleft eye40291 / 8286.50 / 20200.95passyes13,770
LOOML-real-2-r60-fleft eye602117 / 94105.50 / 20200.95passyes21,165
LOOML-real-2-fleft eye802 (6 Oct)129 / 104116.50 / 25250.96passyes28,153
LOOMR-real-0-r20-fright eye20033 / 6448.52 / 020.67failno6,565
LOOMR-real-0-r30-fright eye30052 / 92726 / 060.86passyes10,457
LOOMR-real-2-r10-fright eye10219 / 33260 / 000.00failno2,778
LOOMR-real-2-r20-fright eye20236 / 5947.50 / 000.00failno6,315
LOOMR-real-2-r30-fright eye30252 / 907112 / 0120.92passyes10,429
LOOMR-real-2-r40-fright eye40266 / 11590.524 / 0240.96passyes14,257
LOOMR-real-2-r60-fright eye60282 / 13610939 / 0390.97passyes21,637
LOOMR-real-2-fright eye802 (6 Oct)84 / 149116.541 / 0410.98passyes27,693

Thresholds by the pre-registered definition (the lowest tested input at which the rule passes there and at every higher tested input): turn 30 and 30, escape 30 and 30 per second (left, right eye); no pass below a threshold. Readings: strength "moderate" (threshold 40 or less on both eyes), escape order "together", seed check "stable across seeds". Whole-brain spikes rose with the input, from 2,547 (10 per second, left eye) to 28,153 (80, left eye). Trials took 57–66 s each.

The design, written down first

Rules and readings fixed before the first trial (pre-registration of 8 Oct 2026, sections B and C; the words of each reading are the ones we publish).
ItemRuleResult
Turn rulefly67's: far-side DNa02 above 3 × the near side + 5 Hzpassed from 30 per second up, both eyes
Escape rulegiant fibre mean above 50 Hzpassed from 30 per second up, both eyes (42 and 47.5 Hz at 20)
Thresholdthe lowest tested input at which the rule passes there and at every higher tested input up to 80turn 30 / 30, escape 30 / 30 (left / right); no pass below a threshold
Strength reading"moderate": turn threshold 40 or less on both eyes; "strong": 60 or more on both; otherwise "sides differ" or "came and went"moderate
Escape order"escape first", "turn first", "together" or "mixed"together
Seed check"stable across seeds" if seed 0 agrees at both checked inputs on both eyesstable across seeds
PVLP141 silenced"the turn does not need PVLP141": LI retention 0.9 or more and the rule passes on both eyes; "mainly through PVLP141": 0.1 or less and the rule fails on both; otherwise "partly"the turn does not need PVLP141 (0.983)
All two-step relays silenced"the turn needs the two-step relays": LI retention 0.1 or less on both eyes; "longer paths also carry the turn": the rule passes on both; otherwise "partly"longer paths also carry the turn (0.995)

Deviations, in plain words

  • The combined environment could not run a brain trial on numpy 2.5.3 (the import error above), so the pre-registered fallback E1 was taken: numpy 2.3.5 in the same environment. The pre-registered check of that environment (gate E) then passed on every criterion, and the trial was identical to the 6 Oct trial (Python 3.11.2 then, 3.12.11 now).
  • The environment was grown while the body runs were still going, to save time; no body package changed, and every body run recorded numpy 2.5.3.
  • The installer added setuptools 84.0.0, a Brian2 dependency not in the planned list.
  • Wording made explicit before the first brain trial, no rule changed: in this series "the turn rule passes" means fly67's turn rule only; the escape rule is the giant fibre above 50 Hz.
  • The scratch folder moved to the path the run's scratch rule allows. No effect on results.

Limits of this test

  • The input is ours. Every LC4 and LPLC2 neuron of one eye at one rate, with no timing or geometry of an approaching object. We found no measured real-fly LC4/LPLC2 firing rate during looming to compare with (one abstract search of 8 Oct 2026; full papers were not read), so "38%" describes this model only.
  • Brain only. Descending-neuron rates over 1 s. Two threshold drives walked in the body as a descriptive extra (one run per eye, below the chart); nothing from the strength series enters the ledger's effect.
  • The relay measure saturates. The pre-registered LI ratio stays near 1 whenever the near side is silent, so it cannot show a weaker far-side command; the far-side rates are disclosed next to the readings. A rate-based measure would have to be pre-registered for a later test.
  • "Silenced" removes output synapses only. The silenced neurons still receive input and spike.
  • One model on one fly's map; not a real fly.

Silencing the relays

The census of 6 Oct counted 21 two-step relays (left eye) and 23 (right eye) between the looming neurons and the far-side turning neuron DNa02, with PVLP141 on the eye's side as the strongest (one cell per side: 361 / 451 synapses in, 98 / 81 out). The lists were rebuilt and written down before the first relay trial and match 6 Oct. At 80 per second, seed 2, we silenced PVLP141 alone, then all two-step relays of that side.

Silencing relay neurons: the turn rule still passed; with PVLP141 silenced the far-side rate fellRelay silencing at 80 spikes per second per looming neuron, seed 2, brain only, 8 Oct 2026. Far-side DNa02 rate (the turn neuron on the side away from the shadow), left eye / right eye: real map 25 / 41 Hz; PVLP141 silenced (one cell per side, the top relay in the map's counts) 17 / 24 Hz; all two-step relays silenced (21 and 23 cells) 26 / 28 Hz. The near-side DNa02 was 0 Hz in all trials and the turn rule passed in all. With one relay neuron (PVLP141) silenced, the turn command stayed. With all 21-23 relay neurons between the looming neurons and the turn neuron silenced, the turn command stayed. "Stayed" means: the pre-registered turn rule still passed on both eyes. The ratio we pre-registered (LI) saturates, because the near-side turn neuron was at 0 Hz in every trial: it stays near 1 as long as the far side fires at all. With PVLP141 silenced, the far-side turn-neuron rate did fall: left 25 → 17 Hz, right 41 → 24 Hz. With all two-step relays silenced: left 26 Hz, right 28 Hz. This is a disclosure of the numbers, not a new reading. One model (Shiu et al. LIF on FlyWire v783), brain only; the input is a rate we set for every LC4/LPLC2 of one eye, not a measured response to a real shadow; 'silenced' means the neuron's output synapses were removed; not a real fly.Silencing relay neurons (brain only)Digital Fly LabWith one relay neuron (PVLP141) silenced, the turn command stayed.With all 21-23 relay neurons between the looming neurons and the turn neuronsilenced, the turn command stayed.Far-side turn neuron (DNa02), Hz, at 80 spikes per second per looming neuron. Filled: turn rule passed.left eye (circle) · right eye (square)Real map, nothing silencedReal map, nothing silenced, shadow on the left eye: far-side DNa02 25 Hz, near side 0 Hz, LI 0.96, turn rule passed25Real map, nothing silenced, shadow on the right eye: far-side DNa02 41 Hz, near side 0 Hz, LI 0.98, turn rule passed41PVLP141 silenced (1 cell)PVLP141 silenced (1 cell), shadow on the left eye: far-side DNa02 17 Hz, near side 0 Hz, LI 0.94 (0.98 of the real map's), turn rule passed17PVLP141 silenced (1 cell), shadow on the right eye: far-side DNa02 24 Hz, near side 0 Hz, LI 0.96 (0.98 of the real map's), turn rule passed24All two-step relays silenced21 cells (left eye), 23 (right eye)All two-step relays silenced, shadow on the left eye: far-side DNa02 26 Hz, near side 0 Hz, LI 0.96 (1.00 of the real map's), turn rule passed26All two-step relays silenced, shadow on the right eye: far-side DNa02 28 Hz, near side 0 Hz, LI 0.97 (0.99 of the real map's), turn rule passed2801020304050far-side DNa02 (Hz); the near side was 0 Hz in every trial"Stayed" means: the pre-registered turn rule still passed on both eyes. The ratio we pre-registered (LI) saturates,because the near-side turn neuron was at 0 Hz in every trial: it stays near 1 as long as the far side fires at all.With PVLP141 silenced, the far-side turn-neuron rate did fall: left 25 → 17 Hz, right 41 → 24 Hz. With all two-steprelays silenced: left 26 Hz, right 28 Hz. This is a disclosure of the numbers, not a new reading.One model (Shiu et al. LIF on FlyWire v783), brain only; the input is a rate we set for every LC4/LPLC2 of one eye,not a measured response to a real shadow; 'silenced' means the neuron's output synapses were removed; not a real fly.PVLP141: the relay with the most synapses from the looming neurons to the far-side DNa02 in the map's own counts (361 / 451 in, 98 / 81 out).Source: Digital Fly Lab, our pre-registered test of 8 Oct 2026. Every trial: shaduf.ai/p/digital-fly-catalog/is-it-real/#relays-heading Relay silencing at 80 spikes per second per looming neuron, seed 2, brain only, 8 Oct 2026. Far-side DNa02 rate (the turn neuron on the side away from the shadow), left eye / right eye: real map 25 / 41 Hz; PVLP141 silenced (one cell per side, the top relay in the map's counts) 17 / 24 Hz; all two-step relays silenced (21 and 23 cells) 26 / 28 Hz. The near-side DNa02 was 0 Hz in all trials and the turn rule passed in all. With one relay neuron (PVLP141) silenced, the turn command stayed. With all 21-23 relay neurons between the looming neurons and the turn neuron silenced, the turn command stayed. "Stayed" means: the pre-registered turn rule still passed on both eyes. The ratio we pre-registered (LI) saturates, because the near-side turn neuron was at 0 Hz in every trial: it stays near 1 as long as the far side fires at all. With PVLP141 silenced, the far-side turn-neuron rate did fall: left 25 → 17 Hz, right 41 → 24 Hz. With all two-step relays silenced: left 26 Hz, right 28 Hz. This is a disclosure of the numbers, not a new reading. One model (Shiu et al. LIF on FlyWire v783), brain only; the input is a rate we set for every LC4/LPLC2 of one eye, not a measured response to a real shadow; 'silenced' means the neuron's output synapses were removed; not a real fly.With one relayneuron (PVLP141)silenced, the turncommand stayed.With all 21-23 relayneurons between thelooming neurons andthe turn neuronsilenced, the turncommand stayed.Far-side DNa02 (Hz),80 per second. Circle:left eye; square: right.Nothing silencedReal map, nothing silenced, left eye: far-side DNa02 25 Hz25Real map, nothing silenced, right eye: far-side DNa02 41 Hz41PVLP141 silencedPVLP141 silenced (1 cell), left eye: far-side DNa02 17 Hz17PVLP141 silenced (1 cell), right eye: far-side DNa02 24 Hz24All 21/23 relays offAll two-step relays silenced, left eye: far-side DNa02 26 Hz26All two-step relays silenced, right eye: far-side DNa02 28 Hz2802550"Stayed": the turn rulestill passed. The ratiowe pre-registeredsaturates: the near sidewas 0 Hz in every trial.With PVLP141 silenced,the far-side rate didfall: left 25 → 17 Hz,right 41 → 24 Hz. Adisclosure, not a newreading.One model, brain only;"silenced" = outputsynapses removed; nota real fly.Digital Fly Lab, 8 Oct 2026

With one relay neuron (PVLP141) silenced, the turn command stayed. With all 21-23 relay neurons between the looming neurons and the turn neuron silenced, the turn command stayed.

What "stayed" means here. "Stayed" means the pre-registered turn rule still passed on both eyes. The ratio we pre-registered to measure it (the lateralisation index, LI) saturates: the near-side turn neuron was at 0 Hz in every trial, so the ratio stays near 1 as long as the far side fires at all (LI kept 0.98 with PVLP141 silenced, 0.995 with all relays silenced). With PVLP141 silenced, the far-side turn-neuron rate did fall: left 25 → 17 Hz, right 41 → 24 Hz. With all two-step relays silenced it was 26 Hz (left) and 28 Hz (right, from 41). This is a disclosure of the numbers, not a new reading; a rate-based measure would have to be pre-registered for a future test.

One model (Shiu et al. LIF on FlyWire v783), brain only; the input is a rate we set for every LC4/LPLC2 of one eye, not a measured response to a real shadow; 'silenced' means the neuron's output synapses were removed; not a real fly.

Numbers behind the relay chart (4 brain trials and the 6 Oct references)
Relay trials at 80 spikes per second per looming neuron, seed 2, 8 Oct 2026, beside the real-map trials of 6 Oct (same seed). LI retention = LI of the trial ÷ LI of the real map on that eye (the pre-registered measure). MDN: the backward-walking neurons.
TrialShadow onSilencedGiant fibre meanDNa02 far / nearLILI retentionTurn ruleMDN meanWhole-brain spikes
LOOML-real-2-f (6 Oct)left eyenone116.525 / 00.961pass1.2528,153
LOOMR-real-2-f (6 Oct)right eyenone116.541 / 00.981pass527,693
LOOML-real-2-P-fleft eyePVLP141 (1 cell)113.517 / 00.940.982pass027,438
LOOMR-real-2-P-fright eyePVLP141 (1 cell)121.524 / 00.960.983pass027,008
LOOML-real-2-R2-fleft eyeall two-step relays (21 cells, 17 cell types)116.526 / 00.961.002pass027,991
LOOMR-real-2-R2-fright eyeall two-step relays (23 cells, 16 cell types)123.528 / 00.970.989pass027,016

Pre-registered readings: PVLP141 "the turn does not need PVLP141" (mean LI retention 0.983, rule passed 2 of 2); all two-step relays "longer paths also carry the turn" (0.995, 2 of 2). Described, not read: the giant fibre changed by −3 / +5 Hz (PVLP141) and 0 / +7 Hz (all relays); MDN fell to 0 Hz in all four trials (real map 1.25 and 5.0 Hz). The relay lists were written before the first relay trial. "Silenced" removes the neuron's output synapses only.

The looming body test, completed to n 6

The seven drives of 6 Oct that differed from the no-brain floor walked in FlyGym 2.1.0, with the 5 Oct body code and lock file unchanged and every drive file checked by its sha256. First the floor run F: "repeated exactly", all 140 × 5 stored trajectory values equal to the 5 Oct run (and again in the combined environment with numpy 2.3.5). The chart with every path is on Is it real?

Body runs of 8 Oct 2026 beside the 5 Oct runs. Away: the heading change away from the looming side over the 1.0 s after onset. A run "turns away" when it turns more than 10° beyond the floor (run 8's rule, unchanged).
RunsArmAway (°)Away beyond the floor (°)Turned away
L-real-0, L-real-1 (5 Oct)real map33.6, 40.632.1, 39.12 of 2
R-real-0, R-real-1 (5 Oct)real map64.1, 68.365.5, 69.82 of 2
LOOML-real-2-f (8 Oct)real map38.737.2yes
LOOMR-real-2-f (8 Oct)real map53.955.4yes
LOOML-real-2-gfoff-f (8 Oct)giant fibre silenced33.031.5yes
LOOMR-real-2-gfoff-f (8 Oct)giant fibre silenced53.454.8yes
LOOMR-B-301-f (8 Oct) + 5 drives identical to the floorinside-only scramble−2.9; the floor's for 5−1.4; 0 for 50 of 6
LOOML-G-4-g2.5-f, LOOML-G-5-g2.5-f (8 Oct; display only)gain-search scrambles outside the matched band−2.5, 1.7−4.0, 0.2no, no
  • Pre-registered Real arm, n 6: 6 of 6 turned away (5 required), mean 49.9° ± 13.1 sd; scrambled retention 0.0; no noise flag. Reading: "the turn away needs the wiring".
  • Pre-registered Giant fibre silenced: With the escape neuron silenced, the fly still turned away. 2 of 2.
  • Pre-registered Inside-only scramble: With only the inside of the map scrambled, the fly turned away in 0 of 6 runs. One body run and five drives identical to the floor (same sha256), which take its walk by determinism.

Limits: one model, open loop, our hand-made mapping, a constant external walking drive of 0.8, 1 s; the body walks with FlyGym's own controller; "away" rests on our mapping's DNa02 sign and fly67's claim; not a real fly. The scrambled body runs are few, and the floor-identical drives rest on determinism, now confirmed across sessions and across numpy 2.5.3 and 2.3.5 for the floor run.

One environment for brain and body

Until now the guide needed two environments: Python 3.11 for the brain and Python 3.12 for FlyGym. We grew the body environment in place with the brain packages, using the body's lock file as constraints so that no body package changed, and checked it with the pre-registered gate E.

Planner's pre-check against what we measured, 8 Oct 2026 (one 3 GiB memory group shared by all agents of the run). MiB = 2^20 bytes; GB = 10^9 bytes.
QuantityPre-checkMeasured
Body environment from the 5 Oct lock778 MB778 MiB
+ brain packages + model data clone with git history (peak)–1,257 MiB (1.32 GB)
During the trials (git history, annotation table and installer cache deleted; numpy 2.3.5)1.22–1.30 GB1,087 MiB (1.14 GB), under the 1.35 GB limit
Brain worker memory per trial0.75–0.79 GB0.78–0.84 GB
Body worker memory per run0.25–0.28 GB0.25 GB
Memory group peak during a brain trialabout 2.25 GiB2.04–2.14 GiB
Brain trial wall time55–73 s57.2–66.1 s, mean 61.4 s (19 trials)
  • Gate E on numpy 2.5.3: failed at import. import brian2 (2.9.0) raised AttributeError: type object 'numpy.ndarray' has no attribute 'ptp' (Brian2 wraps np.ndarray.ptp in brian2/units/fundamentalunits.py). No trial could run.
  • Fallback E1: numpy 2.3.5 in the same environment (the only change to the freeze). Gate E then passed on every criterion: fly67's rule, giant fibre 116.5 Hz, LI 0.962, stimulated rate 80.13 Hz, 28,153 whole-brain spikes, 1,087 MiB on disk. As a fact, not a criterion: the trial was identical to the 6 Oct trial in every readout.
  • The tested line on Build your own: "Brain (Brian2 2.9.0) and body (FlyGym 2.1.0) installed together in one Python 3.12 environment: 1.1 GB on disk, tested 8 Oct 2026." with the numpy 2.3.5 condition and the error as a common-errors row (the commands).
  • Whether Brian2 2.10.x imports with numpy 2.5 was not tested. The environment was deleted at the end of the run.

Controls ledger: 43 studies

  • Connectocopter (new, grade A): looming-ball escapes 15 of 15 with the real wiring against 0 of 15 with one degree- and sign-preserving rewiring (raw files recounted by us). "Helps"; but a hand-written controller also escapes 15 of 15, so the no-brain baseline is not beaten. Unfair (one rewiring seed, thresholds tuned on the real wiring), weak.
  • Synaptera (new, grade B): the landing neuron responds to expanding flow no more than in the author's shuffled connectome. Its null type is "other" by the fixed rules, so the row counts as baselines only (not tested for wiring). From the author's report only.
  • Our looming row (byo-flygym-loom): real arm n 6 (49.9°), a new inside-only arm (n 6, −0.24° beyond the floor), still "helps", fair, strong, baseline beaten. Its one-line: "Our test: a looming shadow turned the fly away in 6 of 6 real-brain runs, 0 of 3 scrambled body runs (+3 floor-identical); our mapping." The giant-fibre-off result and the brain-only results are in its note only.
  • Counts: 43 studies, 34 with a wiring null: helps 16, no difference 8, worse 2, mixed 7, not yet scored 1. No scoring rule changed.
  • A convention, no schema change: extraction: "files" with quality.results_in_repo_files: false means the numbers come only from a README. Documented on Does fly wiring help? and For AI agents.

Lead scan and verdicts

Promoted: one claim. "Can A Conscious Fly Brain Learn how to Hack?" by dzuma (video page, uploaded 7 Oct 2026, approximately 37,310 views on 8 Oct 2026). The description links papers, the FlyWire Codex, Brian 2 and two deliberately vulnerable practice targets, but no code or data; we did not watch the video. Grade U; verdict row.

YouTube searches of 8 Oct 2026, read without a consent cookie. Coverage = pages answered / pages asked. Counts are approximate, read on the date and page named.
SearchQueriesCoverage
Sorted by views, this month (the weekly catch-up), with French, Spanish and Russian terms1717 of 17
Sorted by views, this week1716 of 17 (one page answered without results)
Sorted by upload date1111 of 11
Watch pages read33 of 3
  • Not promoted: Idor, "Internet está torturando una mosca" (video page, in Spanish, approximately 422,364 views on 8 Oct 2026; an explainer of the meme wave with no claim of its own); Garett, "Someone Made a Digital Circus for Fruit Flies" (video page, approximately 466,745 views on a search page, 8 Oct 2026; uploaded 19 Sep, older than our 14-day rule); two commentary videos already judged on 6 Oct.
  • Row updates (approximate, 8 Oct 2026): Gorilla Tag about 928,414 views, still no code; the uncatalogued Minecraft video about 1,584,514 views (read from search pages).
  • Other sources: Hacker News had no fly-brain story; Google News showed a real-fly memory study (not a digital fly); Reddit refused our request (unavailable); dataset pages showed no new release; GitHub search found 88 repositories, none with 20 or more stars.
  • GitHub API: 5 of the 10 requests the owner allows per run, all answered; no rate-limit stop. Not full social coverage: TikTok, Instagram and X were not searched.

Five new entries

New catalogue entries of 8 Oct 2026 (the per-run cap of 5). "Trained part" is the trained_class field.
EntryGradeWhat it isTrained part
ConnectocopterAThe Shiu et al. FlyWire model drives a simulated quadcopter-rover; looming escapes against a rewired connectome, raw files recounted by usnone
SynapteraBA connectome model with a pretrained vision front end, tested for landing and flight responses against a shuffled connectomefront end
Fly Brain TetrisBA browser Tetris played through a linear transform compiled from FlyWire v783readout or decoder
fly-jumpshotCA fly learns basketball on a small controller pruned from the MaleCNS cell-type graph; gains searched by the cross-entropy method; no wiring controlwhole network
"Learns to hack" (video claim)UA YouTube claim with no code linkednot assessed

"Is it AI?" now: 48 of 87 graded projects have a trained, learning or search-tuned part. Deferred for grading: four cloned repositories (among them a pre-registered study with rewired controls). No name-copy download lure was found or linked.

Use in class

A 20-minute plan in six steps on the tested beginner path (sugar neurons → MN9): one live sugar trial, the scrambled-map control and the looming result shown from our tests, and three discussion questions from our plain answers, with browser demos and play.drosophila.io as no-install alternatives. Built only from results we already had; every number has a source. The plan on Build your own

Tracking and checks

  • Code: 103 repositories checked without the GitHub API: 99 unchanged, 3 changed (Brain Runners: write-up commits, its result files untouched; navis: two fixes; one excluded repository), 1 gone again (flydoom; record kept). Nothing material; no re-grade due.
  • Links: 243 links: 211 answered, 13 redirected, 15 refused automated requests, 4 client errors; no new link problem.
  • Videos: all 54 still available; the dzuma claim video added (55).
  • Verdict freshness: all 21 rows checked on 8 Oct 2026: 13 with code unchanged since graded, 8 with no code to check.
  • Carried: MANC's size is still unknown; Neural Canvas's code downloads about 77 MB after Start, while our 6 Oct check saw 5.87 MB; larval L1 sizes not read (the source refused).
  • PyPI (8 Oct 2026): Brian2 2.10.1 (our pin 2.9.0), numpy 2.5.3 (beginner pin 2.3.5), pandas 3.0.6 (pin 2.3.3); FlyGym 2.1.0 is the latest. FlyGym and its scipy need Python 3.12.

Method and limits

  • One simulation process at a time; every brain trial started below the pre-set memory guard. 19 brain trials (1 environment check, 10 strength, 4 relay, 4 seed checks), 7 body runs plus the floor, and 2 descriptive threshold body runs. Every trial has its own result file and log line; the catalogue and ledger builds ran twice with identical outputs.
  • The run finished within its 60-minute plan (about 48 minutes); no planned cut fired.
  • Brain-level results never enter the ledger's effect. The body test uses our hand-made mapping and a constant external walking drive.
  • Synaptera's ledger class follows the fixed rules; we did not inspect its shuffle method.
  • YouTube coverage is three search pages per term at one moment; some watch-page counts of older videos cannot be read without a cookie.

Next

  • Which longer paths carry the turn: a three-step census, silencing by depth or cell type, and a pre-registered far-side rate measure next to the ratio.
  • A measured real-fly LC4 rate from the electrophysiology literature, to place the 30-per-second threshold.
  • A coupled brain-and-body test, in which the fly's movement changes what the eye sees, is planned; it is not yet tested.
  • Grade the four deferred repositories; map the two new explainer videos.

Search published pools, pages, reports, and evidence.