Files
ruvnet--RuView/examples/research-sota/r6_2_5_multi_subject_results.json
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

152 lines
2.3 KiB
JSON

{
"room": {
"width_m": 5.0,
"height_m": 5.0
},
"freq_ghz": 2.4,
"scenarios_n5": [
{
"scenario": "1 occupant (chair)",
"n_zones": 1,
"total_zone_area_m2": 0.16000000000000003,
"coverage_n5": 1.0,
"best_anchors": [
[
5.0,
3.25
],
[
0.0,
1.25
],
[
2.0,
5.0
],
[
0.0,
0.0
],
[
0.0,
5.0
]
]
},
{
"scenario": "2 occupants (chair + bed)",
"n_zones": 2,
"total_zone_area_m2": 0.4,
"coverage_n5": 1.0,
"best_anchors": [
[
5.0,
3.25
],
[
0.0,
1.25
],
[
5.0,
0.5
],
[
2.0,
5.0
],
[
0.0,
0.0
]
]
},
{
"scenario": "3 occupants (chair + bed + desk)",
"n_zones": 3,
"total_zone_area_m2": 0.48000000000000004,
"coverage_n5": 1.0,
"best_anchors": [
[
5.0,
3.25
],
[
0.0,
1.25
],
[
2.0,
5.0
],
[
5.0,
0.5
],
[
0.0,
0.0
]
]
},
{
"scenario": "4 occupants (+ 2nd chair)",
"n_zones": 4,
"total_zone_area_m2": 0.6400000000000001,
"coverage_n5": 1.0,
"best_anchors": [
[
3.0,
0.0
],
[
2.5,
5.0
],
[
0.0,
3.75
],
[
4.25,
5.0
],
[
0.75,
5.0
]
]
}
],
"saturation_4subj": [
{
"n_anchors": 2,
"coverage": 0.14516129032258066
},
{
"n_anchors": 3,
"coverage": 0.7290322580645161
},
{
"n_anchors": 4,
"coverage": 0.9903225806451613
},
{
"n_anchors": 5,
"coverage": 1.0
},
{
"n_anchors": 6,
"coverage": 1.0
},
{
"n_anchors": 7,
"coverage": 1.0
}
],
"cross_eval": {
"single_opt_on_multi": 0.7064516129032258,
"multi_opt_on_multi": 1.0,
"gain_pp": 29.354838709677423
}
}