Automated release from CI pipeline
Changes:
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.
-
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. -
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). -
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. -
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.
Docker Image:
ghcr.io/ruvnet/RuView:bcfdf0a4d06ebcec7ecc9c2879637e318aa546d7