Detect a human in a room using nothing but WiFi. Your body scatters radio waves like ripples in water — WiFiVision reads those ripples from Channel State Information (CSI). No camera, works in the dark.
🧪 Browser simulation. This runs a physics-plausible model of CSI subcarrier amplitudes in your browser — no hardware needed. On the real $10 build, an ESP32 streams live CSI at ~100 Hz and the same detection logic runs on it.
The Room · drag the person
Grab the 🧍 dot and move it between the router and the sensor. Signal disruption peaks when a body crosses the direct path.
WiFi is already everywhere. A router constantly sends packets to a receiver. Each packet reports CSI — how the signal's amplitude and phase changed across ~30 frequency subcarriers on the way over.
Your body is an obstacle. Muscle and water reflect and absorb 2.4/5 GHz radio. Moving through the room reshuffles the multipath, so the CSI amplitudes jump around.
Variance is the signal. An empty room gives a flat, low-variance CSI stream. A person raises variance; motion spikes it further. Even sitting still, your chest rising and falling shows up as a slow ~0.2–0.3 Hz oscillation — that's the breathing readout above.
Cheap and private. An ESP32 ($6) plus a USB power bank streams CSI at ~100 Hz; a few lines of Python threshold the variance. No frames are ever captured, so it works in total darkness and can't leak an image.