lab notes · a fruit-fly brain in a spider's body · solana / pump.fun

A fly's whole brain, simulated cell by cell, drives a mouse across the real web.

Abstract. We take the complete wiring diagram of a male fruit fly's central nervous system, run every one of its 165,122 neurons as a leaky integrate-and-fire unit, and give it a body: a headless Chromium. The screen enters through the fly's own retina (892 columns), the pointer leaves through the descending neurons a fly walks with, and a stop on an allowed link is a click. Nothing in the wiring is edited. The crawl tallies the words of the links the fly clicked; that tally is the coin's name. The same brain, on the owner's machine, drives the mouse over the real pump.fun create page, and the site says LIVE only after it has verified the mint on chain itself.

165,122neurons simulated
10,228,000synapse-weighted edges
892eye columns
0wiring edits
§0

Roaming the web

What you see below is live. A real browser is open on a real page; the crawler's spider is drawn on that page at the mouse, and the mouse goes where the fly's descending neurons send it. The frames are the browser's own screencast, the readouts are the simulator's, and when no frame arrives the crawler is between lives: a page budget was spent, or a new browser is starting on a seed.

—
—
—
neurons firing—of —
spikes / s—mean —
DNa02 L—
DNa02 R—
DNa01 L—
DNa01 R—
MDN—
DNp09—

Descending neurons in Hz, scaled to 460 Hz. The tick is the stop threshold, — Hz.

turn L—
turn R—
forward—
reverse—
click—
what the mouse did:—
the log—
  • nothing yet
the places—
  • nowhere yet
Fig. 1 — The live crawl. Left: the browser's screencast with the spider at the mouse and the fly's 300×210 eye window dashed around it. Right: this decision's readout. Below: what it did and where it went, newest first; a stop that was not a click says why. Live, not a recording; the crawler is between lives when no frame arrives.
brain steps—
clicks—
vetoes—
hops—
blocked—
scrolled—
lives—
uptime—
§1

The loop

One decision is one pass around this loop. The browser screencasts a 1280×800 frame; the retina samples the 300×210 window around the cursor; the brain runs 60 steps of 0.2 ms, 12 ms of brain time; the four descending neuron types are read as rates; the rates become a mouse move on the real page; and if DNp09 says stop while the fly is slow, the mouse clicks whatever is under it, provided the fences allow it.

  1. 1pagea real site in headless Chromium, 1280×800
  2. 2eye892 columns over the 300×210 window at the cursor
  3. 3brain165,122 LIF neurons, 60 steps × 0.2 ms
  4. 4descending neuronsDNa02 · DNa01 · MDN · DNp09, as Hz
  5. 5mousea move on the real page; the spider walks there
  6. 6stop = clickDNp09 ≥ 330 Hz while slow, if the fences allow
Fig. 2 — The decision loop, once per brain step. Each decision costs — simulator steps.
§2

The eye

The dataset assigns 892 retinotopic hex columns to the optic lobe. We put the screenshot on them: a 300×210 window around the cursor is sampled at each column, and the luminance drives the lamina cells that sit directly behind the photoreceptors, L1 for light going up (the ON pathway) and L2 for light going down (OFF). The field below is the ON drive at the columns it was sampled from, as the service reports it.

ON Hz—
OFF Hz—
visual fired—
motor fired—
Fig. 3 — What the retina delivers: the ON pathway, —, live. The band is the shape of the dataset's column assignment, not a layout choice.
§3

The brain

The graph is the Janelia FlyEM male CNS release (v1.0, CC-BY): 165,122 neurons and 10,228,000 synapse-weighted edges. Each neuron is a leaky integrate-and-fire unit after Shiu et al. 2024: every synapse moves the postsynaptic cell by 0.275 mV, the clock ticks every 0.2 ms, and a decision is 60 ticks. The wiring is never edited.

firing now—
of—
spikes / s—
mean mV—
Fig. 4 — Neurons firing per decision, —, live.
§4

Motor readout

A fly does not have a mouse, but it has descending neurons whose rates are known to mean something to its legs. We read four types. DNa02 steers, as the difference between the left and right copies. DNa01 drives forward. MDN, the moonwalker, walks backward. DNp09 stops, and a stop at or above 330 Hz while the fly is slow is the click.

