Live status · Read the latest
monad-knowledge Wi-Fi sensing lab · FIIT STU
running csi-crowd-temporal simulation simulation

Time-resolved CSI under simulated crowd motion

In plain words

Does the wobble in the Wi-Fi signal really grow with the size of a moving crowd?

walking, sitting, leaving a crowd whose true count and motion are known
Simulated people walk, queue, sit and leave on a real floor plan, driven by personas rather than scripted paths. The radio is traced over the same scene, so the crowd that stirs it is known exactly. Schematic of the design, not a measurement.
Why it matters
Wi-Fi counters read the wobble over time and map it to a headcount. The premise had never been checked in a setting where the true crowd is known exactly.
How it is done
Couple a pedestrian simulator to a ray tracer on the same real floor: thirty runs with 4 to 14 people, two bands, three seeds, moving and seated windows.
Where it stands
The 30-run moving-versus-frozen simulation contrast stands. The broader continuity-prior study later found practical equivalence to smoothing in both tested flow regimes.

Asks, formallyMotion-driven *temporal* CSI variance — the dynamic-to-noise / bundle-width feature Choi/Ling actually exploit — emerges only under moving crowds, not the static placements of csi-static-occlusion. A coupled crowd→CSI run should show temporal CV growing with crowd flow/density, and a static-vs-temporal gap that quantifies what the static sweep misses.

FoundThirty coupled runs reported monotone temporal CV with count at both bands and three seeds.

StandingCollecting data now · last activity 2026-08-07

RoomA real walkable floor — the 135 m² `living-0` of `resplan-12439-floor-0` (or the `fiit-library` floor) — walked by a JuPedSim crowd whose trajectory drives per-frame ray-traced CSI on the same geometry.

The room

resplan-12439 · resplan-12439-floor-0 · 52 devices

The floor this experiment runs on — its rooms, walls, furniture and the highlighted sensors placed for it. This is the surveyed layout as last exported; a run's replay below shows the geometry as it was simulated.

Time-resolved CSI under simulated crowd motion

Current assessment (2026-09-15)

Thirty coupled runs reported monotone temporal CV with count at both bands and three seeds. The frozen seated channel reached the model's numerical floor, which omits breathing and fidgeting. The July 15 c-continuity-prior-csi-density-v2 study supersedes the early deferred verdict: it found no practically meaningful physics-specific benefit within the declared equivalence margin.

A monotone response in an authored crowd/measurement model is a mechanism check, not proof that real seated crowds are invisible. Movement, static spatial variation and imposed diffuse fading must be distinguished. The later continuity negative remains scoped to the tested inverse, densities and flow regimes.

Next evidence needed: Validate count sensitivity across independently labelled moving and seated conditions. Preserve the negative control and the continuity equivalence result; do not substitute a simulator's exact count input for independent evidence.

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 watching a pond. If the water is still, you learn nothing about who is nearby. But if someone walks past and disturbs it, the ripples tell you they are there — and a bigger, busier crowd makes bigger, busier ripples. Wi-Fi does the same thing: a person's body reflects and blocks the radio waves, so as people move, the received signal ripples. Device-free Wi-Fi crowd counting is built on this — it measures the size of the ripple over a short time window and learns "this much ripple ≈ this many people" (choi2022_17c2 ↗; zhou2020_6173 ↗).

The catch — and the reason the earlier static study (csi-static-occlusion) could not settle it — is that a frozen crowd makes no ripples. If you photograph people standing still and read the signal, you get one number; move them a metre and you get a different number, but neither shows you the motion feature that real counters actually use (liu2022_3454 ↗). To test the motion feature you need a moving crowd and a time-series of the channel it induces — and you need the crowd's true positions to compare against. A physics simulation is the only place you get all three at once: real geometry, controllable crowd, and ground-truth occupancy. That is what the coupled JuPedSim→Sionna chain gives us (hoydis2023_7aa4 ↗).

What we are trying to prove

  • Hypothesis 1 (falsifiable) — motion makes the feature. The sliding-window temporal CV of the ray-traced amplitude rises monotonically with crowd size (target Spearman ρ ≥ +0.6), and a seated crowd of the same size produces a much narrower bundle — a "static↔temporal gap." If the CV did not grow with the crowd, the temporal feature would be an illusion of the estimator, not a property of the channel, and the static sweep would already suffice.
  • Hypothesis 2 (the sceptical one) — physics helps decode it. A 1D continuity prior (mass conservation with a pedestrian velocity closure) lowers density-estimation error at high density (ρ ≥ ~1 ped/m²) versus a purely data-driven model, and does not hurt at low density. We expected this to be the weak claim, and it is — see results.
  • What a null means. For H1, a flat or non-monotone CV would refute the motion premise. For H2, if a wrong velocity law regularizes as well as the matched one, the "physics" is doing no physics — it is generic smoothing, and the fluid-crowd framing earns no support. That is exactly what happened.

