ruview @ v1081
integrity
- size
- 55.6 MiB
- downloaded
- last checked
release notes
Automated release from CI pipeline
Changes: research(R6.1): multi-scatterer Fresnel — discovers 4.7 dB penalty matching R13's 5-dB shortfall (#721)
Extends R6's point-scatterer to distributed-body model (6 scatterers: head + chest + 2 arms + 2 legs). Combined CSI = coherent sum of per-body-part contributions.
Headline finding: 5 m link, 2.4 GHz, subject 25 cm off LOS, breathing at 0.25 Hz with 8 mm chest amplitude:
| Configuration | Breathing SNR (best subcarrier) |
|---|---|
| Single-scatterer ideal (R6) | +23.7 dB |
| Multi-scatterer realistic (R6.1) | +19.0 dB |
| MULTI-SCATTERER PENALTY | +4.7 dB |
This 4.7 dB penalty matches R13's 5-dB-shortfall finding to within 0.3 dB. R13 NEGATIVE concluded that pulse-contour recovery needs +25 dB SNR, only +20 dB is available. R6.1 says the 5-dB gap has a physical origin: static body parts add coherent-sum confusion that doesn't exist in the idealised single-scatterer model.
The three threads now form a coherent physics story:
- R6 = bound (idealised single-scatterer = +23.7 dB)
- R6.1 = floor (realistic 6-scatterer = +19.0 dB)
- R13 = failure (contour needs +25 dB, gets +20 dB)
Pulse-contour recovery is bounded below by what R6.1 leaves achievable, which is 4.7 dB worse than R6's idealised limit, enough to make R13's contour recovery infeasible.
Per-body-part contribution: chest = 27.6% of CSI energy (5x per-limb reflectivity). The chest IS the breathing signal; limbs are confound.
Architectural implications:
- Chest-centric placement targeting (R6.2.3 motivated)
- Mask limbs in vital_signs pipeline (use pose pipeline ADR-079/101)
- R14 V3 rescope to rate-only (no contour-shape recovery)
- R12 PABS revision unblocked: R6.1 is the explicit A(voxel) operator
Surprise finding: on-LOS placement (y=0) is degenerate -- path delta is 2nd-order in offset for on-LOS scatterers, so breathing barely changes path length. Real installations need subject OFF the LOS line. The R6.2 placement search should respect this.
Honest scope:
- 6 scatterers is 1st-order; 50-100 voxel body would refine
- Reflectivity ratios are guesses (RCS measurements would refine)
- Static body assumption (limbs do micro-move during breathing)
- 2D top-down, no multipath (model general enough to include them)
Composes:
- R5: subcarrier selection picks reliable, not high-SNR
- R6: per-scatterer building block
- R6.2.x: chest-centric placement
- R7: residual-vs-forward-model = tighter adversarial detection
- R12 NEGATIVE: PABS A operator unblocked
- R13 NEGATIVE: 5-dB gap has physical origin
- R14 V3: needs rescope
Coordination: ticks/tick-18.md, no PROGRESS.md edit.
Docker Image:
ghcr.io/ruvnet/RuView:bac69626890c9551af9b469641b091c2f74b5eec
download
curl -fL -o v1081.zip https://ratatoskr.space/pkg/ruview/v1081.zip
printf '%s %s\n' 'd43b9a743f6d7504bb6283c0212ed9f654e1f63e5306e76c2fd7fcf9cb326988' 'v1081.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1081.zip"
$out = "v1081.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "d43b9a743f6d7504bb6283c0212ed9f654e1f63e5306e76c2fd7fcf9cb326988") { throw "sha256 mismatch" }
curl -fL -o v1081.tar.gz https://ratatoskr.space/pkg/ruview/v1081.tar.gz
printf '%s %s\n' 'fe9a2e11033ca50287c4904d205c02c9be8639b7491415812e25d660c97d52fc' 'v1081.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1081.tar.gz"
$out = "v1081.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "fe9a2e11033ca50287c4904d205c02c9be8639b7491415812e25d660c97d52fc") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v1081.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1081.zip
printf '%s %s\n' 'd43b9a743f6d7504bb6283c0212ed9f654e1f63e5306e76c2fd7fcf9cb326988' 'v1081.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1081.zip"
$out = "v1081.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "d43b9a743f6d7504bb6283c0212ed9f654e1f63e5306e76c2fd7fcf9cb326988") { throw "sha256 mismatch" }
curl -fL -o v1081.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1081.tar.gz
printf '%s %s\n' 'fe9a2e11033ca50287c4904d205c02c9be8639b7491415812e25d660c97d52fc' 'v1081.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1081.tar.gz"
$out = "v1081.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "fe9a2e11033ca50287c4904d205c02c9be8639b7491415812e25d660c97d52fc") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v1081.zip | zip | 55.5 MiB |
blake3-24 b3c50d5a271629fe799eb2ae9f2f2b13b882e90b0301ab3e
sha256 d43b9a743f6d7504bb6283c0212ed9f654e1f63e5306e76c2fd7fcf9cb326988
sha1 cf3f62e91a6c94403b198769a902e8b4633eee49
|
| v1081.tar.gz | tar.gz | 54.1 MiB |
blake3-24 a130c8f2186f41ea89becaec27a82272ef421f2d85c22c1f
sha256 fe9a2e11033ca50287c4904d205c02c9be8639b7491415812e25d660c97d52fc
sha1 dc8ed87ae3c1d8d0d1ac748414ca66c2741663c8
|
install
http_archive(
name = "ruview",
urls = ["https://ratatoskr.space/pkg/ruview/v1081.tar.gz"],
integrity = "sha256-/pouEQM8pQKHxJBNIFwCyb6GObdJFBWBLiXWYMl9Uvw=",
strip_prefix = "ruview-v1081",
)
.url = "https://ratatoskr.space/pkg/ruview/v1081.tar.gz",
install via yggdrasil mesh
http_archive(
name = "ruview",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1081.tar.gz"],
integrity = "sha256-/pouEQM8pQKHxJBNIFwCyb6GObdJFBWBLiXWYMl9Uvw=",
strip_prefix = "ruview-v1081",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1081.tar.gz",