Back away from a wall

Does the real wiring from LC16 to the moonwalker descending neurons turn an approaching wall into backward walking?

No training: the wiring aloneFruit fly multisensory circuit (FlyWire)Benchmark scores →
Loading 3D view…
Fly ·
livein your browser

What we measured

Real wiring
backed away 22 times (0 with no wall near), bumped into the wall 0 times
Rewired, same degrees
backed away 14 times (0 with no wall near), bumped into the wall 7 times
Random wiring
backed away 69 times (69 with no wall near), bumped into the wall 0 times
Measured with
scripts/gym-benchmark.ts reflex: 40 s, 3 seeds each, totals

What happens

The fly walks in a square room. The wall straight ahead grows on its retina as it approaches, driving the LC16 visual projection neurons.

If the moonwalker descending neurons (MDN) fire above 40 Hz, the fly walks backwards, then turns away. Otherwise it bumps into the wall. Nothing is trained; the threshold is the only choice.

Activating LC16 makes real flies walk backwards (Wu et al. 2016), and MDN is the command for backward walking (Bidaye et al. 2014).

Inspired by: Wu et al. (2016) on LC16; Bidaye et al. (2014) on the moonwalker neurons.

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
  • Wall ahead, growing on the retina → LC16
Neurons → movement
  • MDN above 40 Hz → walk backwards, then turn

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.