See through walls with WiFi. No cameras. No wearables. Just radio waves.
WiFi DensePose turns commodity WiFi signals into real-time human pose estimation, vital sign monitoring, and presence detection — all without a single pixel of video. By analyzing Channel State Information (CSI) disturbances caused by human movement, the system reconstructs body position, breathing rate, and heartbeat using physics-based signal processing and machine learning.
What How Speed Pose estimation CSI subcarrier amplitude/phase → DensePose UV maps 54K fps (Rust) Breathing detection Bandpass 0.1-0.5 Hz → FFT peak 6-30 BPM Heart rate Bandpass 0.8-2.0 Hz → FFT peak 40-120 BPM Presence sensing RSSI variance + motion band power < 1ms latency Through-wall Fresnel zone geometry + multipath modeling Up to 5m depth
# 30 seconds to live sensing — no toolchain required
docker pull ruvnet/wifi-densepose:latest
docker run -p 3000:3000 ruvnet/wifi-densepose:latest
# Open http://localhost:3000
[!NOTE] CSI-capable hardware required. Pose estimation, vital signs, and through-wall sensing rely on Channel State Information (CSI) — per-subcarrier amplitude and phase data that standard consumer WiFi does not expose. You need CSI-capable hardware (ESP32-S3 or a research NIC) for full functionality. Consumer WiFi laptops can only provide RSSI-based presence detection, which is significantly less capable.
Hardware options for live CSI capture:
Option Hardware Cost Full CSI Capabilities ESP32 Mesh (recommended) 3-6x ESP32-S3 + WiFi router ~$54 Yes Pose, breathing, heartbeat, motion, presence Research NIC Intel 5300 / Atheros AR9580 ~$50-100 Yes Full CSI with 3x3 MIMO Any WiFi Windows, macOS, or Linux laptop $0 No RSSI-only: coarse presence and motion No hardware? Verify the signal processing pipeline with the deterministic reference signal:
python v1/data/proof/verify.py
| Document | Description |
|---|---|
| User Guide | Step-by-step guide: installation, first run, API usage, hardware setup, training |
| WiFi-Mat User Guide | Disaster response module: search & rescue, START triage |
| Build Guide | Building from source (Rust and Python) |
| Architecture Decisions | 27 ADRs covering signal processing, training, hardware, security, domain generalization |
See people, breathing, and heartbeats through walls — using only WiFi signals already in the room.
| Feature | What It Means | |
|---|---|---|
| 🔒 | Privacy-First | Tracks human pose using only WiFi signals — no cameras, no video, no images stored |
| 💓 | Vital Signs | Detects breathing rate (6-30 breaths/min) and heart rate (40-120 bpm) without any wearable |
| 👥 | Multi-Person | Tracks multiple people simultaneously, each with independent pose and vitals — no hard software limit (physics: ~3-5 per AP with 56 subcarriers, more with multi-AP) |
| 🧱 | Through-Wall | WiFi passes through walls, furniture, and debris — works where cameras cannot |
| 🚑 | Disaster Response | Detects trapped survivors through rubble and classifies injury severity (START triage) |
The system learns on its own and gets smarter over time — no hand-tuning, no labeled data required.
| Feature | What It Means | |
|---|---|---|
| 🧠 | Self-Learning | Teaches itself from raw WiFi data — no labeled training sets, no cameras needed to bootstrap (ADR-024) |
| 🎯 | AI Signal Processing | Attention networks, graph algorithms, and smart compression replace hand-tuned thresholds — adapts to each room automatically (RuVector) |
| 🌍 | Works Everywhere | Train once, deploy in any room — adversarial domain generalization strips environment bias so models transfer across rooms, buildings, and hardware (ADR-027) |
Fast enough for real-time use, small enough for edge devices, simple enough for one-command setup.
| Feature | What It Means | |
|---|---|---|
| ⚡ | Real-Time | Analyzes WiFi signals in under 100 microseconds per frame — fast enough for live monitoring |
| 🦀 | 810x Faster | Complete Rust rewrite: 54,000 frames/sec pipeline, 132 MB Docker image, 542+ tests |
| 🐳 | One-Command Setup | docker pull ruvnet/wifi-densepose:latest — live sensing in 30 seconds, no toolchain needed |
| 📦 | Portable Models | Trained models package into a single .rvf file — runs on edge, cloud, or browser (WASM) |
WiFi routers flood every room with radio waves. When a person moves — or even breathes — those waves scatter differently. WiFi DensePose reads that scattering pattern and reconstructs what happened:
WiFi Router → radio waves pass through room → hit human body → scatter
↓
ESP32 / WiFi NIC captures 56+ subcarrier amplitudes & phases (CSI) at 20 Hz
↓
Signal Processing cleans noise, removes interference, extracts motion signatures
↓
AI Backbone (RuVector) applies attention, graph algorithms, and compression
↓
Neural Network maps processed signals → 17 body keypoints + vital signs
↓
Output: real-time pose, breathing rate, heart rate, presence, room fingerprint
No training cameras required — the Self-Learning system (ADR-024) bootstraps from raw WiFi data alone. MERIDIAN (ADR-027) ensures the model works in any room, not just the one it trained in.
WiFi sensing works anywhere WiFi exists. No new hardware in most cases — just software on existing access points or a $8 ESP32 add-on. Because there are no cameras, deployments avoid privacy regulations (GDPR video, HIPAA imaging) by design.
Scaling: Each AP distinguishes ~3-5 people (56 subcarriers). Multi-AP multiplies linearly — a 4-AP retail mesh covers ~15-20 occupants. No hard software limit; the practical ceiling is signal physics.
| Why WiFi sensing wins | Traditional alternative | |
|---|---|---|
| 🔒 | No video, no GDPR/HIPAA imaging rules | Cameras require consent, signage, data retention policies |
| 🧱 | Works through walls, shelving, debris | Cameras need line-of-sight per room |
| 🌙 | Works in total darkness | Cameras need IR or visible light |
| 💰 | $0-$8 per zone (existing WiFi or ESP32) | Camera systems: $200-$2,000 per zone |
| 🔌 | WiFi already deployed everywhere | PIR/radar sensors require new wiring per room |
🏥 Everyday — Healthcare, retail, office, hospitality (commodity WiFi)
| Use Case | What It Does | Hardware | Key Metric |
|---|---|---|---|
| Elderly care / assisted living | Fall detection, nighttime activity monitoring, breathing rate during sleep — no wearable compliance needed | 1 ESP32-S3 per room ($8) | Fall alert <2s |
| Hospital patient monitoring | Continuous breathing + heart rate for non-critical beds without wired sensors; nurse alert on anomaly | 1-2 APs per ward | Breathing: 6-30 BPM |
| Emergency room triage | Automated occupancy count + wait-time estimation; detect patient distress (abnormal breathing) in waiting areas | Existing hospital WiFi | Occupancy accuracy >95% |
| Retail occupancy & flow | Real-time foot traffic, dwell time by zone, queue length — no cameras, no opt-in, GDPR-friendly | Existing store WiFi + 1 ESP32 | Dwell resolution ~1m |
| Office space utilization | Which desks/rooms are actually occupied, meeting room no-shows, HVAC optimization based on real presence | Existing enterprise WiFi | Presence latency <1s |
| Hotel & hospitality | Room occupancy without door sensors, minibar/bathroom usage patterns, energy savings on empty rooms | Existing hotel WiFi | 15-30% HVAC savings |
| Restaurants & food service | Table turnover tracking, kitchen staff presence, restroom occupancy displays — no cameras in dining areas | Existing WiFi | Queue wait ±30s |
| Parking garages | Pedestrian presence in stairwells and elevators where cameras have blind spots; security alert if someone lingers | Existing WiFi | Through-concrete walls |
🏟️ Specialized — Events, fitness, education, civic (CSI-capable hardware)
| Use Case | What It Does | Hardware | Key Metric |
|---|---|---|---|
| Smart home automation | Room-level presence triggers (lights, HVAC, music) that work through walls — no dead zones, no motion-sensor timeouts | 2-3 ESP32-S3 nodes ($24) | Through-wall range ~5m |
| Fitness & sports | Rep counting, posture correction, breathing cadence during exercise — no wearable, no camera in locker rooms | 3+ ESP32-S3 mesh | Pose: 17 keypoints |
| Childcare & schools | Naptime breathing monitoring, playground headcount, restricted-area alerts — privacy-safe for minors | 2-4 ESP32-S3 per zone | Breathing: ±1 BPM |
| Event venues & concerts | Crowd density mapping, crush-risk detection via breathing compression, emergency evacuation flow tracking | Multi-AP mesh (4-8 APs) | Density per m² |
| Stadiums & arenas | Section-level occupancy for dynamic pricing, concession staffing, emergency egress flow modeling | Enterprise AP grid | 15-20 per AP mesh |
| Houses of worship | Attendance counting without facial recognition — privacy-sensitive congregations, multi-room campus tracking | Existing WiFi | Zone-level accuracy |
| Warehouse & logistics | Worker safety zones, forklift proximity alerts, occupancy in hazardous areas — works through shelving and pallets | Industrial AP mesh | Alert latency <500ms |
| Civic infrastructure | Public restroom occupancy (no cameras possible), subway platform crowding, shelter headcount during emergencies | Municipal WiFi + ESP32 | Real-time headcount |
| Museums & galleries | Visitor flow heatmaps, exhibit dwell time, crowd bottleneck alerts — no cameras near artwork (flash/theft risk) | Existing WiFi | Zone dwell ±5s |
🤖 Robotics & Industrial — Autonomous systems, manufacturing, android spatial awareness
WiFi sensing gives robots and autonomous systems a spatial awareness layer that works where LIDAR and cameras fail — through dust, smoke, fog, and around corners. The CSI signal field acts as a "sixth sense" for detecting humans in the environment without requiring line-of-sight.
| Use Case | What It Does | Hardware | Key Metric |
|---|---|---|---|
| Cobot safety zones | Detect human presence near collaborative robots — auto-slow or stop before contact, even behind obstructions | 2-3 ESP32-S3 per cell | Presence latency <100ms |
| Warehouse AMR navigation | Autonomous mobile robots sense humans around blind corners, through shelving racks — no LIDAR occlusion | ESP32 mesh along aisles | Through-shelf detection |
| Android / humanoid spatial awareness | Ambient human pose sensing for social robots — detect gestures, approach direction, and personal space without cameras always on | Onboard ESP32-S3 module | 17-keypoint pose |
| Manufacturing line monitoring | Worker presence at each station, ergonomic posture alerts, headcount for shift compliance — works through equipment | Industrial AP per zone | Pose + breathing |
| Construction site safety | Exclusion zone enforcement around heavy machinery, fall detection from scaffolding, personnel headcount | Ruggedized ESP32 mesh | Alert <2s, through-dust |
| Agricultural robotics | Detect farm workers near autonomous harvesters in dusty/foggy field conditions where cameras are unreliable | Weatherproof ESP32 nodes | Range ~10m open field |
| Drone landing zones | Verify landing area is clear of humans — WiFi sensing works in rain, dust, and low light where downward cameras fail | Ground ESP32 nodes | Presence: >95% accuracy |
| Clean room monitoring | Personnel tracking without cameras (particle contamination risk from camera fans) — gown compliance via pose | Existing cleanroom WiFi | No particulate emission |
🔥 Extreme — Through-wall, disaster, defense, underground
These scenarios exploit WiFi's ability to penetrate solid materials — concrete, rubble, earth — where no optical or infrared sensor can reach. The WiFi-Mat disaster module (ADR-001) is specifically designed for this tier.
| Use Case | What It Does | Hardware | Key Metric |
|---|---|---|---|
$ claude mcp add WiFi-CSI-Human-Pose-Detection \
-- python -m otcore.mcp_server <graph>