docs/research/sota-2026-05-22/PROGRESS.md
Started: 2026-05-21 ~20:00 ET. Auto-stops: 2026-05-22 08:00 ET. Cron d6e5c473 (*/10 * * * *).
Push WiFi-CSI sensing past 2026 published SOTA in three axes:
Plus practical verticals (exotic & beyond) on a 10–20 year horizon.
Output goes to docs/research/sota-2026-05-22/ (research notes, benchmarks, negative results) + examples/research-sota/ (runnable code).
Each loop tick picks ONE unfinished thread from below and produces ONE concrete artifact:
examples/research-sota/Stay 8 minutes / tick. Commit + PR + auto-merge per piece. Future-tick re-entry is via this PROGRESS.md.
wifi-densepose-signal/src/ruvsense/field_model.rs (SVD on empty-room CSI). Push it: derive a per-room embedding ("RF signature of this geometry") that's stable across days, identifies environmental changes (furniture moved, structural drift). Vertical: building-integrity monitoring.AETHER (in-room re-ID) — this is inter-room continuity.wifi-densepose-signal/src/ruvsense/tomography.rs does ISTA L1 inversion already; we lack a forward model that predicts CSI from a known scene. Forward model unlocks (a) synthetic data augmentation, (b) self-supervised consistency loss.R7-multilink-consistency.md. Cross-links: R5 top-8 saliency subcarriers are priority targets for partial-spectrum attackers; fills cog-person-count::fusion::fuse_with_mincut_clip() stub (ADR-103 v0.2.0). Next tick: Stackelberg-game adaptive attacker.R8-rssi-only-count.md. Cross-links: R5 band-spread saliency explains the retained accuracy; R9 extends same stream to localisation; ADR-104 MCP server should grow ruview_count_infer --rssi mode for non-CSI chips. Next: 3-class ceiling, multi-room replication.wifi-densepose-wifiscan crate already streams BSSID lists; nothing trains on them yet.examples/research-sota/r5_subcarrier_saliency.py runs; first measurement on cog-person-count v0.0.2 ships: top-8 subcarriers spread across the band, max/mean ratio 2.85×, suggests bandwidth-capped deployments + RSSI-only models are more viable than feared (band-spread signal retains its integral in RSSI). See R5-subcarrier-saliency.md §"First measurement" + §"Implications".examples/research-sota/r8_rssi_only_count.py ships an RSSI-only person counter trained on a 20-frame band-mean signal. Result: 59.1% accuracy = 94.82% of the full-CSI v0.0.2 baseline (62.3%). Tiny model: 656 params (~5 KB), 56× smaller input, trains in 0.72 s on CPU. Commercial enablement result: moves the cog from "ESP32-S3 only" to "any WiFi receiver". Class accuracy balanced (59.5 / 58.6 vs v0.0.2's skewed 86.2 / 34.3). Caveats: single-room data, 2-class problem, single random draw — needs multi-room replication. See R8-rssi-only-count.md for full method + interpretation + 3 follow-up experiments queued. Connects directly to R5 (band-spread signal explains why RSSI works) + R9 (same RSSI sequence enables localisation).examples/research-sota/r7_multilink_consistency.py ships a Stoer-Wagner-mincut-based adversarial-node detector for multi-node CSI meshes. Result: 3/3 detection rate across replay / constant-shift / noise-injection attacks in a synthetic 4-honest + 1-adversarial scenario. Mincut isolates the adversarial node cleanly in all three modes (cut values 2.56–3.57, partition_B = {4} consistently). Pure-NumPy demo, no framework deps. Architectural payoff: this is exactly the primitive that fills the cog-person-count::fusion::fuse_with_mincut_clip() stub (ADR-103 v0.2.0). Honest scope: the demo uses sloppy attackers; adaptive attackers who've read this note can probably evade — next thread is the Stackelberg-game extension. See R7-multilink-consistency.md.(populated when we discover something doesn't work — these are explicit, not failures)