c-ble-anchor-placement — session 01KVZS1KVBW7HBMM9XKYPPCW5A (2026-06-25)
Verdict: topology-informed anchor placement PARTIALLY RECOVERS the graded count the dispersed placement lost — a hardware anchor-placement design input, not graded-counting proof. Interpretation #1 (bounded), per the brief.
This answers the open question c-ble-csi-coregistration left: that session found the co-registered BLE anchor resolves occupancy presence (d 2.3–3.7) but saturates — no graded headcount — with anchors dispersed one per peripheral room. Its synthesis named the fix as "anchor placement near occupant zones." We placed 5 Rx topology-informed: 3 on the high-betweenness living-0 corridor hub (the 135 m² cell every room connects to — highest NRG degree/betweenness) + 2 in the large unanchored bedroom-1 (47 m², door-connected to the hub), same Tx, same N-sweep.
Setup
New PostGIS experiment csi-link-resplan-12439-topo-anchors (6 devices placed). 18 exp-csi-static runs N {0,2,4,6,8,12} × seeds {0,1,2}, noise 2.0, 2.4 GHz, n_placements 24 — the noise-2.0 main grid of c-ble-csi-coregistration with the only change being Rx placement. Head-to-head vs that session's 18 dispersed-placement runs. Reduction csi_ble_anchor_placement.py (per-link empty-room-baseline-normalised ΔRSSI).
Result
| metric | dispersed (baseline) | topology (hub+bedroom-1) |
|---|---|---|
| graded slope (dB/person) | +0.08 (flat — saturates) | −0.48 (monotone) |
| ρ(N,ΔRSSI) per seed | −0.83, −0.66, −0.09 | −0.89, −0.77, −0.49 |
| presence d (0 vs first occupied) | 2.32 | 2.56 |
| coarse steps ΔN≥4 resolvable (mean d≥1)? | none | yes (d 1.2→3.2) |
- The aggregate response becomes monotone. Dispersed ΔRSSI drops at N=2 then bounces back toward 0 (the saturation signature); topology stays monotone-decreasing and steepens strongly by N=12. All three topology seeds are clearly negative — the dispersed "broken" seed (ρ=−0.09) recovers to −0.49.
- Coarse grading is recovered; fine grading is not. On the robust effect-size view (right panel), topology placement makes ΔN≥4 steps resolvable at mean d≥1 where dispersed resolves none — but ΔN=2 stays below threshold (topology d=0.31), and the strongest separation is at high occupancy (N=12). So topology placement buys coarse graded count, not fine headcount, from a single narrowband Tx.
Honest scope
In-silico motivation for ble-periodic-calibration (held plausible) — the BLE event noise is self-authored, so this is a placement design input, not proof. Single Tx, uniform-drywall, static (seated-crowd proxy) regime. The deliverable: concentrate anchors on high-betweenness hubs + large occupant rooms (vs dispersing to peripheral rooms) — a concrete anchor-placement decision for the IP-106 hardware testbed, where the real defeater lives. Reduction monad_knowledge/notebooks/python/csi_ble_anchor_placement.py; fig under the session prefix + _attachments/ble-anchor-placement/. 18 runs attached; dispersed baseline reused from 01KVX0WCD5SXYQDSTJZ77Q1ANT.