π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Turn ordinary WiFi into a spatial intelligence / sensing system. Detect people, measure breathing and heart rate, track movement, and monitor rooms — through walls, in the dark, with no cameras or wearables. Just physics.
Works natively with the four major smart-home ecosystems: Home Assistant via the HA-DISCO MQTT publisher, Apple Home & HomePod as a discoverable HAP-1.1 bridge, Google Home + Amazon Alexa via the same HA bridge or a Matter endpoint. Siri, Google Assistant, and Alexa can voice presence and vitals by room with zero custom skills.
|
|
|
Drop into any Home Assistant install with one --mqtt flag. Or pair into Apple Home / Google Home / Alexa / SmartThings as a Matter Bridge. Ships 21 entities per node (11 raw signals + 10 inferred semantic states: someone-sleeping, possible-distress, room-active, elderly-inactivity-anomaly, meeting-in-progress, bathroom-occupied, fall-risk-elevated, bed-exit, no-movement, multi-room-transition) plus 3 starter HA Blueprints. See docs/integrations/home-assistant.md · ADR-115.
π RuView is a WiFi sensing platform that turns radio signals into spatial intelligence.
Every WiFi router already fills your space with radio waves. When people move, breathe, or even sit still, they disturb those waves in measurable ways. RuView captures these disturbances using Channel State Information (CSI) from low-cost ESP32 sensors and turns them into actionable data: who's there, what they're doing, and whether they're okay.
What it senses:
Presence and occupancy — detect people through walls, count them, track entries and exits
Vital signs — breathing rate and heart rate, contactless, while sleeping or sitting
Environment mapping — RF fingerprinting identifies rooms, detects moved furniture, spots new objects
Sleep quality — overnight monitoring with sleep stage classification and apnea screening
Built on RuVector and Cognitum Seed, RuView runs entirely on edge hardware — an ESP32 mesh (as low as $9 per node) paired with a Cognitum Seed for persistent memory, cryptographic attestation, and AI integration. No cloud, no cameras, no internet required.
The system learns each environment locally using spiking neural networks that adapt in under 30 seconds, with multi-frequency mesh scanning across 6 WiFi channels that uses your neighbors' routers as free radar illuminators. Every measurement is cryptographically attested via an Ed25519 witness chain.
RuView turns ordinary WiFi into a contactless sensor. A $9 ESP32 board reads the radio reflections off the people in a room, and a small pretrained model — published on Hugging Face at ruvnet/wifi-densepose-pretrained — tells you who's there, how they're breathing, and how their heart rate is trending. The model fits in 8 KB (4-bit quantized) and runs in microseconds on a Raspberry Pi. (The v2 encoder reports an honest, label-free held-out temporal-triplet accuracy of 82.3% — up from 66.4% raw; the older "100% presence" figure was measured on a single-class recording and has been retracted in favor of this.) No cameras, no wearables, no app on the user's phone.
Built for low-power edge applications
Edge modules are small programs that run directly on the ESP32 sensor — no internet needed, no cloud fees, instant response.
Trained head on Hugging Face (ruvnet/wifi-densepose-pretrained; v2 encoder = 82.3% held-out temporal-triplet acc, honestly re-benchmarked) + a phase-variance fallback that needs no model
< 1 ms, ~30 s ambient calibration
🧬 CSI embeddings
128-dim contrastive encoder shipped on Hugging Face, 4-bit quantised variant fits in 8 KB
164,183 emb/s on M4 Pro
🦴 17-keypoint pose estimation
cog-pose-estimation Cog v0.0.1 — signed aarch64 + x86_64 binaries on GCS, loads pose_v1.safetensors via Candle. Train your own from paired data in 2.1 s on an RTX 5080 (ADR-101, benchmarks). SOTA on MM-Fi:ruvnet/wifi-densepose-mmfi-pose hits 82.69% torso-PCK@20 (ensemble 83.59%), beating MultiFormer (72.25%) and CSI2Pose (68.41%) on the matched MM-Fi random_split protocol — self-corrected and auditable on AetherArena
8.4 ms cold-start on a Pi 5
🚶 Motion / activity
Motion-band power + phase acceleration
Real-time
🤸 Fall detection
Phase-acceleration threshold + 3-frame debounce + 5 s cooldown (#263)
< 200 ms
🧮 Multi-person count
Adaptive P95 normalisation + runtime-tunable dedup factor (/api/v1/config/dedup-factor, #491). Six specialised learned counters available as Cogs: occupancy-zones, elevator-count, queue-length, customer-flow, clean-room, person-matching
Real-time, self-calibrating
🌍 World model prediction
OccWorld TransVQVAE — 15-frame future occupancy prediction, 209 ms inference, 3.4 GB VRAM on RTX 5080; fine-tune on your space with occworld_retrain.py (ADR-147)
15 frames × 200×200×16 vox
🧱 Through-wall sensing
Fresnel-zone geometry + multipath modeling
Up to ~5 m, signal-dependent
🧠 Edge intelligence
105-cog catalog (ADR-102) live from app-registry.json — health, security, building, retail, industrial, research, AI, swarm, signal, network, and developer modules. Optional Cognitum Seed adds persistent vector store + kNN + witness chain
$140 total BOM
🎯 Camera-free pre-training
Self-supervised contrastive encoder, 12.2M training steps on 60K frames, shipped on Hugging Face
# Option 1: Docker (simulated data, no hardware needed)
docker pull ruvnet/wifi-densepose:latest
docker run -p 3000:3000 ruvnet/wifi-densepose:latest
# Open http://localhost:3000# Option 2a: Live sensing with ESP32-S3 hardware ($9)# Flash firmware, provision WiFi, and start sensing:
python -m esptool --chip esp32s3 --port COM9 --baud 460800 \
write_flash 0x0 bootloader.bin 0x8000 partition-table.bin \
0xf000 ota_data_initial.bin 0x20000 esp32-csi-node.bin
python firmware/esp32-csi-node/provision.py --port COM9 \
--ssid "YourWiFi" --password "secret" --target-ip 192.168.1.20
# Option 2b: WiFi 6 + 802.15.4 research sensing with ESP32-C6 ($6-10, ADR-110)# Same csi-node firmware compiled for the C6 target — picks up the C6# overlay (sdkconfig.defaults.esp32c6) automatically.cd firmware/esp32-csi-node
idf.py set-target esp32c6 && idf.py build
idf.py -p COM6 flash
# C6 boot extras (vs S3): HE-LTF subcarrier tagging in ADR-018 bytes 18-19,# 802.15.4 mesh time-sync on channel 15, TWT setup when the AP supports it,# opt-in LP-core wake-on-motion for ~5 µA battery seed nodes.# v0.6.7 adds: real LP-core RISC-V motion-gate program (debounce + motion# counter) and a Wi-Fi 6 soft-AP with TWT Responder so two C6 boards can# benchmark real iTWT without buying an 11ax router. Both default off,# flip CONFIG_C6_{LP_CORE,SOFTAP_HE}_ENABLE to turn them on.# Option 3: Full system with Cognitum Seed ($140)# ESP32 streams CSI → bridge forwards to Seed for persistent storage + kNN + witness chain
node scripts/rf-scan.js --port 5006 # Live RF room scan
node scripts/snn-csi-processor.js --port 5006 # SNN real-time learning
node scripts/mincut-person-counter.js --port 5006 # Correct person counting# Option 4: Python — live on PyPI (ADR-117)
pip install ruview # or: pip install wifi-densepose# Both ship the same compiled PyO3 wheel (~250 KB, abi3-py310, Linux/macOS/Windows).# Add [client] for the asyncio WebSocket + paho-mqtt clients:
pip install "ruview[client]"# or: pip install "wifi-densepose[client]"# from ruview import BreathingExtractor, HeartRateExtractor # equivalent to:# from wifi_densepose import BreathingExtractor, HeartRateExtractor# from ruview.client import SensingClient, RuViewMqttClient
[!NOTE]
CSI-capable hardware recommended. Presence, vital signs, through-wall sensing, and all advanced capabilities require Channel State Information (CSI) from an ESP32-S3 ($9) or research NIC. The Docker image runs with simulated data for evaluation. Consumer WiFi laptops provide RSSI-only presence detection.
Same CSI pipeline as S3 with the dual-target firmware. Firmware-side ADR-110 substrate now closed (v0.7.0): ESP-NOW cross-board mesh quantified at 99.56 % match / 104 µs smoothed offset stdev / 3.95× EMA suppression over a 5-min two-board soak (witness §A0.10), 32-byte UDP sync packet with operator-tunable cadence (§A0.12), ADR-018 byte 19 bit 4 wire-fix sourced from the working ESP-NOW path (§A0.13). Wire format ready for HE-LTF PPDU tagging in ADR-018 bytes 18-19 (firmware encoder + Rust + Python decoders verified end-to-end across 23 unit tests). LP-core motion-gate RISC-V program and Wi-Fi 6 soft-AP with TWT Responder both ship as opt-in code paths (default off). Hardware-gated for measurement: HE-LTF live subcarrier capture needs an 11ax AP (IDF v5.4 doesn't expose AP-side HE config — §A0.6); ~5 µA LP-core hibernation needs an INA meter to capture; 802.15.4 raw RX is broken in IDF v5.4 (workaround: ESP-NOW transport, shipped + measured). See witness log for the empirical / claimed split.
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 (see tutorial #36)
No hardware? Verify the signal processing pipeline with the deterministic reference signal: python archive/v1/data/proof/verify.py
Real-time pose skeleton from WiFi CSI signals — no cameras, no wearables
The server is optional for visualization and aggregation — the ESP32 runs independently for presence detection, vital signs, and fall alerts.
Live ESP32 pipeline: Connect an ESP32-S3 node → run the sensing server → open the pose fusion demo for real-time dual-modal pose estimation (webcam + WiFi CSI). See ADR-059.
three.js scene gallery at /three.js/ — five progressively richer ADR-097 demos: helpers, cinematic, GLTF skinned, FBX skinned, and a live MediaPipe→Mixamo retargeting feed driven by ESP32 CSI. Demos 04 and 05 require a local Mixamo X Bot.fbx (license boundary — not redistributed).
🤗 Pretrained model on Hugging Face
Pretrained CSI weights live at ruvnet/wifi-densepose-pretrained — 12.2M training steps on 60K frames / 610K contrastive triplets, 82.3% held-out temporal-triplet accuracy (up from 66.4% raw; the older "100% presence" figure was measured on a single-class recording and has been retracted), 4-bit quantized variant fits in 8 KB. The release includes a contrastive CSI encoder producing 128-dim embeddings (164,183 emb/s on M4 Pro) and a presence-detection head. Per-node LoRA adapters are included for environment-specific fine-tuning.
# Download the model bundle
pip install huggingface_hub
huggingface-cli download ruvnet/wifi-densepose-pretrained --local-dir models/wifi-densepose-pretrained
What works today vs. what's pending wiring:
Consumer
Format used
Status
Python training / evaluation / embedding extraction
model.safetensors
✅ Works — load with safetensors.torch.load_file
Inspect / re-export the bundle
model.rvf.jsonl (line-by-line JSON)
✅ Works — plain JSONL
Sensing-server --model <PATH> flag
binary RVF (RVFS magic)
⚠️ Loader does not yet accept the JSONL container
Known gap: the HF model ships in JSONL RVF format, but v2/crates/wifi-densepose-sensing-server/src/rvf_container.rs only parses the binary RVF segment format. Pointing --model at model.rvf.jsonl currently errors with invalid magic at offset 0: expected 0x52564653, got 0x7974227B and the live pipeline degrades to null output rather than falling back to heuristic mode — so for the live sensing-server, run without--model until a JSONL adapter lands (or the model is re-published as binary RVF). Use the weights from Python / training in the meantime.
Quantization choices (all in the HF repo): model-q2.bin (4 KB) · model-q4.bin ⭐ recommended (8 KB) · model-q8.bin (16 KB) · model.safetensors full (48 KB)
The separate 17-keypoint pose-estimation model is now published at ruvnet/wifi-densepose-mmfi-pose — 82.69% torso-PCK@20 on MM-Fi (single model) / 83.59% (3-model ensemble + TTA), beating the prior published SOTA MultiFormer (72.25%) and CSI2Pose (68.41%) on the matched random_split protocol. See Results & proof below.
Tracked in #509; see ADR-079 phases P7–P9 for the camera-supervised fine-tune path.
🧩 Edge Module Catalog
🧩 105 edge modules ready to install on a Cognitum appliance — live catalog from app-registry.json v2.1.0 (updated 2026-05-13). Browse + install at seed.cognitum.one/store or your local appliance http://<appliance>:9000/cogs.
Each module is a small signed binary (~400 KB) that runs alongside the WiFi-DensePose sensing stack on a Cognitum-V0 appliance. The catalog updates over the air — your appliance fetches it via GET /api/v1/edge/registry (ADR-102) and verifies each binary against an Ed25519 signature (ADR-100) before install.
🫀 Health — 14 modules
ID
What it does
Size
Difficulty
air-quality-index
Track indoor air quality with CO2 and particle sensors
8 KB
Easy
baby-cry
Sustained mid-band energy detector for nursery / infant monitoring. Audio-only, no camera.
451 KB
Easy
breathing-sync
Detects when two people breathe in sync
10 KB
Hard
cardiac-arrhythmia
Spots irregular heartbeats and abnormal heart rhythms
8 KB
Hard
cough-detect
Acoustic transient + spectral cough detector with 30s cluster aggregation. Early-warning signal for respiratory illness.
451 KB
Easy
dream-stage
Tracks your sleep stages — light, deep, and dreaming
14 KB
Hard
fall-detect
Two-stage impact + stillness fall detector over ambient feature stream (ESP32 motion / mic). Optional ruview-mode for CSI-based pose reinforcement.
402 KB
Easy
gait-analysis
Detects walking problems and scores fall risk
12 KB
Hard
health-monitor
Contactless heart rate, breathing, sleep, and fall alerts
30 KB
Med
respiratory-distress
Alerts when breathing becomes labored or dangerously fast
10 KB
Hard
seizure-detect
Recognizes seizures and sends immediate alerts
10 KB
Hard
sleep-apnea
Detects when someone stops breathing during sleep
4 KB
Easy
snore-monitor
Periodic low-band energy tracker for sleep-quality / apnea-risk trending. Companion to sleep-apnea cog.
451 KB
Easy
vital-trend
Tracks breathing and heart rate trends over weeks
6 KB
Med
🔒 Security — 14 modules
ID
What it does
Size
Difficulty
audit-logger
Record every action for compliance — tamper-proof log
8 KB
Easy
behavioral-profiler
Learns normal behavior and flags anything unusual
12 KB
Hard
fleet-auth
Manage device certificates and access across all seeds
12 KB
Med
glass-break
Two-phase bang + shatter acoustic detector. Distinguishes glass break from ordinary impulse noise.
Blocks signal replay and injection attacks on the seed
10 KB
Med
tailgating
Catches when someone sneaks in behind a badge holder
6 KB
🏢 Building — 11 modules
ID
What it does
Size
Difficulty
beehive-monitor
Acoustic hive state classifier. Detects healthy / chaotic / queenless / swarming / robbing via hum-band energy + chaos + piping autocorr.
451 KB
Easy
elevator-count
Counts how many people are in an elevator
8 KB
Med
energy-audit
Learns your schedule and cuts wasted energy
6 KB
Med
frost-warning
Predicts frost 6 hours ahead via temperature trend + dewpoint-depression gate. Field/orchard agriculture.
451 KB
Easy
hvac-presence
Turns heating and cooling on when you arrive
3 KB
Easy
lighting-zones
Turns lights on and off as people move between rooms
4 KB
Easy
meeting-room
Shows if a meeting room is free or occupied
5 KB
Easy
occupancy-zones
Counts people in each room through walls
8 KB
Med
predictive-maintenance
Vibration harmonic analyzer for rotating equipment. Tracks F1 / 2×F1 / high-order / sideband energy to score degradation severity.
451 KB
Easy
smoke-fire
Multi-signal smoke and fire detector. Fuses acoustic crackle, thermal drift proxy, and optional ruview CSI plume signature. Not a UL-listed replacement for code-required smoke alarms.
451 KB
Easy
water-leak
Persistent low-amplitude hiss + periodic drip acoustic detector with multi-minute persistence gate. Two-stage likely → confirmed.
451 KB
Easy
🛍️ Retail — 7 modules
ID
What it does
Size
Difficulty
customer-flow
Counts foot traffic in and out of each entrance
8 KB
Med
dwell-heatmap
Shows where customers spend the most time
6 KB
Med
package-detect
Sustained CSI-shift detector for porch / loading bay package arrivals and departures. Requires ESP32 CSI ruview input.
451 KB
Easy
parking-occupancy
Per-zone parking occupancy via ESP32 CSI subcarrier-amplitude shift. Tracks utilization and churn-per-hour. Requires ruview.
451 KB
Easy
queue-length
Estimates line length and wait time
6 KB
Med
shelf-engagement
Detects when customers interact with products
6 KB
Med
table-turnover
Tracks which restaurant tables are free or occupied
4 KB
Easy
🏭 Industrial — 7 modules
ID
What it does
Size
Difficulty
clean-room
Enforces max headcount in controlled environments
4 KB
Easy
confined-space
Monitors workers in tight spaces for safety
5 KB
Med
forklift-proximity
Warns if a forklift gets too close to workers
10 KB
Hard
livestock-monitor
Monitors animals for distress, escape, or illness
6 KB
Med
ppe-compliance
Cog-composition layer: alerts when ruview-densepose detects presence in a restricted zone without an accompanying PPE-camera-cog confirmation vector.
387 KB
Easy
slip-fall-zone
Pre-fall risk detector. Fires when motion-variance drop, splash audio, and optional cautious-gait CSI all signal elevated slip risk.
451 KB
Easy
structural-vibration
Detects dangerous vibrations in buildings or machines
8 KB
Hard
🔬 Research — 12 modules
ID
What it does
Size
Difficulty
emotion-detect
Reads stress and calm from body language and breathing
10 KB
Hard
energy-harvester
Optimize solar and battery for off-grid seed deployment
6 KB
Med
gesture-language
Recognizes sign language gestures in real time
12 KB
Hard
ghost-hunter
Finds unexplained environmental anomalies — for fun
10 KB
Hard
happiness-score
Estimates well-being from movement and mood signals
8 KB
Med
hyperbolic-space
Maps data into curved space for tree-like structures
12 KB
Hard
music-conductor
Reads a conductor's gestures for tempo and dynamics
12 KB
Hard
plant-growth
Tracks plant growth rate and day/night cycles
8 KB
Med
rain-detect
Detects when rain starts, stops, and how heavy it is
6 KB
Med
ruview-densepose
Full body pose tracking from WiFi — no cameras needed
50 KB
Hard
sound-classifier
Identify sounds like glass break, alarm, or baby cry
16 KB
Hard
time-crystal
Experiments with repeating time-pattern symmetry
12 KB
Hard
🤖 Ai — 15 modules
ID
What it does
Size
Difficulty
anomaly-attractor
Learns what's normal and catches anything weird
10 KB
Hard
cognitive-pipeline
FastGRNN anomaly gate + SmolLM2 sparse-LLM inference for on-device Pi Zero 2W cognitive events
320 KB
Hard
dtw-gesture-learn
Teach custom hand gestures by showing examples
14 KB
Med
ewc-lifelong
Learns new things without forgetting old lessons
8 KB
Hard
federated-learning
Train AI across seeds without sharing raw data
18 KB
Hard
goap-autonomy
Plans and executes goals on its own
14 KB
Hard
meta-adapt
Automatically tunes itself for best performance
10 KB
Hard
micro-hnsw
Fast on-device fingerprinting and classification
12 KB
Med
neural-trader
Spot market patterns and trends from live data
20 KB
Hard
pagerank-influence
Finds the most influential person in a group
12 KB
Med
pattern-sequence
Detects daily routines and repeated habits
10 KB
Med
rag-local
Search your documents using AI — runs on the seed
14 KB
Med
spiking-tracker
Brain-inspired tracker that runs on tiny hardware
16 KB
Hard
🐝 Swarm — 11 modules
ID
What it does
Size
Difficulty
swarm-backup-restore
Auto-backup data to other seeds — one-click restore
8 KB
Easy
swarm-cluster-monitor
Live dashboard of every seed's health and status
6 KB
Easy
swarm-consensus
Seeds vote before making critical changes together
16 KB
Hard
swarm-delta-sync
Auto-sync data between seeds — only sends changes
8 KB
Med
swarm-deploy
Install or remove cogs on all seeds at once
10 KB
Med
swarm-distributed-store
Spread data across seeds and search them all at once
14 KB
Hard
swarm-edge-orchestrator
Manage all ESP32 sensor nodes from one place
14 KB
Hard
swarm-load-balancer
Spread queries across seeds so no single one overloads
10 KB
Med
swarm-mesh-manager
Find, connect, and monitor all seeds on your network
12 KB
Easy
swarm-mqtt-bridge
Share events between seeds over MQTT messaging
6 KB
Easy
swarm-witness-federation
Share tamper-proof audit trails across seeds
12 KB
Hard
📡 Signal — 6 modules
ID
What it does
Size
Difficulty
coherence-gate
Filters out noisy signals and keeps clean ones
8 KB
Med
flash-attention
Focuses sensing on specific areas for better accuracy
12 KB
Med
optimal-transport
Measures motion using shape-aware signal comparison
12 KB
Hard
person-matching
Tells apart multiple people in the same room
18 KB
Hard
sparse-recovery
Recovers missing signal data from partial readings
16 KB
Hard
temporal-compress
Shrinks old data to save memory without losing meaning
14 KB
Med
🌐 Network — 1 modules
ID
What it does
Size
Difficulty
tailscale
Reach the seed from anywhere via a private WireGuard mesh (Tailscale). Userspace mode — no root.
700 KB
Med
🛠️ Developer — 7 modules
ID
What it does
Size
Difficulty
adversarial
Detects tampered or spoofed sensor signals
4 KB
Easy
coherence
Monitors signal quality across multiple channels
4 KB
Easy
gesture
Core gesture recognition building block for cogs
6 KB
Med
interference-search
Searches many possibilities at once for fast answers
14 KB
Hard
psycho-symbolic
Reasons over knowledge graphs with multiple styles
16 KB
Hard
quantum-coherence
Quantum-inspired model for advanced signal states
16 KB
Hard
self-healing-mesh
Keeps sensor mesh running even when nodes drop out
14 KB
Hard
ℹ️ Build your own cog: see ADR-100 for the packaging spec. The first cog this repo ships into the catalog lives in v2/crates/cog-pose-estimation/ (17-keypoint WiFi pose, ADR-101).
🔬 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 mesh (4-6 nodes) captures CSI on channels 1/6/11 via TDM protocol
↓
Multi-Band Fusion: 3 channels × 56 subcarriers = 168 virtual subcarriers per link
↓
Multistatic Fusion: N×(N-1) links → attention-weighted cross-viewpoint embedding
↓
Coherence Gate: accept/reject measurements → stable for days without tuning
↓
Signal Processing: Hampel, SpotFi, Fresnel, BVP, spectrogram → clean features
↓
AI Backbone (RuVector): attention, graph algorithms, compression, field model
↓
Signal-Line Protocol (CRV): 6-stage gestalt → sensory → topology → coherence → search → model
↓
Neural Network: processed signals → 17 body keypoints + vital signs + room model
↓
Output: real-time pose, breathing, heart rate, room fingerprint, drift alerts
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
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
Edge Module
Cobot safety zones
Detect human presence near collaborative robots — auto-slow or stop before contact, even behind obstructions
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
Edge Module
Search & rescue (WiFi-Mat)
Detect survivors through rubble/debris via breathing signature, START triage color classification, 3D localization
🧠 Self-Learning WiFi AI (ADR-024) — Adaptive recognition, self-optimization, and intelligent anomaly detection
Every WiFi signal that passes through a room creates a unique fingerprint of that space. WiFi-DensePose already reads these fingerprints to track people, but until now it threw away the internal "understanding" after each reading. The Self-Learning WiFi AI captures and preserves that understanding as compact, reusable vectors — and continuously optimizes itself for each new environment.
What it does in plain terms:
Turns any WiFi signal into a 128-number "fingerprint" that uniquely describes what's happening in a room
Learns entirely on its own from raw WiFi data — no cameras, no labeling, no human supervision needed
Recognizes rooms, detects intruders, and classifies activities using only WiFi (named person-identity is an experimental, data-gated research capability — see below, not a shipped feature)
Runs on an $8 ESP32 chip (the entire model fits in 55 KB of memory)
Produces both body pose tracking AND environment fingerprints in a single computation
Key Capabilities
What
How it works
Why it matters
Self-supervised learning
The model watches WiFi signals and teaches itself what "similar" and "different" look like, without any human-labeled data
Deploy anywhere — just plug in a WiFi sensor and wait 10 minutes
Room identification
Each room produces a distinct WiFi fingerprint pattern
Know which room someone is in without GPS or beacons
Anomaly detection
An unexpected person or event creates a fingerprint that doesn't match anything seen before
Automatic intrusion and fall detection as a free byproduct
Person re-identification(experimental, research)
A real per-channel similarity matcher (Soul Signature §3.6, wifi-densepose-bfld); measured result: on WiFi-only cardiac+respiratory channels alone two people are not separable (gap ~0.0005)
Honest research capability — named identity is not claimed and is data-gated on enrollment with the decisive AETHER/body-resonance channel. See #1021
Environment adaptation
MicroLoRA adapters (1,792 parameters per room) fine-tune the model for each new space
Adapts to a new room with minimal data — 93% less than retraining from scratch
Memory preservation
EWC++ regularization remembers what was learned during pretraining
Switching to a new task doesn't erase prior knowledge
Hard-negative mining
Training focuses on the most confusing examples to learn faster
Better accuracy with the same amount of training data
Architecture
WiFi Signal [56 channels] → Transformer + Graph Neural Network
├→ 128-dim environment fingerprint (for search + identification)
└→ 17-joint body pose (for human tracking)
Quick Start
# Step 1: Learn from raw WiFi data (no labels needed)
cargo run -p wifi-densepose-sensing-server -- --pretrain --dataset data/csi/ --pretrain-epochs 50
# Step 2: Fine-tune with pose labels for full capability
cargo run -p wifi-densepose-sensing-server -- --train --dataset data/mmfi/ --epochs 100 --save-rvf model.rvf
# Step 3: Use the model — extract fingerprints from live WiFi
cargo run -p wifi-densepose-sensing-server -- --model model.rvf --embed
# Step 4: Search — find similar environments or detect anomalies
cargo run -p wifi-densepose-sensing-server -- --model model.rvf --build-index env
Training Modes
Mode
What you need
What you get
Self-Supervised
Just raw WiFi data
A model that understands WiFi signal structure
Supervised
WiFi data + body pose labels
Full pose tracking + environment fingerprints
Cross-Modal
WiFi data + camera footage
Fingerprints aligned with visual understanding
Fingerprint Index Types
Index
What it stores
Real-world use
env_fingerprint
Average room fingerprint
"Is this the kitchen or the bedroom?"
activity_pattern
Activity boundaries
"Is someone cooking, sleeping, or exercising?"
temporal_baseline
Normal conditions
"Something unusual just happened in this room"
person_track
Individual movement signatures
"Person A just entered the living room"
Model Size
Component
Parameters
Memory (on ESP32)
Transformer backbone
~28,000
28 KB
Embedding projection head
~25,000
25 KB
Per-room MicroLoRA adapter
~1,800
2 KB
Total
~55,000
55 KB (of 520 KB available)
The self-learning system builds on the AI Backbone (RuVector) signal-processing layer — attention, graph algorithms, and compression — adding contrastive learning on top.
RuView ships a Claude Code plugin (and Codex prompt mirror) that wraps the whole workflow — onboarding, ESP32 setup, configuration, sensing apps, model training, advanced multistatic sensing, CLI/API/WASM, mmWave radar, and witness verification — as 9 skills, 7 /ruview-* commands, and 3 agents. It lives in plugins/ruview/; the marketplace manifest is .claude-plugin/marketplace.json at the repo root.
# In Claude Code — add this repo as a plugin marketplace, then install:
/plugin marketplace add ruvnet/RuView
/plugin install ruview@ruview
# Or try it for one session without installing (from a local clone of the repo):
claude --plugin-dir ./plugins/ruview
# Then, in Claude Code:# /ruview-start → onboarding (Docker demo / repo build / live ESP32)# /ruview-flash → build + flash ESP32 firmware# /ruview-provision → provision WiFi creds, sink IP, channel/MAC, mesh slots# /ruview-app → run a sensing application (presence / vitals / pose / sleep / MAT / point cloud)# /ruview-train → train / evaluate / publish a model (incl. GPU on GCloud)# /ruview-advanced → multistatic / tomography / cross-viewpoint / mesh-security# /ruview-verify → tests + deterministic proof + witness bundle
Verify the plugin structure: bash plugins/ruview/scripts/smoke.sh. Full details: plugins/ruview/README.md.
Portable harness — npx @ruvnet/ruview: a lighter, host-portable companion to the in-repo plugin, minted via MetaHarness and hardened per ADR-182. It runs without cloning this repo and on more hosts (Claude Code, Codex, Copilot, opencode, …), exposing the RuView operator tools (onboard, verify, node_monitor, calibrate, node_flash) over an MCP server — plus the project's MEASURED-vs-CLAIMED honesty guardrail enforced in code (ruview.claim_check flags untagged or retracted-"100%" accuracy claims). v0.1: the onboarding/verify/claim-check paths are tested (17/17, verify.py → PASS); the hardware tools are fail-closed wrappers. Try npx @ruvnet/ruview to onboard, or npx @ruvnet/ruview claim-check --text "…". Source: harness/ruview/.
Works with Home Assistant via MQTT auto-discovery + Works with Matter (Apple Home / Google Home / Alexa / SmartThings) — full entity catalog, 3 starter blueprints, Lovelace dashboards, privacy mode, threshold tuning (ADR-115).
Rust-first / TypeScript-accessible / hardware-abstracted CSI runtime: multi-source ingestion (incl. real nexmon_csi .pcap from a Raspberry Pi 5 / Pi 4 / Pi 3B+ — CYW43455 / BCM43455c0) → validation → DSP → typed events → RuVector RF memory (ADR-095, ADR-096, domain model). Now its own repo — ruvnet/rvcsi — vendored here under vendor/rvcsi; 9 rvcsi-* crates on crates.io, @ruv/rvcsi on npm, plus a Claude Code plugin.
Latest additions, key features, installation, quick start, signal processing, training, CLI, testing, deployment, and changelog
🚧 Beta software
Beta Software — Under active development. APIs and firmware may change. Known limitations:
ESP32-C3 and original ESP32 are not supported (single-core, insufficient for CSI DSP)
Single ESP32 deployments have limited spatial resolution — use 2+ nodes or add a Cognitum Seed for best results
Camera-free pose accuracy is limited (PCK@20 ≈ 2.5% with proxy labels) — camera ground-truth training targets 35%+ PCK@20; the pipeline is implemented, but the data-collection and evaluation phases (ADR-079 P7–P9) are still pending.
For TikTok · Instagram · YouTube creators — earn 25% on every Cognitum sale you refer. The RuFlo, RuView, and RuVector videos you're already making have done millions of views; get paid for the orders they drive. Click-tracking activates instantly; commissions activate after a quick manual review (usually under 24 hours).