π RuView
See through walls with WiFi
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
--mqttflag. 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. Seedocs/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
- Activity recognition — walking, sitting, gestures, falls — from temporal CSI patterns
- 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.
What How Speed / scale 🫁 Breathing rate Bandpass 0.1–0.5 Hz on wrapped phase, circular variance, zero-crossing BPM (#593) 6–30 BPM, real-time 💓 Heart rate Bandpass 0.8–2.0 Hz, zero-crossing BPM 40–120 BPM, real-time 👤 Presence detection 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-estimationCog v0.0.1 — signed aarch64 + x86_64 binaries on GCS, loadspose_v1.safetensorsvia 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-posehits 82.69% torso-PCK@20 (ensemble 83.59%), beating MultiFormer (72.25%) and CSI2Pose (68.41%) on the matched MM-Firandom_splitprotocol — self-corrected and auditable on AetherArena8.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-matchingReal-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 84 s/epoch retrain on M4 Pro 📷 Camera-supervised fine-tune MediaPipe + ESP32 CSI paired training, end-to-end Candle pipeline on RTX 5080 (ADR-079) 2.1 s for 400 epochs (~5 ms/epoch) 📡 Multi-frequency mesh Channel hopping across 6 bands, TDM slot scheduling (ADR-029) 3× sensing bandwidth 🌐 3D point cloud fusion Camera depth (MiDaS) + WiFi CSI + mmWave radar → unified spatial model 22 ms pipeline · 19K+ points/frame Browse the full 105-module catalog (with practical descriptions, sizes, and difficulty) below in 🧩 Edge Module Catalog, or visit seed.cognitum.one/store.
🤗 Pretrained weights: download from
ruvnet/wifi-densepose-pretrained— see Loading the pretrained model below for one-command setup.
# 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.
Hardware options for live CSI capture:
Option Hardware Cost Full CSI Capabilities ESP32 + Cognitum Seed (recommended) ESP32-S3 + Cognitum Seed ~$140 Yes Presence, motion, breathing, heart rate, fall detection, multi-person counting, 17-keypoint pose (signed Cog binary), 105-cog catalog, persistent vector store, kNN search, witness chain, MCP proxy ESP32 Mesh 3-6× ESP32-S3 + WiFi router ~$54 Yes Same capabilities as above without the persistent-memory features ESP32-C6 research node (ADR-110, witness, reviewer guide, firmware v0.7.0) ESP32-C6-DevKit ($6–10) ~$10 Yes (Wi-Fi 6 capable) 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
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 MixamoX 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.
Results & proof
| What | Where | Numbers |
|---|---|---|
| MM-Fi pose model (SOTA) | ruvnet/wifi-densepose-mmfi-pose |
82.69% torso-PCK@20 (single) · 83.59% (ensemble+TTA) · 75K-param micro variant 74.30% |
| AetherArena benchmark Space | ruvnet/aether-arena |
self-correcting, auditable MM-Fi leaderboard |
| Full MM-Fi study (honest picture) | docs/benchmarks/mmfi-wifi-sensing-study.md |
pose + action; zero-shot cross-subject ~64%, +~30 s in-room calibration → 72.2% |
| Efficiency frontier | docs/benchmarks/wifi-pose-efficiency-frontier.md |
SOTA-beating WiFi pose in a 20 KB int4 edge model |
| Pretrained encoder | ruvnet/wifi-densepose-pretrained |
82.3% held-out temporal-triplet, 8 KB int4 |
| Reproducible proof (Trust Kill Switch) | archive/v1/data/proof/verify.py + expected_features.sha256 |
one-command deterministic pipeline replay (SHA-256 of output vs published hash) |
| Benchmark-proof ADR | ADR-168 | how the numbers are produced and verified |
| Witness attestation | docs/WITNESS-LOG-028.md |
33-row capability attestation matrix with per-claim evidence |
# Reproduce the deterministic pipeline proof yourself (must print VERDICT: PASS):
python archive/v1/data/proof/verify.py
Tracked in #509; see ADR-079 phases P7–P9 for the camera-supervised fine-tune path.
🧩 Edge Module Catalog
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. | 451 KB | Easy |
gunshot-detect |
Saturating peak + exponential decay acoustic detector with optional ruview CSI motion-drop reinforcement. | 451 KB | Easy |
intrusion |
Alerts when an unauthorized person enters a room | 6 KB | Med |
intrusion-detect-ml |
Detect network attacks using machine learning | 14 KB | Hard |
loitering |
Alerts when someone lingers too long in one spot | 3 KB | Easy |
network-firewall |
Block unauthorized network access per cog | 6 KB | Easy |
panic-motion |
Detects sudden panicked or erratic movement | 6 KB | Med |
perimeter-breach |
Guards multiple zones and shows entry direction | 10 KB | Med |
prompt-shield |
Blocks signal replay and injection attacks on the seed | 10 KB | Med |
tailgating |
Catches when someone sneaks in behind a badge holder | 6 KB | Med |
weapon-detect |
Detects concealed metal objects on a person | 8 KB | Hard |
🏢 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 |
temporal-logic |
Enforces safety rules on live event streams | 12 KB | Hard |
time-series-forecast |
Predict sensor trends using historical patterns | 12 KB | Med |
🐝 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
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 |
| Use Case | What It Does | Hardware | Key Metric | Edge Module |
|---|---|---|---|---|
| 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 | Sleep Apnea, Gait Analysis |
| 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 | Respiratory Distress, Cardiac Arrhythmia |
| Emergency room triage | Automated occupancy count + wait-time estimation; detect patient distress (abnormal breathing) in waiting areas | Existing hospital WiFi | Occupancy accuracy >95% | Queue Length, Panic Motion |
| 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 | Customer Flow, Dwell Heatmap |
| 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 | Meeting Room, HVAC Presence |
| Hotel & hospitality | Room occupancy without door sensors, minibar/bathroom usage patterns, energy savings on empty rooms | Existi |
No comments yet
Be the first to share your take.