wifi-densepose/examples
rUv 9cd1b8ce2a
research(R12 PABS): NEGATIVE -> POSITIVE — 1161x detection lift via R6.1 forward model (#722)
R12 (tick 5) was a NEGATIVE result: naive SVD-spectrum cosine distance
detected structure changes at 0.69x the natural drift floor (= undetectable).
R12 explicitly identified the revision: 'PABS over Fresnel basis'.

R6.1 (tick 18) shipped the multi-scatterer Fresnel forward operator.
This tick implements PABS on top of it.

PABS = ||y_observed - y_predicted||^2 / ||y_observed||^2

Benchmark (5 m link, 2.4 GHz, subject + 4 wall reflectors expected):

| Scenario                       | PABS / drift  | SVD (R12) / drift |
|--------------------------------|---------------:|------------------:|
| Empty room (subject missing)   |      7,362x   |               65x |
| Subject as expected (sanity)   |          0x   |                0x |
| +1 new furniture               |         84x   |               11x |
| +1 unexpected human            |      1,161x   |               11x |
| Subject moved 10 cm            |     21,966x   |               90x |
| Natural drift (5% wall shift)  |          1x   |                1x |

PABS detects unexpected human at 1161x natural drift; R12 SVD detected
at 11x. ~100x lift purely from physics-grounded prediction vs naive
statistical eigenshift.

R12 NEGATIVE -> POSITIVE. The meta-lesson: a research loop that catalogues
NEGATIVE results creates a backlog of revisitable work that pays off
when later tools become available. R12 -> R12 PABS is the worked example.

R13 cannot be similarly revisited -- its 5 dB shortfall is a hard
physics floor, not a missing model.

The subject-moved-10cm caveat: PABS detects ANY mismatch between
expected and observed scene. Real production PABS needs a pose-aware
forward model that updates from pose_tracker.rs in real-time. The
actual detection signal is PABS-after-pose-update. ~50-100 LOC Rust
glue, catalogued as R12.1 follow-up.

Composes:
- R6.1 unblocked this implementation
- R7 gets precise per-link consistency: residual small on all links =
  no structure; spike on one = local structure OR compromised link;
  mincut disambiguates
- R11 enables maritime container-tamper / hatch-seal apps
- R14 gets V0 security feature (intruder detection w/o biometric storage)
- ADR-029 needs to reference PABS as structure-detection primitive
- R10 PABS-vs-canopy works if forest modelled or learned

Honest scope:
- Pose-PABS closed loop not yet built
- Synthetic data only; real-world drift floor needs measurement
- Population-prior body; per-subject would tighten residual
- Single time-frame; real pipeline needs temporal averaging

Coordination: ticks/tick-19.md, no PROGRESS.md edit.
2026-05-22 03:49:41 -04:00
..
environment feat: 4 sensing examples — sleep apnea, stress, room environment 2026-03-15 16:50:04 -04:00
happiness-vector chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
medical feat: 10-in-1 medical vitals suite from single mmWave sensor 2026-03-15 18:05:42 -04:00
research-sota research(R12 PABS): NEGATIVE -> POSITIVE — 1161x detection lift via R6.1 forward model (#722) 2026-05-22 03:49:41 -04:00
sleep feat: 4 sensing examples — sleep apnea, stress, room environment 2026-03-15 16:50:04 -04:00
stress feat: 4 sensing examples — sleep apnea, stress, room environment 2026-03-15 16:50:04 -04:00
three.js fix(three.js): graceful banner when X Bot.fbx 404s on gh-pages (#651) 2026-05-19 18:43:21 -04:00
README.md feat: 10-in-1 medical vitals suite from single mmWave sensor 2026-03-15 18:05:42 -04:00
ruview_live.py feat: happiness scoring pipeline + ESP32 swarm with Cognitum Seed (#285) 2026-03-20 18:46:34 -04:00

README.md

Examples

Real-time sensing applications built on the RuView platform.

Unified Dashboard (start here)

pip install pyserial numpy
python examples/ruview_live.py --csi COM7 --mmwave COM4

The live dashboard auto-detects available sensors and displays fused vitals, environment data, and events in real-time. Works with any combination of sensors.

Individual Examples

Example Sensors What It Does
ruview_live.py CSI + mmWave + Light Unified dashboard: HR, BR, BP, stress, presence, light, RSSI
Medical: Blood Pressure mmWave Contactless BP estimation from HRV
Medical: Vitals Suite mmWave 10-in-1: HR, BR, BP, HRV, sleep stages, apnea, cough, snoring, activity, meditation
Sleep: Apnea Screener mmWave Detects breathing cessation events, computes AHI
Stress: HRV Monitor mmWave Real-time stress level from heart rate variability
Environment: Room Monitor CSI + mmWave Occupancy, light, RF fingerprint, activity events

Hardware

Port Device Cost What It Provides
COM7 ESP32-S3 (WiFi CSI) ~$9 Presence, motion, breathing, heart rate (through walls)
COM4 ESP32-C6 + Seeed MR60BHA2 ~$15 Precise HR/BR, presence, distance, ambient light

Either sensor works alone. Both together enable fusion (mmWave 80% + CSI 20%).

Quick Start

pip install pyserial numpy

# Unified dashboard (recommended)
python examples/ruview_live.py --csi COM7 --mmwave COM4

# Blood pressure estimation
python examples/medical/bp_estimator.py --port COM4

# Sleep apnea screening (run overnight)
python examples/sleep/apnea_screener.py --port COM4 --duration 28800

# Stress monitoring (workday session)
python examples/stress/hrv_stress_monitor.py --port COM4 --duration 3600

# Room environment monitor
python examples/environment/room_monitor.py --csi-port COM7 --mmwave-port COM4

# CSI only (no mmWave)
python examples/ruview_live.py --csi COM7 --mmwave none