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 byscenegeom; verified 25 walls / 1 Tx / 3 Rx). - Occupancy axis:
n_agents ∈ {0,1,2,3,4,6,8,12},placement=random,n_placements=48Monte-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.
Results (sweeps 01KT7YS5… 2.4 GHz + 01KT7ZJP… 5.0 GHz; 2 bands × 8 levels × 48 placements × 3 links)
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).