Executive summary
Every result the CSI sandbox produces starts from a 3D room whose walls have to be assigned a material — drywall, concrete, brick — so the ray tracer knows how radio waves bounce and pass through them. This experiment asks a boring-but-load-bearing question: does that choice matter? If swapping drywall for concrete barely moves the channel statistics, the platform can stage cheap uniform scenes and forget about it. If it moves them a lot, then every past result quietly depends on the walls having been guessed correctly.
The headline, stated honestly: it matters — a lot. On the exact same floor, same link layout, and same person placements, forcing every wall from drywall to concrete shifts the per-link amplitude distribution by a Kolmogorov–Smirnov distance (KS-D) of 0.74 to 1.00 (first-order) and the multipath delay-spread distribution by 0.27 to 0.60 (second-order), with p-values all below 4e-4. A KS-D of 1.0 means the two distributions do not overlap at all. So the decision rule fires on its strongest branch: wall material is a required fidelity input, not a knob we can ignore.
Two honesty notes carry equal weight to the number. First, this measures sensitivity to the palette — a deliberate worst-case full swap — not the error we would actually make by mis-tagging: drywall is the plausible material for the ResPlan interior partitions used here, so prior results are made conditional, not invalidated. Second, the session itself is imperfect: it sealed with no figure rendered (the requested csi_material_ks ECDF panel was never produced), lint.ok = false, and the critic skipped. The eight runs are real and gate-passed; the presentation around them is not yet publication-grade. Everything here is simulated — the ITU material values are nominal, uncalibrated against any real wall.
The problem, in plain words
Think of a room as an echo chamber for radio. When a Wi-Fi signal leaves the router, it does not travel in one clean line — it bounces off walls, floors, and furniture, and the receiver hears a pile-up of echoes arriving at slightly different times. Crowd counting works because a human body is a wet, radio-absorbing obstacle that changes which echoes survive: more people, more disturbance. That is the signal.
But the echoes also depend on what the walls are made of. A concrete wall reflects far more strongly and passes far less through than a sheet of drywall — physically, concrete has both a higher permittivity (roughly ε_r 5.3 vs 2.9) and higher conductivity. So the same people in the same room produce a different radio fingerprint depending on the walls. In a real building you rarely know the wall materials; in our simulator we assign them from a lookup table (ITU-R P.2040). The worry is simple: if our assigned materials are wrong, the fingerprint the sandbox learns is wrong too — and no amount of clever machine learning downstream can undo a mis-modelled room.
There is a wrinkle that reframes the whole question. When we went to set up a "heterogeneous walls vs uniform walls" comparison, we discovered the scene importer does not tag per-wall materials at all — every floor currently stages as uniform drywall. So the honest, testable question is not "heterogeneous vs uniform" but "does the single uniform material we picked actually matter?" — tested by forcing the whole floor to concrete and measuring the shift.
What we are trying to prove
- Hypothesis (falsifiable): swapping the wall material shifts the CSI statistics enough to matter — measurably, on identical geometry and placements. Concretely, KS-D ≥ 0.15 on the delay-spread (second-order) distribution in any band × occupancy cell means material is load-bearing. If instead KS-D stays below 0.15 everywhere, the sim's occupancy signal is robust to this modelling choice and uniform scenes are licensed as a cheap default.
- What a null would have meant: a small KS everywhere would have been the convenient answer — it would let every past and future campaign skip material tagging and stage the cheapest possible scenes. We did not get it.
- The pre-registered decision rule (either way): small KS everywhere → "uniform scenes licensed"; any large KS → "a material-fidelity caveat attaches to every prior default-material CSI result, and the affected sealed sessions are named." This binary was fixed before the run, which is what makes the hit meaningful rather than a fishing expedition.
How the experiment works (plain method)
- Fix everything except material. Take one real multiroom floor (
resplan-12439-floor-0) and one link layout (csi-link-resplan-12439-multiroom). Hold the person placements and the random seed (seed 0) constant. The only thing that changes between the two arms is the wall material: as-stored (uniform drywall) vs forcedscene_overrides.uniform_material: concrete. - Sweep the two nuisance axes so the finding is not a fluke of one setting: carrier band {2.4 GHz, 5.0 GHz} × occupancy {0 people, 6 people}. That is 2 materials × 2 bands × 2 occupancies = 8 runs.
- Measure two orders of statistic per run. First-order: the per-placement mean amplitude in dB (
mean_amp_db) — "how strong is the link on average." Second-order: the delay spread (delay_spread_ns) — "how smeared-out in time are the echoes," which is exactly the multipath structure material is expected to move. - Compare distributions, not means. For each (band, occupancy) cell, run a two-sample Kolmogorov–Smirnov test between the drywall and concrete arms on each statistic. KS-D is the maximum gap between the two cumulative distributions: 0 = identical, 1 = no overlap. Report the KS-D and p in a table and apply the decision rule verbatim.
What we've found so far (honest)
The session (01KT9BJ82A61X7T7HQYY7D9309, /campaign-curious, 2026-06-04) resolved all three success criteria true on 8/8 gate-passed runs, no NaN/Inf. The verdict is unambiguous:
| Statistic (order) | Pooled KS-D range | p | Reading |
|---|---|---|---|
mean_amp_db (first-order, blockage) |
0.74 – 1.00 | < 4e-4 | Material moves the average link strength enormously; some cells do not overlap at all. |
delay_spread_ns (second-order, multipath) |
0.27 – 0.60 | < 4e-4 | Material also moves the echo structure — the axis crowd counting actually rides on. |
Per-link maxima reach KS-D = 1.00. The decision rule fires on its strongest branch (KS-D ≥ 0.15 on both first and second order): the wall-material palette is load-bearing for both blockage and multipath statistics. Per the pre-registered rule, the caveat attaches to prior default-material CSI sessions — the synthesis names c-csi-crowd-temporal/01KT99FX2Z3RG2W2DZ4FVCVTH7 and c-csi-cross-geometry-resplan/01KT98WKH2HYQYP4EP79G09CEG, plus the unsealed occlusion/body-EM corpora, as having run on the untagged uniform-drywall default.
Three things that keep this honest:
- It is sensitivity, not mis-tagging error. The perturbation is a full drywall→concrete swap — a large, deliberate worst case. It quantifies how far the statistics can move, not how far they do move under a plausible tagging mistake. Drywall is the reasonable material for ResPlan interior partitions, so this makes prior results conditional on the drywall tag being correct, it does not invalidate them.
- The relative cross-geometry result is not confounded. The ×3.8–×7.7 LOFO drift measured in c-csi-cross-geometry-resplan used the same palette on all six floors, so palette uncertainty bounds the absolute magnitudes only — the relative drift comparison stands.
- The session's own hygiene is imperfect.
figures: []— the requestedcsi_material_ksECDF small-multiples was never rendered (the KS numbers live only in amaterial_ks.csvin the session scratch dir); the session sealed withlint.ok = false(asim_paramsshape-validation failure); the critic was skipped (supervisor inlined the synthesis under the IP-084 tiny-corpus cost rule); andbudget_usedlogged all zeros (an accounting gap, not a free run). The placement count is also recorded inconsistently across the record — the brief'ssim_paramssays 48, success-criterion 1 says 64, the synthesis says 24 — a provenance smell worth reconciling before this number is quoted anywhere load-bearing.
(No "How to read the figures" section follows, because no figure exists — that is itself the top action item for the next session.)
Review panel
Each voice is a prepared expert with a one-line stance and the literature it argues from. Verdicts are about this experiment and its current evidence, not the idea in the abstract.
Key references
- hoydis2023_7aa4 — the ray tracer that produces the CSI and defines the RadioMaterial abstraction under test.
- zhang2024_df4a — indoor propagation with segmentation-grounded materials; the fidelity bar the materials/twin voices invoke.
- zhu2024_cbfa — quantifies how much EM output depends on solver/material modelling choices; grounds the identifiability critique.
- testolina2024_710f ↗ — site-specific digital-twin ray tracing; the provenance model the building-systems voice wants.
- wang2015_48cf ↗ — first-principles CSI-multipath model behind the "material moves the signal" mechanism.
- zou2018_1590 ↗ — real device-free CSI occupancy; the deployment target the fidelity question serves.
- cominelli2023_e6ee — CSI measurement design & limitations; grounds the statistician's power/multiplicity asks.
- zhang2026_ccac, guarino2026_e72c ↗ — the reproducibility protocols the SWE voice holds this session to.
- gringoli2019_68e7 ↗ — commodity real-hardware CSI extraction; the practitioner's "recalibrate in situ" path.
- huang2025_060d, wang2026_2758 — the real-CSI anchor and generalizability framing the red-team demands.