Asking the fleet what it is doing…
monad-knowledge Wi-Fi sensing lab · FIIT STU
Campaign

Real crowds in real buildings — flow, dwell, device-traffic & CSI counting on S3DIS

c-public-spaces

Archive snapshot, as of 18 h ago — the run corpus is rebuilt once a day, so this page is not a live reading. The fleet panel is the live one; it refreshes every 30 s.

Sessions

state
Session State Runs Synthesis Criticism Figures Verdict
9QXM434Y 2026-07-20T22:01 finished 6 Real S3DIS geometry made crowd-walkable (osm_clean tooling); 3 furnished floors, coupled crowd+CSI+device-traffic on Metal. Goal 2 (flow&dwell atlas) delivered: 244 agents, 22,482 WiFi emissions, published Artifact. Goal 1 (within-space device-free counting R²): area1 0.64, area5 0.05, area6 0.01 — weak, floor-dependent. Goal 3 (cross-space transfer R²): all negative (−3 to −67) — no transfer. HEADLINE: device-based CSI is occlusion-killed in walled buildings (3/7128 links reach APs); device-free counting works only where APs overlap occupied rooms. HONEST SELF-CRITIQUE: the building-wide counting framing was naive (1 central Tx → scattered APs across walls is a strawman); the real result is that CSI counting is inherently PER-ROOM and occlusion is the defining feature, not a bug. The valuable reframe (per-room counting + sensor-placement coverage + BLE room-assignment fusion) is the recommended next campaign. Sim-only; real AX210/Pi5 walled floor (IP-106/IP-112) pending.

Brief

Question

Take real public-building geometry (not synthetic), populate it with realistic crowds carrying devices that emit traffic into a ray-traced CSI channel, and ask across several floors: (2) what do the flow & dwell patterns look like, (1) can WiFi count the crowd, and (3) does a counter transfer between floors?

Substrate: S3DIS — a real scanned Stanford building (areas 1/5/6), with real furniture (shelves/tables/columns/sofas) and real room layout. Zero invented geometry.

Enabling tooling (built 2026-07-20)

  • monad_knowledge/notebooks/python/osm_clean.py — makes any imported floor sim-ready:
    • walkabilize — synthesize shared navigable openings between adjacent rooms + build NRG (real imports have per-room walls / no doors / no nav layer → crowds can't move).
    • bridge <margin> — dilate room cells to close ~62 cm scan wall-gaps → contiguous walkable core.
    • grid <prefix> <nx> <ny> — room-based ceiling AP experiment; clean, analyze.
  • device_counting_reduce.py — device-based and device-free counting fidelity (Goal 1) + cross-space transfer (Goal 3).
  • Configs sim/exp_csi_crowd/config/s3dis{1,5,6}-csi.yaml (device, seated→network_traffic hooks) and s3dis{1,5,6}-df.yaml (device-free). Grids csi-s3dis{1,5,6}-grid (1 Tx + 24 room APs).
  • The OSM path (osm_import_src.py from 07_osm_indoor.ipynb, env-param) + synthetic assembler (public_spaces_assemble.py) were built but not used for the final runs (see Findings).

Goal 2 — Flow & dwell showcase ✅ (interactive atlas)

3 real floors, office agendas (worker/meeter/through/visitor), tuned agent_radius=0.12. 244 agents, 22,482 WiFi device-traffic emissions, coupled ray-traced CSI, all gate-passed on Metal.

s3dis_area5_heatmap.png

Floor Walkable Agents Seated Avg speed WiFi emitters (agents) Run
Area 1 (offices) 486 m² 82 8 (44%) 0.35 m/s 4,924 (8) 01KY0PCKA32PY8EERK9WR2YGNF
Area 5 (mixed, polished) 1,720 m² 79 10 (16%) 0.60 m/s 6,055 (10) 01KY0Q4K03KW1KJJ1CPBPAGFXQ
Area 6 (seating-dense) 367 m² 83 16 (37%) 0.34 m/s 11,503 (16) 01KY0PCP53KA2ZHRFBKSEC1ZHC

Interactive atlas (heatmap/trajectory toggle per floor): the published Artifact.

Goals 1 & 3 — CSI counting on real walled floors

Device-free runs (fixed Tx→24 AP, body-perturbation): area1 01KY0R44EGJ68J506MF2AHPGX8, area5 01KY0R40KCFG2ZGJ3Q0VXB8SAD, area6 01KY0R4DANRNZZA3FZ0GQK5N28.

fig_device_counting.png

  • Goal 1 (within-space counting R²): area1 0.64, area5 0.05, area6 0.01 — weak and floor-dependent. Counting works only where ceiling APs overlap occupied rooms; real walls occlude cross-room RF. Sharp contrast to the open-plan mall (c-mall-archcad) where counting succeeded.
  • Goal 3 (cross-space transfer R²): all strongly negative (−3 to −67) — a counter trained on one real floor does not transfer to another. Geometry-specific; on-thesis "fingerprints don't transfer".

Findings / honest caveats

  1. No clean large real public floor exists off-the-shelf: synthetic looks fake (rejected); OSM indoor is fragmentary (Wien Hbf largest coherent cluster ~6k m²); S3DIS is coherent + furnished but ~1–2.5k m² office. Chose S3DIS (most-real, zero furniture invention).
  2. Device-based CSI is occlusion-killed in walled buildings: only 3 of 7,128 seated-device→AP links reach through walls. The "device traffic" emits (emitters.parquet) but is unheard → Goal 1/3 need device-free.
  3. CSI crowd counting is fundamentally occlusion-limited in walled multi-room buildings — the headline scientific result of this campaign. Sim-only; a real AX210/Pi5 walled floor (IP-106/IP-112) would confirm the physics.
  4. Walkability bridge is floor-dependent (helped area5, over-dilated area1/6) — needs per-floor tuning or true-gap opening placement.

Changelog

Date Author Change
2026-07-20 Claude AI Campaign built end-to-end: real S3DIS geometry made walkable (osm_clean tooling), 3 furnished floors, coupled crowd+CSI+device-traffic runs on Metal, flow&dwell atlas (Goal 2), device-free counting fidelity (Goal 1) + cross-space transfer (Goal 3). Headline: CSI counting is occlusion-limited + non-transferable in real walled buildings — contrast to the open-plan mall.