Shaduf.Research preview
Digital Fly Lab/DesktopFly

Projects catalogue · project page

DesktopFly: the desktop pet fly with a FlyWire circuit, and what really moves it

DesktopFly puts a 3D fruit fly on your Mac desktop (a Windows port is included). It runs a small spiking circuit cut from the FlyWire brain map, and since version 1.1.0 a second circuit from the male fly nerve cord moves its legs when it walks. With 1,053 GitHub stars on 27 Sep 2026, it is the most-starred fly brain demo in our catalogue.

  • Our grade: C partial network that switches coded animations; re-graded from B on 29 Sep 2026
  • Code: DenisSergeevitch/desktop-fly, MIT licence (code only)
  • Last commit: 32b0001, (release v1.1.0)
  • Checked by us: , link HTTP 200, code unchanged

Short answer

A real spiking simulation runs, but it is small and it mostly chooses animations. 668 neurons from FlyWire (0.5% of the 139,255 in the fly brain) decide which of five behaviours the fly shows. Only one of them, walking, is then moved by simulated neurons: a 1,045-neuron leg circuit from the male fly connectome (MaleCNS). Flight, grooming and darting are coded animations, and sleep follows your computer's idle time and the clock.

Its headline, "driven by a live spiking simulation of the real FlyWire connectome", is overstated. The sentence is the GitHub repository description; the README says, more carefully, that it combines identified neural circuits with modelled senses, joints and behaviour. The author's own evaluation says grooming, flight, sleep and the choice of state still use "modeled rules and animations".

What picks and what moves each behaviour

Your cursor, typing, new windows and clicks are turned into input for the FlyWire circuit. When the firing rate of chosen neurons crosses a limit set by the author, the fly switches state. Colours show which parts are measured, modelled, hand-made or ordinary code.

What picks and what moves DesktopFly’s five behavioursDesktopFly, left to right: desktop input (cursor, typing, new windows, clicks) is mapped by hand onto a 668-neuron FlyWire circuit (a measured subset, simulated as leaky integrate-and-fire neurons); neuron rates crossing hand-set thresholds pick one of five states. Walk: the legs are moved by a 1,045-neuron simulated MaleCNS leg circuit. Dart: coded turn away from the cursor at random speed. Groom: leg sine animation. Fly: random landing point and timed flight path. Sleep: set by the computer’s idle time and the clock, not by a neuron.The simulated brain1 · SENSEDesktop inputcursor, typing,windows, clickshand-made mapping2 · BRAINFlyWire circuit668 of 139,255neurons, LIF spikesmeasured subset3 · SWITCHRate thresholdsrates cross hand-setlimits: pick a statehand-madeClock and idle timeWalklegs moved by 1,045simulated MaleCNS neuronsDartcoded turn away fromthe cursor, random speedGroomleg sine animationFlyrandom landing point,timed flight pathSleepset by idle time andthe clock, not a neuronOnly walking is moved by simulated neurons. The other four states are coded programs that neuron rates, or the clock, switch on. DesktopFly, left to right: desktop input (cursor, typing, new windows, clicks) is mapped by hand onto a 668-neuron FlyWire circuit (a measured subset, simulated as leaky integrate-and-fire neurons); neuron rates crossing hand-set thresholds pick one of five states. Walk: the legs are moved by a 1,045-neuron simulated MaleCNS leg circuit. Dart: coded turn away from the cursor at random speed. Groom: leg sine animation. Fly: random landing point and timed flight path. Sleep: set by the computer’s idle time and the clock, not by a neuron.1 · SENSEDesktop inputcursor, typing,windows, clickshand-made mapping2 · BRAINFlyWire circuit668 of 139,255neurons, LIF spikesmeasured subset3 · SWITCHRate thresholdsrates cross hand-setlimits: pick a statehand-madeWalklegs: 1,045 MaleCNS neuronsDartcoded turn, random speedGroomleg sine animationFlyrandom target, timed pathSleepidle time + clock, no neuronOnly walking is moved by neurons
From DesktopFly's code at commit 32b0001 (FlyModel.swift, main.swift, Sim.swift, Locomotor.swift, etl.py), read by us on 29 Sep 2026.
  • Measured (connectome data)
  • Modelled
  • Hand-made by the author
  • Ordinary code or animation
