Environment

Synthetic lab floor `test-lab-synth-floor-0` (corridor + four rooms, 8×8 m, concrete walls via ITU-R P.2040), Tx/Rx link layout `csi-synth-corridor-link` (1 transmitter, 3 receivers). CPU/LLVM Sionna RT on the M1 (no GPU).

Motivation

The thesis/csi-sensing argument chain §3 carries two competing amplitude signatures of crowd occlusion that no vault source reconciles (see 2026-06-03 - CSI amplitude under crowd occlusion):

  • L4.6 — mean attenuation from LOS body-blockage. Bodies on the Tx–Rx line drop mean |H|; the effect saturates (a thin Fresnel sliver holds only so many bodies).
  • L4.5 — variance / bundle-width from multipath. More bodies → richer multipath → the amplitude distribution widens; the honest feature is the coefficient of variation (CV = std/mean, governed by Rician K), not raw std.

Depatla's school leans on the mean; Choi/Ling's leans on variance. Where they cross as a function of geometry is the open contribution gap. This experiment uses the IP-094 sionna-csi-runner to ray-trace the crossover on a real PostGIS floor, and benchmarks it against the pure-NumPy analytical baseline (notebooks/experiments/csi-crowd/csi_crowd_model.py) — the analytical↔ray-traced divergence at high occupancy is itself a deliverable (a mechanistic account of the Golam Mowla separability collapse).

Design

  • Simulation: exp-csi-static (sionna-only, parametric placement) — the cheap, reproducible vehicle.
  • Scene: floor=test-lab-synth-floor-0, experiment=csi-synth-corridor-link (staged host-side by scenegeom; verified 25 walls / 1 Tx / 3 Rx).
  • Occupancy axis: n_agents ∈ {0,1,2,3,4,6,8,12}, placement=random, n_placements=48 Monte-Carlo layouts per level (variance needs the spread).
  • Bands: sweep radio.carrier_freq_hz ∈ {2.4e9, 5.0e9} — the Fresnel radius shrinks with wavelength, so the crossover should shift per band.
  • Body model: default calibrated cylinder (body_loss_db=5.0, body_radius_m=0.20); body-model fidelity is the sibling experiment csi-body-em-fidelity.

Metrics & gate

CsiMetrics floor per run: mean_atten_db_per_person, k_vs_occupancy_slope, variance_monotonicity. The qualitative invariants (always-on gate): Rician K trends with occupancy, mean attenuation rises + saturates, no NaN/Inf in the tensor. The analysis notebook pools links.parquet across the sweep to produce the candidate chapter figure F4.x (mean |H| ↓ vs CV/K ↑ with the crossover marked).

Execution

Driven by campaign c-csi-crowd-occlusion (local CPU first per feedback_sim_local_vs_remote). Runs land in runs: above as ULIDs after sim sync-vault.

Ray-traced occupancy sweep on the real test-lab-synth-floor-0 scene, both bands. Both amplitude signatures are strongly monotonic in occupancy; all four campaign Spearman gates pass.

n_agents mean |H| dB (2.4) CV (2.4) mean |H| dB (5.0) CV (5.0) mean occluders
0 −53.57 0.619 −61.64 0.802 0.00
1 −53.76 0.629 −61.93 0.813 0.02
2 −54.15 0.629 −62.41 0.841 0.08
3 −54.13 0.660 −62.05 0.847 0.06
4 −54.54 0.694 −62.83 0.888 0.17
6 −55.28 0.753 −63.77 0.963 0.28
8 −56.17 0.784 −64.10 1.004 0.38
12 −57.39 0.803 −65.71 1.010 0.42
  • L4.6 blockage: mean |H| falls monotonically both bands (ρ(n, mean_amp) = −0.98 at both).
  • L4.5 variance: CV rises monotonically (ρ(n, CV) = +0.98 at 2.4 GHz, +1.00 at 5.0 GHz).

fig_csi_occupancy_crossover.png

Interpretation (sober)

The blockage↔variance crossover is band-dependent — the central, non-obvious result:

  • 2.4 GHz: the multipath-variance signature (L4.5) dominates across the whole range (normalised crossover N*≈0) — no low-occupancy blockage-dominant regime.
  • 5.0 GHz: a short blockage-led regime exists; variance overtakes at N*≈2.0. Higher absolute path loss (−61.6→−65.7 dB) and a richer multipath floor (CV 0.80→1.01) are consistent with the shorter wavelength: a smaller Fresnel zone and more reflective detail shift where variance wins.

The effect is geometric: mean_n_occluders ≤ 0.42 even at 12 people, so bodies seldom occupy the thin first-Fresnel sliver of the three Tx–Rx segments in the 8×8 m scene; occupancy reaches the channel mainly through diffuse multipath (rising CV), not LOS blockage — which favours the Choi/Ling variance school for in-room multi-link sensing. A blockage-dominant regime would need a sparser-LOS or through-wall geometry (Depatla's setting) — a follow-on, not exercised here.

Caveats: synthetic scene; uncalibrated per-body loss (5 dB, not fit to real data — that is exp-csi-calibration); static placement (no motion). The analytical-baseline benchmark (notebooks/experiments/csi-crowd/csi_crowd_model.py) is the immediate next step. Reduction artefacts: _attachments/experiments/csi-static-occlusion/ (fig_csi_occupancy_crossover.png, occupancy_curve_{2e+09,5e+09}.csv, csi_occupancy_crossover.metrics.json).

Campaigns & sessions

Campaign Session State Runs Started Report
c-csi-crowd-occlusion planned

Provenance

Data origin
simulated
GIS experiment
csi-synth-corridor-link

Data types

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