What People Built with the Fruit Fly Brain: Mario, Minecraft, DOOM and More — 9 Projects Taken Apart, 2 Retested
What People Built with the Fruit Fly Brain: Mario, Minecraft, DOOM and More — 9 Projects Taken Apart, 2 Retested
After Eon Systems announced in March 2026 that it had "uploaded a fruit fly", the fly brain became a new toy for developers. In September alone, GitHub saw a string of projects: a fly brain playing DOOM, Mario and Flappy Bird, running a Minecraft NPC, living on a HarmonyOS phone and on a Mac desktop — and one pitched for stock trading signals.
The headlines escalate quickly. I read all nine READMEs and the key code, and asked three questions of each:
- How many neurons? The whole brain (139k or 166k), a small piece extracted from it, or a few dozen built by hand?
- Who actually decides the actions? The connectome itself, a trained readout layer, a state machine, or hand-tuned weights?
- Are there controls? If you cut a pathway, does the behavior change?
Then I retested the two that run on a Mac. The short version:
- The most honest projects in this batch are the most popular ones. DOOMFLY (417 stars) states in its opening paragraph that learned survival has not been demonstrated; DesktopFly (1,063 stars) has a whole "What's real" section.
- Loading the whole brain is not the same as the whole brain making decisions. Several projects load all 100k+ neurons, but what actually picks the action is a trained readout layer or a state machine.
- A 21-neuron circuit with hand-tuned weights can clear a Mario level — but it's fragile. Scale every weight to 0.8× and the fly won't take a step; scale to 1.3× and it dies halfway.
The nine projects
Star counts as of 2026-10-03.
| Project | What it does | Data | Neurons | What decides the action |
|---|---|---|---|---|
| DOOMFLY (417★) | Fly brain plays DOOM | MaleCNS v1.0 | All 166,700 | Fixed neuron-to-button mapping, plus experimental dopamine plasticity |
| DesktopFly (1,063★) | 3D fly pet on the macOS desktop | FlyWire + MaleCNS | Extracted 668 + 1,045 | Subcircuit LIF plus modelled body and states |
| fly-flappy (28★) | Fly brain plays Flappy Bird | MaleCNS v1.0 | All 166,700 | Trained logistic-regression readout plus safety rules |
| FlyCraft | Combat NPC in Minecraft | MaleCNS | Subgraph of ~8,000 nodes | Subgraph dynamics → fight / flee / wander |
| CyberFly for HarmonyOS | 3D fly ecosystem on a HarmonyOS phone | MaleCNS v1.0 | All 165,122 | State machine first, connectome modulates six channels |
| Fly Mario | Fly circuit auto-clears a Mario-style level | Only cell names and IDs borrowed | 21 | Hand-tuned LIF microcircuit |
| @chnak/fly | TypeScript training library; README pitches trading signals | MaleCNS | Not clearly stated | Logistic-regression readout |
| "A Day in the Life of a Fly" (LingChat PR) | 3D fly life mini-game in Rust | FlyWire v783 | All 139,255 | LIF plus reward/punishment plasticity and a sensorimotor mapping |
| fly-brain (Rojas) (65★) | Two identical connectomes "grow individuality" | FlyWire v783 | All 138,639 | LIF plus Hebbian plasticity in a NeuroMechFly body |
Here are the most interesting ones in detail.
DOOMFLY: the most serious, and the most candid
This is the most ambitious "fly brain plays a game" project so far. Each DOOM frame becomes 3,335 brightness inputs and 811 color inputs for photoreceptors, fed into all 166,700 neurons and 25,582,938 connections of MaleCNS, with no circuit cropping. When the fly takes damage, two dopamine neurons get a 200 ms "punishment" signal that drives plasticity on 4,184 connections in the mushroom body — in other words, it is genuinely trying to learn.
But the author opens the README with:
Status: live experimental training, not demonstrated learned survival.
The current version failed its visual, conditioning and survival validation gates. Turning and firing are read from two assigned descending neurons (DNp20, DNpe017), which the author calls "engineered controller assignments, not established natural motor functions". Every failed experiment is kept in the repository.
Every project in this space should write like this: changing weights and longer individual rounds do not mean it learned.
DesktopFly: the most popular one, built and run
A 3D fly that lives on your macOS desktop, walking over windows, grooming and sleeping; move the cursor at it quickly and it takes off. A "brain window" shows 23,210 real neuron soma positions flashing as they spike.
It doesn't run the whole brain. It extracts 668 neurons from FlyWire — looming detectors (LC4, LPLC2), the giant fiber (the escape command), steering, forward and backward walking, grooming — plus their 330 strongest partners, 18,968 real connections in all. A September update added a 1,045-neuron leg locomotor circuit from MaleCNS, including 220 real leg motor neurons, so simulated motor-neuron spikes drive the joints.
I cloned and compiled it on a Mac mini (14 s) and ran its three bundled test suites:

