Automated release from CI pipeline
Changes:
research(R6.2.2): N-anchor multistatic placement saturation — practical knee at N=5 (#720)
Extends R6.2 from single-pair to N-anchor placement search via union of
all C(N,2) pairwise Fresnel ellipses. Greedy + K=8 random restarts.
Saturation curve on 5x5 m bedroom (3 target zones: bed + chair + desk,
40 wall-candidates, 434 grid points, 2.4 GHz):
| N | 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 |
| 6 | 15 | 100.0% | +3.2 pp |
| 7 | 21 | 100.0% | +0.0 pp |
Practical knee at N=5. Past this, diminishing returns.
Three regimes:
- Single-feature (presence): 2-3 anchors (36-63%)
- Multi-feature (pose+vitals+count): 4-5 anchors (86-97%)
- Mission-critical (medical): 6 anchors (100%)
- Beyond 6: wasted
Cost-optimisation: Cognitum Seed BOM is 9-15 USD. The 4->5 anchor jump
buys +10.6 pp coverage; the 5->6 jump buys only +3.2 pp for the same
cost. Consumer recommendation: 5 anchors. Commercial / medical: 6.
Convenient numerology: N=5 simultaneously satisfies three other
constraints:
- R7 multi-link mincut: needs N >= 4 for single-anchor-compromise
detection - ADR-105 federation Krum: f=1 byzantine tolerance requires K >= 5
- R6.2.2 coverage knee: 5 hits practical saturation
These all bound by similar inverse-square-of-geometry scaling, so the
alignment is not coincidental.
ADR-029 (multistatic) didn't specify anchor counts; R6.2.2 fills that
gap with a benchmark-backed number.
Honest scope: single 5x5m geometry tested, 2D still (R6.2.1 = 3D not
yet built), free-space (multipath adds +5-15% beyond Fresnel), greedy
with 8 restarts approximates global optimum to 1-2 pp.
Composes with:
- R6/R6.2 (direct generalisation)
- R7 (mincut needs N>=4)
- R1 (placement x precision = full geometry budget)
- ADR-029 (architectural recommendation now has a number)
- ADR-105 (Krum bound matches)
- R10, R11, R14 (other geometries / use cases)
Coordination: ticks/tick-17.md, no PROGRESS.md edit.
Docker Image:
ghcr.io/ruvnet/RuView:065521dc9ecf3e74664488d866b9c252b9756bf5