How the experiment works (plain method)

  1. Couple crowd to channel on one floor. The launcher stages a walkable floor bundle (for the walker) and a ray-tracing scene (for the radio) from the same PostGIS floor resplan-12439-floor-0, so bodies and walls share coordinates by construction. walk-notebook (geometry: from_floor) walks N agents from an east entry to their seats; the trajectory drives sionna-csi-runner, which ray-traces the channel per frame. Output: a frame-indexed links.parquet (a time axis), csi.hdf5[frame, link, …], and the carried-through trajectory.parquet.
  2. Sweep the crowd. Crowd size N ∈ {4, 6, 8, 11, 14} × band {2.4, 5.0 GHz} × seed {0, 1, 2} = 30 coupled runs. Frames are sampled densely in the walking window (where link crossings are brief) and sparsely once agents park.
  3. Measure the wiggle. Split each run into a walking window and a seated window (the settle time is read from the trajectory itself — the last frame after which an agent never moves). Compute temporal CV per window and the walking/seated dynamic-to-noise ratio, then correlate CV against crowd size.
  4. (Second sub-campaign) test the physics prior. On a small synthetic corridor with a deliberately sparse link layout, train two identical MLPs f(CSI links)(t) → density(t): one data-only, one with the continuity residual added to the loss. Then run the decisive ablation — swap the velocity closure for a constant and an anti-physical one — to see whether the physics or just the smoothness is what helps.

What we've found so far (honest, across campaigns)

Campaign 1 — c-csi-crowd-temporal (30 runs, all three criteria MET). The motion feature is real and monotone. Walking-window temporal CV, averaged over seeds:

Crowd N walking CV @ 2.4 GHz walking CV @ 5.0 GHz
4 5.2 × 10⁻⁵ 2.6 × 10⁻⁵
6 3.2 × 10⁻³ 3.9 × 10⁻³
8 5.0 × 10⁻³ 5.9 × 10⁻³
11 2.6 × 10⁻² 2.7 × 10⁻²
14 4.4 × 10⁻² 4.2 × 10⁻²

Strictly increasing → Spearman ρ(N, CV) = +1.00 at both bands, for each of seeds {0, 1, 2} (criterion was ≥ +0.6). The two carriers track each other closely — the feature is geometry-and-motion-driven, not strongly band-dependent. The seated window collapses to the ~10⁻⁶ fading floor in most runs, so the walking↔seated dynamic-to-noise ratio reaches 10⁴–10⁵ at N ≥ 11 — the "static↔temporal gap" a frozen sweep can never expose. Honest caveat (from the session, not hidden): three high-N runs keep a seated CV of 0.014–0.034 because congestion at a narrow two-abreast channel delays parking, so the trailing window is not yet stationary — the seated collapse is conditional on all agents having actually parked. H4 occupancy-csi-variance stays supported, no strength change.

Campaign 2 — c-continuity-prior-csi-density (physics prior REFUTED). The decisive mismatched-FD ablation (session 01KW074M…, five runs, ρ≥1 with n = 105 high-regime cell-frames) reports density RMSE:

Prior high-regime RMSE (ρ ≥ 1)
unconstrained (data only) 1.56
smoothing only (no physics) 0.91
PINN, constant closure (wrong) 1.24
PINN, increasing closure (anti-physical) 1.24
PINN, Weidmann closure (matched) 1.23

Two findings kill the physics reading: (1) the matched, constant and anti-physical closures give identical error — the prior is not using the fundamental-diagram physics; (2) plain smoothing beats every continuity variant. The session-1 "−11% win" was the confound the critic feared: generic regularization of an under-determined inverse, not fluid physics — and not even the best regularizer. A later local-manual re-test on a strong-directed-flow bottleneck (session 01KW1WSR…) is reported in the campaign note as reproducing this (smoothing 0.61 beats continuity ~0.73–0.76), and the hypothesis moved candidate → deferred. Integrity note: that session-3 manifest is missing from S3 (NoSuchKey), so its numbers survive only as prose in the campaign note — treat them as unverifiable pending re-upload; the verified demote already stands on session 2's on-S3 ablation.