Everything passes. A few numbers stand out:
- The giant fiber fires 4 ms after an abrupt looming stimulus, and not once during 4 s at rest.
- At rest the whole circuit averages 5.21 Hz, which means background activity was added. A pure connectome LIF model is completely silent without input (we verified this in another hands-on report); to make a fly look alive, something has to be added.
- It ships lesion tests: cut the descending-to-motor synapses and motor-neuron spikes drop to zero; lesion the motor neurons and the body stops moving.
The author is clear about scope: flight, wing beats, grooming and sleep are still modelled animation and state rules, and "this is not a full CNS or a biologically calibrated walking simulation".
Fly Mario: 21 neurons, and I pulled the wires
This README is upfront: it is "not a 138k-neuron FlyWire whole-brain simulation". It's a 21-neuron, two-hop circuit. The cell names (DNp09 walk, DNp01 giant-fiber jump) and some FlyWire IDs come from public data, but the synaptic weights were tuned so this level can be cleared.
It ships a "must reach the flag" headless test: 9 cases pass in 31 ms. I added two experiments to its test harness:

| Experiment | Result |
|---|---|
| Original | Clears the level in 13 s; the giant fiber triggers 239 jumps |
| Cut every input to the giant fiber (DNp01) | Falls into the first pit at 1.7 s, 0 jumps |
| All weights × 0.5 / 0.7 / 0.8 | Doesn't move for 45 s |
| All weights × 0.9 to × 1.2 | Clears the level |
| All weights × 1.3 / 1.5 / 2.0 | Dies at x=2213 |
The first result shows the giant-fiber "escape jump" pathway really is essential to its design. The second shows hand-tuned weights only work in a narrow ±10–20% window — that is the difference between "tuned until it works" and "grown from the wiring diagram". The author doesn't hide this, which is good, but viewers of the demo video easily miss it.
Loading the whole brain isn't the whole brain deciding
fly-flappy and CyberFly both load all 100k+ MaleCNS neurons, which is impressive engineering: the first runs in a browser Web Worker, the second on a phone, where full mode holds three connectome copies in about 620 MB.
Read on, though, and something else decides the actions:
- fly-flappy trains a logistic-regression readout on descending-neuron activity to decide whether to flap, converging after about 1,000 samples in online mode. Two hard rules sit on top: no flapping above the pipe gap, and no second flap while climbing fast. A large part of how well it flies is due to the readout and the guardrails. The author says so: the sensory encoding and motor decoding are hand-designed interfaces, and the project doesn't mean a real fly can understand Flappy Bird.
- CyberFly runs on a 13-state state machine with four drives (hunger, fear, curiosity, fatigue); connectome activity only provides "six-channel modulation" of walking speed, startle, grooming, foraging intent, left/right steering and wing intent. The author calls it hybrid control and states that the project does not claim the fly is thinking.
This isn't a criticism — it's how to read these projects: find the layer that decides the action first.
The rest
- FlyCraft extracts a ~8,000-node MaleCNS subgraph to drive a Minecraft NPC that chases, fights and flees at low health, with its own benchmark (overall 0.977, low-health escape 8/8). The README lists "full brain vs. knocked-out pathways" as the next step.
- "A Day in the Life of a Fly" is a pull request to the open-source LingChat project, running the FlyWire v783 whole brain in Rust at about 0.3 ms per step. The PR was closed without being merged.
- Rojas's fly-brain: two flies with identical connectomes diverge after 24 hours of separate experience, to 81% and 47% escape rates, which the author calls emergent individuality. Note that it's on Zenodo — a preprint, not peer reviewed.
- @chnak/fly is a TypeScript training library whose last README chapter is "Application: automated trading". I wouldn't: the readout is a logistic regression, and the fly's visual neurons act here as a fixed nonlinear feature transform. There's no reason to think that understands markets better than ordinary feature engineering. The author also writes that backtesting is mandatory.
Why the "synapse counts" differ by 20×
The most confusing thing in these READMEs is that the numbers don't agree. For the same FlyWire female fly brain you'll see 2.48 million, 2.69 million, 5 million, 15.09 million and 54.5 million. I checked each against the public data:
| Claim | What it actually is |
|---|---|
| 54.5 million synapses | ✅ The total synapse count. The Nature paper's figure; the synapse-count column of the connection table sums to 54,492,922 |
| 15.09 million | The number of connected neuron pairs (15,091,983); each pair has between 1 and 2,405 synapses |
| ~2.69 million | Neuron pairs with at least 5 synapses (2,700,513). FlyWire's Codex uses this threshold by default to filter out false detections |
| ~5 million | From the README of Eon's fly-brain repository ("~5M synapses"), yet the same repository's data file has 15.09 million rows and 54.49 million synapses. Several projects copied this number, including Fly Mario's source comments — and one earlier article on this site (since corrected) |
| 2.48 million | From the "Day in the Life" PR; its definition isn't stated, possibly a different filter |
MaleCNS is a different dataset: the complete central nervous system of a male fly, brain plus ventral nerve cord (the fly's spinal cord). Projects describe it as about 166,000 neurons and over 25 million connections. v1.0 was released in June 2026 and the paper appeared in Cell in September, from a collaboration between Janelia, the University of Cambridge, the MRC Laboratory of Molecular Biology and Google Research.
Why did nearly every project after September switch to MaleCNS? Two reasons:
- It includes the ventral nerve cord, home of the leg and wing motor neurons. FlyWire has only the brain, so earlier projects all had to hand-write a layer between descending neurons and legs. MaleCNS is what lets DesktopFly drive joints from real motor neurons.
- A more permissive licence. MaleCNS is CC BY 4.0 and allows commercial use; FlyWire is CC BY-NC 4.0 and does not.
How to judge a "fruit fly brain" project
Next time you see "I plugged a fruit fly brain into X", ask:
| Question | Good answer | Red flag |
|---|---|---|
| How many neurons? | States whether it's the whole brain or a subcircuit, and how it was extracted | Just "uses a fruit fly brain" |
| Who decides the actions? | Explains what the readout, state machine and hand-tuned parameters each contribute | "Fully driven by the connectome" with no interface explained |
| Are there controls? | Cutting a pathway changes the behavior (DesktopFly and DOOMFLY both do this) | Only a demo video |
Most projects in this batch answer these honestly in their READMEs. The titles and demo videos just won't tell you.
Want to try it yourself? The official whole-brain model runs on an ordinary computer — see How to Download the Fruit Fly Brain and Run It. Want to play first? Drive a physics-simulated fly in your browser at the Digital Fruit Fly Lab.
FAQ
Do these flies really "play games"?
No — none of these projects has demonstrated that. What they do is translate game frames into inputs for the fly's sensory neurons and read key presses out of descending-neuron spikes. Both the translation and the readout are designed by people, and some are trained. DOOMFLY's author states that learned survival hasn't been demonstrated; fly-flappy's author states it doesn't mean a real fly can understand Flappy Bird.
Which project is best to start with?
To see something quickly: DesktopFly — clone, compile with one command, and a fly is on your desktop within seconds. To understand the principle: Fly Mario — 21 neurons, short code, and changing a weight visibly changes behavior. For research: start from the official Shiu 2024 whole-brain model.
Can I use them commercially?
It depends on the dataset. FlyWire (FAFB) is CC BY-NC 4.0, no commercial use; MaleCNS is CC BY 4.0, commercial use with attribution. Most projects' own code is MIT, but the data licence applies separately.
References
- Each project's GitHub README and source (links in the table), read on 2026-10-03
- MaleCNS: male-cns.janelia.org (v1.0 released 2026-06-08, CC BY 4.0)
- Dorkenwald et al. 2024, Neuronal wiring diagram of an adult brain, Nature. doi:10.1038/s41586-024-07558-y
- Eon Systems fly-brain: github.com/eonsystemspbc/fly-brain