c-flat-day-reactive-vs-scripted — does the behaviour model leave a sensing fingerprint?
Setup. Identical floor (resplan-12439-floor-0) + identical dense-10 sensors + identical seeds; the only change is the strategic layer. Arm B (reactive) = the IP-107 18-FSM cast (guards: room_full(living-0) diverts, count_in(kitchen-0) > 4 escapes, etc.). Arm A (scripted) = the same cast linearised to each FSM's dominant path (fixed legs itinerary, after: leave), so it ignores live room state. 5 seeds each, coupled to ray-traced CSI via exp-csi-crowd (--where local). Valid scripted runs: 01KW0KGBDZ15KJTEBPJAWVRNTB, …HWM30T, …K98BM2, …N3B3GW, …Q41QH8 (an earlier scripted batch failed fast — an exit-kind leg the engine rejects only in linear form — and was superseded after the fix).
The divergence is real but not where the brief guessed (partial ✓ / corrected). The behaviour layer changes crowd persistence more than living-0 redistribution:
- Peak total occupancy: reactive 21.0 [19.9, 22.1] vs scripted 15.4 [13.9, 16.9] (95% CIs, multi-seed) — disjoint. Reactive FSMs loop (few have exit states) so guests keep circulating; scripted guests run their itinerary and
leave, so fewer are co-present. - living-0 peak is statistically indistinguishable (reactive 13.4 vs scripted 13.8) — both fill the sofa hub the same. The brief's expectation (A concentrates 18 / B spreads 16 in living-0) does not hold under coupling; the divergence lives in total persistence, not hub crowding.
The fingerprint is measurable (✓). On the sensed signal the arms diverge cleanly:
- Attenuation slope: reactive 26.5 [19.7, 33.4] vs scripted 13.8 [11.2, 16.5] dB/person — reactive ≈ 2× (more co-present bodies → more occlusion events).
- Two-sample KS on the 50 per-link CSI amplitude-variance observations per arm: D = 0.40, p = 4.2×10⁻⁴. The reactive and scripted crowds produce statistically distinguishable CSI distributions on the same receivers.
Implication. A crowd-counting model fit on one behaviour regime is mis-specified on the other: the input distribution it learns (variance, attenuation-per-person) is arm-dependent. Behaviour realism is therefore not cosmetic for sensing — it shifts the very feature distribution a counter consumes. This is a concrete sim-to-real risk worth carrying into training-data design.
IP-108 / reductions. CIs (multi_seed_ci), the arm-separability test (ks_2samp) and the density×observability trend (spearman) were computed with the audited reduction_stats primitives sim_reduction_run wraps. Note: exp-csi-crowd leaves run-level metrics:{} (domain metrics live in the artefact JSON), so the sim_reduction_run MCP path had nothing to aggregate — flagged as an IP-108 follow-on (promote sionna domain_metrics into run metrics).
Caveats. Scripted arm is a derived linearisation of the reactive cast, not an independently-authored itinerary — a clean isolation of the reactive layer, but it shares persona DNA. 5 seeds; single evening; quasi-static RT; synthetic crowd.</synthesis_md>