Live status · Read the latest
monad-knowledge Wi-Fi sensing lab · FIIT STU
running csi-ble-fusion-drift simulation simulation

CSI × BLE fusion under motion — does periodic BLE recalibration bound cross-environment drift?

In plain words

If a drifting Wi-Fi count is rescaled now and then by a Bluetooth reading, does the drift stay bounded when the model moves to a new floor?

left alonecalibrated counting error time; each dashed line is a short calibration
The lines show the proposed recovery pattern. Independent labels must establish whether error actually rises and recovers. Score each prediction before refitting; the dashed lines mark calibration events. Schematic of the design, not a measurement.
Why it matters
CSI and BLE may constrain different parts of a count model. Both need calibration and neither automatically supplies the true person scale.
How it is done
Couple simulated crowds to simulated radio across several floors, count with and without periodic Bluetooth rescaling, and compare how the error grows across environments.
Where it stands
Historical fusion pilots remain limited by leakage and weak features. The unrun powered extension and the field comparison still prevent a general fusion claim.

Asks, formallyPeriodic BLE recalibration bounds the cross-environment drift of temporal-CSI counting: the coupled crowd→CSI counting error grows across environments without recalibration and is bounded with it, at a cadence set by the drift rate. Sceptical caveat carried from the c-csi-ble-fusion session: the headline lift (R² 0.09→0.36) is single-floor / few-seed with 64% variance unexplained and its MLP arm collapses to R²=−0.43 — this is a *pilot direction*, not a POSITIVE, until powered on >1 geometry with a CI and cross-checked on real CSI.

FoundHistorical fusion pilots remain limited by leakage and weak features.

StandingCollecting data now · last activity 2026-06-25

RoomCoupled `walk-notebook (from_floor) → sionna-csi-runner` on `resplan-12439-floor-0` (multiroom); cross-environment arms.

The room

resplan-12439 · resplan-12439-floor-0 · 52 devices

The floor this experiment runs on — its rooms, walls, furniture and the highlighted sensors placed for it. This is the surveyed layout as last exported; a run's replay below shows the geometry as it was simulated.

CSI × BLE fusion under motion: does periodic BLE recalibration bound cross-environment drift?

Current assessment (2026-09-15)

Historical fusion pilots remain limited by leakage and weak features. The unrun powered extension and the field comparison still prevent a general fusion claim.

The old 70.7% transfer-recovery headline is contaminated by label leakage and count-range extrapolation. The later R² change from 0.09 to 0.36 is a small simulated feature comparison, not a field fusion result. The current campaign index still lists no session for c-csi-ble-fusion-powered.

Next evidence needed: Use disjoint calibration and evaluation references, grouped capture splits and matched reference budgets. The field question belongs to EXP-F3; compare uncertainty and withheld answers as well as mean error.

Basis: Thesis Narrative, the September 10 synthesis, and the September 15 register review. See the review record for evidence sources and outstanding checks.

Earlier protocol and dated results

The methods and observations below retain their original scope. Read their readiness statements and proposed next steps as historical. The current assessment above records what has changed; frozen thresholds have not been retrospectively revised.

The problem, in plain words

Imagine a bathroom scale you calibrate while standing on thick carpet. Move it onto tile and it reads wrong — your weight did not change, its environment did. Wi-Fi crowd counting has the same disease: the model learns "this much signal variation ≈ 5 people," but that mapping is glued to where the walls and furniture sit. Rebuild the room — or just move to a different room — and the count silently drifts. Prior work in this project measured that drift directly: a CSI map carried to a new floor can inflate the count by roughly ×3.8–×7.7. Device-free CSI counting is a real and useful capability (zou2018 ↗; zhou2020 ↗), but its cross-environment transfer is a known, hard problem (chen2023_5cbd ↗).

The proposed fix is a second, cheaper radio that does not drift the same way. BLE beacons already exist in most buildings and give a coarse, absolute headcount (demrozi2021 ↗). The idea: let CSI supply the fast, fine-grained shape of the occupancy curve, and use the BLE anchor to periodically pin down the scale. If that works, you get the resolution of Wi-Fi with the portability of Bluetooth.

