rusty_esp_sense Is a Pure Rust Alternative to a Camera
rusty_esp_sense is a pure Rust alternative to a camera for room presence: Wi-Fi channel state, a model fitted in that room, and no image captured.

Is rusty_esp_sense a pure Rust alternative to a camera?
For occupancy, yes. rusty_esp_sense is a pure Rust alternative to a camera when the question is whether a room is empty. It reads Wi-Fi channel state, not pixels. It runs on the home computer, not on the ESP32. It is benchmarked on a public dataset and has not yet run against a live Janus device.
Related reading
Builder field note
rusty_esp_sense: Wi-Fi Presence Sensing Without a CameraAPIs, composition, and home deployment for rusty_esp_sense: Wi-Fi Presence Sensing Without a Camera live on the field note.
rusty_esp_sense is a pure Rust alternative to a camera for one question: is someone in this room. A camera is the market standard for that question, and it answers by taking a picture. This program answers from Wi-Fi channel state, the way a body changes a radio path, and it stores no image. This page is the comparison. The builder field note on rusty_esp_sense is the model record. It belongs to the Sense vision.
What a camera costs when all you wanted was occupancy
A camera in a hallway sees faces, mail, and whatever the lens can resolve. Presence is one bit. The rest of the picture is data you then have to secure, retain, and explain. A pure Rust alternative to a camera is worth it only when that bit is the product.
Channel state, not pixels
The ESP32 streams the raw channel state of Wi-Fi frames it hears. A person moving changes the channel. rusty_esp_sense turns the stream into empty or occupied, with experimental fall and night readings that are not claims. The on-chip detector lives in rusty_esp_signal. This program runs downstream, on the home computer, so a model can be recalibrated without reflashing. The stream is about 7 KB/s at 50 Hz.
Why the number is someone else's bench
On 100 captures from two ESP32-C6 boards in a public dataset, with every capture held out of its own calibration, the score was 99.4 percent balanced against the on-chip detector's 80.0 percent. A pure Rust alternative to a camera that quoted those figures as "your hallway" would be lying. They are not a Janus device, and our own room recording has not been made.
How a room gets its own model
Record a few one-minute captures of the empty room and of someone walking. Fit a model of about 17 KB. Calibrate while normal traffic is running, because a pattern the model never saw can look like a person. The fit is a file on the home computer, not a firmware image.
What is explicitly not a safety device
A fall detector and a night-epoch reader exist in the code. No real fall has been recorded. No breath was accepted in the test data. No fall detection rate and no sleep result are claimed. If you need a fall alarm, this is not it. The honest status is the feature.
What the device underneath still is
The ESP32 that sources the stream is a Janus device with its own identity, rusty_esp_mid, not an anonymous dongle. The radio application layer is the pure Rust alternative to Arduino radio sketches. A pure Rust alternative to a camera still needs a radio you trust, because the bit is only as trustworthy as the device that sent the channel state.
Where a camera still wins
Keep a camera when you need to see a face, a package, or a porch. Occupancy from Wi-Fi will not show you who it was. A pure Rust alternative to a camera is the wrong tool for a doorbell.
Honest limits
- No live Janus device has fed this model yet.
- Fall and night readings are early and must not be used for safety.
- The ESP32's own detector, quoted in the radio field note, is a different number from the 99.4 percent above. Do not mix them.
A camera answers "who." Channel state answers "whether." If the hallway only needs the second question, a lens is extra liability: retention, a window someone can point at a neighbour, a vendor app that wants the clip. A pure Rust alternative to a camera is aimed at that hallway. It is a bad fit for a door where you must recognise a face. Calibrate in the room you care about, with the traffic you actually have, and treat the public dataset as a reason to try, not as a certificate. A pure Rust alternative to a camera that skipped calibration would be a motion light with worse manners. A pure Rust alternative to a camera still depends on a radio device you can name, which is why identity sits underneath the stream. A pure Rust alternative to a camera is not a medical device, and the fall code does not change that. Treat the experimental readers as code that exists, not as a promise a family should rely on overnight.
Where to start
Read a smart home without the cloud for why the stream stays on the LAN, choose a board that can source channel state, and use the Learn index. Flash the device with espino when the radio firmware is the one you want.
The project is part of Remade With Rust, backed by MATA. When a dataset note needs to become a retrieval corpus, the same house runs RAG Converter.
FAQ
Quick answers for builders evaluating this technology.
Does this pure Rust alternative to a camera record video?
No. It reads how a Wi-Fi signal changes as it crosses the room. A person moving changes the channel. No image and no sound are captured.
Where does rusty_esp_sense run?
On the home computer or any LAN box. The ESP32 keeps a fixed-point detector in rusty_esp_signal and streams raw channel state, about 7 KB/s at 50 Hz. The model can be refit without reflashing the device.
How accurate is the public-dataset number?
On 100 captures from two ESP32-C6 boards, with every capture held out of its own calibration, it scored 99.4 percent balanced against the on-chip detector's 80.0 percent. Those boards were not Janus devices in your home.
Can it detect falls or sleep?
There is a fall detector and a night-epoch reader. No real fall has been recorded, and no breath was accepted in the test data. No fall rate and no sleep result are claimed. Do not use either for safety.
How do I calibrate a room?
Record a few one-minute captures of the empty room and of someone walking, then fit a model file of about 17 KB. Calibrate with your normal network traffic running. Traffic the model never saw can cause false alarms.