docs/research/sota-2026-05-22/R6_2-fresnel-antenna-placement.md
Status: working CLI tool + demo + 5×5 m bedroom benchmark · 2026-05-22
R6 (Fresnel forward model) said: there is a ~40 cm wide ellipsoid around a 5 m WiFi link where occupancy dominates the CSI signal. Outside that envelope, CSI is mostly multipath edge noise. The current RuView installation guide is essentially "stick the seed wherever the AP is and hope for the best."
This thread quantifies how much coverage you give up by ignoring the Fresnel geometry — and provides a CLI-shaped tool that solves the placement problem given a room layout + target occupancy zones (bed, chair, where the user actually spends time).
In 2D the first Fresnel zone is an ellipse with:
a = (d + λ/2) / 2b = √(a² − (d/2)²) ≈ √(d·λ)/2 for d ≫ λA point x is inside the first Fresnel zone iff |Tx-x| + |x-Rx| ≤ d + λ/2. This is the natural 2D extension of R6's midpoint radius formula.
examples/research-sota/r6_2_antenna_placement.py rasterises target zones at 5 cm resolution, evaluates every candidate (Tx, Rx) pair on the room perimeter (25 cm step), and picks the pair that maximises total target-zone area inside the first Fresnel ellipse.
Two target zones:
| Zone | Position | Area |
|---|---|---|
| Bed | (1.5, 0.5)-(3.5, 2.0) | 3.00 m² |
| Chair | (3.5, 3.5)-(4.3, 4.3) | 0.64 m² |
2,900 antenna pairs evaluated at 2.4 GHz (λ = 12.5 cm):
| Placement | Tx | Rx | Link | Bed cov | Chair cov | Total |
|---|---|---|---|---|---|---|
| Optimal | (1.25, 0.00) | (4.75, 5.00) | 6.10 m | 43.5% | 86.7% | 51.1% |
| Median (rand-place baseline) | varies | varies | varies | varies | varies | 0.5% |
| Worst | varies | varies | 5.00 m | varies | varies | 0.0% |
Best/median improvement: 93×. The current "stick it anywhere" deployment recipe is ~50-100× below optimal in this geometry. Most placements give effectively no sensing of the actual target zones, because the Fresnel ellipse threads space that nobody occupies.
The optimal placement runs diagonally across the long axis, threading both the bed and the chair. The 6.10 m link length is longer than any wall-parallel link (≤5 m), which gives a wider Fresnel ellipse at the midpoint:
b(d=5.0, λ=0.125) = √(5.0 × 0.125)/2 = 39.5 cm
b(d=6.1, λ=0.125) = √(6.1 × 0.125)/2 = 43.7 cm (+10%)
The Fresnel envelope gets wider as the link gets longer (up to the link-budget limit, which we ignore here — R10 sets that). Counter to the intuition "shorter link = stronger signal", longer links cover more space. Up to a budget-limited point.
Plugging this into each existing cog's installation flow:
| Cog | Target zones | Recommended placement |
|---|---|---|
cog-person-count (R8/R5/ADR-103) | Any room occupancy | Diagonal across longest axis |
cog-pose-estimation (ADR-079, ADR-101) | Where pose matters (gym corner, kitchen workspace) | Place link so the zone is within ~50% of the midpoint envelope width |
| AETHER re-ID (ADR-024) | Doorway + main occupancy zone | Tx near doorway, Rx diagonal across; doorway transit triggers ID, main zone confirms |
cog-maritime-watch (R11) | Cabin floor space | Tx ceiling-mount, Rx floor-mount, vertical diagonal through cabin |
cog-wildlife (R10 follow-up, not yet built) | Forest clearing perimeter | Tx and Rx on opposite trees, link threads the clearing midline |
These recommendations make the existing installation guides ~50-100× more effective without any hardware change.
wifi-densepose plan-antennas --room 5x5 --target bed,1,1,2x1. The output is a concrete placement that an installer can mount to.cog-wildlife), the placement guide is generated from the cog's target-zone schema, not hand-written per-cog.wifi-densepose plan-antennas \
--room 5.0 5.0 \
--target bed 1.5 0.5 2.0 1.5 \
--target chair 3.5 3.5 0.8 0.8 \
--freq-ghz 2.4 \
--step 0.25
Output:
BEST placement:
Tx: 1.25, 0.00
Rx: 4.75, 5.00
Coverage fraction: 51.1%
Per-zone:
bed: 43.5%
chair: 86.7%
This is the deliverable a customer would run before mounting hardware. Two minutes of computation saves an installer from making the "stick it on the AP" mistake that loses 50-100× of the sensing potential.
wifi-densepose plan-antennas subcommand; mention in ADR-104's CLI surface as a deferred MCP tool ruview_placement_recommend.The "we don't have a placement recommendation tool" gap that every RuView installer hits is now closed with a working CLI-shaped prototype. The 93× median-vs-best improvement is large enough that productising this is high-leverage with no new physics.