RuView: WiFi Sensing for Camera-Free Smart Homes
RuView is a WiFi sensing platform that reads Channel State Information off cheap ESP32 boards to detect presence, breathing, and heart rate through walls with no camera involved. Reach for it if you want to prototype contactless monitoring on $9 hardware and can live with a pose-estimation feature that's still a first-cut stub; skip it if you need reliable on-device pose tracking today, since that model scores far below the project's own target.
The Need for Camera-Free Sensing
Camera-based home monitoring needs line of sight, fails in the dark, and puts a lens in every room you want covered — none of which people want in a bedroom or bathroom. Wearables solve the privacy problem but only work if the person actually wears the device, which breaks down for sleep apnea screening or checking on someone who refuses a strap. RuView's specific answer is to read the radio noise every WiFi router already produces: when someone moves or breathes near an ESP32 node, the Channel State Information shifts in ways the platform decodes without adding a single pixel of video.
Understanding RuView's WiFi Sensing Platform
RuView is a WiFi sensing platform, not a single sensor: firmware for ESP32 boards, a Python library, a pretrained CSI model on Hugging Face, and a CLI called MetaHarness for setup and verification. It captures Channel State Information — the way people moving, breathing, or sitting still disturb ordinary WiFi signals — and turns those disturbances into presence, vital-sign, and activity data without a camera or wearable in the room.
Core Sensing Capabilities and Data
- ✓Presence and occupancy detection through walls, running in under 1 ms after a roughly 30-second ambient calibration, with a phase-variance fallback that needs no trained model at all.
- ✓Contactless vital signs: breathing rate from a 0.1–0.5 Hz bandpass filter (6–30 BPM) and heart rate from a 0.8–2.0 Hz filter (40–120 BPM), both in real time.
- ✓Fall detection using a phase-acceleration threshold with a 3-frame debounce and 5-second cooldown, resolving in under 200 ms.
- ✓Multi-person counting via adaptive P95 normalization and a runtime-tunable dedup factor, plus several purpose-built counting cogs (occupancy-zones, queue-length, customer-flow, clean-room, person-matching).
- ✓Environment mapping through RF fingerprinting that identifies rooms and flags moved furniture or new objects.
- ✓Sleep-quality tracking with overnight sleep-stage classification and apnea screening.
- ✓Two separate pose-estimation efforts: an on-device 17-keypoint model that's still an early first-cut, and a published MM-Fi benchmark model reporting 82.69% torso-PCK@20 (83.59% ensembled) — these are not the same model, and the README is explicit about which one is actually running on your hardware.
- ✓A 105-module edge 'cog' catalog spanning health, security, building, retail, industrial, research, AI, swarm, signal, network, and developer use cases.
Integrating RuView into Smart Homes and Systems
- •Wire a node into Home Assistant over the HA-DISCO MQTT publisher and build automations on the 21 entities per node — 11 raw signals plus 10 semantic states like bed-exit, elderly-inactivity-anomaly, and someone-sleeping — using the 3 starter Blueprints as a template.
- •Pair directly into Apple Home/HomePod as a HAP-1.1 bridge, or into Google Home and Alexa through the same HA bridge or a Matter endpoint, so Siri, Google Assistant, or Alexa can answer presence and vitals questions by room.
- •Prototype elderly-care monitoring — the elderly-inactivity-anomaly state, fall detection, and bed-exit tracking — without asking anyone to wear a device.
- •Test the integration path with the Docker image's simulated data before buying any ESP32 hardware.
- •Build retail or industrial sensing (queue-length, customer-flow, clean-room) on the same cog catalog instead of home automation.
Setting Up RuView: Hardware and Software
Installation depends on how much hardware you're willing to buy. `docker pull ruvnet/wifi-densepose:latest && docker run -p 3000:3000 ruvnet/wifi-densepose:latest` runs the stack against simulated data with zero hardware. For live sensing, an ESP32-S3 board (about $9) gets firmware flashed with esptool and provisioned with `provision.py --ssid ... --password ... --target-ip ...`; an ESP32-C6 board (about $6–10, ADR-110) takes the same csi-node firmware built for its target via `idf.py set-target esp32c6 && idf.py build`. The full setup — ESP32 mesh plus a Cognitum Seed for persistent memory, kNN search, and a witness chain — runs about $140 and is driven by scripts like `rf-scan.js`, `snn-csi-processor.js`, and `mincut-person-counter.js`. On the software side, `pip install ruview` (or the identical `pip install wifi-densepose`) installs a compiled PyO3 wheel for Linux, macOS, and Windows from PyPI; add the `[client]` extra for the asyncio WebSocket and paho-mqtt clients. Consumer WiFi laptops need no installation at all but only get RSSI-only coarse presence, not the full CSI feature set.
Working with RuView and MetaHarness
Day-to-day operation runs through the RuView MetaHarness, published as `@ruvnet/ruview` and invoked with npx: `npx @ruvnet/[email protected] doctor` checks your local setup, `guidance --topic sensing --query "..."` gives source-cited answers, and `agent run --host codex --repo . --prompt "..."` runs a guarded, read-only Codex or Claude Code agent against your repo. `brain search` and `brain verify` query and check the reviewed contributor knowledge base, `claim-check --file REPORT.md` and `verify` replay the deterministic proof, and `mcp start` exposes an MCP server. Agent runs are read-only by default — workspace writes need both `--allow-write` and `--confirm` flags before anything touches disk.
Strengths
- ✓Full capability hardware costs as little as $9 for a single ESP32-S3 node, with a documented $54 mesh option and a $140 Cognitum Seed setup for persistent memory.
- ✓Native integration paths into all four major smart-home ecosystems (Home Assistant, Apple Home, Google Home, Alexa) rather than a single-vendor plugin.
- ✓The pretrained CSI encoder is genuinely small — the 4-bit quantized model fits in 8 KB and runs in microseconds on a Raspberry Pi.
- ✓The system operates entirely on local edge hardware, independent of any cloud infrastructure. Additionally, each measurement undergoes cryptographic attestation, facilitated by an Ed25519 witness chain.
- ✓The README is unusually candid about accuracy — it retracted its own '100% presence' claim in favor of an honestly re-benchmarked 82.3% figure, and states the on-device pose model's real PCK@20 score against its own target instead of hiding it.
- ✓The separate MM-Fi pose benchmark model reports 82.69% torso-PCK@20 (83.59% ensembled), which the README states beats the published MultiFormer and CSI2Pose baselines on the same protocol.
Acknowledging Current Limitations
- △The on-device 17-keypoint pose model that ships as the cog-pose-estimation binary is a first-cut stub: PCK@20 of 3.0%, below the project's own 35%+ ADR-079 target, with a runtime path that still returns confidence=0. The frequently-cited 82.69% figure belongs to a separate MM-Fi benchmark model, not the one running on your ESP32.
- △Full capability — presence, vitals, pose, fall detection, multi-person counting — needs CSI-capable hardware. A regular WiFi laptop only gets RSSI-only coarse presence and motion.
- △The unified RF world model that fuses WiFi CSI, radar, UWB, and cellular sensing says its own accuracy is 'still synthetic until real-data validation.'
- △The quantized `model-q*.bin` weight variants still need a compatible reader, per the README's own compatibility table.
- △Through-wall sensing tops out around 5 meters and is signal-dependent, not a fixed guarantee.
Exploring Alternative Sensing Approaches
Common Questions About RuView
RuView's full feature set — presence, vitals, fall detection, multi-person counting, pose, and the persistent cog catalog — needs the recommended ESP32-S3 plus Cognitum Seed setup, about $140. A bare ESP32 mesh (about $54) gets the same sensing without the persistent-memory features, and a single ESP32-S3 node starts around $9.
RuView integrates natively with Home Assistant through an HA-DISCO MQTT publisher, shipping 21 entities per node plus 3 starter Blueprints, and it also bridges into Apple Home/HomePod, Google Home, and Amazon Alexa via the same HA bridge or a Matter endpoint.
RuView runs entirely on edge hardware — an ESP32 mesh paired with a Cognitum Seed for persistent memory and attestation — with no cloud, no cameras, and no internet connection required, per the README.
RuView reports two different numbers here: the on-device 17-keypoint model shipped today is a first-cut stub scoring PCK@20 of 3.0%, while a separate published MM-Fi benchmark model, `ruvnet/wifi-densepose-mmfi-pose`, reports 82.69% torso-PCK@20 (83.59% ensembled) — that second figure is not the model running live on your ESP32.
RuView is distributed under the MIT license, according to the repository's license metadata.
The RuView MetaHarness, published as `@ruvnet/ruview`, gives an AI operator source-cited guidance, a guarded read-only Codex/Claude Code agent, deterministic proof verification, and an honesty check on RuView's own accuracy claims — workspace writes require explicit `--allow-write` and `--confirm` flags.
Who should try it — and who should skip
Reach for RuView if you want to prototype contactless presence and vitals monitoring on cheap ESP32 hardware, you're comfortable wiring firmware and Python, and you can accept that the on-device pose model is an early stub rather than a finished feature. Skip it if you need production-grade pose tracking now, don't want to manage physical sensor hardware at all, or need something that works out of the box on a normal WiFi laptop instead of dedicated CSI-capable nodes.
Related repositories
Still deciding about RuView?
One click hands the question to an AI along with this page — see what it says about RuView.
