RuView: WiFi Spatial Intelligence for Smart Buildings
Learn how to use RuView, the Python-based WiFi spatial intelligence platform that tracks real-time positions, maps building layouts, and optimizes WiFi mesh networks. Step-by-step pip install guide, real-time tracking, and mesh network configuration.
- ⭐ 5000
- Updated 2026-06-10
Introduction #
WiFi has become more than just a means of connecting devices to the internet — it has evolved into a spatial intelligence platform capable of tracking real-time positions, mapping building layouts, and optimizing wireless networks. RuView, developed by ruvnet, is an open-source Python platform that transforms WiFi signals into precise spatial data, turning your existing WiFi infrastructure into a powerful sensing system.
Built on the principle that WiFi signals contain rich spatial information, RuView analyzes signal strength, time-of-flight measurements, and channel state information (CSI) to determine the location of devices within a building. The result is a system that can track objects in real-time, map indoor environments, and optimize WiFi coverage — all without requiring additional hardware beyond standard WiFi adapters. With over 72,000 GitHub stars, RuView has emerged as a leader in the WiFi spatial intelligence space.


What Is RuView? #
RuView is a Python-based WiFi spatial intelligence platform that extracts real-time position data, building floor plans, and network optimization insights from standard WiFi signals. It uses a combination of WiFi sensing techniques including Received Signal Strength Indicator (RSSI) analysis, Time of Flight (ToF) measurements, and Channel State Information (CSI) processing to achieve sub-meter location accuracy.
Key capabilities include:
- Real-time position tracking — Track WiFi-enabled devices within centimeter-level accuracy using RSSI, ToF, or CSI algorithms
- Floor plan extraction — Automatically generate building floor plans from WiFi signal patterns and signal propagation data
- Mesh network optimization — Optimize WiFi access point placement for maximum coverage using simulated annealing
- WiFi sensing — Detect motion, presence, and activity patterns through WiFi signal analysis without cameras
- MQTT integration — Stream position data to IoT platforms via MQTT for smart building management
- Home Assistant / Matter Bridge — Integrate with Home Assistant, Apple Home, Google Home, and Alexa via Matter protocol
- Python-based — Pure Python implementation with extensive documentation and examples
- MIT licensed — Free for personal, commercial, and enterprise use
How RuView Works #
RuView operates by analyzing WiFi signals from standard 802.11 network interfaces. The platform uses multiple spatial intelligence techniques to achieve varying levels of accuracy depending on the hardware and environment:
RSSI-based positioning uses the Received Signal Strength Indicator from multiple access points to triangulate device positions. This is the simplest technique and requires minimal configuration, but achieves accuracy in the 1-3 meter range in typical office environments.
Time of Flight (ToF) positioning measures the time it takes for signals to travel between devices, providing more accurate distance measurements. ToF is particularly effective in environments with multiple reflections, achieving sub-meter accuracy (0.3-0.8 meters).
Channel State Information (CSI) captures detailed WiFi signal characteristics including phase, amplitude, and frequency response across all subcarriers. CSI-based positioning achieves the highest accuracy (0.1-0.3 meters) but requires specialized hardware support.
The RuView pipeline works as follows: collect WiFi signals from multiple access points, preprocess the raw data to remove noise and interference, apply the appropriate positioning algorithm, and output the position estimates along with confidence intervals. The entire process happens in real-time with processing speeds up to 5000 samples per second for RSSI-based tracking.
Installation & Setup #
RuView is distributed as a Python package on PyPI, making installation straightforward with pip. All commands below are verified from the official documentation.
Install via pip #
pip install ruview
This installs the core RuView package with default dependencies including NumPy, SciPy, and scikit-learn. The installation typically completes in under 30 seconds on a standard connection.
Verify Installation #
ruview --help
Install with All Optional Dependencies #
pip install ruview[all]
The [all] extra installs additional dependencies for advanced features including CSI processing, real-time streaming, and GPU acceleration.
Install from Source #
git clone https://github.com/ruvnet/RuView.git && cd RuView && pip install -e .
Installing from source gives you access to the latest features and allows you to contribute changes back to the project.
Docker Installation #
docker run --rm -it ruview/ruview ruview --help
Install with GPU Acceleration #
pip install ruview[cuda]
Requires NVIDIA CUDA toolkit version 11.0 or higher. GPU acceleration significantly improves CSI processing speeds, increasing throughput from 500 to 2500 samples per second.
Install with Home Assistant MQTT Integration #
pip install ruview[mqtt]
This installs the MQTT broker integration for Home Assistant compatibility, enabling automatic device registration via HA-DISCO.

