Asking the fleet what it is doing…
monad-knowledge Wi-Fi sensing lab · FIIT STU
Campaign

BLE drift trigger — can an online drift statistic detect CSI layout drift and beat a fixed recalibration schedule?

c-ble-drift-trigger · exp-csi-static

Archive snapshot, as of 5 h ago — the run corpus is rebuilt once a day, so this page is not a live reading. The fleet panel is the live one; it refreshes every 30 s.

Sessions

state
Session State Runs Synthesis Criticism Figures Verdict
YWKKT1KT 2026-07-03T17:07 finished 21 3 Trigger mechanism CONFIRMED in-silico, with an important policy negative. The deployable cross-modal statistic (xmodal: |CSI-map - BLE-map| disagreement) tracks true occupancy error at Spearman 0.93 [0.72,1.0], detects 100% of error>epsilon states, stays quiet on 100% of control and 94% of error-irrelevant-shift cells — while CSI self-monitoring false-fires on 17% of error-irrelevant shifts. BUT at matched budget even the perfect-knowledge trigger does not lower error below fixed cadence (0.421 vs 0.399); the payoff is parity at one-quarter of the calibration spend (2.0 vs 8.0 recals estate-wide). recalibration-trigger-from-drift: candidate -> chosen, strength stays plausible. 4/5 criteria; critic severity medium, verdict upheld.

Brief

Question

c-csi-layout-drift measured how fast a CSI occupancy estimator drifts under furniture rearrangement and produced the fixed-cadence prior (T^{*}, \epsilon). c-csi-ble-fusion showed the right fusion is a staleness-switch — but its staleness weight is a clock (w = e^{-t/\tau}), blind to whether the environment actually changed. recalibration-trigger-from-drift asserts the missing piece: an observable, online drift statistic that tracks the (unobservable) CSI count error, so recalibration fires on events rather than a schedule. Does such a statistic exist in the co-registered CSI+BLE channel — and does it stay quiet when rearrangement happens outside the sensing geometry?

The previous session's key finding makes this a real detection problem, not a formality: drift is geometry-dependent (in-path furniture drives error 0.29→0.66 persons; corner furniture does nothing). A pure clock recalibrates for both; a good detector fires only for the first. And the obvious anchor — the BLE channel — is itself drifted by the same furniture, so whether cross-modal disagreement tracks CSI error is a physics question the ray tracer can answer, not a tautology.

Design evolution (recorded before the trigger evaluation ran)

The initial corpus had two arms (los random in-path directions, corner control). The first drift curves showed the los arm's random displacement produces large feature shift but almost no count-error growth — the analytic estimator's slope is so shallow (≈ −0.005..−0.03 persons/dB) that only extreme excursions into deep blockage (the −180 dB regime session 1 hit by chance) move the error. Two deterministic arms were added before drift_trigger.py was ever run on a signal arm: losperp (boxes exit the LOS perpendicular — error-irrelevant feature shift, the false-alarm trap) and losin (boxes slide along the LOS toward the Tx into deep blockage — the error-relevant regime). The detectability criteria below apply verbatim with losin as the in-path signal arm; the sharpened question is discrimination: a good trigger fires on losin, not on losperp/corner, i.e. it tracks model degradation, not mere environment change.

Cross-campaign inputs

  • Corpus: this campaign analyses the multi-seed drift+BLE corpus produced by the c-csi-layout-drift follow-on session (same corridor floor, same two furniture arms extended to 7 states × 3 seeds, ble.enabled). Runs are attached to both sessions (analysis-session precedent: the flat-day matched re-analyses).
  • Estimator + protocol: the state-0-calibrated linear mean_amp_db estimator from csi_layout_drift.py (16 placements at fixed 6-agent occupancy, placement seed shared across states so the only thing that changes between states is the furniture).
  • Detection framing: candidate statistics ladder from cheapest to strongest premise — CSI self-monitoring (no extra hardware) → physical BLE-RSSI anchor (co-registered, itself drifting) → idealized BLE device-counter (the ble-ground-truth-sufficiency premise, reported as ceiling only).

What the supervisor does

  1. Corpus check: confirm the 42-run corpus (2 arms × 7 states × 3 seeds) gate-passed with both parquet artefacts; attach the runs to this session.
  2. Run drift_trigger.py (runner python, IP-087, dual-mode): per (arm, seed) calibrate on state 0, compute true error + the four statistics per state, bootstrap-null thresholds from calibration data, the detectability table, and the matched-budget policy simulation.
  3. Synthesise with the in-silico framing; state which statistic (if any) earns the trigger role and what that means for the IP-106 real capture design.

Figure render request

drift_trigger — (a) true error vs displacement with the candidate statistics overlaid (normalized, per arm); (b) statistic-vs-error scatter with Spearman + detection/false-alarm bars per statistic; (c) policy bars: mean error and recals used, fixed vs triggered vs oracle.

Out of scope

  • Temporal/occupancy-pattern drift — furniture-displacement drift only, inherited from c-csi-layout-drift; the time-varying-crowd analogue composes later with the c-csi-ble-fusion switch.
  • Answering RQ4 / real drift — the statistic's field ROC needs the IP-106 capture; this campaign designs which statistic that capture should log.
  • Learned drift detectors — analytic statistics only (KS, disagreement); a learned detector is a data-scaling follow-on.

Expected interpretation

  1. A non-oracle statistic passes both detectability halves → the trigger mechanism exists in the physics: an event-driven recalibration policy is constructible from observables. recalibration-trigger-from-drift moves candidate → chosen (strength stays plausible); the IP-106 capture should log that statistic.
  2. Only the oracle counter tracks error → drift detection requires the BLE device-counting premise, not the RSSI channel — sharpens the hypothesis onto ble-ground-truth-sufficiency and lowers expectations for RSSI-only monitoring.
  3. Statistics fire on the off-path arm too → false-alarm-prone triggering; a fixed T^{*}(\epsilon) cadence stays the honest recommendation (clean negative).
  4. Corpus/chain failure → platform finding on the BLE+furniture composition.