Optic-flow probe, stage localization
Goal
The first optic-flow probe (2026-09-16) found T4, T5, HS, and VS silent on the real v1.0 imago under the tonic-bias policy. That run could not say where activity died. This entry records mean spike rates at the photoreceptors, lamina (L1–L3), and medulla (Mi1, Tm3, Mi4, Mi9, Tm1, Tm2, Tm4) on the same three conditions, without changing the T4/T5/HS/VS go/no-go.
Setup
- git describe:
107ddba-dirty - machine: Mac M3 Max, device mps
- imago:
data/imagos/male-cns-v1.0.imago; controldata/imagos/male-cns-v1.0-shuffled-1.imago - diagnostic overlay:
stagesin the probe report; verdict still T4/T5/HS/VS only. Photoreceptor rate is the pooled spike rate of thephotoreceptorsandvirtual_photoreceptorsnamed sets. Lamina and medulla sets are exact type names. - lamina bias (mV) at r_base 10 Hz, target 50 Hz: L1 15.6276, L2 15.3426, L3 12.8401 (identical across runs)
- grating: period 30°, 1 Hz, contrast 0.8; 0.5 s warm-up, 2 s per direction; ratio 1.5
- commands:
uv run flatline probe --imago data/imagos/male-cns-v1.0.imago --device mps --frame-interval-ms 1 --out data/runs/probe/2026-09-16-stages-continuous.json uv run flatline probe --imago data/imagos/male-cns-v1.0.imago --device mps --frame-interval-ms 100 --out data/runs/probe/2026-09-16-stages-hold100.json uv run flatline probe --imago data/imagos/male-cns-v1.0-shuffled-1.imago --device mps --frame-interval-ms 1 --out data/runs/probe/2026-09-16-stages-shuffled.json
What happened
All three probes completed with no exceptions and returned exit code 2 (verdict failed), as before. Wall time was 28.9 s (continuous), 26.1 s (hold 100 ms), and 26.7 s (shuffled). T4/T5/HS/VS on the real imago remain exactly 0.0 Hz in every direction; the shuffled T4a rate is still about 0.87–0.90 Hz and flat. The new information is upstream.
Results
Stage mean rates (Hz), continuous frames, real imago:
| set | cells | progressive | regressive | up | down |
|---|---|---|---|---|---|
| photoreceptors | 7341 | 30.9236 | 30.8730 | 30.9477 | 30.8438 |
| L1 | 1776 | 37.7919 | 37.7689 | 37.7424 | 37.7993 |
| L2 | 1779 | 20.4272 | 20.4831 | 20.5166 | 20.4269 |
| L3 | 1772 | 21.8081 | 21.9879 | 21.7080 | 21.6718 |
| Mi1 | 1773 | 0.0008 | 0.0006 | 0.0011 | 0.0011 |
| Tm3 | 2054 | 0.0000 | 0.0000 | 0.0000 | 0.0000 |
| Mi4 | 1772 | 0.0000 | 0.0000 | 0.0000 | 0.0000 |
| Mi9 | 1775 | 0.0000 | 0.0000 | 0.0000 | 0.0000 |
| Tm1 | 1777 | 0.3588 | 0.3655 | 0.3517 | 0.3472 |
| Tm2 | 1766 | 0.1662 | 0.1557 | 0.1520 | 0.1622 |
| Tm4 | 1670 | 0.0102 | 0.0099 | 0.0072 | 0.0075 |
The 100 ms-hold table is the same shape: photoreceptors ~30.9 Hz, L1
~37.5 Hz, L2 ~20.3 Hz, L3 ~21.7 Hz, Mi1 ~0.001 Hz, Tm3/Mi4/Mi9 exactly
0, Tm1 ~0.35 Hz, Tm2 ~0.17 Hz, Tm4 ~0.01 Hz. It is in
data/runs/probe/2026-09-16-stages-hold100.json.
Shuffled control, continuous frames:
| set | cells | progressive | regressive | up | down |
|---|---|---|---|---|---|
| photoreceptors | 7341 | 30.9236 | 30.8730 | 30.9477 | 30.8438 |
| L1 | 1776 | 37.1030 | 37.1149 | 37.1025 | 37.1357 |
| L2 | 1779 | 36.0807 | 36.1352 | 36.1220 | 36.2018 |
| L3 | 1772 | 33.4334 | 33.4374 | 33.3809 | 33.4763 |
| Mi1 | 1773 | 6.7580 | 6.7160 | 6.7448 | 6.7735 |
| Tm3 | 2054 | 1.8785 | 1.8644 | 1.9068 | 1.8941 |
| Mi4 | 1772 | 0.8016 | 0.7963 | 0.8053 | 0.7963 |
| Mi9 | 1775 | 4.2363 | 4.1972 | 4.2606 | 4.2617 |
| Tm1 | 1777 | 11.1736 | 11.1950 | 11.2856 | 11.2648 |
| Tm2 | 1766 | 11.3743 | 11.3641 | 11.4711 | 11.4754 |
| Tm4 | 1670 | 2.0195 | 2.0030 | 2.0488 | 2.0302 |
Conclusions
The motion pathway is not silent from the first synapse. On the real
imago the encoder is driving photoreceptors at about 31 Hz under this
grating, and the lamina is firing: L1 near 38 Hz, L2 and L3 near
21 Hz, flat across direction as expected for a first-order stage. That
is below the 50 Hz mean-field target (the bias was computed at the
10 Hz dark baseline, and the grating raises photoreceptor rate, which
is inhibitory), but it is not rest. The first-run inference that
“the bias is doing its job at the source” is now a measurement, not a
claim from bias_mv alone.
Activity drops between the lamina and the medulla. The ON-path medulla cells Mi1, Tm3, Mi4, and Mi9 are effectively silent (Mi1 at ~0.001 Hz, the others at exactly 0). The OFF-path Tm1/Tm2/Tm4 leak at a fraction of a hertz. T4/T5/HS/VS remain 0. The 100 ms hold does not change this picture.
The shuffled control, with the same weight magnitudes and permuted targets, carries the signal through the medulla (Mi1 ~6.7 Hz, Tm1/Tm2 ~11 Hz, Tm3 ~1.9 Hz) and produces the small flat T4/T5 rates of the first run. So the silence is the real wiring’s routing, not a global inability of these cells to spike under these weights.
The spec 8.6 fallback — a graded lamina stage — is the wrong next move. The lamina already spikes. The break is lamina → medulla.
Next steps
Trace L1/L2/L3 outgoing effective weight onto Mi1, Tm3, Mi4, Mi9, Tm1, Tm2, and Tm4 on the real imago (median \(W_{\mathrm{in}}\) per target type, sign, and how many of those cells have any lamina drive at all). A medulla cell with no lamina input, or with a net input that never crosses threshold given these lamina rates, would explain the drop without touching the tonic-bias policy. Only if that accounting says the medulla should fire, and does not, would a graded or resampled lamina stage become the fallback again.