Magic Tools
Digital Fruit Fly LabBy CooconOctober 3, 202623 views11 min read

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:

  1. How many neurons? The whole brain (139k or 166k), a small piece extracted from it, or a few dozen built by hand?
  2. Who actually decides the actions? The connectome itself, a trained readout layer, a state machine, or hand-tuned weights?
  3. 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.

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:

All three DesktopFly test suites pass: the giant fiber is silent at rest and fires 4 ms after an abrupt loom; cutting synapses abolishes motor-neuron spikes; MDN drives the body backwards

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:

Fly Mario lesion experiment: the original clears the level in 13 s; cutting every input to the giant fiber falls into a pit at 1.7 s; scaling all weights to 0.8× or lower freezes the fly, 1.3× or higher dies at x=2213

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:

  1. 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.
  2. 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

Related Articles

Fly, Mouse, Human: How Far Is Whole Brain Emulation? The Math, Starting from a Mac mini Benchmark

Fly, Mouse, Human: How Far Is Whole Brain Emulation? The Math, Starting from a Mac mini Benchmark

A whole fruit fly brain (139,000 neurons) takes 12.6 s on a Mac mini to simulate 1 s, with ~121 MB of weights. Scaling the same model up: a mouse needs ~41 hours per simulated second and ~1.4 TB; a human ~5.7 years and ~1.7 PB. Compute isn't the hardest wall: at FlyWire's rate, proofreading a mouse brain would take ~17,000 person-years, and today's models lack learning, memory and neuromodulation.

fruit-flyconnectome+6
fruit-flyOct 4, 20268 min
19
What Is MaleCNS? The First Whole-CNS Wiring Diagram of a Male Fruit Fly, and How It Differs from FlyWire

What Is MaleCNS? The First Whole-CNS Wiring Diagram of a Male Fruit Fly, and How It Differs from FlyWire

MaleCNS maps a male fruit fly's entire central nervous system: 166,700 neurons, with brain and ventral nerve cord in one dataset for the first time. v1.0 shipped June 2026, the Cell paper in September, licensed CC BY 4.0. It's a separate effort from FlyWire: different sex, microscope and AI. Of 11,710 types only 138 are dimorphic. Regrouping FlyWire's annotations by region, I found descending neurons the most sex-variable, at 8.4%.

fruit-flyconnectome+6
fruit-flyOct 4, 20267 min
18
How the Fruit Fly Brain Map Was Made: 7,062 Slices, 21 Million Images, 3 Million Edits

How the Fruit Fly Brain Map Was Made: 7,062 Slices, 21 Million Images, 3 Million Edits

One female fly's brain was cut into 7,062 slices 35–40 nm thick and imaged for 16 months: 21 million images, 106 TB. AI traced every neurite; researchers, professional teams and a group of gamers then made 3,013,513 edits, yielding 139,255 neurons and 54.5 million synapses. This walks through each step and explains the 'Google fly brain': Google segmented this fly in 2019, but FlyWire used Princeton's own reconstruction.

googlefruit-fly+6
fruit-flyOct 3, 20269 min
16
How to Download the Fruit Fly Brain and Run It: 139,000 Neurons in 33 Seconds on a Mac mini

How to Download the Fruit Fly Brain and Run It: 139,000 Neurons in 33 Seconds on a Mac mini

Downloading the fruit fly brain means two files: a list of 138,639 neurons and a 15.09-million-row connection table whose synapse counts add up to the 54.5 million in the Nature paper. I ran the official repo from scratch: clone 57 s, install 21 s, the sugar-taste example in 33 s. Switching to the public v783 data as the README says crashes with a KeyError, and a missing output folder only errors after the whole run. Silencing one descending neuron raised feeding output by 30%.

open-sourcefruit-fly+6
hands-onSep 28, 20268 min
80

Published by Magic Tools