Chase a moving target

Can the circuit keep a moving target in front and close, using only which side it is on and how big it looks?

Trained readout on fixed wiringFruit fly multisensory circuit (FlyWire)Train it yourself →Benchmark scores →
Loading 3D view…
Fly ·
livein your browser

What we measured

Real wiring, held out
0.57 closeness
Rewired, same degrees, held out
0.37 closeness
Random wiring, held out
0.15 closeness
Circuit silenced, held out
0.14 closeness
Hand written readout (DNa02 right minus left)
0.07 closeness
Measured with
scripts/gym-benchmark.ts: 12 generations of 16, same seed and budget for every circuit
Train it yourself
/train/gym-chase

What happens

The target's direction drives the LPLC1 neurons on that side of the fly; when it is close and large, the LC4 looming detectors join in. Two readouts of the 21 output neurons set turning and walking speed.

The score is the mean closeness, exp(−distance / 1.5 body lengths). Training uses a slow target; the held out test a faster, more erratic one.

What you see is the readout the benchmark trained on the real circuit, playing the held out setting. Switch the circuit to a rewired one to watch the same readout on wiring it was not trained for, or train your own in the training lab.

Inspired by: Courtship chasing and the LC10 visual projection neurons (Ribeiro et al. 2018).

How the brain is wired to the world

The mapping is part of the experiment design. Everything between senses and motor output is the connectome.

Senses → neurons
  • Target left or right → LPLC1 of that side
  • Target close and large → LC4 of that side
Neurons → movement
  • Trained readout of 21 output neurons → turn right (+) or left (−)
  • Trained readout of 21 output neurons → walk faster (+) or slower (−)

Dataset: Subcircuit of FlyWire v783: inputs HSE, HSN, HSS, LPLC1, LC4, LPLC2, LC16, ORN_DM1, ORN_DA2, sugar/water, bitter; outputs DNa01, DNa02, DNa03, DNb05, DNa11, DNp01, MDN, DNp09, DNg13, DNp03, CB0701; paths with at least 40 synapses per step. About this dataset

Run it locally

Every experiment can also use the local runner, which simulates the brain on your own computer. It is required for connectomes too large for a browser.

git clone https://github.com/berkeyc/connectome-lab.git
cd connectome-lab
pip install -r local/requirements.txt
python local/runner.py            # listens on ws://localhost:8765

Then choose “Local runner” in the player controls and press Restart. Your browser may ask for permission to connect to a local device.