What we are trying to prove

  • Hypothesis (falsifiable): a CSI→count map, transferred untouched to a new floor, drifts; periodically re-scaling it with the BLE anchor bounds that drift, and the fused estimate has materially lower transfer error than CSI-only. If the recalibration does not lower error once the BLE anchor is made independent of ground truth, the mechanism fails on its own premise.
  • What a null means: if BLE recalibration cannot rescue the transferred CSI count, either the BLE anchor is too coarse/saturated to correct at these crowd sizes, or the CSI feature itself carries too little count information for any re-scaling to help. The campaign found the second null — a genuinely informative negative that redirects the effort from "calibrate better" to "extract a better CSI feature."
  • The honest deliverable is the mechanism shape, not a recovery rate. With a self-authored crowd, synthetic CSI, and a self-authored Gaussian BLE noise, any accuracy number is partly circular against the noise model. The defensible output is architectural: is periodic absolute-anchor recalibration the right way to bound relative-sensor drift?

How the experiment works (plain method)

  1. Couple the two simulators. walk-notebook animates a crowd on a real ResPlan floor; sionna-csi-runner ray-traces one channel per frame with ble.enabled and doppler.enabled, yielding — from the same solved channel — a temporal CSI tensor and a co-registered BLE-RSSI stream (hoydis2023_7aa4 ↗).
  2. Fan out exp-csi-crowd over 3 floors × {2.4, 5.0 GHz}: resplan-12439 (furnished, 16 seats, the busy calibration source) and resplan-1374, resplan-16157 (through-traffic targets).
  3. Build the estimators (fusion_count): ground-truth occupancy(t) from the trajectory; a CSI temporal feature (intra-frame Doppler-fading CV over links); a BLE aggregate-attenuation anchor; and three counts — CSI-only (calibrated once on the source), BLE-anchored, and the fused (CSI shape + periodic BLE re-scale).
  4. Transfer test: apply the source CSI map to the targets, measure how far it drifts, and how much periodic BLE recalibration pulls it back.
  5. Later sessions stress the design: a staleness-switch fusion (weight = exp(-staleness/tau)) across BLE-cadence, and a Doppler-on / learned-feature floor-lift asking whether CSI is weak or merely under-featured.

What we've found so far (honest, across six sessions)

All six sessions were synthesis-only passes — budget_used is 0 cpu-hours / 0 tokens on every one, i.e. they re-analysed runs computed elsewhere and rendered no figures (figures: [] throughout). Read the numbers below as point estimates off a small, self-authored corpus.

Session 1 — the headline drift test (6 runs), criterion marked FALSE. A CSI→count map from resplan-12439 applied to the targets gives ~3.5-person MAE; periodic BLE recalibration cuts it to ~1.0 (1374: 3.38→1.13; 16157: 3.61→0.92; bands within 0.04, "70.7%"). The supervisor rejected this as a clean recovery rate for two reasons: (a) leakage — the BLE "anchor" is an affine of RSSI attenuation fit to the same run's ground truth (per-person slope −14.3 dB on the source vs −73.0 on 1374, a 5× swing), so the fused path indirectly ate target-floor truth; (b) confound — source occ ≤10 vs targets occ ≤6, so a linear map fit high and applied low inflates from extrapolation, not geometry. Within-floor, BLE recal helps only the busy furnished floor (12439: 3.56→2.23); on the low-count floors the change (1.14→1.12, 0.93→0.92) is single-seed noise. Single seed throughout.

Session 2 — remove the leakage, and the gain vanishes (9 runs). Re-fit the CSI map on the target using the BLE device-count as the only label (no ground truth): cold-transfer 1.50 ≈ BLE-adapted 1.51 persons — ~0 gain. Conclusion: calibration is not the bottleneck; the CSI feature is. The one architectural win is the staleness-switch (w = exp(-staleness/tau), tau ≈ 16 s): it tracks the lower envelope of {BLE-held, CSI} across a 1–80 s cadence — ≈ BLE when fresh (0.73–1.0 dense), falling back to the CSI floor (~1.6) when the anchor goes stale at 80 s (vs held-BLE 2.8) — and beats the naive constant blend everywhere. It does not strictly dominate; it stays within ~0.1 person of the best modality at each cadence. 3 seeds, 2 target floors, low crowd sizes, tau hand-tuned.

Session 3 (latest) — is CSI weak or under-featured? (3 runs, one floor). On a dense 10-Rx layout at higher occupancy (→18), turning Doppler micro-fading on and using a richer per-link intra-frame fading feature lifts CSI→count from R²=0.09 (quasi-static, hand amplitude-CV) to R²=0.20 (hand-CV on Doppler) to R²=0.36, nMAE 0.19 (Doppler-rich linear ridge) — ~4× the count variance explained. The neural feature overfits to R²=−0.43 (~380 train samples, 30 features). So CSI was under-featured, not irredeemably weak; the right complexity now is a linear rich-feature model, and a learned model is a data-scaling lever. This session's supervisor stamped "POSITIVE," but it is a single floor, 3 seeds, 0 figures, on a pivoted sub-question — exactly the pattern the audit warns against reading as a result.

