Environment

Synthetic lab floor `test-lab-synth-floor-0`, link layout `csi-synth-corridor-link` (1 Tx, 3 Rx). CPU/LLVM Sionna RT on the M1.

Motivation

IP-094 (Q5) models each human as a homogeneous dielectric cylinder with a single calibrated per-body loss (body_loss_db), refined only if the sim-to-real gap demands it. 2026-06-03 - Body-as-scatterer EM fidelity for ray-traced CSI records what the cylinder hides — the fidelity questions that must stay on the table so "refine only if needed" is decided on evidence. This experiment turns three of those questions into a ray-traced sweep, sibling to csi-static-occlusion (which holds the body model fixed and sweeps occupancy; this one holds occupancy and sweeps the body model).

Design

  • Simulation: exp-csi-static, scene csi-synth-corridor-link on test-lab-synth-floor-0, fixed mid occupancy (n_agents=6, n_placements=64 for a well-sampled attenuation distribution).
  • Body-parameter grid:
    • body.body_loss_db ∈ {2, 5, 10, 20} × body.body_radius_m ∈ {0.15, 0.20, 0.30} — probe the loss×radius confounding (the diary's notebook 02 shows mean attenuation is near-invariant along a loss×radius iso-contour, but the placement variance is not; you need the spread to identify the two separately).
    • radio.carrier_freq_hz ∈ {2.4e9, 5.0e9, 6.0e9} — the per-band Fresnel shift (blockage probability changes with wavelength even at fixed geometry).

What it must show

  • Mean attenuation alone under-determines the body model (iso-contour in loss×radius); the attenuation distribution (per-placement spread) separates them → motivates fitting exp-csi-calibration on distributions, not means.
  • A measurable per-band shift confirming per-band calibration is not optional.
  • (Carried, not yet swept here) the linear-additive vs shadow-saturating divergence at high co-linear occupancy — see csi-static-occlusion.

Metrics & execution

Per-run CsiMetrics floor + links.parquet; the analysis notebook reduces across the grid to the loss×radius confounding map and the per-band curves. Driven by campaign c-csi-body-em-fidelity, local CPU first.

With the loss wired, the three swept knobs now behave distinctly:

  • body_loss_db (now active, monotonic): lowers mean |H| and widens spread on occluded links. Effect is modest at n_agents=6 because occluder rates are low in this variance-dominated corridor scene (mean_n_occluders ≈ 0.2–0.4), so the per-occluder loss averages out over mostly-unoccluded placements. e.g. radius 0.20 m, 2.4 GHz: mean |H| −55.6 → −56.4 dB and spread 27.4 → 29.2 dB as loss 2 → 20 dB (both monotone). The grid-wide loss×radius mean-range rose from 1.14 → 2.25 dB vs the inert run — loss is now a live axis. A blockage-heavy geometry/occupancy would amplify it.
  • Body radius — still the dominant spread driver: radius 0.30 m → spread ≈ 41–42 dB vs ≈ 27–29 dB at 0.15/0.20 m. Across the grid the spread-range is 14.85 dB vs mean-range 2.25 dB — the distribution still carries ~6–7× more information than the mean, confirming the brief's criterion 2 (fit on the distribution, not the mean). Radius and loss are now genuinely confounded (radius feeds the occluder count that scales the loss), as notebook 02 predicted.
  • Carrier band — strong: grid-mean mean |H| shifts 10.13 dB across 2.4 → 5 → 6 GHz. Per-band calibration is not optional (criterion 3 ✓).

fig_csi_body_loss_radius_confounding.png

Interpretation (sober)

Loss and radius are jointly identifiable only from the attenuation distribution — the campaign's design question is answered in the affirmative now that the knob is live, but with the important qualifier that at low occluder rates the loss signal is weak and the spread (radius-driven) dominates identifiability. exp-csi-calibration should therefore fit against the distribution under a blockage-favourable geometry/occupancy, not low-occupancy means.

Caveats: synthetic scene; static placement (n_agents=6 fixed); 32 placements/cell; the per-occluder-loss model is a first wiring (flat per-link gain, not a frequency-/angle- dependent material) — adequate as a calibratable scalar, to be revisited if the calibration residual demands it. Reduction artefacts: _attachments/experiments/csi-body-em-fidelity/ (fig_csi_body_loss_radius_confounding.png, body_em_grid.csv, csi_body_em_sensitivity.metrics.json).

Campaigns & sessions

Campaign Session State Runs Started Report
c-csi-body-em-fidelity planned

Provenance

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

Data types

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