Sessions

No sessions yet — this campaign has a brief but no execution.

Brief

Question

How fast does an occupancy estimator calibrated on one furnished floor state degrade as the furniture moves? The drift curve $(T^{*}, \epsilon)$ — the operational answer to RQ4 — does not exist even in silico. The real curve needs multi-day capture; the simulator can produce its shape and so design that capture instead of guessing it.

IP-101 Phase 2 adds the scene-evolution sweep: an ordered sequence of furnished floor states (furniture as static scatterers, IP-092 occupiables), the channel simulator on each, a pluggable OccupancyEstimator calibrated on state 0 and evaluated on the rest, emitting drift_curve.parquet.

What we already know

  • A model calibrated on one multipath environment drifts when the scatterer geometry changes; furniture rearrangement is the dominant indoor non-occupancy change.
  • The magnitude is geometry-dependent (IP-094 flagged a ×3.8 vs ×7.7 band gap on ResPlan), which is exactly why a closed-form bound would mislead and we keep it empirical (IP-101 Alternative 3).
  • Two estimators bound the truth (IP-101 Q2=C): the analytic variance-threshold floor (ships now, no thesis-pipeline dependency) and the thesis occupancy model (the realistic curve, joins as a third thesis-model series once importable). Plotting both separates physical drift (shared) from model brittleness (estimator-specific).

What I want the supervisor to do

  1. Build the furnished-floor-state schedule over the floor's IP-092 occupiables (displacement_schedule, IP-101): state 0 = calibration layout, states 1..k displace the furniture by a growing delta_layout. Inject each state's furniture list into that run's staged scene.json.
  2. Fan out exp-csi-static once per state (same scene + link, only the furniture moves), local CPU first (where=local). >=4 states; more if the curve has not plateaued.
  3. Run the notebook-backed reduction (csi_layout_drift.py, runner python): fit each estimator on state 0's links.parquet, evaluate on every state, emit drift_curve.parquet (+ figure + csi_layout_drift.metrics.json with the T*(ε) cadence recommendation).
  4. Synthesise the cadence recommendation as a design input for the real library campaign.

Analysis-writer responsibilities

  1. Confirm each state's scalar floor + links.parquet via sim_read_run; confirm the drift_curve.parquet carries both estimators.
  2. Report the drift curve(s), the T*(ε) cadence, and (if the thesis model ran) the physical-drift vs model-brittleness split. Cite per-run artefacts by sim:// URI.
  3. State plainly: this is a design input, the sim parameters (furniture schedule, any impairment profile) are unvalidated, and recalibration-trigger-from-drift stays plausible until real data lands (IP-101 Q3=A).

Figure render request

csi_layout_drift — occupancy error vs furniture displacement for each estimator, with the ε budget line and the implied T* marked.

Out of scope

  • Answering RQ4 / measuring the real drift curve — that needs real multi-day capture; this is strictly the synthetic design prior.
  • Occupancy-pattern (temporal) drift — furniture only here; seasonal/time-of-day drift is a Future Consideration (IP-101).
  • Hardware impairments — that is c-csi-impairment-sim-to-real (compose later if needed).

Expected interpretation

  1. All criteria met → "Occupancy error stays within ε up to a furniture displacement of T*≈X m; beyond that recalibrate. The real capture should sample rearrangement events at that cadence." A design input for the library campaign — RQ4 still pending real data.
  2. Analytic floor drifts immediately → the calibration is fragile even to small rearrangements; tightens the cadence recommendation (still a design signal, not RQ4).
  3. Criterion fails (no furnished floor, NaN) → platform/dependency finding (gated on IP-092 furnished floors landing, per IP-101 §Trade-offs).

Operator notes

  • Gated on IP-092 furnished floors / occupiables — the c-fiit-find-a-seat campaign shows occupiables landing. If the target floor has none yet, the supervisor can stand in a small synthetic furniture set to exercise the pipeline (clearly marked as a plumbing run).
  • One run per state at fixed occupancy — minutes on the M1 CPU. Furniture are static scatterers inserted once into the cached scene per run (IP-101 runner _write_box_ply).