The through-line. The architecture is defensible (a staleness-weighted switch between an intermittent absolute anchor and a continuous relative one); the magnitude is not established. The real-data cross-environment counterpart in this project recovers ~42% of the lost accuracy — the synthetic 70.7% overshoot is precisely the sim-to-real gap IP-106 exists to close (vishwakarma2021 ↗).

Key references

  • zou2018 ↗, zhou2020 ↗ — the device-free CSI counting capability this fusion builds on.
  • chen2023_5cbd ↗, wang2026_2758 ↗, khan2023_b7c5 ↗ — the cross-environment drift/transfer problem the recalibration attacks.
  • demrozi2021 ↗, longo2019_b72f ↗ — the BLE anchor and Wi-Fi/BLE co-capture, the second modality's real-world basis.
  • guo2020 ↗ — the state-space/complementary-fusion framing behind the staleness-switch.
  • yang2026_6c4f ↗, zhevnenko2026_e571 ↗ — the Doppler-feature mechanism and the reality of sparse-link CSI counting.
  • hoydis2023_7aa4 ↗ — the ray-tracer that produces the coupled CSI/BLE.
  • meneghello2023 ↗, huang2025_060d ↗, vishwakarma2021 ↗ — the real-CSI anchors and sim-to-real bridge the red-team demands.
  • zhang2026_ccac ↗, guarino2026 ↗ — the reproducibility bar the SWE and statistician invoke.
  • rusca2024 ↗ — the responsible-sensing basis for the aggregate-only BLE spec.

See it run

Trajectory replay of run HG9GTM8J — press play, scrub the timeline, toggle agent trails and footfall.

Loading replay…

Open the run workbench →

Campaigns & sessions 2 campaigns instantiating this experiment
Campaign Session State Runs Started Report
c-csi-ble-fusion-powered — planned — — —
c-csi-ble-fusion MYRQP09E finished 3 2026-06-25 synthesis →
DRM17SVP finished 6 2026-06-25 synthesis →
NKDDWCH0 finished 9 2026-06-25 synthesis →
YG02RX48 finished 9 2026-06-25 synthesis →
Z5ZAKF7E finished 9 2026-06-25 synthesis →
336Q16PW finished 6 2026-06-25 synthesis →
Simulation runs the 20 most recent, newest first
Run Date Gate Campaign Replay
HG9GTM8J 2026-06-25 ✓ c-csi-ble-fusion replay →
1WVCEDGT 2026-06-25 ✓ c-csi-ble-fusion replay →
XGD0515W 2026-06-25 ✓ c-csi-ble-fusion replay →
V21FVNNM 2026-06-25 ✓ c-csi-ble-fusion replay →
4BAQW9Q9 2026-06-25 ✓ c-csi-ble-fusion replay →
RDZ30DZP 2026-06-25 ✓ c-csi-ble-fusion replay →
X67Q6F87 2026-06-25 ✓ c-csi-ble-fusion replay →
W2PHTFWM 2026-06-25 ✓ c-csi-ble-fusion replay →
AQXRDDS7 2026-06-25 ✓ c-csi-ble-fusion replay →
EPJ30JBW 2026-06-25 ✓ c-csi-ble-fusion replay →
4CGDWGTA 2026-06-25 ✓ c-csi-ble-fusion replay →
V5H4EA58 2026-06-25 ✓ c-csi-ble-fusion replay →
8T0DX3T5 2026-06-25 ✓ c-csi-ble-fusion replay →
A4TJRJYQ 2026-06-25 ✓ c-csi-ble-fusion replay →
7X4X2S8N 2026-06-25 ✓ c-csi-ble-fusion replay →
1F934V2N 2026-06-25 ✓ c-csi-ble-fusion replay →
53Y631KD 2026-06-25 ✓ c-csi-ble-fusion replay →
2WAMKD1J 2026-06-25 ✓ c-csi-ble-fusion replay →
1HK2QCM3 2026-06-25 ✓ c-csi-ble-fusion replay →
1DZS3DK1 2026-06-25 ✓ c-csi-ble-fusion replay →

All exp-csi-crowd runs in the workbench →

Provenance

Data origin
simulated
Domain
csi
Room layout
csi-link-resplan-12439-multiroom

Data types

  • csi-amplitude
  • ble-rssi
  • trajectory
  • per-link-summary