Automated release from CI pipeline
Changes:
research(R6.2): Fresnel-aware antenna placement — 93x sensing-coverage lift from physics alone (#719)
First deferred follow-up from R6. Productises R6's Fresnel forward model
into a 2D placement-search CLI: given a room + target occupancy zones,
recommend Tx/Rx positions that maximise first-Fresnel coverage.
Benchmark on 5x5 m bedroom (bed 3 m^2 + chair 0.64 m^2, 2900 pairs
evaluated at 2.4 GHz):
- OPTIMAL: 51.1% coverage (Tx 1.25,0; Rx 4.75,5; diagonal 6.10 m link)
- MEDIAN: 0.5% coverage
- WORST: 0.0% coverage
- 93x improvement, median to optimal
Counter-intuitive insight: longer links cover MORE space. Fresnel envelope
width = sqrt(d * lambda) / 2 grows with link length, so the 6.10 m
diagonal beats wall-parallel 5.00 m links. Up to the R10 link-budget
gate.
Per-cog deployment recommendations:
- cog-person-count: diagonal across longest axis
- cog-pose: zone inside ~50% midpoint envelope
- AETHER re-ID: Tx near doorway, Rx diagonal
- cog-maritime-watch: vertical diagonal through cabin
- cog-wildlife (future): Tx/Rx opposite trees, threading clearing midline
Improvements come from physics, not algorithms - no model retraining
needed. Existing customers can re-mount seeds today for 10-100x better
sensing.
Honest scope: 2D approximation, free-space, rectangular zones, single-pair
only, perimeter-only candidates, no link-budget gate.
CLI shape ready for productisation as 'wifi-densepose plan-antennas'.
Also surfaces as a deferred MCP tool 'ruview_placement_recommend'.
Composes with:
- R6 (direct 2D extension)
- R1 (placement x precision = full geometry budget)
- R10 (sets the link-budget gate this ignores)
- R11 (same recipe in steel cabins)
- R14 (determines whether V1/V2/V3 see the right occupant)
- ADR-105 (better placement = faster epsilon convergence)
Next R6.2 follow-ups catalogued: R6.2.1 (3D), R6.2.2 (N-anchor union),
R6.2.3 (pose-trajectory target zones).
Coordination: ticks/tick-16.md, no PROGRESS.md edit.
Docker Image:
ghcr.io/ruvnet/RuView:719875ea1dc6ba61d8ba155cf532ae8c1a7ff8f2