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/v1041
vault / ruview / v1041

ruview @ v1041

integrity

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

release notes

Automated release from CI pipeline

Changes: research(R8): RSSI-only person count retains 95% of full-CSI accuracy (#703)

Builds directly on R5's band-spread observation. If the count-task signal is spread across the WiFi band (R5: max/mean ratio 2.85× across 56 subcarriers), then RSSI — which is the integral of |H_k|^2 across the band — keeps most of the information. The naive prior (RSSI throws away 98% of CSI bytes) is misleading; the relevant metric is how much of the signal is in the integral, not how many bytes are in the representation.

Tested by aggregating each existing [56 × 20] CSI window down to a [20]-vector RSSI proxy (mean across subcarriers per frame), training a tiny MLP (Linear 20→32→8, 656 params, 5 KB) with vanilla NumPy SGD for 200 epochs on the same random 80/20 split as cog-person-count v0.0.2.

Result:

Full CSI v0.0.2 62.3% accuracy RSSI-only (this) 59.1% accuracy = 94.82% retained

Per-class is also markedly more balanced (RSSI: 59.5 / 58.6 ; full CSI: 86.2 / 34.3) — the tiny model on a low-dim input can't cheat by leaning on class 0 the way v0.0.2's larger model does at inference.

What this enables on a 10-year horizon: phones, laptops, smart speakers, smart TVs, smart lights — anything with WiFi reports RSSI and anything with a CPU can run a 656-param MLP. Person counting becomes a federated property of any room with WiFi, not a property of the ESP32-S3 fleet.

What this doesn't prove (called out explicitly in the research note):

Three follow-up experiments queued in R8-rssi-only-count.md §'What's next on this thread':

Files:

Coordination note: horizon-tracker is working on tools/ruview-mcp/

Docker Image: ghcr.io/ruvnet/RuView:d9ca9b368489921f460abf7948921113c0636212

download

unix · zip
curl -fL -o v1041.zip https://ratatoskr.space/pkg/ruview/v1041.zip
                    printf '%s  %s\n' '78d823c835541a217388baf5f2faefb7f829c31858459192e438fd7918733705' 'v1041.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/ruview/v1041.zip"
$out = "v1041.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "78d823c835541a217388baf5f2faefb7f829c31858459192e438fd7918733705") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1041.tar.gz https://ratatoskr.space/pkg/ruview/v1041.tar.gz
                    printf '%s  %s\n' 'ce12d5e19484a0b0c5bc14af2a657e920ff43163c46b6af1daca06db56d4462a' 'v1041.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/ruview/v1041.tar.gz"
$out = "v1041.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "ce12d5e19484a0b0c5bc14af2a657e920ff43163c46b6af1daca06db56d4462a") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v1041.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1041.zip
                    printf '%s  %s\n' '78d823c835541a217388baf5f2faefb7f829c31858459192e438fd7918733705' 'v1041.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1041.zip"
$out = "v1041.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "78d823c835541a217388baf5f2faefb7f829c31858459192e438fd7918733705") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1041.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1041.tar.gz
                    printf '%s  %s\n' 'ce12d5e19484a0b0c5bc14af2a657e920ff43163c46b6af1daca06db56d4462a' 'v1041.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1041.tar.gz"
$out = "v1041.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "ce12d5e19484a0b0c5bc14af2a657e920ff43163c46b6af1daca06db56d4462a") { throw "sha256 mismatch" }
artifact format size hashes
v1041.zip zip 55.1 MiB
blake3-24 cf4e72b84bad03736fda5793007c1362a189decdb999dd4f
sha256 78d823c835541a217388baf5f2faefb7f829c31858459192e438fd7918733705
sha1 e7f918e6fe6b6d362aacc2639185743c1aa51fa1
v1041.tar.gz tar.gz 53.7 MiB
blake3-24 60b7dfdaff466cc443ad1c80296715f814b0db3c4e39b758
sha256 ce12d5e19484a0b0c5bc14af2a657e920ff43163c46b6af1daca06db56d4462a
sha1 c7d6663d0df707b625463b989ab888b2aadd0fff

install

bazel
http_archive(
    name = "ruview",
    urls = ["https://ratatoskr.space/pkg/ruview/v1041.tar.gz"],
    integrity = "sha256-zhLV4ZSEoLDFvBSvKmV+kg/0MWPEa2rx2soG21bURio=",
    strip_prefix = "ruview-v1041",
)
zig
.url = "https://ratatoskr.space/pkg/ruview/v1041.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
    name = "ruview",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1041.tar.gz"],
    integrity = "sha256-zhLV4ZSEoLDFvBSvKmV+kg/0MWPEa2rx2soG21bURio=",
    strip_prefix = "ruview-v1041",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1041.tar.gz",
← v1043v1039 →