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

01KVWPK1SCQ5J23YD6H2E16TP6

finished 2026-06-24 11:35:03.212099+00:00 → 2026-06-24 11:52:28.665323+00:00 · 10 runs · supervisor: react-agent

“IP-101 furniture-injection glue wired and verified; drift sweep ran end-to-end (10 runs, 2 arms). Drift is geometry-dependent: occupancy error grows with displacement only when furniture is in the Tx-Rx path (0.29->0.66 persons through 0.75m), and is flat at the calibration residual (~0.31) for furniture moved in room corners. T*(eps=1)=1.0m both arms; eps=0.5 separates them. Design input only.”

Archive snapshot, as of 23 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.

Success criteria

CriterionResolved
Stage >=4 progressively-displaced furnished floor states and run exp-csi-static on each (scalar floor + links.parquet, no NaN/Inf). yes
Notebook emits drift_curve.parquet carrying both analytic estimators + relative schema. yes
Occupancy error grows monotonically with delta_layout; curve yields a T*(epsilon) cadence. yes
Synthesis records the curve as a campaign-design input that does NOT answer RQ4. yes

Synthesis

Verdict

The IP-101 furniture-scatterer path is now wired end-to-end and the synthetic layout-drift prior was measured. A two-edit glue (a furniture field on SceneOverrides, injected into the staged scene.json by scene_stage) connects the existing csi_drift schedule + the runner's _write_box_ply support, which were present but never called from the launch path. Ten exp-csi-static runs (two five-state arms) gate-passed with furniture rendered as box scatterers; the csi_layout_drift.py reduction produced drift_curve.parquet + a T*(epsilon) cadence for each arm.

What we tested

A deterministic five-state displacement schedule (0.25 m steps, seed-fixed directions, 16 placements at fixed occupancy on test-lab-synth-floor-0 / the three-link corridor layout), run twice: an off-path arm (four furniture items in the room corners) and an in-path arm (three reflective metal boxes across the Tx--Rx corridor link). Furniture was injected per state via config_overrides_path YAML (the MCP params path stringifies nested lists, so the YAML overlay is the correct route).

What we found

  • Off-path: occupancy error is pinned at the calibration residual (mean_amp_db: 0.308 persons) and does not move across the full 1 m of rearrangement (Spearman flat; max delta < 0.001).
  • In-path: error grows with displacement --- 0.290 -> 0.358 -> 0.511 -> 0.661 persons through 0.75 m --- as the blockage the model was fit to moves out from under it (mean_amp_db swings -76 -> -180 dB); it dips to 0.496 at 1.0 m as one box clears the LOS (non-monotonic tail).
  • Cadence: at a one-person budget both arms tolerate the full sweep (T*(eps=1)=1.0 m); at eps=0.5 the in-path arm crosses near 0.5 m while the off-path arm never does.

Interpretation

Drift is not a property of rearrangement in general but of rearrangement in the sensing geometry: a count model can be calibrated once and ignore furniture outside the link path, but must re-anchor against furniture near the links. T*(epsilon) is set jointly by the error budget and by how much rearrangement happens near the links --- exactly the design input a real recalibration schedule needs.

Honest scope

In-silico, design input only (IP-101 Q3=A) --- recalibration-trigger-from-drift stays plausible. The in-path boxes are deliberately reflective metal (an upper bound on furniture effect, not a typical room); the Rician-K feature degenerates to -inf under the near-total blockage they produce, so the curve is read on the attenuation feature alone. The operational cadence remains a multi-day hardware measurement this curve is built to design, not replace.

Attached runs

Run Gate Purpose Replay
KQ7FHZRS
N26B8JXZ
P7FM9BHY
5AS18744
XB4WK46G
0SGY60V2
YTVSAENE
8WY0K253
WBP3J3C5
BTT596Z0