ruview @ v1057
integrity
- size
- 55.6 MiB
- downloaded
- last checked
release notes
Automated release from CI pipeline
Changes: research(R10): through-foliage wildlife sensing — physics feasibility + per-species gait taxonomy
ITU-R P.833-9 vegetation-attenuation model + ESP32-S3 link-budget solver produce bounded sensing range estimates per frequency and foliage density. Plus a biomechanics-grounded gait-frequency taxonomy spanning bears (0.5 Hz) to mice (15 Hz).
Headline ranges (121 dB link budget, 10 dB SNR margin):
freq sparse moderate dense 2.4 GHz 99.6 m 12.0 m 4.1 m 5 GHz 19.9 m 5.2 m 2.1 m
The 2.4 GHz / sparse cell (~100 m) is the practical sweet spot — 10x camera-trap coverage, always-on rather than PIR-triggered.
Honest scope called out explicitly: this is feasibility math, not field measurements. Animal cooperation, foliage flutter, regulatory limits, and BSSID-fingerprint degradation in remote forest are all real follow-up problems.
Vertical applications (10-20 year horizon) catalogued:
- Endangered-species population census
- Wildlife corridor verification
- Invasive-species early warning
- Anti-poaching (human gait well-separated from wildlife)
- Livestock-on-rangeland tracking
- Agricultural pest control
Cross-connects to:
- R5 (saliency is task-specific — per-species classifier needs own saliency map, same lesson as R12)
- R8 (wildlife sensing wants CSI not RSSI for per-subcarrier shape)
- R9 (fingerprint K-NN primitive transfers to per-individual ID)
- R7 (multi-link consistency for corridor coverage)
Pure-NumPy, no framework deps. ITU model + binary search solver. Coordination: tick avoided PROGRESS.md to prevent races (horizon- tracker M3+ track concurrent at the time).
Files:
- examples/research-sota/r10_foliage_attenuation.py
- examples/research-sota/r10_foliage_results.json
- docs/research/sota-2026-05-22/R10-through-foliage-wildlife.md
- docs/research/sota-2026-05-22/ticks/tick-6.md
Docker Image:
ghcr.io/ruvnet/RuView:2e742305ba34a5dae6c10ef67c3c7e80fb46799e
download
curl -fL -o v1057.zip https://ratatoskr.space/pkg/ruview/v1057.zip
printf '%s %s\n' 'e010d13d056382ed652984c9010aca254665b02a682f4a66328d8581e7c5339c' 'v1057.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1057.zip"
$out = "v1057.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "e010d13d056382ed652984c9010aca254665b02a682f4a66328d8581e7c5339c") { throw "sha256 mismatch" }
curl -fL -o v1057.tar.gz https://ratatoskr.space/pkg/ruview/v1057.tar.gz
printf '%s %s\n' 'b338a2ab445d9f941fd6b09bab2e9009d4d6ed9803d691f90c3808f80346ea2f' 'v1057.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1057.tar.gz"
$out = "v1057.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "b338a2ab445d9f941fd6b09bab2e9009d4d6ed9803d691f90c3808f80346ea2f") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v1057.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1057.zip
printf '%s %s\n' 'e010d13d056382ed652984c9010aca254665b02a682f4a66328d8581e7c5339c' 'v1057.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1057.zip"
$out = "v1057.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "e010d13d056382ed652984c9010aca254665b02a682f4a66328d8581e7c5339c") { throw "sha256 mismatch" }
curl -fL -o v1057.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1057.tar.gz
printf '%s %s\n' 'b338a2ab445d9f941fd6b09bab2e9009d4d6ed9803d691f90c3808f80346ea2f' 'v1057.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1057.tar.gz"
$out = "v1057.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "b338a2ab445d9f941fd6b09bab2e9009d4d6ed9803d691f90c3808f80346ea2f") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v1057.zip | zip | 55.5 MiB |
blake3-24 ef6c4d169f190118575a1504422c4ba03633c9893fabdace
sha256 e010d13d056382ed652984c9010aca254665b02a682f4a66328d8581e7c5339c
sha1 febbf8f0f0be739660e5b79e104d0390eced0c81
|
| v1057.tar.gz | tar.gz | 54.1 MiB |
blake3-24 1c833c356f6771a49a38427d28de1b5bc67815002663df14
sha256 b338a2ab445d9f941fd6b09bab2e9009d4d6ed9803d691f90c3808f80346ea2f
sha1 e74f3c87ab78b89c603c1ad6d873dcb509b23a32
|
install
http_archive(
name = "ruview",
urls = ["https://ratatoskr.space/pkg/ruview/v1057.tar.gz"],
integrity = "sha256-sziiq0Rdn5Qf1rCbqy6QCdTW7ZgD1pH5DDgI+ANG6i8=",
strip_prefix = "ruview-v1057",
)
.url = "https://ratatoskr.space/pkg/ruview/v1057.tar.gz",
install via yggdrasil mesh
http_archive(
name = "ruview",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1057.tar.gz"],
integrity = "sha256-sziiq0Rdn5Qf1rCbqy6QCdTW7ZgD1pH5DDgI+ANG6i8=",
strip_prefix = "ruview-v1057",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1057.tar.gz",