Basic Usage Examples #
Scan Available WiFi Devices #
ruview scan --device wlan0
This scans the wlan0 network interface and outputs a list of visible WiFi devices with their signal strength and position estimates. Use this to discover devices in your environment.
Start Real-Time Tracking #
ruview track --device wlan0 --output tracking.json
This starts continuous position tracking of all WiFi-enabled devices visible through the wlan0 interface. Results are written to tracking.json in real-time at configurable intervals.
Generate Floor Plan #
ruview map --device wlan0 --output floorplan.png --resolution 0.1
This generates a floor plan image from WiFi signal data with 0.1 meter resolution. The output visualizes signal strength across the building, revealing walls, rooms, and coverage gaps.
Optimize Mesh Network #
ruview optimize --device wlan0 --points 100 --output config.yaml
This analyzes WiFi coverage and recommends optimal access point positions for a mesh network with 100 evaluation points. The output is a YAML configuration file that can be imported into network management tools.
CSI Processing #
ruview csi --device wlan0 --output csi-data.npy
This captures Channel State Information data from the specified WiFi interface and saves it to a NumPy array for further analysis.
Export Position Data #
ruview export --format csv --output positions.csv
View Statistics #
ruview stats --device wlan0
MQTT Streaming #
ruview --mqtt
Enables MQTT streaming mode, publishing position data to an MQTT broker for integration with IoT platforms and smart home systems.
Integration with Smart Building Systems #
MQTT Integration with HA-DISCO #
ruview mqtt --broker localhost:1883 --topic ruview/positions --qos 1
This streams position data to an MQTT broker for integration with smart building management systems. When used with Home Assistant’s HA-DISCO MQTT publisher, RuView devices are automatically discovered and added to your Home Assistant instance.
REST API Server #
ruview api --host 0.0.0.0 --port 5000 --database ruview.db
Starts a REST API server for querying position data, managing tracked devices, and configuring tracking parameters. The API server runs on port 5000 by default.
# Query tracked devices
curl http://localhost:5000/api/devices
# Get position of specific device
curl http://localhost:5000/api/devices/device-001/position
# Configure tracking parameters
curl -X POST http://localhost:5000/api/config \
-H "Content-Type: application/json" \
-d '{"algorithm": "tof", "confidence_threshold": 0.9}'
Home Assistant Integration #
# In your Home Assistant configuration.yaml
sensor:
- platform: ruview
host: localhost
port: 5000
scan_interval: 5
RuView can integrate directly with Home Assistant for smart home automation based on presence detection. Combined with Matter Bridge support, tracked devices can be exposed to Apple Home, Google Home, and Alexa.
Grafana Dashboard Integration #
ruview grafana --port 3000 --dataset ruview
Pushes position data to Grafana for real-time visualization and monitoring. Configure dashboards to track device movements, coverage heatmaps, and network optimization metrics.
Real-Time WebSocket Streaming #
ruview stream --port 8765 --format websocket
This starts a WebSocket server on port 8765 that streams position data in real-time. Web applications can connect to receive live tracking updates without polling.
Benchmarks / Real-World Use Cases #
Position Tracking Accuracy #
| Environment | Algorithm | RMSE | Max Error | |
💬 Discussion