c-csi-layout-drift — session 2 (multi-seed, BLE co-registered)
Verdict
The session-1 drift sweep is replicated at 3 placement seeds across four displacement arms (84 exp-csi-static runs, all gate-passed, ble.enabled so every state carries a co-registered ble_links.parquet). The headline is uncomfortable for the fixed-cadence prior this campaign exists to produce: T(ε) is seed-fragile and direction-fragile*. On the into-blockage arm T*(ε=0.5) = [0.25, 1.5, 0.25] m across seeds; on three other arms (control corners, random in-path directions, perpendicular exit) the error never crosses ε at all despite feature shifts up to 27 dB.
What we ran
Same corridor protocol as session 1 (test-lab-synth-floor-0, csi-synth-corridor-link, 6 agents, 16 placements, placement seed shared across states so furniture is the only change). Four arms × 7 states (0.25 m steps, Δ ≤ 1.5 m) × 3 seeds:
corner— session-1 off-path furniture, random directions (seed 22): error flat at the calibration residual (0.22–0.38 by seed), byte-stable across states. Replicates session 1 exactly.los— session-1 metal boxes on the Tx–Rx line, random directions (seed 11): feature drifts, error stays ≤ 0.44. Session 1's strong in-path drift is not generic — it needs displacement into the deep-blockage regime.losperp— deterministic perpendicular exit off the LOS line: per-link mean amplitude swings ~27 dB (−93 → −66 dB) yet occupancy error is flat. Large environment change, zero model degradation — the false-alarm trap arm for any drift detector.losin— deterministic slide along the LOS toward the Tx (into deep blockage, session 1's regime): error grows 0.29 → 0.93 (seed 0), 0.37 → 0.82 (seed 2); seed 1's placements are robust (→ 0.43). Mostly monotone with an end plateau.
Interpretation
- Session 1's conclusion sharpens: drift is not "rearrangement in the sensing geometry" but rearrangement that pushes the feature into the estimator's extrapolation region. The analytic estimator's slope is shallow (−0.005..−0.03 persons/dB), so only extreme excursions (deep blockage, −180 dB class) hurt it.
- A single-seed
T*(ε)is not a safe design input: at ε=0.5 the recommendation spans the entire sweep range depending on where the 6 occupants happen to stand. The multi-seed spread — not the point estimate — is the honest deliverable for the IP-106 capture design, and it argues for event-driven recalibration over any fixed cadence (tested next in c-ble-drift-trigger). - Both estimators ship in
drift_curve.parquet; the Rician-K variant again degenerates under deep blockage (−inf masked) and the curve is read onmean_amp_db.
Honest scope
In-silico, design input only (IP-101 Q3=A). The displacement schedules are self-authored (deterministic arms deliberately bracket best/worst case rather than sample "typical" rearrangement); the BLE noise model is the σ=2 dB Gaussian stand-in. recalibration-trigger-from-drift is NOT upgraded by this session — it produces the corpus the trigger campaign consumes. RQ4 still needs the real multi-day capture.
Artefacts
fig_layout_drift_multiseed.png— 4-arm × 3-seed drift curves (ε line marked)drift_curves_all.parquet— long-form curves, both estimatorslayout_tstars.json— per-arm/per-seed T*(ε=0.5)- 84 runs attached; per-run artefacts under
sim://(links.parquet + ble_links.parquet each)