docs/research/sota-2026-05-22/R12-rf-weather-mapping.md
Status: first experiment landed — NEGATIVE-ish, with a clear next step · 2026-05-22
Every WiFi access point in a building is, incidentally, a coherent radio source flooding the structure with energy. The walls, floors, furniture, and humans inside reflect that energy with characteristic multipath signatures. The persistent-room field model in wifi-densepose-signal/src/ruvsense/field_model.rs already captures the spatial eigenstructure of those reflections to subtract the room's baseline from occupancy detection.
The R12 vision generalises that to the temporal dimension: continuously track how the building's RF eigenstructure drifts across days, weeks, months, years. The hypothesis:
Pre-2026 SOTA mostly uses CSI for activity recognition. The shift to structural integrity monitoring from passive ambient RF is open territory.
examples/research-sota/r12_rf_weather_eigenshift.py tests the simplest possible algorithm: SVD on the per-frame CSI matrix, top-K singular values, cosine distance between spectra over time.
Setup:
[30, 41, 52] — top-saliency from R5) by 0.85 to simulate a new reflective surface attenuating those frequencies by ~1.4 dB.| Cosine distance from BEFORE | |
|---|---|
| AFTER (no perturbation, control) | 0.00035 |
| AFTER (with 3-subcarrier perturbation) | 0.00024 |
| Signal / natural-drift ratio | 0.69× |
Verdict: WEAK. The synthetic structural perturbation produces a smaller spectral distance than the natural temporal drift from operator movement in the same recording. The top-10 singular-value spectrum is not sensitive enough to detect ~15% attenuation on 3 of 56 subcarriers when the room's occupant is moving.
The top-K singular-value spectrum captures the dominant energy in the channel state. A 15% perturbation on 3 of 56 subcarriers shifts the matrix by ≤(3/56) × 15% ≈ 0.8% of total energy. That's well below the natural temporal variance from a moving operator.
Three concrete revisions for next attempts:
Use the FULL eigenvector basis, not just the spectrum. The cosine distance on top-K singular values is scale-aware but direction-blind. Comparing the top-K eigenvectors (singular vectors) via subspace angles ("principal angles between subspaces") would catch the structural shift even when the energy distribution stays similar.
Detect specific subcarriers via residual analysis. Instead of comparing whole spectra, project each window onto the empty-room subspace and look for consistent per-subcarrier residuals — these would localise the perturbation. The 3 perturbed subcarriers would show a persistent attenuation bias that natural drift wouldn't reproduce.
Multi-day baseline. This experiment uses a single 30-min recording. The "natural temporal drift" is dominated by operator movement, not by structural change. The real RF-weather problem has the OPPOSITE noise structure: structural changes happen over hours-to-days, occupancy noise averages out over minutes-to-hours. Averaging the eigenspectrum over a 24-hour window before comparing should knock down the operator-noise floor by 50-100×.
The 10-year vision isn't refuted — the algorithm choice was wrong. Specifically:
The vision is right; the algorithm needs work. Verticals to chase once PABS + multi-day data exist: