mirror of
https://github.com/ruvnet/RuView
synced 2026-07-25 17:51:48 +00:00
6b35896847
Tests the simplest possible algorithm for RF-weather change detection: SVD on per-frame CSI matrix, top-10 singular values, cosine distance between spectra over time. Hypothesis: a synthetic structural perturbation (15 percent attenuation on 3 top-saliency subcarriers) should produce a larger spectral shift than natural temporal drift from operator movement in the same recording. Result honestly: it does not. The perturbation distance (0.00024) is *smaller* than the control distance (0.00035) — signal/drift ratio 0.69x. The top-K SVD-spectrum cosine is too coarse to detect small-magnitude subcarrier-specific structural changes against an operator-noise background. Three concrete fixes identified for follow-up ticks: 1. Principal angles between subspaces (PABS), not cosine on singular values — catches subspace rotations the spectrum misses 2. Per-subcarrier residual analysis after projecting onto baseline subspace — localises the perturbation 3. Multi-day baseline — knocks down operator-noise floor by 50-100x Useful cross-validations the negative result produces: * R5 task-specific saliency (count-task) does not generalise to structure-detection saliency. Same data, different relevant features. Publishable distinction. * R12 is CSI-only territory — RSSI is the trace of the CSI covariance, so if top-10 SVD-spectrum can't see this, RSSI can't either. Bounds R8 commercial-enablement story to counting only. * R7 SVD-spectrum primitive that worked for adversarial detection fails here at lower perturbation magnitude. Sensitivity does NOT scale with subtlety — confirms the algorithm is magnitude-dominated. Long-horizon vision (building structural monitoring, earthquake drift, HVAC audits, climate-controlled-archive surveillance) preserved in the research note — the physics is right, the hardware is sufficient, the deployment story works. Just need PABS + multi-day data. Coordination note: this tick avoided PROGRESS.md edits entirely because horizon-tracker is concurrently editing it. Tick-5 summary written to ticks/tick-5.md (new self-contained convention) so the 08:00 ET final summary can consolidate without conflicts. Files: * examples/research-sota/r12_rf_weather_eigenshift.py * examples/research-sota/r12_rf_weather_results.json * docs/research/sota-2026-05-22/R12-rf-weather-mapping.md * docs/research/sota-2026-05-22/ticks/tick-5.md
2.3 KiB
2.3 KiB
Tick 5 — 2026-05-22 03:45 UTC
Thread: R12 (RF weather mapping — structural drift from passive ambient WiFi) Verdict: Negative-ish result with a clearly-actionable revision path. Honest progress.
What shipped
examples/research-sota/r12_rf_weather_eigenshift.py— pure-NumPy demo that tests "can SVD-eigenvalue drift detect a synthetic structural perturbation?"examples/research-sota/r12_rf_weather_results.json— full numbers.docs/research/sota-2026-05-22/R12-rf-weather-mapping.md— research note covering: 10-year vision, first-experiment method, negative result, why it failed, three concrete revisions for next attempts (PABS / per-subcarrier residuals / multi-day baseline), what still holds, vertical applications.
Headline numbers
| Cosine distance from baseline | |
|---|---|
| Control (no perturbation) | 0.00035 |
| With 15% attenuation on 3 top-saliency subcarriers | 0.00024 |
| Signal / natural-drift ratio | 0.69× |
The synthetic perturbation produced a smaller spectral distance than natural temporal drift from operator movement. The top-K SVD-spectrum distance approach is too coarse.
Why this is still useful
- Saves anyone going down this path the time of trying naive SVD-distance — the data tells us it's the wrong primitive.
- Identifies the right primitives: principal angles between subspaces (PABS), per-subcarrier residual analysis, multi-day baselines.
- Cross-validates R5: task-specific saliency (count) ≠ task-specific saliency (structure detection). Same model, same data — different relevant features. Publishable distinction.
- Confirms R12 is CSI-only: RSSI is the trace of the CSI covariance matrix; if top-10 SVD can't see this perturbation, RSSI definitely can't. Bounds R8's commercial-enablement story to counting only.
What's queued for later ticks
- Implement PABS-based change detection.
- Per-subcarrier residual time-series analysis.
- Acquire (or simulate) multi-day data with a known structural change.
Coordination note
This tick wrote NOTHING to PROGRESS.md to avoid races with the horizon-tracker agent (which is on the feat/ruview-mcp-m* track and editing PROGRESS.md concurrently). The ticks/tick-N.md convention used here means each cron-driven tick is fully self-contained — the final 08:00 ET summary script will consolidate them.