Fly wiring. Real Pong.
Watch our trained network control the right paddle.Follow the signal.
Loading…
Updates 1–12 process these same images. Update 0 is the empty starting state. The paddle choice is made after update 12.
Layout groups neurons for readability; positions are not anatomical coordinates. Grouping is our circuit-selection scheme. Click a dot or use the selector below. Highlighted arrows are recorded incoming/outgoing connections.
Selected neuron
Descending readout
Each exit neuron's contribution to the action scores at the shown update. Only the final update drives the actual choice. The small decoder also adds its learned bias.
| Action | Exit 1 | Exit 2 | Bias | Total |
|---|
Selected neuron's connections
Weights are artificial learned values; their signs do not establish biological excitation/inhibition. Synapse counts and region labels come from FlyWire. Parallel region rows remain separate.
| Direction / other neuron | Region | Synapses | Baseline weight | Trained weight | Change |
|---|
Largest weight changes across the graph
| Sender → receiver | Region | Baseline | Trained | Change |
|---|
Influence means local sensitivity of this artificial model's action score: positive means increasing that neuron's activity slightly favors the chosen action relative to the other two. It is not a measured role in the fly brain, or proof that removing the neuron would improve play.
What you are watching
A trained artificial network follows a measured fruit-fly visual-to-movement circuit. Each of its 1,230 units represents a selected FlyWire neuron. Its 8,515 directed connections follow the recorded wiring.
Our visual encoder and paddle decoder are engineering choices. Training used supervised teaching followed by reinforcement learning. The browser now runs the saved calculations; it is not learning during play.
The opponent on the left is the original Atari computer player. All commands to the right paddle come from the fly network. There is no rule-based fallback.
Code & verification · FlyWire data · Atari emulator
Network weights are fixed. Browser sampling uses a different random-number generator from Python. Emulator: ALE 0.12.0 in WebAssembly. Emulator license.