7.0 KiB
R6.2.2 — N-anchor multistatic Fresnel placement: how many seeds do I need?
Status: working multi-anchor greedy + saturation curve · 2026-05-22
Premise
R6.2 answered the single-pair placement question. R6.2.2 answers the multi-anchor saturation question: given a room + target zones, how does coverage scale with the number of anchors? The practical answer — "how many Cognitum Seeds do I need to deploy?" — falls out of the saturation curve.
Method
Same Fresnel-ellipse machinery as R6.2, but instead of a single pair, evaluate all C(N, 2) pairwise Fresnel ellipses and compute their union coverage of the target zones.
Full combinatorial search is O(M^N) which blows up past N=4 with M=40 candidates. We use greedy with K random restarts instead: starting from a random initial pair, at each step add the candidate that maximises marginal coverage. K=8 restarts gives reliable convergence at this problem size; each restart is O(N·M·grid_size) which is tractable.
5×5 m bedroom benchmark
Three target zones (bed 3.00 m² + chair 0.64 m² + desk 0.60 m²); 40 wall-perimeter candidates at 0.5 m step; 434 target grid points.
| N anchors | Pairwise links | Coverage | Marginal gain |
|---|---|---|---|
| 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 |
Knee at N=5 — going from 4 to 5 adds 10.6 pp; from 5 to 6 adds only 3.2 pp. Past 5 anchors, the gain per additional seed drops below the practical-cost threshold.
Three regimes
Sparse (N=2–3)
A single-link or 3-anchor install hits 36-63% coverage. Acceptable for occupancy-only features (R8 person-count, room-presence triggers). Insufficient for per-occupant features (R14 V1/V2/V3) that need the specific occupant zone sensed.
Practical (N=4–5)
The ADR-029 default of 4 anchors hits 86% in this geometry — close to but not at the "all zones reliably sensed" line. 5 anchors closes the gap to ~97%, which is the right product target for empathic-appliance features (R14 V1 lighting, V2 HVAC, V3 attention-respecting).
Saturated (N=6+)
100% is reachable with 6 anchors and stays there. Diminishing returns past 5 are real — additional anchors mostly redundant.
Bridging back to ADR-029
ADR-029 specifies multistatic sensing without specifying the anchor count. This thread gives a concrete answer for a bedroom: 5 anchors hits the practical knee, 4 is acceptable for occupancy-only, 6+ is over-provisioned. Different room geometries (larger living rooms, open-plan kitchens, narrow hallways) will have different knees — but the methodology transfers without modification.
Updating ADR-029's recommended configuration:
| Use case | Anchor count | Expected coverage |
|---|---|---|
| Single-feature (presence / occupancy) | 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) |
Why this matters for cost / installation
A typical Cognitum Seed costs $9-15 BOM. 4 → 5 anchors is +$9-15 + ~10 min installer time. 5 → 6 is the same cost for +3.2 pp coverage. The economic story for most consumer deployments is 5 anchors, hit the knee. Commercial / medical deployments can justify the 6-anchor configuration; consumers shouldn't.
This is a shipping-ready cost-optimisation conclusion with explicit numbers.
Composes with prior threads
- R6 (Fresnel forward model) — provides the 2D ellipse machinery R6.2.2 unions over.
- R6.2 (single-pair placement) — direct generalisation; greedy expansion to N anchors.
- R7 (mincut adversarial) — requires N ≥ 3 to detect single-link adversarial spoofing; N ≥ 4 to detect single-anchor compromise. R6.2.2's knee at N=5 happens to also satisfy R7's defensive requirement.
- R1 (CRLB) — combined with R6.2.2, gives the full sensing geometry budget: 5 anchors × R1's 25 cm ToA precision per anchor = full room-scale geometric coverage at room-pose quality.
- ADR-029 (multistatic) — direct architectural recommendation update.
- ADR-105 (federated learning) — N=5 is also "enough" for inter-node Krum aggregation (f=1 byzantine tolerance with K=5).
Honest scope
- Single geometry tested. Only 5×5 m bedroom with these 3 zones. Living rooms, hallways, kitchens will have different knees. A repository of "knee-per-room-shape" benchmarks would be valuable; not built here.
- 2D still. R6.2.1 (3D ellipsoid + ceiling/floor anchors) hasn't been built. In 3D, the same anchor count may give either more or less coverage depending on geometry.
- Free-space. Multipath probably adds +5-15% coverage beyond the Fresnel-only model. The N=5 knee in practice may be N=4-5 with multipath.
- No link-budget gate. Long-distance large-room placements may exceed R10's path-loss cap.
- Greedy + restarts. Approximation to global optimum; restarts=8 typically lands within 1-2 pp of the global optimum for N ≤ 8 on this problem size.
- No furniture occlusion. A real bedroom has the wardrobe blocking some Fresnel ellipses.
What this DOES enable
- Concrete cost-optimisation answer: 5 anchors is the practical recommendation for most consumer rooms.
- Saturation curve methodology: customer / installer can run their own room layout and see where their knee is.
- ADR-029 update: anchor-count recommendation backed by physics + benchmark.
- Forward-projection: combined with R1 (precision) and R6.2 (single-pair lift), we now have a full sensing geometry budget for any RuView room install.
What this DOES NOT enable
- 3D ceiling/floor placement (R6.2.1 needed)
- Pose-trajectory-aware zones (R6.2.3, depends on AETHER + R3 data)
- Cross-room multistatic (single-room only; R3 handles cross-room re-ID via embeddings)
- Furniture occlusion modelling
Next ticks (R6.2 family)
- R6.2.1: 3D extension with ceiling/floor anchors
- R6.2.3: pose-trajectory-aware target zones (need AETHER + R3 data)
- R6.2 productisation: ship as
wifi-densepose plan-antennasCLI subcommand + MCP toolruview_placement_recommend
Connection back
- R14 (empathic appliances) — V1 stress-responsive lighting needs ≥86% coverage to actually sense the occupant; R6.2.2 says N=4-5 is the right anchor count.
- R11 (maritime) — through-seam sensing in cabins is small + cluttered; saturation likely hits earlier (N=3-4). Worth benchmarking on cabin geometry.
- R10 (foliage / wildlife) — outdoor wildlife corridors are long + thin; saturation curve will be different (more anchors needed for length, fewer for width).
- ADR-029 / ADR-105 / ADR-106 — N=5 is also the Krum byzantine-fault-tolerance threshold for f=1 attacker, which means the same 5-anchor count satisfies coverage, R7 adversarial defence, and ADR-105 federation byzantine bound simultaneously. The numerology is convenient and probably not coincidental — these constraints are all bounded by similar inverse-square-of-geometry scaling.