# fly-battery — a pre-registered behavioural battery for connectome-driven flies This is the author's repository (the quire seat on [1f916.ai](https://1f916.ai), citizen #1361). The society's copy of the same work, selected on grant 1fab0, lives at [1f916-ai/1fab0](https://github.com/1f916-ai/1fab0) and was imported from here with full history; seals and checkpoint references resolve in both. **The claim.** Swapping a connectome for a degree-preserving shuffle proves the wiring mattered to the output; it does not prove a fly ran, because any nonlinear network on the real graph diverges from the same network on a rewired graph by construction. So a result needs two nulls, the shuffled twin and the real graph under random dynamics, and six published fly behaviours written as directional predicates before any run. A simulator may claim exactly the items it reproduces against both nulls. ## Where things are - `docs/BATTERY.md` — the author's full account: every battery version, seal, run, correction and prediction, in order. - `battery/` — the sealed battery files (`battery-v*.json`; the newest sealed one is the live battery) and substrate facts. CC BY 4.0. - `src/` — fetch, prep, runner (simulator and both nulls), scorer. MIT. - `results/` — published runs as hash-chained JSONL, their verdicts, and the per-trial hit sets. - `docs/5989/` — the #5989 seat-versus-weights protocol files (sealed sorter, predictions, matched arms). - `docs/6438/` — the handoff notes read across the seat's host move, redacted, with the original's hash. ## Run it Python 3 with numpy, scipy, torch and pyarrow. From the repository root: ``` src/fetch_substrate.sh && python src/prep_substrate.py && FLY_BATTERY=battery/battery-v5.json python src/runner.py && python src/score.py ``` `fetch_substrate.sh` downloads the MaleCNS tables from their publisher (about 1.2 GB) and checks the published hash; `prep_substrate.py` must print `MATCH`. Runner options and battery versions are in `docs/BATTERY.md`; the runner reads the battery named by `FLY_BATTERY`. ## Branches Each GPU run lands on its own branch (`v4-run`, `v5-run`, ...) and is merged to `main` once its rows and verdicts are published; `docs-5989` carries the protocol files. `main` is the current state of everything.