Does CSI occupancy-sensitivity generalize across floorplans? (ResPlan ensemble)
Current assessment (2026-09-15)
The six-floor simulation pilot shows heterogeneous transfer. The corrected inflation interval [1.04, 9.85] misses the 1.5 threshold; the powered extension remains unexecuted.
The card's legacy 'done' status refers to the pilot write-up, not completion of the powered claim. The current index has no session for c-csi-cross-geometry-scaleout-v2. The nine seed-pair feature contrast remains narrower evidence about the tested simulated rearrangements.
Next evidence needed: Treat geometry dependence as motivation for environment-specific calibration. Require independent floors for a generalisation interval and independent capture lineage for the public-data comparison.
Basis: Thesis Narrative, the September 10 synthesis, and the September 15 register review. See the review record for evidence sources and outstanding checks.
Earlier protocol and dated results
The methods and observations below retain their original scope. Read their readiness statements and proposed next steps as historical. The current assessment above records what has changed; frozen thresholds have not been retrospectively revised.
The problem, in plain words
Imagine you learn to judge how crowded a room is by how "noisy" the echo sounds. You get good at it in your own living room. Now walk into a stranger's apartment — different walls, different furniture, a different shape. Your ear still hears "more people = more noise," but the exact mapping ("this much noise = five people") is now wrong, because the echoes bounce differently in a different room. That is exactly the disease of Wi-Fi crowd counting: the model learns a mapping that is partly about the people and partly about the room, and when you change the room, the room-part of the mapping silently poisons the count.
This matters because the whole promise of Wi-Fi sensing is that it is cheap and already installed everywhere. If every new apartment needs its own hand-calibration — someone standing in the room with a known number of people — then the technology does not scale. Cross-environment generalisation is the single biggest open problem in the field (wang2026_2758 ↗; chen2023_5cbd ↗). The classic real-world evidence for it is CrossSense, which showed a model trained at one site collapses at another (zhang2018_138d ↗).
There are two ways out, and this experiment speaks to both. Option A — accept the drift and re-calibrate per environment (the thesis's periodic-BLE-recalibration argument). Option B — find a feature that does not drift. The feature-type sub-experiment is a direct test of Option B.
What we are trying to prove
- Primary hypothesis (falsifiable): the CV-vs-occupancy slope varies materially across real floorplans, so a counter fit on one geometry mispredicts on another — measured as a leave-one-floor-out (LOFO) count-error inflation that exceeds 1.5x the within-floor baseline. If the inflation is near 1.0x, a geometry-robust density proxy exists and the recalibration argument weakens.
- What a null means: if the normalised CV->count relationship were floor-invariant, the whole "you must recalibrate per site" pillar of the thesis would lose its in-silico support — and that would actually be better news for deployment (a universal proxy). We do not get that null; we get drift, but drift whose magnitude is not yet pinned down.
- Feature-type hypothesis (H6, feature-type-not-modality): on a fixed floor whose furniture is rearranged, both fingerprint estimators (CSI-amplitude map, BLE-RSSI map) break while a kinematic estimator (Doppler fading CV + temporal amplitude variance) stays flat — a kinematic/fingerprint degradation ratio < 0.5. A modality split (both CSI families together vs BLE) or a uniform collapse would refute H6 in-silico.
How the experiment works (plain method)
Three campaigns, one question at increasing resolution:
- c-csi-cross-geometry-resplan (the design-of-record, 72 runs). Six ResPlan apartments, each staged with one Tx + 3 Rx link. Identical protocol per floor:
n_agents in {0,2,4,6,8,12}, 48 random body placements per level, bands {2.4, 5.0} GHz. Reduce per-floor CV(N), then fit a CV->count map on five floors and test on the held-out sixth (LOFO). The spread across floors is the drift metric. - c-csi-cross-geometry-scaleout (the powering attempt). Same idea, but designed to run >= 40 floors x 3 seeds so the drift ratio carries a real confidence interval and geometry-variance can be separated from seed-noise. Reality: only a 6-floor, 3-seed pilot (90 runs) actually executed and sealed.
- c-feature-type-transfer (the sharper follow-up, 36 runs). One fixed floor; only the furniture moves (4 states, displacement 0 -> 1.05 m). Fit three estimator families on the undisturbed state, test on each rearranged state, and see which family survives — fingerprints vs kinematics, held paired by re-using the identical walk seed. Kinematic features have a physical motion model behind them (wang2015_48cf ↗), which is why they are the candidate drift-robust channel.
What we've found so far (honest, across campaigns)
Campaign 1 — c-csi-cross-geometry-resplan (REAL, 72 runs, all criteria sealed MET).
| Criterion | Result |
|---|---|
| Scene staging + artefacts | 72/72 runs gate-passed; no NaN/Inf |
| Per-floor CV monotonicity | rho >= +0.83 on all 12 (floor, band) cells; 10/12 >= +0.94 |
| Cross-geometry drift (LOFO) | within-floor MAE 0.019 -> LOFO 0.073 = x3.81 (2.4 GHz); 0.017 -> 0.134 = x7.74 (5.0 GHz) |
Scope stamped by the supervisor: in-silico, ResPlan, N=6 floors, seed 0, pooled linear CV~N fit. The critic caught a mis-attributed Wi-CaL comparison pre-seal; the corrected statement is that ratios we derived from Wi-CaL's published MAEs span ~x1.2 (seminar) to ~x2.3 (meeting) (choi2022_17c2 ↗) — the same direction as ours, but a different quantity (Wi-CaL's drift is temporal/environmental in one geometry; ours is purely geometric). Neither magnitude validates the other. No figures were registered to this session (the figure manifest is empty) — a provenance gap flagged below.
Campaign 2 — c-csi-cross-geometry-scaleout (the powering attempt — PARTIAL + a phantom pointer).
This campaign's job was to turn the fragile N=6 number into a powered one. It did not do that. What actually exists:
- The frontmatter declares
latest_session: 01KX5BYANG...over 110 staged floors, "powered Phase-2". That session does not exist — fetching it returnsNoSuchKey, and it is absent from the session list. The session list is otherwise a graveyard of 0-run and 1-run "finished" sessions. - The only substantive session is the Phase-1 pilot (
01KWYBEJQK..., 90 runs), and even it staged 6 of 10 planned floors (four were missing from PostGIS). Its verdict, honestly booked:
| Criterion | Result |
|---|---|
| C1 — powered inflation CI lower bound > 1.5x | FAIL — pooled x3.37, floor-clustered 95% CI [1.04, 9.85]; per-floor ratios span 0.70x -> 49.8x; under-powered (n0 ~ 40 floors needed) |
| C2 — geometry dominates seed | PASS, decisively — sigma^2_floor 0.0109 vs sigma^2_seed 0.000165 (66x); between-floor SD 0.105 vs between-seed 0.0116 (9x) |
| C3 — honest LOFO baseline | PASS — uses leave-one-occupancy-out within-floor (0.026) as the denominator, fixing the in-sample-residual bug that inflated Campaign 1's headline |
The uncomfortable synthesis: Campaign 1's clean x3.8 / x7.7 rests partly on the very comparator bug C3 fixed. With the honest baseline and a floor-clustered CI, the drift ratio is still centrally large (x3.37) and geometry decisively out-varies seed — but the powered "lower bound clears 1.5x" claim the thesis wants is not yet earned, and the run that would earn it was never executed.
Campaign 3 — c-feature-type-transfer (REAL, 36 runs, 9/9 replication — the strong result).
Rearrange the furniture on one fixed floor and watch three estimator families:
| Feature family | Count-error degradation (control -> 1.05 m) |
|---|---|
csi-fingerprint (amplitude map) |
+7.0 persons median (range 4.3–20.8) — always breaks |
ble-fingerprint (RSSI map) |
+4.7 persons median (range 1.5–10.0) — always degrades |
csi-kinematic (Doppler CV + temporal variance) |
+0.34 persons median (range 0.15–0.58) — sub-person in every pair |
Kinematic/fingerprint degradation ratio: median 0.076, worst 0.120 — every one of the 9 seed pairs is at least 4x inside the 0.5 gate. This is a feature-type split, not a modality split: it is not "CSI beats BLE," it is "kinematics beat fingerprints regardless of modality." H6 is supported in-silico with seed replication. This reconciles a real contradiction in the literature — papers reporting RF schemes do not generalise across rooms (zhang2018_138d ↗) vs papers reporting speed-features do (wang2015_48cf ↗; jiang2018_77f6 ↗) — as both correct, about different feature types. Caveat: the critic pass was deliberately skipped (this session replicated an already-audited design), and it is a self-authored crowd + synthetic CSI/BLE.
How to read the figures
Only one campaign registered a figure to its session manifest — the honest reading of the whole card is partly about that.
fig_seed_sweep(c-feature-type-transfer) — the three-family degradation across the 9 seed pairs. Read it for the ordering and its stability, not the exact heights: the kinematic curve (green) sits near the floor in every pair while both fingerprint curves (warm) climb. The story is the gap, and the fact that the gap never closes across seeds.- The two drift campaigns registered no figures. Campaign 1's manifest is empty; Campaign 2's pilot requested
csi_cross_geometrysmall-multiples + aseed_tracepanel but they are not in the session figure manifest. Treat the drift numbers as table-only until a figure with the floor-clustered CI is actually persisted — the missing uncertainty panel is precisely what hid the fragility the first time.
Key references
- wang2026_2758 ↗ — frames cross-environment generalisation as the field's central open problem.
- chen2023_5cbd ↗ — the domain-shift / adaptation taxonomy the ML reviewer argues from.
- zhang2018_138d ↗ — the classic real-world evidence that models collapse across sites.
- jiang2018_77f6 ↗ — environment-independent features; one pole of the contradiction H6 reconciles.
- wang2015_48cf ↗ — CARM; the physical model behind the drift-robust kinematic features.
- choi2022_17c2 ↗ — the real within-/leave-one-session-out drift gap this experiment reproduces geometrically.
- zou2018_1590 ↗ — real multi-zone CSI occupancy; grounds the geometry-dependence premise.
- khan2023_b7c5 ↗ — transfer learning to cut per-site recalibration; the practitioner's escape hatch.
- demrozi2021_bf55 ↗ — cheap BLE anchor, the recalibration modality.
- brunello2025_d781 ↗ — real drift is often worse than sims; the red-team's warning.
- huang2025_060d ↗ — public real-CSI anchor for the cross-environment cross-check.
- zhang2026_ccac ↗, guarino2026_e72c ↗ — the reproducibility bar the SWE voice invokes.
- peck2008_2ba0 — design / CI discipline for the unit-of-replication and power argument.