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, scenecsi-synth-corridor-linkontest-lab-synth-floor-0, fixed mid occupancy (n_agents=6,n_placements=64for 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-calibrationon 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.
Results (sweep 01KT81GTJZADXVV7JNESB62F13, 36 cells = 4 loss × 3 radius × 3 band, n_agents=6, 32 placements × 3 links)
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).