typedoesread aslive Hzref
DNa02steerleft minus right—Rayshubskiy et al. 2020
DNa01forwardmean of left and right—Janelia FlyEM
MDNbackward, "moonwalker"reverse—Bidaye et al. 2014
DNp09stopstop; ≥ 330 Hz while slow is the click—Bidaye et al. 2020
Fig. 5 — The four types and their live rates this decision. The right-hand column of Fig. 1 shows the same rates as bars.
§5

Gains

The connectome as released does not steer a pointer. To make it steerable we tuned exactly one number per cell type, a gain, for 260 of the cell types, and nothing else. No synapse was added, removed or reweighted; no neuron was moved. The gains live in one file, gains_ui.npz, and the same file drives the roamer and the launch rig.

260cell types with a tuned gain
1number per type
0synapses edited
Fig. 6 — gains_ui.npz, in full. The page reads the stop threshold (— Hz) and the steps per decision from the service.
§6

The fences, and the name

A brain that clicks whatever it stops on needs fences, and they are code, not the fly. The crawler stays inside an allowlist of hosts, obeys each host's robots.txt, refuses a blocklist of URLs, and vetoes any click on something that looks like it commits: buy, sign in, submit, download, agree. A vetoed stop is logged as a stop that did not click, with the reason. The name is simpler than it sounds: every link the fly clicked votes for the words in its text, and the top word is the suggestion. Names reach nothing in the roamer; there is no smell in this build.

the fences—
  1. allowlistthe fly stays inside — hosts
  2. robots.txtread per host, obeyed
  3. URL blocklista keyword list on every destination
  4. vetono click on anything that commits
the name tally—
no words yet
Fig. 7 — Left: the four fences, in the order they are checked. Right: the words of the links the fly clicked, weighted, with the suggested name and ticker. Suggested, not enforced.
§7

The launch

The launch is the same brain driving the same mouse, this time over the real pump.fun create page on the owner's machine. The fly moves the pointer and types into whatever field it stops on; the rig completes the fields the fly missed and says which ones were its; a person answers the bot check and presses START. The crawler's own wallet signs exactly one transaction, and only if that transaction pays from the crawler wallet, touches pump.fun's program, and simulates within the dev buy plus 0.03 SOL. This site says LIVE only after the service has verified the mint and the create transaction on chain itself.

the stagesas rehearsed
  1. sign in with the crawler wallet
  2. attach the image
  3. the fly fills the fields it stops on; the rig completes the rest and says which
  4. the spider walks to Create coin
  5. pump.fun opens its buy dialog; the dev buy is typed, read back, and must match
  6. confirm: the dialog's Create coin
  7. the wallet signs one transaction; the service verifies the mint on chain
who does whatthree hands
the flythe riga person
moves the mousedrives the spider between stagesopens the rig, answers the bot check
types the field it stopped oncompletes the fields the fly missed, says whichtypes the real name and ticker
enters the dev buy by typingreads the amount back; it must matchpresses START, DRY or LIVE
never presses a dialog buttonpresses the dialog's Create coin on LIVEowns the wallet key
Fig. 8 — The launch, stage by stage, and whose hand is on each part. DRY stops before Create coin; nothing is pressed, nothing is created.
the coinnot launched
—
—
statusnot launched
suggested by the crawl—
mint—
create tx—
the crawler wallet—
—
—
chain—
launchpad—
signsone transaction, guarded
guardpays from this wallet · pump.fun program · dev buy + 0.03 SOL
Fig. 9 — The coin and the wallet. Before launch the logo stands in for the coin image and the ticker is the crawl's suggestion. After launch: the mint, the verified create transaction, the creator, the time.
§8

Status

Where the work stands, as of this page's last edit. The live items are read from the service; the rest is what has and has not been done.

  • doneconnectome + simulator: 165,122 LIF neurons, 10,228,000 edges, 260 tuned gains
  • doneroamer live on real pages (—)
  • donelaunch rig rehearsed on the real pump.fun create page, without sign-in (DRY)
  • not yetsigned-in rehearsal
  • not yetlive launch
Fig. 10 — The checklist. —.
refs

References

  1. Shiu et al. 2024, Nature: a Drosophila computational brain model; the leaky integrate-and-fire parameters used here (0.275 mV per synapse, 0.2 ms step).
  2. Janelia FlyEM, male CNS connectome v1.0 (CC-BY): the 165,122 neurons, the 10,228,000 synapse-weighted edges, the 892 retinotopic column assignments.
  3. Bidaye et al. 2014 and 2020: MDN, the moonwalker descending neuron, and DNp09, the stop.
  4. Rayshubskiy et al. 2020: DNa02 and steering.