Asking the fleet what it is doing…
monad-knowledge Wi-Fi sensing lab · FIIT STU
answered csi-cross-geometry-generalization simulation simulation

Does CSI occupancy-sensitivity generalize across floorplans? (ResPlan ensemble)

In plain words

Does a Wi-Fi people counter trained on one apartment still count correctly in an apartment it has never seen?

one protocol, many floors
The same measurement is run on many different real floor plans. If the relation between radio jitter and headcount changes from floor to floor, a counter trained on one floor is wrong on the next, and that is the case for recalibration. Schematic of the design, not a measurement.
Why it matters
This is the most basic generalisation question there is, and its answer is the reason periodic recalibration exists at all.
How it is done
Ray-trace the identical occupancy protocol across real apartment layouts from the ResPlan dataset and measure how badly a counter fit on one floor mispredicts on another.
Where it stands
Shown on a six-floor pilot: the relation holds within every floor, and leaving one floor out inflates the count error 3.8 times at 2.4 GHz and 7.7 times at 5 GHz. The powered forty- floor confirmation did not run; its declared session is a phantom, and the bug-fixed pilot's interval (1.04 to 9.85) fails its own gate.

Asks, formallyThe CV-vs-occupancy relationship (the L4.5 variance feature) is geometry-dependent: its slope and offset vary materially across diverse real apartment layouts. If so, a model trained on one floor mispredicts on another — the empirical, in-silico basis for periodic BLE recalibration (cross-environment drift). If instead the normalised relationship is floor-invariant, a geometry-robust density proxy exists.

FoundIn-silico cross-geometry drift shown on the N=6 ResPlan pilot (12/12 per-floor CV monotonicity, Spearman rho >= +0.83; LOFO count-error inflation x3.8 at 2.4 GHz / x7.7 at 5.0 GHz), but the powered >=40-floor confirmation was NOT executed — its declared latest_session is a phantom (NoSuchKey in S3)…

StandingA result is in and written up · last activity 2026-07-09

RoomThe ResPlan public residential floorplan dataset (`kind=dataset`, `source=resplan`) — ≥6 apartments of differing room counts/areas, each with ITU-R P.2040 walls in PostGIS. One Tx/Rx link layout per floor.

Executive summary

A Wi-Fi crowd counter learns "this pattern of signal variance means about this many people." This experiment asks the most basic generalisation question there is: does that learned relationship carry over to a different floorplan? We ray-trace the identical occupancy protocol across a set of real apartment layouts from the public ResPlan dataset and measure how badly a counter fit on one apartment mispredicts on an apartment it has never seen.

The honest headline, in three parts:

  1. Within any one floor, the physics is universal. Signal variance (CV) rises with occupancy on every apartment × band we tested (12/12 cells, Spearman rho >= +0.83). Nothing floor-specific breaks the basic mechanism.
  2. Across floors, the relationship drifts — a lot, and unevenly. A counter fit on five apartments and tested on the sixth inflates its count error by roughly x3.8 (2.4 GHz) and x7.7 (5.0 GHz) on the original six-floor pilot. That supports the thesis argument for per-environment (BLE) recalibration. But this number is fragile: it comes from N=6 floors, a single random seed, and — as a later audit found — a comparator bug that flattered it. When the baseline is fixed and the confidence interval is computed over floors, the drift ratio is a pooled x3.37 with a 95% CI of [1.04, 9.85] — an interval so wide it does not clear the pre-declared 1.5x gate. Per-floor inflation ranges from 0.70x (no drift at all) to 49.8x.
  3. The powered confirmation was never run. A scale-out campaign was designed to stage >= 40 floors (the power calculation says that is what the CI needs). Its frontmatter claims 110 floors are staged and powered — but the session it points to does not exist in S3 (a phantom pointer), and the only real scale-out session is a 6-floor pilot. So the "40-floor powered drift" result does not exist yet.

