Insect Steering Logic & the "Switch" Experiment

Hi everyone,

I’ve been diving deep into Barbara Webb’s latest work View article (Mitchell & Webb 2026) on insect steering circuits and your video regarding the mechanics of “how to flip a switch.” in
2026/02 - Summary of Brainstorming Week. Based on these, I was thinking of a neural architecture.

The core idea: The system doesn’t “know” what a switch is. It doesn’t recognize objects or use standard image processing. Instead, it navigates purely through Movement Vectors (Flow) and Causality.

How the System Works: A Causal Loop

Before looking into it deeper, you have to understand the philosophy. This system operates like a self-correcting feedback loop. Think of it like a person navigating a dark room with a cane. They don’t see the wall, but they learn: “When I move my arm this way, I feel a specific resistance (Flow), and then my world state changes.”

The system doesn’t navigate a picture; it navigates a State-Space. It constantly asks:

  1. Where am I now?

  2. Where do I want to be?

  3. Which movement brought me to that goal in the past?


The Signal Flow: Step-by-Step

1. Capturing State (The Ring Attractors)

The system maps the world onto Ring Attractor Networks. Imagine these as circular neural tracks where a “bump” of activity (a cluster of firing neurons) moves back and forth.

  • Ring 1 (Arm Position): Where is my arm located?

  • Ring 2 (Switch Position): Where in the camera’s field of view is there “flicker” or movement?

  • Ring 3 (Light State): How bright is the environment (simulated Lux sensor)?

A “bump” looks like this internally: O O O X X X O O O. The XXX represents the current position. This gives us a “map” of the current situation without needing a single pixel-perfect image.

2. Goal Setting & Error Calculation

You give the system a goal, like “Light On.” This injects a virtual Goal Bump into the Light Ring at the “Bright” position. Since the current state is “Dark,” the system calculates the distance between the two bumps. This difference is the Error Vector. This error is the fuel—as long as it isn’t zero, the system is driven to act.

3. The Causal Matrix (CAM) & Taking Action

This is the memory. The Causal Associative Matrix (CAM) is a storage unit that has learned: “Arm movement Right leads to Flow at the switch, which leads to Brightness in the Light Ring.” The system picks the motor command (e.g., “Arm Right”) that it knows will best reduce this specific error.

4. Prediction (Efference Copy)

As the motor starts, something crucial happens: the system sends an Efference Copy (a duplicate of the motor command) to an internal Forward Model. The model predicts: “I am moving right, so I expect the camera to report flow moving right.”

5. The Prediction Error & Learning

The system compares its prediction with the real-time camera data.

  • Does it see only what it predicted? Everything is normal.

  • Is there “extra flow” because the switch clicked? The Prediction Error screams: “Something happened that I didn’t cause myself!” In this exact moment, the system learns the causal link between the arm movement, the switch, and the light and it is stored in the CAM. So next time the system knows exactly which movement is the one that leads to bright.


The Validation: A Software Simulation

To prove this, I intend to build a 1D simulation: a virtual arm which can move 1D, a switch on a line, and a light source.

The “Flow-Only” Camera Pipeline: In this simulation, the camera won’t see colors or shapes. It will only process Flow (when something is moving in a certain direction). If the switch flips, it will create a very specific pattern in the data. The system will learn that this specific movement pattern is the “key” that toggles the Light Ring.

The “Lock-In”: The simulation is designed to reveal a fascinating behavior. The arm will move as long as there is an error in the Light Ring. The moment the switch clicks and the light sensor reports “Bright,” the current bump in the Light Ring will jump to the Goal position.

At that exact moment, the error becomes zero. Mathematically, the “drive” for the motors simply vanishes. The arm won’t stop because of a timer or a “stop” command; it will stop because it has physically locked into the goal state within the neural rings.

Why this matters: If I move the switch to a different position during the simulation, the system shouldn’t care. Because it’s constantly trying to “align the bumps,” the arm will just keep searching until it hits the switch and gets the light feedback. It’s not a rigid program; it’s steering in a causal space.

What do you think? You can tell me openly if this is complete nonsense :sweat_smile: And also the idea still lacks many details but I am working on it.

Looking forward to your thoughts!

Hi @weiglt

thanks for the post and sorry for the late reply!

I am not sure I completely follow your proposal, but generally, it sounds like an interesting idea to use movement vectors/flow and causality and see whether this is sufficient for achieving goals.

Regarding learning models of only flow, have you seen our ideas around modeling object behaviors? (Writeup here: Object Behaviors and meeting playlist here: https://www.youtube.com/playlist?list=PLXpTU6oIscrn_v8pVxwJKnfKPpKSMEUvU ) Those models don’t contain information about morphology or static features of the objects; they just store information about changes (e.g. optic flow). Maybe this is similar to what you are thinking?
We would still have static/morphology models of objects, since we still want to be able to make predictions about those, and we want to be able to recognize objects even when they are not moving, and then apply actions to them. But the behavior models themselves would be independent, and the same behavior could be recognized on different morphologies. For the purpose of just interacting with an ongoing behavior, I think you are right that you could only rely on the flow information.

Definitely let us know if you run those experiments and how it goes :slight_smile:

Best wishes,
Viviane

Hi @weiglt

I had a look through the paper you linked to, very interesting, a lot of information packed in there. Indeed a lot more than I had ever considered when in comes to steering with a neural network.

You will see in the Projects section (project Arachne) wherein I am trying to build a rather large insect like creature controlled by a neural network. Currently I am struggling to create the walking action, but assuming I overcome that hurdle steering will be next and I will review the paper in greater detail.

It would be interesting to see if you can distill the very academic paper down into something more practical to implement. Have you decided in what environment you would carry out your simulations?

Alex