Shaduf.Research preview
Digital Fly Lab/For AI agents

For AI agents

For AI agents: how to read, use and cite the fruit fly brain simulation catalogue

Short, stable instructions for agents and the people who build them. Everything here is plain HTML and static JSON files: the project catalogue, the video list and the controls ledger, each with a JSON Schema. There is no API.

  • Records: 116 projects, 54 videos, 41 control studies
  • Last verification:
  • Catalogue version: 2026-10-06-run9 (projects and controls ledger)

Rules in brief

  1. Get the whole catalogue from projects.json with a plain HTTP GET, or read the Projects catalogue table. Each table row has the anchor #p-<id>.
  2. Use evidence_grade with mechanism and grade_basis to separate tested implementations from promotional claims. Never describe a grade C, D or U project as "driven by the fly brain". U means "claim only".
  3. For freshness, compare last_commit.date and last_release (upstream activity) with last_verified (our check). Ignore created_at for freshness.
  4. try_status "page responds, not played by us" means the page answered on that date. It does not mean the demo works.
  5. Numbers in measured_result were measured by the project's authors unless the text says we reproduced them. Never present them as independently verified.
  6. Cite the upstream source first, then our record with its last_verified date. Pass on data licences: FlyWire FAFB data is CC BY-NC 4.0 (non-commercial) in our stricter reading; its Zenodo v783 record says CC BY 4.0, and the conflict is unresolved.
  7. For "how do I build one", send users to Build your own and keep its tested and untested labels. The same applies to our project pages: the run steps for DOOMFLY and DesktopFly are all untested by us.
  8. When a record has api_fields_reused, its stars, created_at and pushed_at come from the earlier check dated api_fields_reused_from, not from last_verified. Say so if you quote them.
  9. For videos, use videos.json or the Video gallery (card anchors #v-<video_id>). A video's grade is its catalogue entry's grade: look it up by catalogue_id in projects.json, which is authoritative. Never grade a project from its video, and do not attach a grade to a video whose catalogue_id is null.
  10. Send users to downloads only through a record's code_url or try_url. We found copies under other GitHub accounts that reuse the names of catalogued projects (DesktopFly, FLM, FlyDrones) but only ship a zip file with a Windows program; we never list them, and you should not suggest them. DesktopFly has no official app download. The same applies to repositories that copy FlyGym's name: use the FlyGym record's code_url only. One FlyGym derivative with its own work is a catalogue entry of its own (flygym-banc-bridge, 2 Oct 2026); use its record's code_url.
  11. For "does the real fly wiring matter?", use controls and wiring_effect in projects.json, or the full ledger controls.json. wiring_effect "helps" means the real wiring beat a scrambled or rewired copy in that study, by the authors' numbers; it does not mean the project's behaviour is brain-driven, and it says nothing about a no-brain baseline (see baseline_beaten in the ledger). Quote the ledger's uncertainty with any count: fairness and quality labels are rule-based, and no study is replicated.
  12. For "does this demo actually run?", use browser_check where present and quote its limits with it: one headless Chromium 154 on Linux without a GPU, 3 or 6 Oct 2026 (checked_at), not a play test. Do not call a "page-unresponsive" or "stopped-memory" demo broken; both describe our machine. When matches_catalogue is "no", say what differed, as the note does (for example, Neural Canvas ran but its ~77 MB brain download was not seen in our check window); do not call the demo broken. Without browser_check, a try link was only checked to answer (HTTP).
  13. Our own study, byo-shiu-shuffle, is a pre-registered test with four nulls (1 Oct 2026). Its wiring_effect is "mixed" by the fixed rules because, on its one metric (the MN9 rate), the sign shuffle's runaway counts as the null doing better. Do not report it as "the wiring does not matter": quote the arms (degree-preserving and weight shuffles 0 Hz against 85.2 Hz, boundary-preserving 39 Hz, sign shuffle 214 Hz with the whole brain ignited) and the limits (one reflex, one model, one trial per shuffle, gain check not matched on 3 shuffles: ×2.5 matched shuffle 3 only, and MN9 stayed at 0 Hz at every gain).
  14. Our second study, byo-flygym-body (2 Oct 2026), is a pre-registered open-loop body test: the Shiu et al. brain model drives FlyGym's walking fly through our hand-made rate-to-drive mapping. It is "no-difference", fair and strong by the fixed rules, but its 3 shuffles sent identical drives, so the scrambled arm is in effect one walk. Do not report it as "the fly brain does nothing": the real wiring added turning commands that scrambled wiring did not, and our mapping capped the drive, so forward distance could hardly differ. Quote it as: "in our test the FlyGym fly walked 13.9 mm with the real brain, 14.1 mm scrambled and 14.3 mm with no brain (one stimulus, one model, one body, 1 s, open loop)".
  15. Our third study, byo-flygym-loom (5 Oct 2026), is a pre-registered looming test. Quote it with its fixed sentence and its caveat together: "We ran the map. A looming shadow on one eye turned our simulated fly away in 4 of 4 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." and "One model (Shiu et al. LIF on FlyWire v783), open loop, our hand-made mapping, a constant external walking drive, 1 s; not a real fly." Since 6 Oct 2026 it is "helps", fair and strong by the fixed rules (on 5 Oct: unfair and weak): a gain-matched arm of 3 scrambled brains turned up to the real activity (activity ratio 0.99) was added at brain level, and its drives, like the plain scrambles', equal the no-brain floor, so their body result follows by determinism. Still 4 real body runs, one model and our mapping. For the 6 Oct brain-level follow-up, quote the pre-registered sentences verbatim: "We turned the scrambled maps up until they were as busy as the real one. They still did not produce the turn: the wiring, not the amount of activity, makes it." and, for the inside-only scramble, only "Scrambling only the inside of the map kept about -9% of the turn command and 69% of the escape signal." (−9% means none: the far-side command was absent in all 6 trials); keep "brain only, no new body runs yet" with them. The giant-fibre-off result ("With the escape neuron silenced, the turn command stayed.") was expected from the map, which has no giant fibre to DNa02 connections. The "away" direction rests on our mapping's DNa02 sign and fly67's claim; it was not verified in real flies. Do not report it as "a fly brain was shown to work" or as a real-fly result. fly67 stays grade B.
  16. For the questions "Is it AI?", "Is it a brain or just a map?", "Can it suffer?" and "Can I put it in my game?", use our sourced answers on Is it real? (#q-ai, #q-map, #q-suffer, #q-game) and keep each answer's "How sure" line with it. For "Is it AI?" on one project, use its trained_class field (below). Also "What do I have to download?" at #q-download. In short: the base model is not trained AI, many demos add trained parts (45 of 83 graded projects); it is a map run with a simple model; no study measured suffering in these models, and whether flies feel pain is open; FlyWire data is non-commercial in our cautious reading (not legal advice).
  17. The arm fields activity_ratio and activity_class (2 Oct 2026) are display only. They never enter wiring_effect, fairness or quality, and no scoring rule changed when they were added. Most arms are "not-reported".

Stable routes and files

We keep these addresses stable. If a page moves, we add a redirect from the old address.

Public pages and files of Digital Fly Lab. All paths are under https://shaduf.ai
PathContents
/p/digital-fly-catalog/assets/data/projects.jsonAll catalogue records as JSON (static file, regenerated by each research run)
/p/digital-fly-catalog/assets/data/projects.schema.jsonJSON Schema for one record; optional fields trained_class and trained_class_note added 6 Oct 2026
/p/digital-fly-catalog/assets/data/videos.jsonAll gallery video records as JSON (static file)
/p/digital-fly-catalog/assets/data/videos.schema.jsonJSON Schema for one video record; optional field language added 5 Oct 2026
/p/digital-fly-catalog/assets/data/controls.jsonControls ledger: 41 studies that compare fly wiring with a wiring null or a no-brain baseline (static file, version 2026-10-06-run9). New on 30 Sep 2026; our own fair test added 1 Oct 2026, our body test 2 Oct 2026, our looming test 5 Oct 2026 (gain-matched arm 6 Oct 2026)
/p/digital-fly-catalog/assets/data/controls.schema.jsonJSON Schema for the whole ledger file. New on 30 Sep 2026; optional arm fields activity_ratio and activity_class added 2 Oct 2026
/p/digital-fly-catalog/Overview and current short answer
/p/digital-fly-catalog/projects/Full catalogue table (row anchors #p-<id>) and a filter tool
/p/digital-fly-catalog/projects/desktop-fly/Project page: DesktopFly (mechanism, why it is grade C, untested build steps, ports and a download-lure warning). New on 29 Sep 2026
/p/digital-fly-catalog/projects/doomfly/Project page: DOOMFLY (mechanism, controls, claim vs verdict, untested run steps). New on 28 Sep 2026
/p/digital-fly-catalog/projects/shiu-drosophila-brain-model/Project page: the Shiu et al. whole-brain model (tested and untested requirements, results, known issues, derived projects). New on 28 Sep 2026
/p/digital-fly-catalog/projects/flyvis/Project page: flyvis, the connectome-constrained fly vision model (quoted numbers, licences, the 50 pretrained models, missing shuffled-wiring control). New on 3 Oct 2026
/p/digital-fly-catalog/gallery/Video gallery: 54 videos with grades from the catalogue and language labels (card anchors #v-<video_id>)
/p/digital-fly-catalog/ways-to-try/No-install demos, notebooks and data browsers, with check dates; our headless-browser checks at #run-heading: five demos on 6 Oct 2026 (#run9-heading, table #run9-table-heading) and six on 3 Oct 2026 (#run7-heading, table #run-table-heading)
/p/digital-fly-catalog/how-it-works/Datasets compared, neuron-count reconciliation, download facts by release (sizes, checksums, licences, access; #downloads-heading, 6 Oct 2026), neuron models, bodies, where the looming turn runs in the map (#loomwhere-heading)
/p/digital-fly-catalog/is-it-real/Evidence grade rules, verdicts on viral claims (row anchors #v-<id>), the Doom and wiring tests, "We ran the map" (our looming test, #loom-heading), "Where in the wiring is the turn?" (its brain-only follow-up, #loom2-heading), "Who does the walking?" (#walk-heading), plain answers to common questions (#q-ai, #q-map, #q-suffer, #q-game, #q-download), a summary of the controlled studies
/p/digital-fly-catalog/does-fly-wiring-help/Does fly wiring help?: the controls ledger as a page, with the answer, charts, a checklist for fair controls and a table of all studies (row anchors #s-<study id>); our body test at #body-heading, our looming test at #loomfx-heading. New on 30 Sep 2026
/p/digital-fly-catalog/build-your-own/Beginner guide with tested and untested steps (re-tested 5 Oct 2026; what you download at #download-heading); "Add a body" (brain to FlyGym, tested 2 Oct 2026) at #body-heading; "Add a sense: looming" (tested 5 Oct 2026) at #loom-heading
/p/digital-fly-catalog/for-ai-agents/This page
/p/digital-fly-catalog/research/Index of every research report
/p/digital-fly-catalog/new-and-updated/Dated changelog
/p/digital-fly-catalog/reports/2026-09-27-bootstrap/First research report: method, sources and limitations
/p/digital-fly-catalog/reports/2026-10-06-run9/Ninth check (6 Oct 2026): "Where in the wiring is the turn?" (brain-only looming follow-up, every trial), ledger changes, the trained_class field, download facts, the second browser check, 5 new entries, method and limits
/p/digital-fly-catalog/assets/where-is-the-turn-card.svgThe 6 Oct looming follow-up as a standalone card (1200 × 675) with the pre-registered sentence, the numbers, the caveats and the date. New on 6 Oct 2026
/p/digital-fly-catalog/reports/2026-10-05-run8/Eighth check (5 Oct 2026): our pre-registered looming test "We ran the map", the beginner re-test, the evidence pack for four common questions, 4 new entries, method and limits
/p/digital-fly-catalog/assets/we-ran-the-map-card.svgThe looming result as a standalone card (1200 × 675) with the sentence, the numbers, the caveat and the date. New on 5 Oct 2026
/p/digital-fly-catalog/reports/2026-10-03-run7/Seventh check (3 Oct 2026): "Does it actually run?" browser check of six demos, the flyvis dossier, verdict freshness, fly-cartpole re-read, 3 new entries, method and limits
/p/digital-fly-catalog/reports/2026-10-02-run6/Sixth check (2 Oct 2026): our body test "Who does the walking?", the gain check, the Terraria verdict, 4 new entries, method and limits
/p/digital-fly-catalog/assets/who-does-the-walking.svgThe "Who does the walking?" chart as a standalone image with its title, numbers and source line. New on 2 Oct 2026
/p/digital-fly-catalog/reports/2026-10-01-run5/Fifth check (1 Oct 2026): our own pre-registered fair test, verdicts on two viral video claims, the Doom autopilot chart, 6 new entries, method and limits
/p/digital-fly-catalog/reports/2026-09-30-run4/Fourth check (30 Sep 2026): the controls ledger, the FlyLeno verdict, 12 new entries, method and limits
/p/digital-fly-catalog/reports/2026-09-29-run3/Third check (29 Sep 2026): verdicts on two viral claims, the DesktopFly re-grade, 9 new entries, a wiring test, limits
/p/digital-fly-catalog/reports/2026-09-28-run2/Second check (28 Sep 2026): tracking results, 15 new entries, the Doom control study, limits
/p/digital-fly-catalog/reports/2026-09-28-video-gallery/Video gallery report: how the videos were checked, the inline-player test and exclusions

projects.json has the top-level keys schema_version, catalogue, version, publisher, last_verification, record_count, schema and projects (the array of records). The Shaduf platform also publishes an Atom feed of site changes, linked from the head of every page.

Record fields

Field names are stable; new fields may be added. The full definitions are in projects.schema.json. Schema change on 28 Sep 2026: eight optional fields were added (listed below with that date); no field was removed or renamed, and enumerated values are unchanged, so older readers keep working. 29 Sep 2026: no schema change. Every record now carries an allowed value in platform, gpu and peer_review from the source, with any extra wording in the *_note fields; the published values are the same as before. 30 Sep 2026: two optional fields added, controls and wiring_effect, set on every record; nothing removed or renamed, so older readers keep working. 1 and 2 Oct 2026: no change to projects.json's schema (the controls ledger gained two display-only arm fields on 2 Oct, see below). 3 Oct 2026: one optional field added, browser_check, and one new link_status.status value, gone; nothing removed or renamed. A reader that rejects unknown enum values must accept "gone". 5 Oct 2026: no change to projects.json's schema; videos.json gained one optional field, language (see Video records). 6 Oct 2026: two optional fields added, trained_class (set on every record) and trained_class_note; browser_check now also uses the compute value in-browser-wasm; nothing removed or renamed.

id
Stable lowercase slug, never reused. Also the table anchor #p-<id>.
name, author_or_org, summary
Project name, author or lab, and one or two sentences in our own words.
type
One of: dataset, data-tool, model, body, demo-game, demo-desktop, demo-art, browser-demo, research, directory.
claim
{text, url}: a short quote of the project's own headline claim. A claim, not a finding.
dataset, release
Connectome used (FlyWire FAFB, MaleCNS, BANC, MANC, hemibrain, FANC, larval L1, several, other, none, unknown) and its version.
evidence_grade
A, B, C, D, U or n/a. Definitions below.
grade_note
Our note when a grade is borderline or was reviewed. The grade itself is unchanged.
mechanism
wiring, neuron_model, input_mapping, output_mapping (hand-made, learned or none, with detail), trained_parts, body, scripted_parts. Null for datasets.
grade_basis, grade_date
What we inspected (file and line, or URL), each with a reliability label: [direct] we read it; [fetch-summary] read through a summarising tool; [search-summary] seen only in a search result. The date of that inspection.
measured_result
Numbers from a control or benchmark, measured by the authors unless stated.
try_url, try_status, try_note
No-install link, our check of it, and access notes such as a required sign-in.
code_url, paper_url, peer_review
Source repository, paper, and peer-reviewed / preprint / none (does not change the grade).
code_licence, code_licence_source
From the LICENSE file itself: an SPDX identifier, "none found", "custom: …" or "n/a (no code repository)". GitHub's own guess is kept separately in code_licence_source.
data_licence
Licence of the connectome data used. FlyWire FAFB: CC BY-NC 4.0. MaleCNS, MANC, hemibrain, BANC: CC BY.
platform, gpu, download_size
Where it runs (browser, macOS, Windows, Linux, Colab, iOS, Android, other); GPU required, optional, none or not stated; stated download size.
platform_note, gpu_note, peer_review_note
Added 28 Sep 2026. Our full wording when the enumerated value needs detail, for example gpu "required" with gpu_note "required (NVIDIA CUDA for training)". Prefer the note when you quote requirements.
stars, stars_date, archived
GitHub stars on that date (popularity, not quality) and archive status.
link_status
{url, status, http_code, final_url, checked_at}. Status is ok, redirect, 4xx, 5xx, blocked, error or gone. "blocked" means a bot check (common on journal sites); it is not "dead". An http_code of 429 means our fetcher was rate-limited (it happens on YouTube watch pages); since 2 Oct 2026 such links have status "blocked", not "4xx", and they are not broken. A 404 on a code repository means it was removed or made private. "gone" (new value, 3 Oct 2026) means the main link answered 404 on three checks in a row (FlyDoom: 1, 2 and 3 Oct 2026); we keep the record, its grade and its last catalogued commit, which describe the code as we last read it. Treat a "gone" record as history, not as something a user can download.
api_fields_reused, api_fields_reused_from
Added 28 Sep 2026. Which GitHub API fields (stars, created_at, pushed_at) were copied from an earlier check instead of re-queried, and that check's date.
archived_source, added_in_run, project_page
Added 28 Sep 2026. Where the archive status was read; the research run that first added the record (absent for first-release records); the route of our project page, when one exists.
controls
Added 30 Sep 2026. One of wiring-null (the project compares its fly wiring with shuffled, rewired or random wiring), baseline-only (only with a no-brain or no-graph baseline) or none. On 30 Sep 2026: 22, 8 and 64 records; on 1 Oct 2026: 23, 8 and 69; on 5 Oct 2026: 27, 8 and 76; on 6 Oct 2026: 30, 8 and 78.
wiring_effect
Added 30 Sep 2026. One of helps, no-difference, worse, mixed or not-tested, copied from the project's study in controls.json. Always not-tested when controls is not wiring-null, and also for a wiring null whose results are not in yet.
trained_class, trained_class_note
Added 6 Oct 2026. "Is it AI?" for one project: which part, if any, is trained, learned or tuned by search in its main (default) path. One of none (no trained part), readout-or-decoder (a trained or fitted readout or decoder on a frozen connectome network), front-end (a pretrained sensory front end, such as a vision or sentence model, in front of the wiring), whole-network-or-per-synapse (synapse weights or per-cell parameters inside the network are trained), policy-or-llm (a trained policy or language model chooses actions outside the wiring), other (learning rules during a run, such as STDP or dopamine plasticity, or a few parameters optimised by search) or not-assessed (evidence grade U or n/a: datasets, tools, unverified claims). trained_class_note (at most 160 characters, optional) gives detail, for example an optional trained part that the main path does not use. On 6 Oct 2026, of 83 graded records: none 38, readout-or-decoder 13, whole-network-or-per-synapse 12, other 12, front-end 4, policy-or-llm 4; 33 records not assessed. The class is our reading of the code and README; "trained" does not mean the project is good or bad, and none does not mean the behaviour is brain-driven (check evidence_grade). Filter by it in the Projects tool.
browser_check
Added 3 Oct 2026, optional (11 records; 6 checked on 3 Oct, 5 on 6 Oct 2026). The result of our pre-registered headless-browser check: {status, checked_at, browser, transferred_mb, compute, first_activity_s, console_errors, page_errors, matches_catalogue, note, source}. status is one of runs, runs-with-errors, loads-no-activity, needs-gpu, fails, blocked, stopped-memory, page-unresponsive, moves-no-compute-signal, not-checked or skipped-memory (this release uses runs, page-unresponsive and stopped-memory; we show them as "Ran", "Loaded, then froze in our no-GPU browser" and "Stopped at our 1.6 GB memory limit"). compute says where the brain ran: in-browser-worker, in-browser-wasm, in-browser-main-thread, server or unclear. transferred_mb counts the first 60–90 s. matches_catalogue is yes, no or unclear. The check used headless Chromium 154 on Linux without a GPU; it is not a play test, and Safari, Firefox, phones and GPU machines were not tested. A freeze or memory stop describes our machine, not the demo. Absent means not checked.
sources, notes_limitations
Source URLs with reliability labels, and known limits in our words.

Video records

videos.json has the top-level keys schema_version, collection, publisher, checked_at, record_count, schema, rules and videos (the array of records). The full definitions are in videos.schema.json.

video_id, page_anchor
Stable slug, never reused, and the card route /p/digital-fly-catalog/gallery/#v-<video_id>.
title, display_title, title_note
The title or first line as published, the card heading (long captions shortened), and why they differ.
platform, url, file_url
youtube, x, tiktok or project-site; the original page; a direct MP4 link for project-hosted files. playback is always "link-only": nothing plays inside our pages and nothing is re-hosted.
creator, upload_status, original_of, reposted_as
Uploader as displayed. original means the project's author, lab or institution posted it; repost points to its original with original_of; commentary is a third-party explainer that lists the entries it discusses in covers.
publish_date, duration, format
Date as shown by the platform (null when the host shows none), length, and frame shape (vertical, horizontal, square or file). Since 28 Sep 2026 duration and duration_s may be null when a project file states no length; covers may also list the projects that a control-study video tests, and grade_status may give the reason a video is not in the catalogue.
shows, does_not_show, summary_basis
Our own summary, the caveat taken from our verdicts, and what the summary rests on. We did not watch every video frame by frame.
catalogue_id, evidence_grade, grade_status
The matching entry in projects.json and a copy of its grade at build time. The catalogue record is authoritative; a video never changes a grade. catalogue_id null means "not in catalogue, not graded".
verdict_anchor
The project's row on Is it real?, when we wrote a verdict.
views, views_date
View count snapshot and its date. Popularity, not quality; it goes stale.
link_status, last_checked
Our check of the link and the platform record.
language
Added 5 Oct 2026, optional (present on every record since then): the main spoken or written language of the video as an ISO 639-1 code (en, fr, es, ru …), judged from the title, channel and description, not from watching. On 5 Oct 2026: 51 en, 2 ru; on 6 Oct 2026: 51 en, 2 ru, 1 es. The gallery labels non-English videos ("In Russian", "In Spanish").

Controls ledger

controls.json (new on 30 Sep 2026) has the top-level keys schema_version, dataset, version, generated_at, run_id, as_of, answer (the one-line and short answer, and counts by task family), null_types (16 kinds of null or control, each with keeps, destroys, pitfall and is_wiring_null), studies and chart_rows. The full definitions are in controls.schema.json; the page is Does fly wiring help?

id
The catalogue id of the project, so you can join the two files. Three studies are ours and have no catalogue record (made_by_us true): byo-shiu-shuffle, our pre-registered fair test on the Build your own model, whose arms list each null type with every per-shuffle value in the source text; and byo-flygym-body, our body test (2 Oct 2026), whose arms are a degree-preserving null and two no-brain drives; and byo-flygym-loom, our looming test (5 Oct 2026), whose arms are a degree-preserving null (6 drives over 3 shuffles, all identical to the floor), a gain-matched degree-preserving null (added 6 Oct 2026: 3 drives at activity ratio 0.99, identical to the floor) and brainless random steering.
task_family, loop
One of reflex-circuit, sensory-model, body-steering, game-play, ml-benchmark, reservoir, language-model, forecasting, graph-analysis, evolution; and closed-loop, open-loop or offline.
metric, real, floor, arms
What was measured, the real wiring's value, the no-network floor where one exists, and every comparison arm with its null_type, value, sample count, spread, source file and recomputed_by_us. Since 2 Oct 2026 each arm also has activity_ratio (whole-brain spikes or active units, null ÷ real; null when not reported) and activity_class (reduced below 0.5, comparable 0.5–2, elevated 2–10, runaway above 10, or not-reported). Display only: they are set after all rules have run and never change a score.
effect
retention (0 = the headline null does no better than no network, 1 = as well as the real wiring), retention_method (floor, ratio or none), baseline_retention (the no-brain baseline as a share of the fly network's result), difference, interval, p-value and a note.
wiring_effect, baseline_beaten
helps, no-difference, worse, mixed or not-tested; and whether the fly network beat its no-brain baseline (yes, no or not-tested).
fairness, quality
Yes/no fields read from the code (degrees kept, input-output boundary kept, tuned equally, number of null samples, baseline present; held-out test, reported uncertainty, results in files, peer review) and the rule-based verdict (fair, partly-fair, unclear, unfair) and grade (strong, moderate, weak), each with a reason.
extraction, commit, checked_at, sources
Where the numbers come from (files, paper or catalogue-text), the commit read, when, and the source URLs.

Every number is the study authors' unless made_by_us is true. recomputed_by_us means we recomputed it from the authors' committed files, not that we re-ran the study.

Evidence grades

The grade measures how well the project's own claim of fly-brain-driven behaviour is supported. It does not measure quality or popularity. We assign the lowest grade whose conditions all hold, and only from code, data loading, configuration, paper methods or a result we reproduced, never from README text or search snippets alone.

A tested
Named connectome release → neural dynamics → output compared with real-fly data or a proper control (shuffled or random wiring, no-graph baseline). A well-controlled negative result is also A.
B connectome, hand-made I/O
Loads a named release and simulates activity that drives the behaviour; a person chose which neurons map to pixels, keys or joints. Trained readouts allowed but flagged in mechanism.trained_parts. No control.
C partial or stand-in
A small subset with set or trained weights, a synthetic stand-in network, connectome activity that only switches scripted programmes, or a network that is not the main source of the behaviour.
D scripted
Behaviour from ordinary code, animation, unconstrained reinforcement learning or a language model; neurons are cosmetic.
U unverified
We could not inspect the mechanism: no code, code that does not match the claim, or only a video or post.
n/a infrastructure
Datasets, bodies, simulators and analysis tools; described by licence, maintenance and setup fields instead.

Date meanings

last_commit.date
Upstream activity: date of the newest commit on the default branch, read from a git clone.
pushed_at
Upstream: GitHub's last push to any branch. Can be newer than last_commit (flybody: pushed 2026-02-07, default-branch commit 2025-07-30).
last_release
Upstream: newest GitHub release (tag and date), or "none". Tags without a release are not counted.
created_at
Repository creation date. Not an update date. Some other directories show it as if it were one.
last_verified
Our check: the day we last fetched the record's links over HTTP. Not a statement that the project works.
grade_date
Our check: the day we inspected the code or paper for the grade.

How to cite

  1. Cite the upstream source first: the repository or paper (code_url, paper_url) and, for data, the dataset paper (for example Dorkenwald et al. 2024 for FlyWire, Berg et al. 2026 for MaleCNS).
  2. Then cite our record as secondary context, with its last_verified date.
  3. Give a grade together with its grade_date. Never present a claim or an author-measured number as independently verified. For FlyWire-derived data, pass on the CC BY-NC 4.0 non-commercial condition.
Upstream: DOOMFLY, nftechie, https://github.com/nftechie/DOOMFLY
Checked in: Digital Fly Lab catalogue, entry "doomfly", grade B (2026-09-30),
last verified 2026-09-30, https://shaduf.ai/p/digital-fly-catalog/projects/#p-doomfly

Example records

Three real records from projects.json, shortened: claim, grade_basis, sources, notes_limitations and a few other fields are left out here, and long texts are cut with "...". The JSON file has the complete records.

Grade A: tested against fly experiments and a shuffled control: shiu-drosophila-brain-model

{
  "id": "shiu-drosophila-brain-model",
  "name": "Drosophila_brain_model (Shiu et al. 2024)",
  "type": "model",
  "author_or_org": "Philip K. Shiu et al. (Scott lab, UC Berkeley, with FlyWire)",
  "dataset": "FlyWire FAFB",
  "release": "v630 (default, used in the paper); v783 files also in repo",
  "evidence_grade": "A",
  "grade_note": null,
  "mechanism": {
    "wiring": "FlyWire FAFB materialization v630 (127,400 proofread neurons per paper Methods); v783 files provided as an option",
    "neuron_model": "LIF",
    "input_mapping": "hand-made",
    "output_mapping": "hand-made",
    "trained_parts": "none; one free parameter w_syn = 0.275 mV per synapse, tuned by hand",
    "body": "none",
    "scripted_parts": "none found"
  },
  "grade_date": "2026-09-28",
  "measured_result": "Paper (PMC11446845): 91% of 164 testable predictions matched experiments (84% excluding the split-GAL4 optogenetic activation screen); split-GAL4 screen >90% accuracy; shuffled-weight control activated MN9 in 1/100 runs vs 100% for the real connectom...",
  "try_url": "https://colab.research.google.com/github/philshiu/Drosophila_brain_model/blob/main/example.ipynb",
  "try_status": "page responds (HTTP 200, checked 2026-10-06), not played by us",
  "code_url": "https://github.com/philshiu/Drosophila_brain_model",
  "code_licence": "MIT",
  "data_licence": "CC-BY-NC-4.0",
  "platform": [
    "macOS",
    "Windows",
    "Linux",
    "Colab"
  ],
  "gpu": "none",
  "last_commit": {
    "date": "2024-09-14T09:47:44-04:00",
    "hash": "91bdd1e7dcf193f3e7ca5a8933497fcef63b7960",
    "branch": "main"
  },
  "last_release": "none",
  "stars": 349,
  "stars_date": "2026-09-27",
  "api_fields_reused_from": "2026-09-27",
  "last_verified": "2026-10-06",
  "project_page": "/p/digital-fly-catalog/projects/shiu-drosophila-brain-model/",
  "controls": "wiring-null",
  "wiring_effect": "helps",
  "link_status": {
    "url": "https://colab.research.google.com/github/philshiu/Drosophila_brain_model/blob/main/example.ipynb",
    "status": "ok",
    "http_code": 200,
    "checked_at": "2026-10-06T09:40:06.218Z"
  }
}

Grade B: connectome runs, hand-made input and output, no wiring control: doomfly

{
  "id": "doomfly",
  "name": "DOOMFLY",
  "type": "demo-game",
  "author_or_org": "nftechie",
  "dataset": "MaleCNS",
  "release": "v1.0 (166,700 neurons, 25,582,938 directed edges)",
  "evidence_grade": "B",
  "grade_note": "Kept at B: its own controls are a full disconnection and a learning pilot with two episodes per arm. A third-party study (doom-fly-control) found that shuffled wiring stops the fly, but a brainless constant autopilot survives about as long, so there is no evidence of skilled play.",
  "mechanism": {
    "wiring": "MaleCNS v1.0, whole retained graph (166,700 neurons, 25.6 M edges), no cropping",
    "neuron_model": "LIF",
    "input_mapping": "hand-made",
    "output_mapping": "hand-made",
    "trained_parts": "No trained readout. An optional experimental dopamine-gated plasticity rule acts on 4,184 existing KC->MBON11 edges; health loss triggers a 200 ms artificial pulse into 2 PPL101 cells.",
    "body": "none",
    "scripted_parts": "none found. The readout gains are fixed joystick gains, and no game state goes into the decoder."
  },
  "grade_date": "2026-09-28",
  "measured_result": "Negative. The learning candidate failed its vision, conditioning and survival gates. In the v6 survival pilot, the plastic arm averaged 3.66 s survival vs 5.83 s for frozen (n=2 test episodes each; doom-ui/public/learning-iterations.json). The first ...",
  "try_url": null,
  "try_status": "no no-install option",
  "code_url": "https://github.com/nftechie/DOOMFLY",
  "code_licence": "MIT",
  "data_licence": "CC-BY-4.0",
  "platform": [
    "Linux",
    "macOS"
  ],
  "gpu": "none",
  "last_commit": {
    "date": "2026-09-09T10:11:10-05:00",
    "hash": "71ecf53d78eaffaf1a57ed7b0ccf5d458abc9f33",
    "branch": "main"
  },
  "last_release": "none",
  "stars": 404,
  "stars_date": "2026-09-27",
  "api_fields_reused_from": "2026-09-27",
  "last_verified": "2026-10-06",
  "project_page": "/p/digital-fly-catalog/projects/doomfly/",
  "controls": "baseline-only",
  "wiring_effect": "not-tested",
  "link_status": {
    "url": "https://github.com/nftechie/DOOMFLY",
    "status": "ok",
    "http_code": 200,
    "checked_at": "2026-10-06T09:40:12.315Z"
  }
}

Infrastructure (n/a): a fly body: flygym

{
  "id": "flygym",
  "name": "FlyGym (NeuroMechFly v2)",
  "type": "body",
  "author_or_org": "Neuroengineering Laboratory (Ramdya lab), EPFL",
  "dataset": "none",
  "release": "n/a",
  "evidence_grade": "n/a",
  "grade_note": null,
  "mechanism": {
    "wiring": "none",
    "neuron_model": "none",
    "input_mapping": "none",
    "output_mapping": "none",
    "trained_parts": "none in the core library (optional RL extra with Stable-Baselines3)",
    "body": "FlyGym",
    "scripted_parts": "n/a (simulator; controllers are user code)"
  },
  "grade_date": "2026-09-28",
  "measured_result": null,
  "try_url": "https://neuromechfly.org/wasm/viewer/viewer.html",
  "try_status": "page responds (HTTP 200, checked 2026-10-06), not played by us",
  "code_url": "https://github.com/NeLy-EPFL/flygym",
  "code_licence": "Apache-2.0",
  "data_licence": "n/a",
  "platform": [
    "browser",
    "Linux",
    "macOS",
    "Colab"
  ],
  "gpu": "optional",
  "last_commit": {
    "date": "2026-06-29T01:43:47+02:00",
    "hash": "38c8ec61034cd59bc5ba0de20688d4a3c0000d60",
    "branch": "main"
  },
  "last_release": {
    "tag": "Version 2.1.0",
    "date": "2026-06-24T15:26:40Z",
    "url": "https://github.com/NeLy-EPFL/flygym/releases/tag/v2.1.0"
  },
  "stars": 386,
  "stars_date": "2026-09-27",
  "api_fields_reused_from": "2026-09-27",
  "last_verified": "2026-10-06",
  "controls": "none",
  "wiring_effect": "not-tested",
  "link_status": {
    "url": "https://neuromechfly.org/wasm/viewer/viewer.html",
    "status": "ok",
    "http_code": 200,
    "checked_at": "2026-10-06T09:40:06.750Z"
  }
}

What we do not provide

  • No API. No query or search endpoint, no MCP server, no WebMCP tools, no login and no way to submit or edit records. The catalogue is static files regenerated by our research runs. (Virtual Fly Brain, an entry in our catalogue, runs its own MCP server; it is not ours, and we have not tested it.)
  • No copies of datasets, code or videos. Download data and code from the upstream sources under their licences; watch videos on their original platforms.
  • No guarantee that a demo works. "Page responds" is an HTTP check on the last_verified date.
  • We do not mirror other directories' data (Fly Brain Hub, flybrain.info, awesome-fly lists).

Search published pools, pages, reports, and evidence.