Files
ruvnet--RuView/docs/research/sota-2026-05-22/ticks/tick-27.md
T
rUv 4e6ef76294 research(R6.2.5): multi-subject occupancy union — N=5 hits 100% for 4 occupants; R6 family complete (#730)
Extends R6.2.3 chest-centric placement to union of chest envelopes
across multiple occupants. Practical question: does coverage degrade
gracefully as occupant count grows?

Result: 2D chest-centric + N=5 + multi-subject union = 100% coverage
for households of 1-4 occupants. N=4 knee returns.

| Scenario   | # zones | Cov @ N=5 |
|------------|--------:|----------:|
| 1 occupant |       1 |     100%  |
| 2 occupants|       2 |     100%  |
| 3 occupants|       3 |     100%  |
| 4 occupants|       4 |     100%  |

4-occupant saturation: N=4 = 99.0% (+26.1 pp marginal), N=5 = 100%,
N=6+ saturated. Knee at N=4 even for 4 occupants.

Cross-eval: single-subject placement gets 70.6% on 4 zones; multi-
subject-optimised gets 100%. +29.4 pp gain from multi-subject
optimisation. CLI MUST accept multiple --target args and compute union.

Why N=4 knee returns: each chest zone is 40x40 cm, fits inside one
Fresnel ellipsoid (~40 cm wide at midpoint of 5 m link). N=4 anchors
give 6 pairwise links, enough to cover 4 disjoint chest zones without
much waste. Chest-centric multi-subject is the SWEET SPOT for Fresnel
envelope geometry.

R6 family complete (9 ticks: R6, R6.1, R6.2, R6.2.1, R6.2.2, R6.2.2.1,
R6.2.3, R6.2.4, R6.2.5). Family's ship recipe:
- 2D chest-centric + multi-subject + N=5 = 100% coverage

Productisation CLI spec (50 LOC over original R6.2):
  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
      --n-anchors N                   # auto-saturation if omitted
      --restarts K

Honest scope: 2D only (3D multi-subject = mechanical extension), static
positions, single 5x5 m geometry, greedy with 4 restarts, 4 occupants
max tested.

Composes:
- 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
- ADR-105/106/107 federation orthogonal
- R12 PABS multi-subject coverage = multi-subject intrusion detection

Coordination: ticks/tick-27.md, no PROGRESS.md edit.
2026-05-22 05:37:29 -04:00

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.