MCPcopy Index your code
hub / github.com/euaziel/WiFi-CSI-Human-Pose-Detection

github.com/euaziel/WiFi-CSI-Human-Pose-Detection @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
6,520 symbols 18,607 edges 316 files 3,432 documented · 53% updated 4mo ago★ 98
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

WiFi CSI Human Pose Detection

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.

Rust 1.85+ License: MIT Tests: 542+ Docker: 132 MB Vital Signs ESP32 Ready crates.io

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


📖 Documentation

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

🚀 Key Features

Sensing

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)

Intelligence

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)

Performance & Deployment

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)

🔬 How It Works

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.


🏢 Use Cases & Applications

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

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 3,675
Function 1,811
Class 839
Enum 129
Route 49
Interface 17

Languages

Rust56%
Python35%
TypeScript8%
C1%

Modules by API surface

rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/embedding.rs87 symbols
rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/trainer.rs86 symbols
rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/integration/hardware_adapter.rs81 symbols
rust-port/wifi-densepose-rs/crates/wifi-densepose-core/src/types.rs75 symbols
rust-port/wifi-densepose-rs/crates/wifi-densepose-train/src/metrics.rs74 symbols
rust-port/wifi-densepose-rs/crates/wifi-densepose-wifiscan/src/adapter/netsh_scanner.rs70 symbols
rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/graph_transformer.rs70 symbols
rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/sparse_inference.rs68 symbols
rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/dataset.rs68 symbols
rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/csi_processor.rs63 symbols
rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/rvf_container.rs63 symbols
v1/tests/integration/test_hardware_integration.py62 symbols

Datastores touched

wifi_denseposeDatabase · 1 repos
dbDatabase · 1 repos
test_wifi_denseposeDatabase · 1 repos
wifi_densepose_devDatabase · 1 repos
wifi_densepose_stagingDatabase · 1 repos

For agents

$ claude mcp add WiFi-CSI-Human-Pose-Detection \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page