Π RuView: Your WiFi Router Is Already a Sensor — No Cameras, No New Hardware

59.2K stars and climbing. Here’s what this trending project actually does.


Your WiFi router is constantly flooding your space with radio waves. When someone crosses a room, sits down, or simply breathes, those waves bounce differently. That’s physics — and it’s been studied in academic labs for over a decade. What π RuView does is package that capability into an open-source pipeline that any developer can run today, with hardware that costs less than $10.

The repo — from ruvnet — crossed 59.2K stars this week and is generating serious traction on GitHub Trending. Here we explain what it actually does, how the pipeline works, and where it’s genuinely useful versus where the project is honest about its limitations.


What is Channel State Information — and why it matters

Standard WiFi gives you RSSI: a single number representing signal strength. Coarse, noisy, not very useful for sensing.

Channel State Information (CSI) is different. Modern 802.11 routers transmit across dozens of subcarrier frequencies simultaneously (that’s the OFDM part of your WiFi spec). CSI captures amplitude and phase data across all those subcarriers — giving you a rich, high-dimensional snapshot of what the RF environment looks like at any given moment.

When a human body enters that environment, it perturbs the signal in measurable ways. When you breathe, chest displacement creates a cyclic phase shift. When you move, amplitude variance increases on specific subcarriers. RuView’s pipeline captures those perturbations and converts them into structured data.


The hardware: an ESP32-S3, not a server rack

The sensing layer runs on ESP32-S3 microcontrollers — widely available, costing a few dollars each. The ESP32-S3 exposes raw CSI data via its firmware, which RuView captures and streams to a processing pipeline.

An important limitation the project clarifies upfront: the ESP32-C3 and original ESP32 are not supported. Both are single-core and lack the processing headroom necessary for real-time CSI DSP. You specifically need the S3 variant.

A single ESP32-S3 node gives you basic presence detection and vital signs monitoring. For spatial resolution — knowing where someone is, not just that someone is there — the project recommends two or more nodes, or adding a Cognitum Seed device for multi-antenna coverage.


What the pipeline actually detects

Once CSI is being captured, RuView processes it through a chain of stages:

Presence detection — Is anyone in the room? Works through walls, in total darkness, without line of sight.

Vital signs monitoring — Respiratory rate is extracted via phase analysis on stable subcarriers, using peak counting on the cyclic chest displacement signal. Heart rate frequency extraction is also implemented.

Motion detection — CSI amplitude variance measured over a sliding 20-frame window. Triggers adaptive capture when motion is detected.

RF tomography — Using RSSI per node, RuView back-projects signal data onto an 8×8×4 occupancy grid — a coarse 3D map of where signal perturbation concentrates.

Pose estimation (experimental) — This is the most ambitious capability and the one with the clearest caveats. Camera-free pose accuracy currently sits at approximately PCK@20 ≈ 2.5% with proxy labels. The project is explicit about it: training with camera ground-truth points to 35%+ PCK@20, but data collection and evaluation phases are still pending. No results measured under camera supervision have been published. Honest framing, and worth knowing before building expectations around it.


The inference stack

The ML layer runs ONNX-based inference on-device. The signal processing pipeline is implemented in Rust, with individual crates for each stage:

  • wifi-densepose-signal — CSI signal processing (six state-of-the-art algorithms)
  • wifi-densepose-nn — Neural inference via ONNX, PyTorch, and Candle
  • wifi-densepose-vitals — Vital signs extraction
  • wifi-densepose-hardware — ESP32 and Intel 5300 sensor support

The AI backbone — called RuVector — handles attention, graph algorithms, and edge-AI compression to transform noisy raw CSI into structured, clean input for the neural network.

The fastest path to getting an instance running is Docker:

docker pull ruvnet/wifi-densepose:latest
docker run -p 3000:3000 ruvnet/wifi-densepose:latest

Or compile from Rust source with ./install.sh --profile rust --yes.


Use cases worth taking seriously

The project identifies several verticals where WiFi sensing has genuine advantages over cameras and LIDAR:

Senior care and accessibility — Fall detection and presence monitoring without installing cameras in private spaces. A real alternative that preserves privacy.

Industrial safety — Exclusion zone enforcement around heavy machinery. Detects workers in dangerous areas even through equipment and shelving.

Robotics — The CSI field acts as a spatial awareness layer that works where LIDAR fails: through dust, smoke, fog, and around corners. Collaborative robots can detect humans behind obstructions and brake automatically before contact.

Smart home — Presence detection without a subscription camera service. Your router is already there.

For Latin American developers in particular: hardware cost is minimal (ESP32-S3 boards are widely available and cheap), inference runs on-device (no cloud API costs), and the privacy-first architecture sidesteps data sovereignty concerns entirely.


What to expect realistically

RuView is a serious engineering project, but it’s also in early stages on several fronts:

  • Pose estimation accuracy is not production-ready. The 2.5% PCK@20 is honest and the project says so clearly. It’s a research objective, not a feature that already works.
  • Spatial resolution with a single node is limited. Presence detection works well with one node; localization requires multiple.
  • The WiFlow model is a placeholder. The skeleton renderer exists; the wiring to real ONNX inference is a planned follow-up per documentation.

None of this disqualifies the project. It means you need to build around the capabilities that do work — presence, respiratory frequency, motion — and treat pose estimation as a roadmap item.


Why it’s trending

59.2K stars in a short period points to something real striking a nerve. The combination of zero new hardware requirements, genuine privacy advantages over cameras, and a well-documented Rust implementation is compelling. Robotics and industrial safety applications are also drawing interest from communities well outside the typical home-automation crowd.

The underlying physics has been in academic literature for years. What RuView does is make it accessible to anyone with an ESP32-S3, a router, and a terminal.

GitHub: github.com/ruvnet/RuView