DesktopFly's parts, from the code we read at commit 32b0001 (file and line references). Numbers from the author's evaluation are the author's own.
PartWhat it isKind
FlyWire circuit11 cell types chosen by the author (looming detectors LC4 and LPLC2, the giant fibre, the turning neurons DNa01 and DNa02, DNp09, DNg11, MDN and others) plus their 330 strongest partners: 668 neurons and 18,968 connections from FlyWire v783 (etl.py lines 23–56, 79–112).Measured, cut down
Connection strengthsSynapse counts with a sign from the predicted transmitter, times one global scale. The looming → giant-fibre connections that drive the escape get a hand-set ×6 boost (Sim.swift lines 310–322).Measured counts, hand-set scaling
Neuron modelLeaky integrate-and-fire spikes in 1 ms steps, with random background drive, random noise and random "arousal" bursts every 15–40 s (Sim.swift lines 207–212, 270–283, 346–358).Modelled
Leg circuit (since v1.1.0)1,045 neurons and 17,224 connections from MaleCNS v1.0, from descending neurons through the nerve cord to leg motor neurons (Locomotor.swift).Measured, cut down
Link between the two circuitsNo synapses: the two circuits come from different flies (female FlyWire, male MaleCNS). Firing rates of FlyWire descending-neuron groups are copied as input into male neurons with the same names, which the author calls "a modeled homologous population-rate interface" (Sim.swift lines 285–300; Locomotor.swift lines 122–128).Hand-made
The 23,210 "neurons" in the brain windowEvery sixth or so FlyWire cell body, drawn as a still point cloud. Not simulated; spike flashes appear only at the 668 circuit neurons (BrainView.swift lines 67–82).Display only
InputsAn approaching cursor is fed to the looming neurons, fast cursor moves and typing act as an "air puff", new windows loom, clicks tap, and the legs report joint contact. The clock, idle time and the computer's temperature state also change behaviour (main.swift lines 784–797, 840–886 and 1000–1009).Hand-made
Choosing a stateWhen neuron rates cross hand-set limits, the state changes: a giant-fibre spike starts a flight, DNg11 above 0.5 starts grooming, DNp09 above 0.22 starts walking, an MDN burst walks backward for 0.5 s, and high arousal raises the chance of a random take-off (FlyModel.swift lines 652–714).Hand-made
WalkingMaleCNS motor-neuron rates drive the leg joints and the body's movement (Locomotor.swift lines 202–213; FlyModel.swift lines 587–593). The knee's stiffness and damping were calibrated by hand.Driven by the network
FlightA random landing point or window ledge, reached along a timed, smoothed path with some wobble (FlyModel.swift lines 448–482, 786–817).Coded animation
Grooming and dartingGrooming is a leg sine animation (lines 861–865); darting is a coded turn away from the cursor at a random speed (lines 667–678).Coded animation
SleepNot a neuron: the fly sleeps when the computer has been idle for more than 10 minutes between 22:00 and 06:00, or for more than 30 minutes at any time (main.swift lines 1003–1007).Clock and idle time
Trained partsNone.None
TestsOnly checks of the model against itself: DNp09 driven at 40 Hz for 8 s moves the fly 10.64 model units forward, MDN at 70 Hz moves it 12.66 units backward, and removing all synapses stops propulsion (EVALUATION.md lines 73–80). No comparison with fly data and no wiring control.Author's numbers

Why the grade is C

Our first check graded DesktopFly B with the note "borderline C". On 29 Sep 2026 we read the deciding lines again. The code has not changed since 5 Sep 2026, so the new grade reflects a closer reading, not a change in the project. We give the lowest grade whose conditions all hold, and grade C covers "a real connectome whose activity only triggers scripted movements".

  1. Neurons pick, code performs.

    Every change of behaviour happens when a neuron rate crosses a limit set by the author, and then a coded program runs (FlyModel.swift lines 652–714).

  2. Three of the five behaviours are animations.

    Flight is a random-target, timed path; grooming is a sine animation; darting is a scripted turn with a random speed (FlyModel.swift lines 448–482, 786–817, 861–865).

  3. Sleep does not come from the brain at all.

    It is switched by the computer's idle time and the clock (main.swift line 1007). Our earlier verdict text said a neuron rate switched sleep; that was wrong and is corrected.

  4. The brain part is small and hand-picked.

    668 of FlyWire's 139,255 neurons, chosen around 11 cell types, with a hand-set ×6 boost on the escape pathway (etl.py lines 37, 104–112; Sim.swift lines 310–322).

  5. The author says so.

    "Grooming, flight, sleep and behavioral state selection still use the existing modeled rules and animations" (EVALUATION.md lines 188–189).

The case for B

When the fly walks, simulated MaleCNS motor neurons really do move its legs and body, and removing all synapses stops it (EVALUATION.md line 75). That is why the first grade was B.

Why it does not carry the grade

