wifi-densepose/examples
rUv bcfdf0a4d0
research(R13): NEGATIVE — contactless BP from CSI is physically inferior to a cuff (#713)
Critical-physics scrutiny of published 'contactless BP from WiFi CSI'
claims (Yang 2022, Liu 2021, others). Four physics floors quantified;
all four make CSI-based BP provably worse than a 20 dollar arm cuff.

1. PTT temporal resolution: need 0.5 ms for 1 mmHg precision; ESP32-S3
   maxes at 1 ms (1000 Hz CSI) and typical deployment is 10 ms (100 Hz)
   = 20 mmHg precision floor. Achievable but requires sacrificing every
   other sensing pipeline.

2. Spatial separation: carotid-femoral distance 55 cm, Fresnel envelope
   at 5 m link is 40 cm. Single-link CSI cannot resolve the two sites
   independently. Multistatic with 4-6 anchors is severely ill-posed
   (same regime that defeated R12).

3. Pulse-contour SNR: pulse motion at chest is 0.3 mm; breathing is
   8 mm (27x larger). After 4th-order bandpass we get +20 dB HR-band
   SNR; literature (Mukkamala 2015) says +25 dB minimum for waveform-
   shape recovery. **5 dB short.**

4. Vs 0 arm cuff: best published CSI BP is +/-10 mmHg with per-subject
   calibration; arm cuff is +/-2 mmHg uncalibrated. CSI is 5x worse
   AND requires calibration the user doesn't otherwise need.

Verdict: do not ship BP as a primary RuView feature. The breathing/HR
features we already ship work because their motion amplitudes are
30-100x larger than the pulse waveform. Adding BP would force 1 kHz
CSI rate (degrading every other pipeline), require per-subject
calibration (defeating no-setup story), and ship a feature that's
worse than a 20 dollar device the user can buy.

Three niche scenarios remain open:
- Single-subject trend monitoring (relative not absolute)
- Bed-instrumented controlled-still subject (25+ dB achievable)
- Multistatic PWV with 6+ anchors + per-installation calibration

The general 'BP from a 9 dollar ESP32 in the corner' claim does not close.

Composes:
- R1 (CRLB) confirms temporal-resolution floor for PTT
- R6 (Fresnel) provides the spatial floor that defeats two-site PTT
- R5 (saliency) explains why whole-chest observable but 0.3 mm pulse not
- R12 = loop's other negative result, same failure pattern
- R14's assumption (no BP) is now empirically validated

Two negative results in this loop (R12, R13) prevent the field from
biasing toward overclaiming. This is the most valuable kind of tick
because it marks BP-from-CSI as off-roadmap with explicit numbers, so
future contributors don't waste cycles attempting it.

Coordination: ticks/tick-11.md, no PROGRESS.md edit.
2026-05-22 02:00:35 -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(R13): NEGATIVE — contactless BP from CSI is physically inferior to a cuff (#713) 2026-05-22 02:00:35 -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