wifi-densepose/docs/research/sota-2026-05-22/ticks/tick-27.md

104 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Tick 27 — 2026-05-22 09:32 UTC
**Thread:** R6.2.5 (multi-subject occupancy union)
**Verdict:** Clean positive — **N=5 hits 100% coverage** for households of 1-4 occupants with chest-centric zones. N=4 knee returns. R6 family completes with this tick.
## What shipped
- `examples/research-sota/r6_2_5_multi_subject.py`
- `examples/research-sota/r6_2_5_multi_subject_results.json`
- `docs/research/sota-2026-05-22/R6_2_5-multi-subject-union.md`
## Headline
| Scenario | # zones | Coverage @ N=5 |
|---|---:|---:|
| 1 occupant | 1 | **100%** |
| 2 occupants | 2 | **100%** |
| 3 occupants | 3 | **100%** |
| 4 occupants | 4 | **100%** |
4-occupant saturation curve:
| N | Coverage |
|---:|---:|
| 2 | 14.5% |
| 3 | 72.9% |
| **4** | **99.0%** ← knee |
| 5 | 100% |
**Knee at N=4** even for 4 occupants. The chest-centric small-zone approach generalises trivially.
## Cross-eval: multi-subject optimisation matters
| Placement | Coverage on 4 zones |
|---|---:|
| Single-subject-optimised | 70.6% |
| **Multi-subject-optimised** | **100%** |
| **Gain** | **+29.4 pp** |
CLI must accept multiple `--target` args and compute union.
## R6 family complete (9 ticks)
| Tick | Config | Result |
|---|---|---:|
| R6.2 | 2D body, single | 51% N=5 |
| R6.2.1 | 3D body, single | 26% N=2 |
| R6.2.2 | 2D body, N-anchor | 97% N=5 |
| R6.2.2.1 | 3D body, N-anchor | 49% N=5 |
| R6.2.3 | 2D chest, single | 82% N=5 |
| R6.2.4 | 3D chest, N-anchor | 77/82% N=5/6 |
| **R6.2.5** | **2D chest, multi-subject** | **100% N=5** |
**R6 family's ship recipe**: 2D chest-centric + multi-subject + N=5 = 100% coverage.
## Why N=4 knee returns for multi-subject
Each chest zone is 40×40 cm and fits inside one Fresnel ellipsoid (~40 cm wide at midpoint of 5 m link). N=4 anchors → 6 pairwise links → enough to cover 4 disjoint chest zones without much waste. Beyond N=4 the marginal gain drops to <1 pp.
**Chest-centric multi-subject is the sweet spot for the Fresnel envelope geometry.**
## Final R6.2 CLI surface (productisation spec)
```
wifi-densepose plan-antennas
--room W H [Z] # 2D or 3D
--target NAME X Y W H [DX DY DZ] # repeatable
--target-mode {body, chest} # R6.2.3
--freq-ghz F # 2.4, 5.0, 6.0
--n-anchors N # auto-saturation if omitted
--restarts K # 4 default
```
~50 LOC over the original R6.2.
## Composes with prior threads
- R6.2 / R6.2.3: direct extension (single multi)
- R6.2.2 / R6.2.4: same saturation behaviour
- R14: V1/V2/V3 in households of 2-4 use this recipe
- R3 / ADR-024: per-subject identity + multi-subject placement = full empathic-appliance stack
- ADR-105/106/107: federation orthogonal to placement
- R12 PABS: multi-subject coverage = multi-subject intrusion detection
## Honest scope
- 2D only (3D multi-subject is mechanical extension)
- Static positions (real movement = conservative union)
- Single 5×5 m geometry
- Greedy + 4 restarts
- 4 occupants; beyond may degrade
## Coordination
`ticks/tick-27.md`. No PROGRESS.md edit. Branch `research/sota-r6.2.5-multi-subject`.
## Remaining loop work
- R12.1: pose-PABS closed loop (needs Rust integration, out of scope for synthetic ticks)
- ADR-108: Kyber substitution (quantum-resistant)
- Loop retrospective / 00-summary.md (still ~2.5h until cron stop)
~2.5h to cron stop. **27 ticks landed.** R6 family + R3 arc both substantively complete.