Adithya Raj— field recordings rec · kerala, in

plate i — wifi radio (csi)

ThroughNet

Camera-free human sensing from ordinary WiFi.

signal
wifi radio (csi)esp32-s3 fleet
instrument
rustone binary, embedded ui
role
everything: firmware to UI
stack
rust + c (esp32-s3)
year
2026

builds on RuView / WiFi-DensePose (MIT, © ruvnet) — attribution in NOTICE.

↔

presence — breathing · 15 bpm

drag across the room · the wall doesn’t matter

fig. i a room in five layers. the tx beacons; the wall doesn't matter.

i. problem

Rooms are hard to watch without watching. Cameras see too much, wearables get taken off, and new sensors mean new wiring. The question worth asking: can a pair of $9 radios tell you someone is there, moving, breathing — through a wall?

ii. signal

A person moving through a room perturbs the WiFi around them. Channel State Information describes exactly how a signal warped in flight. One ESP32-S3 becomes a quiet illuminator — a fixed-rate beacon, capturing nothing — while radio-silent receivers locked to its MAC measure how that beacon bends. Presence and motion live in one frequency band; breathing hides in the band the motion detector rejects (0.15–0.5 Hz).

iii. build

The whole product is one self-contained Rust binary: it flashes boards over USB, provisions WiFi and roles, ingests CSI over the LAN, fuses every receiver link with staleness-aware weighting, and serves its own web UI. First run is a wizard — prepare, flash, connect, place, calibrate — and after that you get a live diorama of the room, fleet management with OTA A/B firmware updates, and a server log you can tail from the browser. 149 architecture decision records document the road.

iv. proof

On a live three-board fleet: 0% false positives in an empty room, 100% presence detection in under 10 seconds, motion classification at 100%, and breathing estimated to ±0 BPM against a paced 15 BPM run. Honest scope: one fleet, one room, measured — second-room validation is still pending, and it says so in the README.

0%false positives
100%detection
<10slatency
±0bpm error