Environment

ArchCAD-400K ([[archcad-400k]]): 41,097 real drafted 14 m×14 m public/commercial floor-plan slices, primitive-level walls/glass/columns in the `archcad` PostGIS schema, ITU-R P.2040 materials (concrete/glass/metal). Room-aware Tx + Rx-cluster per tile (one wall-bounded open region) to avoid the multi-room full-height-wall occlusion that trivially zeros a whole-tile Tx/Rx split. Thin dielectric-sheet walls, fixed 3 m height, no furniture.

Executive summary

A Wi-Fi crowd counter learns "this much signal variance ≈ this many people." Two questions this experiment asks on public buildings (offices, halls, service cores, garages — geometry our residential floorplan corpus never covered):

  1. Is the sensing signal geometry-bound at scale? Ray-trace an identical occupancy protocol across ≥40 diverse ArchCAD public-building slices and measure whether the CV-vs-occupancy relationship varies far more between geometries than between placement/fading seeds. On ResPlan (N=6 residential) the variance split was decisively geometry-dominated (σ²_floor ≈ 66× σ²_seed), but the powered ≥40-geometry confirmation was never executed (csi-cross-geometry-generalization). ArchCAD makes the ≥40 real — on an independent, structurally richer substrate.
  2. Which building shapes are intrinsically sensable? Stratify tiles by structural archetype (openness / wall-density / column-count / stair-core / parking) and rank occupancy-sensitivity by archetype with a bootstrap CI — a first "sensability atlas" of public-building types.

The problem, in plain words

Wi-Fi people-counting works by reading how the room's echo changes as people move through it — so it is inseparably a property of the room. Almost everything we know about which rooms are easy or hard comes from apartments, because that is the geometry we could load. But the buildings that actually matter for crowd sensing — an open office floor, a lecture hall, a mall concourse, a stairwell, a parking deck — have completely different wall density, openness, and structural clutter. ArchCAD is the first corpus that lets us ask, at scale, "is CSI crowd-sensing intrinsically harder in some public buildings than others, and by how much?" — even if only in simulation, as a hypothesis generator for where a real deployment should worry.

What we are trying to prove

  • H-A (variance split, falsifiable): the between-tile variance of the occupancy-sensitivity slope exceeds the between-seed variance by a factor whose bootstrap 95% CI lower bound clears ≥ 4× on ≥40 public-building tiles. A ratio near 1 would mean placement/fading noise, not geometry, drives the signal — refuting the geometry-bound premise on public buildings.
  • H-B (archetype ranking, exploratory): occupancy-sensitivity differs by structural archetype (open vs partitioned vs column-dense vs stair/parking), with the per-archetype ranking carrying a bootstrap CI. A flat ranking (all archetypes equal within CI) is the informative null: "building type does not predict sensability."
  • What a null means: if H-A fails (CI touches 1×), the residential geometry-dominance result does not generalise to public buildings — a genuinely useful negative. If H-B is flat, deployment need not stratify by building type.

How the experiment works (plain method)

Notebook-/pre-stage-driven, one sim family:

  1. Scene staging (Step 0, the one new plumbing). 09_archcad_sionna_scene.py turns each tile's archcad.primitives (walls 20, glass 19, columns 21/22) into a runner-ready scene.json (×0.014→m, class→ITU RadioMaterial, reusing monad_knowledge.sim.scenegeom.SceneBundle). Room-aware device placement: Tx + Rx-cluster confined to one wall-bounded open region (a flood-fill over the wall raster), so a full-height party/shaft wall never trivially severs the link.
  2. Occupancy protocol per tile (sionna-csi-runner, static mode, from inputs/scene.json): n_agents ∈ {0,2,4,6,8}, K random body placements per level, band 2.4 GHz (5.0 GHz as a second arm if budget allows). Reduce per-tile CV(N) → the occupancy-sensitivity slope + monotonicity.
  3. Analysis: (H-A) variance components (between-tile vs between-seed) with a floor/tile-bootstrap CI — the ratio is heavy-tailed, so bootstrap not normal approximation (the lesson from the ResPlan redo). (H-B) group tiles by archetype from archcad.tiles flags + wall-density; rank + bootstrap CI, BH-FDR over contrasts.

Honest caveats (the standing gate)

  • Sim-only, drafted geometry. ArchCAD walls are thin dielectric sheets (CAD double-line faces), no furniture, uncalibrated 5 dB body loss, unvalidated ITU coefficients. A real multipath field is richer and messier — real drift is often worse than sims (brunello2025_d781).
  • Placement confound. One Tx/Rx cluster per tile; the archetype ranking can be contaminated by where in the tile the cluster lands. Report the ranking as conditional on the room-aware placement rule, and probe sensitivity to it.
  • No magnitude travels. Every occupancy-sensitivity number is in-silico; the real-data cross-check (huang2025_060d) is the gate before any deployment claim.

Review panel

Key references

  • csi-cross-geometry-generalization — the residential sibling; inherit its honesty fixes (bootstrap CI, floor-clustered unit, the phantom-session lesson).
  • wang2026_2758 — cross-environment generalisation as the field's central open problem.
  • chen2023_5cbd — geometry/domain dominance; why this is replication not discovery.
  • zou2018_1590 — real multi-zone CSI occupancy; grounds the geometry-dependence premise.
  • huang2025_060d — the standing real-CSI anchor before any magnitude travels.
  • brunello2025_d781 — real drift is often worse than sims; the red-team's warning.
  • zhang2026_ccac, guarino2026_e72c — the reproducibility bar (every named figure must exist in S3).
  • archcad-400k — the dataset; substrate, materials, and the multi-room occlusion gotcha.

Campaigns & sessions

Campaign Session State Runs Started Report
c-csi-archcad-sensability planned

Provenance

Data origin
simulated
GIS experiment
none (scene staged from the archcad sidecar schema, not a GIS floor)

Data types

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