yggvault ratatoskr-space connected via regular web
Color theme
also available via yggdrasil mesh http://[203:b338:2a84:a18f:986:47ae:1a4:d8d3]/pkg/ruview/v1067
vault / ruview / v1067

ruview @ v1067

integrity

size
55.6 MiB
downloaded
last checked
source https://github.com/ruvnet/RuView · available · github

release notes

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.

  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:

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

Composes:

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

download

unix · zip
curl -fL -o v1067.zip https://ratatoskr.space/pkg/ruview/v1067.zip
                    printf '%s  %s\n' 'ca4a37c6b244afff00dc4d382df6d307babd104a2c5798ebc6d45dd4ed14fe43' 'v1067.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/ruview/v1067.zip"
$out = "v1067.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "ca4a37c6b244afff00dc4d382df6d307babd104a2c5798ebc6d45dd4ed14fe43") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1067.tar.gz https://ratatoskr.space/pkg/ruview/v1067.tar.gz
                    printf '%s  %s\n' '0f3dc6c1181312b5cee21207a5e030058c718f35883c37088239a1d95ead7181' 'v1067.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/ruview/v1067.tar.gz"
$out = "v1067.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "0f3dc6c1181312b5cee21207a5e030058c718f35883c37088239a1d95ead7181") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v1067.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1067.zip
                    printf '%s  %s\n' 'ca4a37c6b244afff00dc4d382df6d307babd104a2c5798ebc6d45dd4ed14fe43' 'v1067.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1067.zip"
$out = "v1067.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "ca4a37c6b244afff00dc4d382df6d307babd104a2c5798ebc6d45dd4ed14fe43") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1067.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1067.tar.gz
                    printf '%s  %s\n' '0f3dc6c1181312b5cee21207a5e030058c718f35883c37088239a1d95ead7181' 'v1067.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1067.tar.gz"
$out = "v1067.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "0f3dc6c1181312b5cee21207a5e030058c718f35883c37088239a1d95ead7181") { throw "sha256 mismatch" }
artifact format size hashes
v1067.zip zip 55.5 MiB
blake3-24 b513f0194e26eb996c3c6e39dce7d6c7daa4ac44f96e025f
sha256 ca4a37c6b244afff00dc4d382df6d307babd104a2c5798ebc6d45dd4ed14fe43
sha1 8ebd089c68b9796cd5e5767d69de46747689a422
v1067.tar.gz tar.gz 54.1 MiB
blake3-24 26d43a584d63cb49453cd12d9202022b2ef23d24af89debd
sha256 0f3dc6c1181312b5cee21207a5e030058c718f35883c37088239a1d95ead7181
sha1 e9fef96c5d44f6a42c601f2e863cf3d33085bc1d

install

bazel
http_archive(
    name = "ruview",
    urls = ["https://ratatoskr.space/pkg/ruview/v1067.tar.gz"],
    integrity = "sha256-Dz3GwRgTErXO4hIHpeAwBYxxjzWIPDcIgjmh2V6tcYE=",
    strip_prefix = "ruview-v1067",
)
zig
.url = "https://ratatoskr.space/pkg/ruview/v1067.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
    name = "ruview",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1067.tar.gz"],
    integrity = "sha256-Dz3GwRgTErXO4hIHpeAwBYxxjzWIPDcIgjmh2V6tcYE=",
    strip_prefix = "ruview-v1067",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1067.tar.gz",
← v1069v1065 →