Walking is one of five states, and the leg circuit is fed through a hand-made interface between two different flies. Most of what you see on the desktop is coded animation that the circuit switches on.

The claim and our verdict

What DesktopFly says about itself, against what the code shows.
ClaimSourceVerdict
"A 3D fruit fly living on your macOS desktop, driven by a live spiking simulation of the real FlyWire connectome"GitHub repository description ("About"), read on 29 Sep 2026. It is not in the README.Overstated. A live spiking simulation does run, but of a 668-neuron FlyWire extract plus a 1,045-neuron MaleCNS leg extract, and it mostly switches scripted flight, grooming and dart programs. Only walking is driven by simulated motor output. Verdict row
"Spiking simulations built from FlyWire brain wiring and the MaleCNS brain-to-leg network. It combines identified neural circuits with modeled senses, joints and behavior."README, lines 8–11Accurate as a description.

What you need to run it

DesktopFly requirements from its README and release pages. All untested by us.
ItemWhat the project saysOur status
Official app downloadNone. Release v1.1.0 carries only GitHub's automatic source archives (zip and tar.gz).No official build
macOSmacOS 13 or newer with the Xcode Command Line Tools (Swift 5.9 or newer). Clone the repository, run ./build.sh, then ./DesktopFly. No special permissions (README lines 85–94).Untested
WindowsWindows 10 or 11 with Node.js 18 or newer: cd desktop-fly/windows, npm install, npm start (an Electron app). The author writes that "Windows-native sensing still needs verification on Windows" (README lines 46–47, 100–116).Untested
Download sizeAbout 2.9 MB of files after cloning, of which the data/ folder is about 2.1 MB (measured on our clone). The 1.2 MB in our catalogue entry is a size from the clone's metadata.Measured by us
GPUNone needed: the simulation runs on the CPU.Untested
Rebuilding the circuits (optional)FlyWire Codex v783 tables (about 60 MB) through etl.py; MaleCNS tables (about 1.11 GB) through etl_malecns.py, which needs numpy, pandas and pyarrow (README lines 192–209).Untested
Online demoNone.No online demo

Ports and copies by other people

These are not from DesktopFly's author. We read their code and release pages on 29 Sep 2026 but did not run any of them, and we did not check their app files for safety.

Ports and copies of DesktopFly found on 29 Sep 2026.
RepositoryWhat it isOur note
lan450/desktop-fly-androidA Java re-implementation for Android that simulates live. Its two circuit files are byte-identical to DesktopFly's; it has no brain point cloud. A third-party app file (477 KB) is attached to its release v0.1.0. Last commit 26 Sep 2026.Live port Its own audit reports the same numbers as the Swift version with a fixed random seed, but a flaky self-test without one.
somsom10/desktop-fly-linuxA Python/GTK port of the earlier FlyWire-only version, with an added sugar and odour feature; no MaleCNS leg circuit. Last commit 21 Aug 2026.Port Its README repeats the "live spiking simulation of the real FlyWire connectome" wording.
mmggaas3-git/desktop-vibe-fly-4winA C#/.NET 8 Windows port of the earlier FlyWire-only version, with added "VibeSense" features; no MaleCNS leg circuit. Third-party Windows builds (1.48 MB and 29 MB zips) are attached to its release v1.1.1. Last commit 16 Sep 2026.Port Not the upstream app.
caucasiadoublevision2701/desktop-fly (not linked)No DesktopFly code or data: a one-line README and a zip file whose listing shows Application.bat, key.txt and zen.exe, a Windows program. Its only commit is dated 29 Sep 2026.Do not download A download lure that borrows DesktopFly's name.

Videos

We have no DesktopFly video in the Video gallery yet: no video by the author was found in our sweeps.

Status

DesktopFly status on 6 Oct 2026.
FieldValue
Codegithub.com/DenisSergeevitch/desktop-fly
Last commit (default branch)32b0001, 5 Sep 2026, "Release v1.1.0: MaleCNS locomotion and smooth state transitions"; unchanged since our first check
Last releasev1.1.0, 5 Sep 2026, the only release; source archives only
Code licenceMIT. The LICENSE file adds that it covers the source code only (GitHub's licence detector therefore reports no standard licence)
Data licenceFlyWire-derived files: CC BY-NC 4.0 (non-commercial). MaleCNS-derived leg circuit: CC BY 4.0 (data/DATA_LICENSE.md)
GitHub stars1,053 on 27 Sep 2026 (not re-queried since)
Link checkHTTP 200 on 6 Oct 2026
Catalogue entrydesktop-fly, grade C (re-graded 29 Sep 2026), last verified 6 Oct 2026

Sources

Search published pools, pages, reports, and evidence.