DesktopFly: a FlyWire connectome simulation that walks a 3D fly across your macOS desktop
A 3D fruit fly living on your macOS desktop, driven by a live spiking simulation of the real FlyWire connectome
At a glance
- What is it?
- DesktopFly renders a procedural fruit fly on a transparent overlay and drives its legs, wings and escape reflex from extracted FlyWire and MaleCNS circuits. It installs from a shell script, needs no permissions, and is honest about which parts are measured and which are modeled.
- Who is it for?
- DesktopFly suits engineers and computational-neuroscience readers who want a running spiking network with a visible body, and who will read EVALUATION.md before quoting any number. It is not a research platform: physiology, sensory tuning and muscle mechanics are modeled, the MaleCNS extract carries separate licensing, and Windows-native sensing is still unverified.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 10 days ago.
- What is it written in?
- Mainly Swift, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 16, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What DesktopFly actually simulates, and for whom
Most desktop pets are animation loops with a random walk bolted on. DesktopFly replaces the loop with extracted connectivity: a 668-neuron female FlyWire circuit with 18,968 real connection rows, run as a 1 kHz leaky-integrate-and-fire simulation, plus a 1,045-neuron MaleCNS locomotor circuit whose 17,224 directed connections represent 708,689 synaptic contacts. The README lists the identified populations by name: LC4 and LPLC2 looming detectors, the two Giant Fiber escape neurons, DNa01/DNa02 steering, DNp09 forward walking, DNg11 grooming, MDN backward walking, and DNp02/DNp04/DNp11 wing neurons.
The intended reader is someone who wants to watch a real connectome produce behavior without setting up a neuroscience stack. The body is procedural, the senses are modeled, and the README says so in plain terms: this is not a full CNS and not a biologically calibrated walking simulation. That framing is the most useful thing about the project. It puts the measured anatomy and the modeled physiology in separate columns instead of blurring them.
How a Giant Fiber spike becomes a takeoff
The data flow runs in one direction and then loops back. FlyWire soma positions and connection rows are extracted into the data directory by etl.py; the MaleCNS extract comes from etl_malecns.py. Sim.swift runs the LIF network at 1 kHz. Locomotor.swift carries motor output to the MaleCNS path, which drives articulated leg joints and returns joint and foot-contact feedback. The changelog states the full neural and body feedback loop runs at 120 Hz independently of display refresh, so a 144 Hz monitor does not speed up the fly.
The escape path is the clearest example. Cursor approach excites LC4 and LPLC2. A Giant Fiber spike requests takeoff. Sensory gain, the electrical-coupling approximation and delays are configured model parameters, and the README is explicit that the resulting reaction time is not a measurement of a living fly. The brain window renders 23,210 real soma positions from FlyWire v783, a subset of the 139,255 in that release, and clicking a region stimulates the roughly 60 nearest circuit neurons for 400 ms. That stimulus propagates through the same extracted graph, so the click is an input to the network rather than a scripted animation trigger.
Installing DesktopFly on macOS and running an escape test
The README lists macOS 13 or later and Xcode Command Line Tools with Swift 5.9 or later. There are no permission prompts, because cursor position, window frames, clicks-as-taps and thermal state are all read without entitlements. Build and launch from the repository root:
git clone https://github.com/DenisSergeevitch/desktop-fly.git
cd desktop-fly
./build.sh
./DesktopFlyA fly item appears in the menu bar, and the fly wanders a transparent overlay that never intercepts your mouse or keyboard. Quit from that menu bar item. To see the network do something measurable, open the menu and choose Escape Test (loom), then Show/Hide Brain. The loom injects a visual stimulus into the LC4 and LPLC2 pathway, and the brain window should show the two Giant Fiber markers firing before the fly takes off.
The Windows port lives in windows/ and is a separate toolchain. It requires Windows 10 or 11 and Node.js 18 or later:
cd desktop-fly/windows
npm install
npm start
npm testThe changelog notes that npm test runs all three suites headless. The beetle body is macOS-only for now.
Where the simulation stops being a fly
The README's own limitations section is the part worth reading twice. Flight, wing-beat, grooming and sleep retain modeled animation and state rules. The MaleCNS extract supplies measured anatomy and a real path from descending neurons through the ventral nerve cord to all six legs, but neural physiology, sensory tuning and muscle mechanics remain modeled. So the leg joints move because a modeled threshold crossed, not because a muscle model was fitted to recorded force data.
Two more limits are concrete. The brain window shows 23,210 of 139,255 FlyWire v783 somata, so the visual is a subset, not the whole brain. And the changelog states that Windows-native sensing still needs verification on Windows, which means the Electron port shares the mechanics and the transition fixes but its input layer has not been confirmed on the target OS. If you need a calibrated locomotor model for published work, this is the wrong tool; EVALUATION.md is the document that tells you how far the calibration goes.
DesktopFly against a plain desktop pet
The obvious alternative is an animated desktop companion, which is a rendering problem: a sprite or mesh follows a scripted path and reacts to cursor proximity through hand-written rules. DesktopFly is a simulation problem. The fly's state changes because spikes propagate through an extracted graph, and the graph is the artifact you can inspect.
That difference costs you a build step and a data pipeline. The ETL scripts, the provenance file and the source hashes exist because the connectome extracts have to be reproducible; a sprite animation needs none of that. It also costs portability. The native body is macOS-only, and the Windows port is a separate Electron and three.js codebase with its own README mapping table. If you want a decoration that starts instantly and never fails to build, a sprite pet is the better choice. If you want to click a region of a real connectome and watch a leg move, the sprite cannot do it.
Maintenance, licensing and the cost of upgrading
The last push was on 2026-09-05, and version 1.1.0 landed the same day, so the repository is current as of this writing. There are no retrieved releases, which means upgrades arrive as commits on master rather than tagged artifacts. The changelog is the upgrade log: 1.1.0 added the MaleCNS extract, smooth behavior transitions, wing and ledge fixes, and the 120 Hz timing change. Anyone tracking master should read it before pulling, because the timing change alters how the neural and body loops interact.
The repository declares NOASSERTION for its licence, so the LICENSE file is the only authority and reading it is your job. The changelog adds a second layer: separate MaleCNS data licensing. That matters if you redistribute the extracts rather than the code. data/LOCOMOTOR_PROVENANCE.md records the source hashes, and the changelog describes the extraction as reproducible with 18 locomotor checks per platform. None of this is legal advice; it is a list of files to read before you ship anything derived from the data directory.
Editorial conclusion
DesktopFly suits engineers and computational-neuroscience readers who want a running spiking network with a visible body, and who will read EVALUATION.md before quoting any number. It is not a research platform: physiology, sensory tuning and muscle mechanics are modeled, the MaleCNS extract carries separate licensing, and Windows-native sensing is still unverified. Before adopting it, open data/LOCOMOTOR_PROVENANCE.md and confirm the source hashes match the extracts you plan to run, then run LocomotorTests.swift to see the 18 locomotor checks pass on your machine.
Frequently asked questions
Is it true that scientists have copied the brain of a living fly to a computer?
No. DesktopFly runs a 668-neuron circuit extracted from FlyWire as a leaky-integrate-and-fire simulation, and the README states that sensory gain, coupling and delays are configured model parameters. Physiology, sensory tuning and muscle mechanics remain modeled, and the project describes itself as not a full CNS.
What is the Eon Systems fruit fly?
The README does not describe Eon Systems or any project by that name, so there is nothing to compare. DesktopFly is the project covered here, and it cites FlyWire and MaleCNS as its data sources.
Does DesktopFly need accessibility or screen-recording permissions on macOS?
No. The README states that everything it senses, including cursor position, window frames, clicks-as-taps and thermal state, is permission-free, and that the fly runs on a click-through overlay that never intercepts your mouse or keyboard.
How do I run DesktopFly on Windows?
Use the Electron and three.js port in the windows directory, which requires Windows 10 or 11 and Node.js 18 or later. Run npm install, then npm start for the tray icon and npm test for the three headless suites. The changelog notes that Windows-native sensing still needs verification on Windows, and the optional stag-beetle body remains macOS-only.
Community notes