3.7 KiB
Tick 17 — 2026-05-22 07:09 UTC
Thread: R6.2.2 (N-anchor multistatic placement) Verdict: Practical knee at N=5 anchors for typical 5×5 m bedroom. Direct cost-optimisation conclusion + ADR-029 architectural update.
What shipped
examples/research-sota/r6_2_2_multistatic_placement.py— pure-numpy greedy multi-anchor placement search with random restarts.examples/research-sota/r6_2_2_multistatic_results.json— full saturation curve for 5×5 m bedroom benchmark.docs/research/sota-2026-05-22/R6_2_2-multistatic-placement.md— research note.
Saturation curve (5×5 m bedroom, 3 target zones, 2.4 GHz)
| N anchors | Pairs | Coverage | Marginal |
|---|---|---|---|
| 2 | 1 | 35.7% | +35.7 pp |
| 3 | 3 | 63.4% | +27.6 pp |
| 4 | 6 | 86.2% | +22.8 pp |
| 5 | 10 | 96.8% | +10.6 pp ← knee |
| 6 | 15 | 100% | +3.2 pp |
| 7+ | 21+ | 100% | +0.0 pp |
Knee at N=5 — past this, diminishing returns.
Three regimes surfaced
| Use case | Anchors | Coverage |
|---|---|---|
| Single-feature (presence only) | 2-3 | 36-63% |
| Multi-feature (pose, vitals, count) | 4-5 | 86-97% |
| Mission-critical (medical, security) | 6 | 100% |
| Beyond 6 | wasted | 100% (no gain) |
Cost-optimisation conclusion
Cognitum Seed BOM is $9-15. The +$9-15 from 4→5 anchors buys +10.6 pp coverage. The same cost from 5→6 buys only +3.2 pp. Consumer recommendation: 5 anchors hits the knee. Commercial / medical: 6.
Convenient numerology
N=5 happens to also satisfy three other constraints simultaneously:
- R7 multi-link mincut: needs N ≥ 4 to detect single-anchor compromise
- ADR-105 federation Krum: f=1 byzantine tolerance requires K ≥ 5
- R6.2.2 coverage knee: 5 anchors hits practical saturation
These three constraints all bound by similar inverse-square-of-geometry scaling, so the alignment is probably not coincidental — but it's a useful fact for the architectural roadmap.
ADR-029 recommendation update
ADR-029 (multistatic sensing) didn't specify anchor counts. R6.2.2 fills the gap:
Recommended anchor count: 5 for typical 5×5 m room. 4 anchors gives 86% coverage (good for many use cases); 6 anchors gives 100% but is over-provisioned past the knee.
Composes with prior threads
- R6 / R6.2: direct generalisation; greedy expansion to N anchors
- R7: needs N ≥ 4 for multi-link adversarial detection; N=5 satisfies
- R1: combined with R6.2.2 = full sensing geometry budget
- ADR-029: architectural recommendation now has a number
- ADR-105: Krum byzantine bound f < (K-2)/2 → K=5 = f=1 (matches R7 single-attacker case)
- R10: wildlife corridors will have different saturation (more anchors for length, fewer for width)
- R11: maritime cabins likely saturate earlier (N=3-4)
- R14: V1/V2/V3 verticals all need ≥86% coverage = N=4 minimum
Honest scope
- Single geometry tested (5×5 m bedroom). Other rooms have different knees.
- 2D still (R6.2.1 = 3D ceiling/floor mounts not yet built).
- Free-space (multipath probably adds +5-15% beyond Fresnel-only).
- Greedy + 8 restarts → 1-2 pp shy of global optimum at most.
Coordination
ticks/tick-17.md. No PROGRESS.md edit. Branch research/sota-r6.2.2-multistatic-placement.
Remaining work
- R3 follow-up: physics-informed env_sig prediction (zero-shot cross-room via R6 forward operator + room map)
- R6.1: multi-scatterer additive forward model
- R6.2.1: 3D ceiling/floor placement
- R6.2.3: pose-trajectory-aware zones (needs AETHER + R3 data)
- ADR-107: cross-installation federation w/ secure aggregation
~4.9h to cron stop. 17 ticks landed. 2 ADRs + 2 deferred follow-ups closed.