Research report · 3 October 2026 · seventh check
Seventh check: does it actually run? Six fly-brain browser demos loaded, a flyvis dossier and 3 new entries
This check opened six fly-brain browser demos in a real (headless) browser and recorded what each downloads, whether it keeps computing and where the brain runs. It also read the flyvis paper and the authors' 50 pretrained models, re-checked every viral-claim verdict for freshness, re-read fly-cartpole after a redesign and added three entries.
Short answer
Does it actually run? In a headless browser without a GPU, 3 of 6 checked demos ran (Fly Worker 17.6 MB, FLY67 33.3 MB, flybrain.app 12.7 MB), two froze after loading, and one passed our 1.6 GB memory limit. No demo computed its brain on a server.
Lead scan: no claim promoted. Two new videos passed 20,000 views with a fly-brain claim and neither qualified: "Scientists Teach A Fly How To Drive" is a compilation (63,935 views in 14 hours) that appears to show Flyhard, which already has a verdict; "I put a fruit fly's brain in me" (+22,162 views) is an animation with no mechanism claim. Gorilla Tag gained 101,121 views and still has no code.
- fly-cartpole switched sides in the ledger: its redesigned MaleCNS flight-stabilisation circuit scores 499.9 steps against 165.9 with shuffled wiring (p = 0.0001), but its own linear map scores 499.6 and LQR 500. Ledger effect: no difference → helps; baseline not beaten; grade A unchanged.
- flyvis: every number now has a direct quote from the full text, our ablation wording was corrected, the 50 pretrained models' validation losses were read from the authors' files (median 5.300, range 5.137–5.678), and the pretrained models are MIT-licensed (added 29 Sep 2026). A CPU wiring test is no-go under this run's memory plan; a conditional go for run 9 with a null that needs no retraining.
- Verdict freshness: of the 20 verdict rows, 13 are current (code unchanged since graded), 7 have no code and 0 have changed code.
- Catalogue: 107 entries, 3 new: ChessFly (A, a negative result: real 1680 vs shuffled 1675 Elo), flypoker (C) and neurafly (C); 1 excluded. FlyDoom's link is set to "gone". 52 videos, all available. Ledger: 34 studies, 26 with a wiring null: helps 11, no difference 6, worse 2, mixed 6, not scored 1.
What changed
- 104 → 107catalogue entries (3 new: 1 A, 2 C); 1 excluded
- 6browser demos loaded by us; 3 ran
- 33 → 34control studies; 26 with a wiring null
- 1re-grade (fly-cartpole, grade A unchanged); FlyDoom link now "gone"
Does it actually run?
"Page responds" only means a link answered. This time we loaded six fly-brain browser demos in headless Chromium 154 (puppeteer-core, 1280 × 800) on our Linux server with 2 CPUs, a 3 GiB memory limit and no GPU. For each demo we took the one action its README describes, watched for 60–90 s with a screenshot every 5 s, counted every byte the page, its workers and its service worker downloaded, and noted where the brain computation ran. Only one browser ran at a time, and each demo got at most 2 loads.
Written down first
The procedure was timestamped at 09:38:51 UTC, before any demo load (the only earlier loads were smoke tests on example.com, a blank page and a local test worker). It holds the plan unchanged, the one action per demo, and 12 completions that fix details the plan left open: the time origin, what counts as first activity and as a connectome-sized file, the list of analytics calls, how bytes are counted and the "matches catalogue" rule. The planner did not pre-register those completions; they are listed with the deviations.
Read this before sharing. Checked in headless Chromium 154 on a Linux server without a GPU, 3 Oct 2026. Shows whether the page loads, downloads its brain data and keeps computing; it is not a play test. Safari, Firefox, phones and GPU machines were not tested.
Every 3-D page fell back to software WebGL because our machine has no GPU. The two freezes most likely come from that, not from the demos; on a computer with a graphics card they may run normally. "Stopped at our 1.6 GB memory limit" means our test machine's limit was reached, not that the demo is faulty. A frozen or stopped page may also have downloaded less than it would on a GPU machine.
| Demo and grade | In our browser | Where the brain ran | Downloaded | Largest file | First movement | Errors | Memory peak | Matches our catalogue? | What we saw |
|---|---|---|---|---|---|---|---|---|---|
| FlyLeno B Open the demo |
Loaded, then froze in our no-GPU browser Our one action: Start without music (the page did not answer) |
in your browser tab (Web Worker) | 33.95 MB brain data 31.36 MB |
connectome.bin.gz 31.36 MB (worker) | 10.4 s | 0 / 0 | 1.04 GB | Unclear: the page did not run to the end (froze) | Its 31.4 MB connectome reached a Web Worker and the counters started; then the 3-D stage stopped answering after about 10 s. |
| fly-brain (Lulzx) A Open the demo |
Stopped at our 1.6 GB memory limit Our one action: Play (clicked) |
unclear | 33.93 MB brain data 14.63 MB |
graph.flyg 14.63 MB (service worker) | not seen in screenshots | 2 / 0 | 1.63 GB | Unclear: the page did not run to the end (memory stop) | Fetched its 14.6 MB MaleCNS graph and WebAssembly and started 4–5 workers, then passed our 1.6 GB browser memory limit on both loads (at 29 s and 44 s). |
| FLY67 B Open the demo |
Ran Our one action: Feed it sugar (worked) |
in your browser tab (Web Worker) | 33.28 MB brain data 31.24 MB |
connectome.bin.gz.part00 15.74 MB (worker) | 11.6 s | 0 / 0 | 1.00 GB | No: our catalogue said about 100 MB (an estimate); corrected to 33.3 MB. The mechanism matches. | Two connectome parts (15.7 + 15.5 MB) load into a Web Worker; the fly moved and the sugar button worked. Our old "~100 MB" estimate was wrong. |
| Fly Worker A Open the demo |
Ran Our one action: Hire a fly (worked) |
in your browser tab (Web Worker) | 17.55 MB brain data 7.55 MB |
carnage3D.data 8.18 MB | not seen in screenshots | 0 / 0 | 1.09 GB | Yes (worker seen; 17.55 MB vs ~13 MB) | Its 7.6 MB brain file runs in a Web Worker and the on-page simulation numbers kept changing; 8.2 MB more is GTA1 game data. |
| FlyBrain (flybrain.app) C reserve, replaced fly-brain (Lulzx) Open the demo |
Ran No documented action |
unclear also tries a chat WebSocket and chat server (both failed here) |
12.72 MB brain data 12.45 MB |
connectome.bin.gz 12.45 MB | 10.9 s | 2 / 0 | 0.87 GB | Yes (worker seen; 12.72 MB vs ~12.4 MB) | Its 12.5 MB connectome loads and a Web Worker runs; the page also tries a chat WebSocket and a chat server (both failed here), so where the brain runs is unclear by our fixed rule. |
| Help the Fly Escape B Open the demo |
Loaded, then froze in our no-GPU browser Our one action: Release the flies (the page did not answer) |
unclear | 2.57 MB its 9.9 MB brain graph never arrived |
index-DzgoIUHH.js 1.56 MB | not seen in screenshots | 0 / 0 | 0.86 GB | Unclear: the page did not run to the end (froze) | Loaded its WebAssembly (1 MB) and a worker, but stopped answering from the first screenshot; its 9.9 MB brain graph never arrived in 84 s. |
| webgpu-fly C extra 20 s record, not the full check |
Did not start: needs WebGPU | not reached | 0.29 MB fonts only |
fonts | none in 20 s | 0 / 0 | 0.72 GB | Yes: the catalogue says it needs a GPU with WebGPU | Chrome logged "No available adapters.", its WebGPU message: our browser has no GPU adapter. Our script's fixed rule called this "loads, no activity". |
Where the brain runs, compared with the catalogue
- No demo computed on a server. Where the brain could be located, it ran in a Web Worker in the tab, as our catalogue says: FlyLeno, Fly Worker and FLY67.
- flybrain.app ran its connectome and a worker, but also opens a chat WebSocket (
wss://caretaker.flybrain.app/) and calls a chat server on port 7600; both failed in our browser. By our fixed rule, where its brain runs is therefore "unclear"; its catalogue notes now say so, for a re-read in run 8. - The one "no" (FLY67) is about our own download estimate, not the mechanism: we had written about 100 MB; it downloaded 33.3 MB. Fixed in the entry.
- fly-brain (Lulzx) warned that the page was not cross-origin isolated, so SharedArrayBuffer was unavailable in our browser.
- The pre-registered action worked on Fly Worker ("Hire a fly") and FLY67 (the sugar scenario). FlyLeno and Help the Fly Escape had frozen when their action came due.
- webgpu-fly (an extra 20 s record, not the full check): 0.29 MB, no start; Chrome logged "No available adapters.", its WebGPU message. Our hook did not see the adapter request, so the script's fixed rule said "loads, no activity" rather than "needs a GPU". Consistent with the catalogue (GPU required).
Deviations, in plain words
- A tool bug on the first load (D1). FlyLeno's main thread was saturated by software WebGL, so screenshots and the end-of-run probe timed out. The first script read the missing probe as a blank page, called it a failure and did not enforce the 90 s cap. That false result made the queue start the reserve demo, which we stopped after about 30 s. Fixes: "blank" now needs a probe that answered; a new status, page-unresponsive (probe failed and at least 3 screenshots in a row timed out); a hard deadline; short timeouts on every browser call. FlyLeno was loaded once more (its second and last allowed load); the bad record is kept.
- Two tool gaps found after the queue (D2), no status changed: Cloudflare's analytics beacon was missing from the analytics list, and a failed text read was counted as "text changed".
- Retry order (D3). fly-brain (Lulzx) stopped on memory, and the reserve ran before its one allowed retry. The retry also stopped on memory, so the reserve (flybrain.app) stands.
Memory
The highest machine reading was 1.73 GiB (Lulzx, second load); our 2.6 GiB guard never fired. The 1.6 GB browser-memory guard fired twice, both on Lulzx. Idle use before the queue was about 0.6 GiB.
Limits of this check
- One headless Chromium without a GPU. "Froze" and "stopped at our memory limit" describe this machine only. Every 3-D page fell back to software WebGL; both freezes are most likely caused by that rather than by the demos. GPU machines, Safari, Firefox and phones were not tested.
- Activity detection is coarse: screenshots every 5 s, and Fly Worker's 3-D frame never changed in screenshots (its on-page simulation text did).
- Traffic inside cross-origin frames (FlyLeno's YouTube embed) is not counted, and bytes cover only the first 60–90 s.
- A GPU or software-graphics variant would change the environment, so a re-run under it needs its own written plan. Next candidates (run 9 or later): Vial, Doodle Fly, flybrain.app again, Infinite Sugar and possibly Fly Dino; re-check these six after 14 days.
flyvis: quotes, a correction and the pretrained models
The new flyvis project page has the full detail. In short:
- Quotes upgraded. Every number in our record now has a direct quote with its section, from the Europe PMC full text (PMC11525180): 64 cell types; 45,669 neurons, 1,513,231 connections and 721 columns; 734 free parameters; contrast preference right for all 32 characterised cell types (ensemble median) and 30 of 32 (best single model); r = 0.60, P = 2.6 × 10⁻⁶; 26 studies; the random-parameter and ablation statements.
- Correction at source. Our record said "ablations show synapse counts are needed for direction tuning". The paper says direction selectivity can be predicted without synapse counts; only the preferred direction of T4/T5 needs single-neuron connectome detail.
- Supplement and peer-review file (text search only). Neither contains an ablation number, so the ledger arms stay figure-only and nothing was digitised. A referee asked for exactly the missing control: "what is missing is a demonstration that the specific connectivity of the fly visual system is what enables optimal performance, rather than a generic neural network with the same level of sparseness". The text extraction was crude (no PDF tool), so the search of the supplement is incomplete.
- Pretrained models. The authors' zip (3,417,042 bytes; its sha256 equals the checksum in their download script) holds 50 models with one stored validation loss each: min 5.137, Q1 5.279, median 5.300, Q3 5.333, max 5.678. Training task: optic flow on Sintel movies,
l2normloss, 250,000 iterations. These measure the training task, not a match to biology. The files were read with numpy and h5py unpacked into scratch and then deleted. - Licences. Code MIT; pretrained models MIT (
license.txtin the same folder, created 29 Sep 2026); connectome FlyEM FIB-25/FIB-19 compiled by the authors, no separate data licence stated. - Pre-check for a CPU wiring test: no-go now, conditional go for run 9. flyvis's direct dependencies are 654 MB of wheels with PyPI's PyTorch 2.14.1 (554.6 MB), about 290 MB with the CPU-only PyTorch (196.3 MB); unpacked an estimated 0.8–1.2 GB, above our 0.5 GB scratch cap. Flash stimuli are synthetic and the connectome path is a setting. Because trained synapse strengths are stored per pair of cell types, a null without retraining must keep the same connected type pairs (for example shuffling column offsets within each pair); that answers a weaker question than a retrained null.
- Ledger row. Metric and arms unchanged; no rule changed. The quality note now says the nulls are figure-only, a referee asked for one, and there is no shuffled-wiring null.
Verdict freshness and row updates
- 13 current, 7 no code, 0 code changed of the 20 verdict rows. All 13 GitHub-backed rows have the same latest commit as on 2 Oct; the Terraria fly's GitLab HEAD is still the graded commit 9052966d. The comparison is by date, so a same-day commit after grading would be missed; the commit comparison with 2 Oct covers that gap for this run. Last checked column
- View counts (YouTube search pages, 3 Oct): Gorilla Tag 724,625; SWOT/FlyBridge 174,130; Half-Life 148,442; Roblox fight 144,054; FlyLeno 46,672; Terraria 32,632.
- Flyhard: a compilation by Daily Dose of Science says "a simulation of a fly's brain is driving a car". Its thumbnail shows a fly at a steering wheel in a 3-D town with a fountain roundabout, which looks like Flyhard in CARLA; the match rests on the thumbnail only, so the row says it "appears to show" Flyhard. Grade B unchanged.
- FlyLeno: our browser check fetched its 31.4 MB connectome into a Web Worker, then the page froze. This fits the row (the whole brain really runs in a worker); not a play test.
- A data bug fixed at source. The 71 first-release records have no grade date of their own, and earlier builds stamped them with the run date (30 Sep and 1 Oct). Since run 6 they carry the true date, 28 Sep 2026, and the build script now warns when another date is passed.
Lead scan
Window: since 2 Oct 2026, 09:35 UTC; decision written at 09:43 UTC. Hacker News (6 story and 6 comment queries: no fly-brain story), Google News (1 in-window item, coverage of the MaleCNS release, no new claim), Reddit (HTTP 403, unchanged), dataset pages (no new release), 18 GitHub searches (199 hits, none with 20 or more stars), 21 YouTube date-sorted, 14 views-sorted and 8 re-check queries, and 4 searches for the driving clip's original (not found). The four new search terms ("fly brain browser", "fly brain online", "flyvis", "fruit fly vision model") found no new browser-demo or flyvis video this week.
A gap for next time: "I Taught a Fly How to Play Minecraft (Yes, Really)" (Fiouze and Aywen, 571,248 views, about 3 weeks old) was seen for the first time; it is outside our 14-day window and which Minecraft project it uses is unknown. Run 8 should map it.
Re-grade: fly-cartpole
HEAD moved from 854fb1d to a8c6257. The README now leads with a MaleCNS flight-stabilisation circuit of 5,459 linear rate units; only the sensor gains are tuned. From the author's results/linear-retuned/summary.md:
| Condition | Score (steps) |
|---|---|
| Self-tuned circuit (real wiring) | 499.9 ± 0.3 |
| Degree-preserving shuffled wiring (one shuffle per seed) | 165.9 ± 182.8 (p = 0.0001) |
| Untuned circuit | 275.6 |
| The circuit's own linear map, tuned the same way | 499.6 (p = 0.18) |
| LQR, designed from the cart-pole equations | 500 |
| Random pushes | 22.1 |
Grade A stays. The ledger study was rebuilt on this experiment: wiring effect no difference → helps (retention 0.30), baseline not beaten, fair null, strong method. The real arm sits at the 500-step ceiling. The earlier mushroom-body result (392.5 vs 390.3, p = 0.48) stays in the repository. fly-naf was re-read (tablet vision; still a pixel-difference input with no control; B unchanged), and flyvis's wording was corrected (grade unchanged).
New entries and exclusions
- A ChessFly (znatgost/chessfly, 52276aa, MIT): FlyWire v783 mushroom-body input layer (285 projection neurons, 5,177 Kenyon cells, 21,509 connections of 5+ synapses) learns chess by self-play; after 10,000 games real wiring 1680, shuffled claws 1675, random design 1850 Elo; untrained 660. New ledger study: no difference (retention 0.995), partly fair, weak (one fly and one shuffle per arm).
- C flypoker (0909-BoB/flypoker, e1ed8f6, no licence file): a 6,194-neuron MaleCNS subgraph; hand equity is computed by Monte Carlo outside the brain and fed in at gain 8; a linear decoder cloned from human hands is the only learned part, with a 12% floor on every action.
- C neurafly (emiliano-go/neurafly, ab0e853, MIT): FlyWire v783, 2,052,622 edges; audio bands are assigned to neurons by their position in a 2-D layout, and the picture reads the same neurons the audio is injected into.
- Excluded: a FlyLeno fan landing page whose own code is a scripted point-cloud animation and an 834-neuron toy network. A known DesktopFly name copy stays on the never-link list. About 30 low-star repositories from the window are deferred.
Tracking
- Commits: 91 repositories; 4 changed (fafbseg, acamilo-flybrain, fly-cartpole and the uncatalogued fly.ai kernel); 1 gone (FlyDoom).
- Links: 107 entries; 103 ok, 2 redirect, 1 blocked (paper sites, as before), 1 gone (FlyDoom: a third HTTP 404; the record is kept). The YouTube links rate-limited yesterday answered today.
- Videos: 52 of 52 available; none new, none removed; thumbnails unchanged.
- fly-walking-wiring: unchanged since c84104a (30 Sep 2026); no results public yet.
- PyPI (Python 3.12, nothing installed): flyvis 1.2.0, flygym 2.1.0, brian2 2.10.1, torch 2.14.1, numpy 2.5.3, mujoco 3.14.0, h5py 3.16.0; no release since 2 Oct.
- Run 8 pre-check: FLY67's looming circuit (LC4/LPLC2 to the giant fibre and DNa02 turning) was read in code; the neuron IDs per eye are chosen at run time from published annotations, so run 8 lists them first, then checks the turn direction against the literature and runs a wiring null.
Method and limits
- One runner session of about 41 minutes; no cut fired. Fill items not reached: a star refresh, the gain-check gap filling and more admissions.
- GitHub API: 3 core calls (metadata for the new entries) and 18 paced searches; tracking used plain git and raw files.
- Memory: machine peak 1.73 GiB; scratch peak about 0.1 GB, deleted at the end. No third-party data was kept: screenshots were hashed in memory, and READMEs, HTML, PDFs, the model zip and the thumbnail were deleted.
- The fly-cartpole re-grade uses the author's numbers, not recomputed, with the real arm at the ceiling. ChessFly's A rests on one fly and one shuffle per arm. The Flyhard mapping rests on one thumbnail. YouTube view counts come from search pages.
Sources
- The six demos as linked in the results table; their result files and the written procedure are kept with our research materials.
- Lappalainen et al. 2024, full text and peer-review file; flyvis.
- fly-cartpole results at a8c6257; ChessFly; flypoker; neurafly.
- The driving compilation: "Scientists Teach A Fly How To Drive" (Daily Dose of Science).
- Data: projects.json (with
browser_check), controls.json, videos.json.