Can the brain's steering cells choose the walkers' headings instead of a random draw?
No. Steering from those cells sent the walkers into the same spot: one find per seed where the random draw had found about 71.
In the log: the cast from the descending neurons (task 0 step 5)
withdrawnDate not stated in the log; it was written between the commit of 2026-09-16 19:06 and the first commit that contains it, 2026-09-19 08:35unclassified0 predictions · 1 result paragraphEXPERIMENTS.md lines 10959–10986, lines 11002–11006, lines 11202–11221, lines 11276–11303
What E169 did and how it came out, drawn from this record and the files it names (book/assets/diagrams/exp/E169.svg).
Pre-registration
The pre-registration, as written
E169 protocol amended before it starts: --confirm added, so the serotonin site is taught
by the confirm rung when a proposal qualifies. Prediction 1 of E167 (5ht lessons < 10% of
the readout's) transfers to E169 unchanged; a fifth E169 prediction: 5ht lessons > 0 on
both seeds — if still 0 with --confirm on, nothing qualified and that is itself the
measurement.
E169 / E170 seed-0 interims, and a correction to E168.
E169 seed 0 (DNa steering, --confirm): 5ht site 1 lesson in 800 verifications —
confirm() fired once, and the standardised rule needs two lessons before it can move.
With the teacher on, serotonin has still not been taught in effect; a serotonin verdict
needs a protocol in which the confirm rung fires tens of times, not once. E169's moved
fields read 0 because it launched before that accumulator existed — unknown, not zero.
Gains span 0.048; DN 6.1%.
E168's explanation of the E166 null is withdrawn in part. I wrote that FB lessons move
synapses by ~1e-5 and so "the walk never notices". E170 shows FB lessons of ordinary size
(18.3 cumulative over 583). The identity of E166 to E163 has a cleaner cause: at three
recurrent steps the fan-shaped body first carries state at step 3 (E171: fraction active
0.13 at step 3, 1.00 at step 4), so FB→hΔ/vδ and FB→LAL weights act only on a fourth
propagation that never runs. The synapses moved; no downstream node could see them. That
is causal depth, not lesson size. Consequences: E171b's steps=4 is the fix by itself;
its FORAGER_FB_LR=2.0 was motivated by the withdrawn reading and is unnecessary — kept
as launched (queued, not started), stated here so its effect is not misread as the
scaling's. E171b's prediction 1 (fb |Δw| > 1e-2) is now trivially expected and carries no
information; predictions 2–4 stand.
Results
EXPERIMENTS.md · line 11276
E169 result — the DNa cast collapsed the search; step 5 withdrawn as built. Whole
brain, broadcast, learned readout, fb+oa+5ht sites, modulation, FORAGER_STEER=dna,
--confirm, 200 × 4 × 2: AUC_Q 0.63 ± 0.04, 1 ± 0 finds, best −81 meV (E167: 25.9 /
71 / −136). Two protocol changes were made at once — the steering and the confirm gate —
and trial.py separates them: confirm(x) runs on every screen qualifier, and the 5-HT
site is taught once per call, so its lesson count is the qualifier count: 1 (seed 0) and
7 (seed 1) screen qualifiers in 800 verifications, where E167's swarm produced tens per
seed. The collapse is upstream of the gate. The gate then confirmed 1 of 1 and 1 of 7 and
charged their Monte Carlo cost to the spend, which is why AUC_Q is below even the find
count's implication.
Prediction 2: withdrawn as written — both seeds far below 2.61.
Prediction 3: falsified — 1 find per seed against a floor of 7; by its own terms "the
fixed field is trapping walkers and the fallback is not firing — a mechanism fault".
Prediction 1 (heading cosine): not measurable — the steering's last headings were not
in the dump. A steer field is added to the dump so the next steering run can score it.
Prediction 5 (5ht lessons > 0 on both seeds): confirmed (1, 7), and useless — one and
seven lessons teach nothing (the rule's warm-up is two; seed 1 had five effective).
Readout share fell with the collapse: LAL 2.4 / 0.9%, DN 6.1 / 2.2%.
Why a fixed random projection of DN state should do this, stated after the fact and so
not a prediction: the DN state at a composition is smooth in x, so the projected heading
is a smooth vector field on the simplex; run-and-tumble with a smooth field and a
"keep it while it pays" rule follows that field's flow lines to its sinks and stays there.
The random draw it replaced is what kept the swarm exploring. The fallback ("silent DNa →
random") never fired because DN is never silent under the broadcast (E168: 54–100% active).
Branch: steering as a perturbation of the random cast (heading = random + λ·DNa,
λ ≤ 0.5), which keeps the exploration and lets the head bias it — and only after E174 has
said whether any head-read signal matters at this resolution. Not queued tonight.
The full record
This entry is written in 4 separate places in the log, shown here in log order.
EXPERIMENTS.md · lines 10959–10986
E169 — the cast from the descending neurons (task 0 step 5)
Mechanism (forager/brain/steering.py, Forager(steer=), FORAGER_STEER=dna). Where
run-and-tumble drew a fresh heading at random, it now reads the 32 descending_steer (DNa)
cells at the walker's composition and projects their state onto the simplex tangent with a
fixed random zero-sum matrix, unit-normalised and scaled to the random draw's length so the
step size means the same thing. The projection is fixed because the wiring says nothing about
which descending cell means "more tungsten"; the head changes the DNa state, not the map. A
walker whose DNa state is silent falls back to the random draw. Forager.move is not
deleted — the comparison (keep the heading while it pays) is what the fly does; only the
tumble is retired.
Protocol.E167's arm plus FORAGER_STEER=dna (whole brain, broadcast, learned readout,
fb+oa+5ht sites, modulation), 200 × 4 × 2, FORAGER_TAG=e169. Controls: E163 (random cast,
11.57 ± 8.87 / 29 ± 17) and E167 (random cast + modulation) when it lands.
Predictions, before the run.
DNa state separates compositions (E168: 54% of DN cells active, 3.8e-3) so the cast is
not a constant field: across the 24 walkers the final headings have mean pairwise
cosine < 0.9. If ≥ 0.9 the steering is one direction for the whole swarm and step 5
is withdrawn as a no-op on this head.
Nothing teaches the projection, so the steered cast is not better than the random one:
AUC_Q on each seed within E163's seed range (2.7–20). It counts as worse — and step 5
is withdrawn — if either seed is below 2.61 (E159's olfactory arm). It counts as
better only if both seeds exceed 11.57, which is not predicted.
Finds do not collapse: ≥ 7 distinct finds per seed (E159's floor). Below that the
fixed field is trapping walkers and the fallback is not firing — a mechanism fault,
stated as such.
EXPERIMENTS.md · lines 11002–11006
E169 protocol amended before it starts: --confirm added, so the serotonin site is taught
by the confirm rung when a proposal qualifies. Prediction 1 of E167 (5ht lessons < 10% of
the readout's) transfers to E169 unchanged; a fifth E169 prediction: 5ht lessons > 0 on
both seeds — if still 0 with --confirm on, nothing qualified and that is itself the
measurement.
EXPERIMENTS.md · lines 11202–11221
E169 / E170 seed-0 interims, and a correction to E168.
E169 seed 0 (DNa steering, --confirm): 5ht site 1 lesson in 800 verifications —
confirm() fired once, and the standardised rule needs two lessons before it can move.
With the teacher on, serotonin has still not been taught in effect; a serotonin verdict
needs a protocol in which the confirm rung fires tens of times, not once. E169's moved
fields read 0 because it launched before that accumulator existed — unknown, not zero.
Gains span 0.048; DN 6.1%.
E168's explanation of the E166 null is withdrawn in part. I wrote that FB lessons move
synapses by ~1e-5 and so "the walk never notices". E170 shows FB lessons of ordinary size
(18.3 cumulative over 583). The identity of E166 to E163 has a cleaner cause: at three
recurrent steps the fan-shaped body first carries state at step 3 (E171: fraction active
0.13 at step 3, 1.00 at step 4), so FB→hΔ/vδ and FB→LAL weights act only on a fourth
propagation that never runs. The synapses moved; no downstream node could see them. That
is causal depth, not lesson size. Consequences: E171b's steps=4 is the fix by itself;
its FORAGER_FB_LR=2.0 was motivated by the withdrawn reading and is unnecessary — kept
as launched (queued, not started), stated here so its effect is not misread as the
scaling's. E171b's prediction 1 (fb |Δw| > 1e-2) is now trivially expected and carries no
information; predictions 2–4 stand.
EXPERIMENTS.md · lines 11276–11303
E169 result — the DNa cast collapsed the search; step 5 withdrawn as built. Whole
brain, broadcast, learned readout, fb+oa+5ht sites, modulation, FORAGER_STEER=dna,
--confirm, 200 × 4 × 2: AUC_Q 0.63 ± 0.04, 1 ± 0 finds, best −81 meV (E167: 25.9 /
71 / −136). Two protocol changes were made at once — the steering and the confirm gate —
and trial.py separates them: confirm(x) runs on every screen qualifier, and the 5-HT
site is taught once per call, so its lesson count is the qualifier count: 1 (seed 0) and
7 (seed 1) screen qualifiers in 800 verifications, where E167's swarm produced tens per
seed. The collapse is upstream of the gate. The gate then confirmed 1 of 1 and 1 of 7 and
charged their Monte Carlo cost to the spend, which is why AUC_Q is below even the find
count's implication.
Prediction 2: withdrawn as written — both seeds far below 2.61.
Prediction 3: falsified — 1 find per seed against a floor of 7; by its own terms "the
fixed field is trapping walkers and the fallback is not firing — a mechanism fault".
Prediction 1 (heading cosine): not measurable — the steering's last headings were not
in the dump. A steer field is added to the dump so the next steering run can score it.
Prediction 5 (5ht lessons > 0 on both seeds): confirmed (1, 7), and useless — one and
seven lessons teach nothing (the rule's warm-up is two; seed 1 had five effective).
Readout share fell with the collapse: LAL 2.4 / 0.9%, DN 6.1 / 2.2%.
Why a fixed random projection of DN state should do this, stated after the fact and so
not a prediction: the DN state at a composition is smooth in x, so the projected heading
is a smooth vector field on the simplex; run-and-tumble with a smooth field and a
"keep it while it pays" rule follows that field's flow lines to its sinks and stays there.
The random draw it replaced is what kept the swarm exploring. The fallback ("silent DNa →
random") never fired because DN is never silent under the broadcast (E168: 54–100% active).
Branch: steering as a perturbation of the random cast (heading = random + λ·DNa,
λ ≤ 0.5), which keeps the exploration and lets the head bias it — and only after E174 has
said whether any head-read signal matters at this resolution. Not queued tonight.
Related entries
E167 — octopamine gain and serotonin persistence read from the head (task 0 step 4)
E163 — Task 0, step 2b: the afferent broadcast as the brain's input
E168 — named in the log, no entry of its own
E159 — Task 0, step 2: read the brain at LAL + DNa, not only at the 97 MBONs