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?
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.
- Target left or right → LPLC1 of that side
- Target close and large → LC4 of that side
- 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.