Campaign 3 — c-resplan-crowd-to-csi (NOT executed). This card lists it, but the campaign is roadmap / superseded — it has no executed session. Its purpose (coupled crowd→CSI pairs on a ResPlan floor) was delivered by Campaign 1 and by c-feature-type-transfer / c-multifloor-fsm-observatory; its residual novelty (a python-ml continuity reduction) was blocked on the missing torch runner and the continuity direction was independently deferred above. No numbers are claimed for it here.

How to read the figures

  • fig_csi_temporal (from reduction run 01KVX0GN…, campaign 1) — three panels: (a) the per-link amplitude time series stacked by crowd size for one band — the trace visibly gets busier as N grows; (b) the temporal-CV-vs-crowd-size curve, the headline monotone rise (read the trend, not individual points — there are five sizes); (c) a floor map with the crowd's trajectory heatmap overlaid on the Tx/Rx links, showing the east-entry traversal that makes the in-room link genuinely participate. The seated-window flatline is the visual counterpart of the 10⁻⁶ collapse — remember it is a deterministic-RT artifact, not a real seated channel.
  • The continuity sub-campaign (campaign 2) session shipped no figures — its result is the RMSE table above; that absence is itself a provenance note the panel picks up.

Key references

  • choi2022_17c2 ↗, zhou2020_6173 ↗, liu2022_3454 ↗ — the temporal-feature CSI counting lineage this experiment sits in.
  • torun2026_72aa ↗ — real Wi-Fi does count stationary crowds from micro-motion; the basis for the Field Scientist's seated-collapse critique.
  • wu2022_75d3 ↗, alqaness2019_397d ↗ — the Fresnel/Doppler physics of why motion produces amplitude variance.
  • hoydis2023_7aa4 ↗ — the ray tracer that generates the synthetic channel.
  • vishwakarma2021_fe49 ↗, vishwakarma2022_7143 ↗ — sim-to-real: ray-traced CSI needs noise augmentation to resemble measured data; the red-team's anchor.
  • meneghello2023_0a93 ↗ — a public real-CSI anchor for the cross-check demand.
  • di2023_285b ↗, shi2021_07f1 ↗, meng2025_c64e ↗ — the PINN framing the continuity sub-campaign inherits and tests.
  • hughes2003_1d7a ↗, corbetta2023_bcb7 ↗ — the continuum crowd physics the deferred prior draws on.
  • zhang2026_ccac ↗, guarino2026_e72c ↗ — the reproducibility bar the SWE voice invokes.
  • demrozi2021_bf55 ↗, koo2026_a08d ↗ — the deployment / BLE-anchor basis for the seated regime.

See it run

Trajectory replay of run GRHPC5SK — press play, scrub the timeline, toggle agent trails and footfall.

Loading replay…

Open the run workbench →

Campaigns & sessions 5 campaigns instantiating this experiment
Campaign Session State Runs Started Report
c-continuity-prior-csi-density-v2 EZP7M9CR finished 48 2026-07-15 synthesis →
8TPR0VX6 cancelled 0 2026-07-15 synthesis →
c-continuity-prior-csi-density F9WXGYFC finished 5 2026-06-25 synthesis →
3YTXJXVJ finished 5 2026-06-25 synthesis →
c-csi-crowd-temporal 5Z9ZYEQ7 finished 31 2026-06-24 synthesis →
4FVCVTH7 finished 13 2026-06-04 synthesis →
c-csi-temporal-events MS6VPK0V finished 11 2026-08-07 synthesis →
c-resplan-crowd-to-csi — planned — — —
Simulation runs the 20 most recent, newest first
Run Date Gate Campaign Replay
GRHPC5SK 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
M4NJWYGA 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
3EWA0C1A 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
V0ST87QQ 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
W8X7JZ5P 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
72E5BAVA 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
FFSG98XS 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
4VRC5TZ5 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
B1QCE3H0 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
Z2MJTHPD 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
QB8ZZ4AR 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
FYBSJ4TJ 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
GZVZQJA6 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
TBZ2P38Q 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
F40J8DHE 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
232VEXK1 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
WSSNBJM6 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
EEX8XN8K 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
XSCDC0KC 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →
CMA89HNS 2026-07-15 ✓ c-continuity-prior-csi-density-v2 replay →

All exp-csi-crowd runs in the workbench →

Provenance

Data origin
simulated
Domain
csi
Room layout
csi-link-resplan-12439-multiroom

Data types

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