Question
Does motion produce the temporal CSI variance that real in-room counting relies on — the feature the static occupancy sweep, by construction, cannot show?
csi-static-occlusion froze the crowd and found placement-variance; but Choi/Ling/EasyCount count from temporal statistics over a sliding window (a moving crowd). This is the first coupled run: a JuPedSim crowd walks the floor and its trajectory drives per-frame ray-traced CSI — a time series, not snapshots.
What we already know
exp-csi-crowdchainswalk-notebook (geometry: from_floor) → sionna-csi-runner(wired 2026-06-04, replacing the parametricjupedsim-runnerupstream that could never register against a real floor). The launcher stagesinputs/floor_geometry.json(walker) andinputs/scene.json(channel) from the same PostGISfloor, so trajectory and scene share coordinates by construction.trajectory_frame_stridecontrols cost (per-frame RT is the bottleneck on CPU). Link crossings are brief — sample the walking window densely (or pre-subsample two-rate).- Walker fidelity knobs that matter (first-run findings): park-on-arrival keeps seated bodies
as scatterers;
agent_clearance_cm≈ 0–5 (larger seals doors); explicitagent_radius_m;spawn_bbox_cmfor genuine traversal. - The static study gives the matched-occupancy baseline to subtract, isolating the motion term.
Prerequisites
- A walkable, furnished + scene-consistent floor.
resplan-12439-floor-0carries 16 analysis-placed seats and thecsi-link-resplan-12439-multiroomTx/Rx layout. - Nothing else — bundle + scene staging and the trajectory hand-off are part of the chain.
What the supervisor does
Run exp-csi-crowd over the finer-grained grid — crowd size {4,6,8,11,14} × band {2.4,5.0 GHz} ×
seed {0,1,2} = 30 coupled runs (extends the sealed seed-0 6-run session for ρ-stability across
seeds and a smoother CV-vs-N curve), CPU first (keep a coarse trajectory_frame_stride to bound
wall-clock — per-frame RT is CPU-only on Apple Silicon). Analysis-writer computes temporal CV /
dynamic-to-noise vs crowd size and the static↔temporal gap, citing csi.hdf5 + trajectory.parquet,
and reports ρ(N, CV) per band with the across-seed spread.
Figure render request
csi_temporal — amplitude time series per crowd size (one band), the temporal-CV-vs-size curve,
and a floor map with the trajectory heatmap overlaid on the links.
Out of scope
- Cross-floor (c-csi-cross-geometry-resplan); through-wall (c-csi-through-wall-blockage); calibration; BLE coupling (a later fusion experiment).
Expected interpretation
- Motion variance present (temporal CV ∝ size; gap > 0) → "the in-room variance feature is
motion-driven; static occupancy under-represents it — the coupled simulator is required for the
counting-relevant signal." Validates the
exp-csi-crowdchain and the static study's caveat. - No temporal gap → "placement variance already captures the signal in this geometry" — bounds when the cheaper static sweep suffices.
- Chain fails (floor mismatch, trajectory not staged) → a platform finding on the coupled path.
Notes
A new reduction notebook csi_temporal_dynamics.py (sliding-window temporal stats) is the
notebook-backed analysis for this campaign — sibling to csi_occupancy_crossover.py. Follow-on:
the seated/static crowd variant (seek-and-occupy → CSI on a furnished fiit-library), the
regime where motion vanishes and BLE anchoring earns its keep (2026-06-03 - CSI amplitude under crowd occlusion).