The one result that is robust here is the companion feature-type experiment: when furniture is rearranged on a fixed floor, fingerprint estimators (the spatial-map kind) break badly (+7 people of error) while kinematic estimators (motion-speed / variance features) barely move (+0.3 people) — and this ordering holds in 9 out of 9 seeds. Everything below is simulated; a real Wi-Fi/BLE capture (IP-106) remains the standing gate before any deployment claim.

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:

  1. 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.
  2. 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.
  3. 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 returns NoSuchKey, 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_geometry small-multiples + a seed_trace panel 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.

Review panel

Each voice is a prepared expert with a one-line stance and the literature it argues from. Verdicts are about this experiment's current evidence, not the idea in the abstract.

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.
Campaigns & sessions 4 campaigns instantiating this experiment
Campaign Session State Runs Started Report
c-csi-cross-geometry-resplan 79G09CEG finished 72 2026-06-04 synthesis →
c-csi-cross-geometry-scaleout-v2 planned
c-csi-cross-geometry-scaleout C0YFVS84 finished 1 2026-07-09 synthesis →
JR88VHFP finished 1 2026-07-09 synthesis →
RZTRETB3 finished 0 2026-07-09 synthesis →
QW28P3EJ finished 1 2026-07-09 synthesis →
0HCK9J4S running 1 2026-07-09
TP9QVAVH running 0 2026-07-08
QFTF7DNT finished 0 2026-07-08 synthesis →
B7CY16Z4 failed 0 2026-07-07 synthesis →
XDNJQCT5 finished 0 2026-07-07 synthesis →
Y4D6KG6S finished 0 2026-07-07 synthesis →
PVWXP97R finished 0 2026-07-07 synthesis →
KMRY0DEY finished 90 2026-07-07 synthesis →
5E36XW4K finished 0 2026-07-07 synthesis →
D41PQTQG finished 0 2026-07-06 synthesis →
c-feature-type-transfer 46HJRGWQ finished 36 2026-07-04 synthesis →
F6J5A01D finished 8 2026-07-04 synthesis →
Simulation runs the 20 most recent, newest first
Run Date Gate Campaign Replay
CVCAJE7F 2026-07-09 c-csi-cross-geometry-scaleout
7EXJ3B4Q 2026-07-09 c-csi-cross-geometry-scaleout
N4CX3DKY 2026-07-09 c-csi-cross-geometry-scaleout
CY4RZPAY 2026-07-09 c-csi-cross-geometry-scaleout
D3Q2GWT0 2026-07-09 c-csi-cross-geometry-scaleout
7CCCBBMC 2026-07-09 c-csi-cross-geometry-scaleout
3JKVSZKP 2026-07-09 c-csi-cross-geometry-scaleout
FD454BZ9 2026-07-09 c-csi-cross-geometry-scaleout
ANZ8AF3B 2026-07-09 c-csi-cross-geometry-scaleout
B9V38M84 2026-07-09 c-csi-cross-geometry-scaleout
HYH9G110 2026-07-09 c-csi-cross-geometry-scaleout
41SQ57ZE 2026-07-09 c-csi-cross-geometry-scaleout
CQ30WVQ2 2026-07-09 c-csi-cross-geometry-scaleout
4GHCWVN4 2026-07-09 c-csi-cross-geometry-scaleout
PQGQYK15 2026-07-09 c-csi-cross-geometry-scaleout
WEQWDTVW 2026-07-09 c-csi-cross-geometry-scaleout
W8HA43XC 2026-07-09 c-csi-cross-geometry-scaleout
BG8Z4MTV 2026-07-09 c-csi-cross-geometry-scaleout
M0TTWKKP 2026-07-09 c-csi-cross-geometry-scaleout
7369XDEC 2026-07-09 c-csi-cross-geometry-scaleout

All exp-csi-static runs in the workbench →

Provenance

Data origin
simulated
Domain
csi
Room layout
per-floor (csi-link-<resplan-id>)

Data types

  • csi-amplitude
  • rician-k
  • per-link-summary