wifi-densepose/docs/research/sota-2026-05-22/R6_2_2-multistatic-placemen...

7.0 KiB
Raw Permalink Blame History

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=23)

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=45)

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

  1. Concrete cost-optimisation answer: 5 anchors is the practical recommendation for most consumer rooms.
  2. Saturation curve methodology: customer / installer can run their own room layout and see where their knee is.
  3. ADR-029 update: anchor-count recommendation backed by physics + benchmark.
  4. 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-antennas CLI subcommand + MCP tool ruview_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.