Files
ruvnet--RuView/docs/research/sota-2026-05-22/ticks/tick-5.md
T
rUv 6b35896847 research(R12): RF weather mapping eigenshift — negative-ish, with clearly-actionable revision path (#707)
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
2026-05-21 23:52:49 -04:00

38 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
1. **Saves anyone going down this path** the time of trying naive SVD-distance — the data tells us it's the wrong primitive.
2. **Identifies the right primitives:** principal angles between subspaces (PABS), per-subcarrier residual analysis, multi-day baselines.
3. **Cross-validates R5:** task-specific saliency (count) ≠ task-specific saliency (structure detection). Same model, same data — different relevant features. Publishable distinction.
4. **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.