About this project
RuView is an open-source WiFi sensing platform that reads Channel State Information (CSI) from low-cost ESP32 sensors and converts radio reflections into spatial and physiological data — no cameras, wearables, or cloud services required. Ordinary WiFi routers fill a space with radio waves; people moving, breathing, or sitting still disturb those waves, and RuView measures those disturbances.
What it reports, according to the README: presence and occupancy (including through-wall detection, counting, entry/exit tracking), contactless breathing rate (0.1–0.5 Hz bandpass on wrapped phase, 6–30 BPM) and heart rate (0.8–2.0 Hz bandpass, 40–120 BPM), motion and activity classification, and fall detection with a phase-acceleration threshold plus debounce and cooldown (under 200 ms). It also claims multi-person counting via adaptive P95 normalisation, through-wall sensing to roughly 5 m depending on signal, environmental RF fingerprinting, sleep staging with apnea screening, and 17-keypoint pose estimation from CSI.
Hardware paths range from free to ~$140. A single ESP32-S3 node costs about $9; a multi-node mesh about $54; the recommended configuration adds a Cognitum Seed for persistent vector storage, kNN search, cryptographic attestation, and MCP proxy. An ESP32-C6 node ($6–10) targets Wi-Fi 6 and 802.15.4 research sensing, with a measured 99.56% ESP-NOW sync match and HE-LTF capture on IDF 5.5.2, though the README states TWT and ~5 µA operation still need hardware validation. Intel 5300 and Atheros AR9580 research NICs, plus beta Qualcomm and vendor-adapter programs, are also listed. Ordinary laptops provide RSSI-only coarse presence; the Docker image runs on simulated data.
Software is distributed as Rust 1.85+ crates, multi-arch Docker images, and PyPI packages (ruview and wifi-densepose, the same ~250 KB PyO3 abi3-py310 wheel for Linux, macOS and Windows). Home Assistant integration is delivered through an MQTT publisher with 21 entities per node (raw signals plus inferred states such as someone-sleeping, possible-distress, fall-risk-elevated, bathroom-occupied) and three starter Blueprints; Apple Home uses a discoverable HAP-1.1 bridge, and Google Home and Alexa work through the same HA bridge or a Matter endpoint. HOMECORE provides local state, history, automations, signed Wasm plugins, voice hooks and HomeKit support. A 105-module edge catalog is loaded from a registry. A separate npm metaharness, @ruvnet/ruview, offers doctor, guidance, read-only coding agents, claim-check, deterministic verify, and an MCP server.
The README is unusually candid about model limits, and that matters for evaluation. The pretrained encoder on Hugging Face reports 82.3% held-out temporal-triplet accuracy, up from 66.4% raw — the earlier "100% presence" figure was measured on a single-class recording and has been retracted. Its 4-bit build fits in 8 KB. The separate MM-Fi pose model reports 82.69% torso-PCK@20 single-model (83.59% with a three-model ensemble plus test-time augmentation), compared by the project against MultiFormer (72.25%) and CSI2Pose (68.41%). By contrast, the committed on-device pose_v1 model is described as a first cut at PCK@20 = 3.0%, far below its own 35% ADR target, with a runtime path that is still a confidence=0 stub. The published model.safetensors header is NUL-padded and rejected by the reference safetensors loader (issue #1522); the quantized model-q*.bin files still lack a compatible reader. Unified RF world model accuracy is stated to be synthetic until real-data validation. Claimed verification tooling includes a deterministic pipeline replay (python archive/v1/data/proof/verify.py) that hashes output against a published SHA-256, an Ed25519 witness chain, and a reported 1,463 passing tests.
In short, RuView is a substantial edge-sensing framework with broad smart-home integration and extensive documentation, but prospective users should treat the live on-device pose claims as unproven and rely on the project's own caveats, benchmark ADRs, and repro scripts when judging accuracy.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.