Research: Deployment Feasibility & Use Cases #57
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Overview
This issue tracks a research effort to evaluate the deployment feasibility of wifi-densepose and identify practical use cases.
Research Areas
1. Hardware Requirements
2. Deployment Topologies
3. Use Cases (to investigate)
4. Privacy & Regulatory Considerations
5. Integration Points
6. Known Limitations to Document
Deliverables
Related
Closing — created by mistake.
Deployment Feasibility & Use Cases — Deep Research Report
Thanks for the thorough research framework, @bryannwu. I went through every relevant source file, ADR, and test to give you grounded answers with specific code references. This is long — use the section links.
1. Hardware Requirements
What WiFi Hardware Is Actually Supported
CsiFrame(hardware-agnostic)CsiFramenetsh wlan show interfaces)Key distinction: CSI-capable hardware (ESP32, Atheros, Intel 5300) enables pose estimation, vital signs, and through-wall sensing. Commodity WiFi (Windows/macOS) only provides RSSI-based presence detection — significantly less capable. This is a physics limitation, not a software one.
ESP32 details (
wifi-densepose-hardware/src/esp32_parser.rs):0xC5110001Windows multi-BSSID pipeline (
main.rs:467-527):netsh wlan show networks mode=bssidfor multiple visible APsCompute Requirements
Dockerfile.rustmulti-stage buildbreathing.rs:19-22)Bottom line: A Raspberry Pi 4 or any modern laptop can run the sensing server. No GPU needed. The Docker image runs on anything that supports
linux/amd64.Commodity Hardware — What You Actually Get
On a laptop with no special hardware ($0 cost):
With ESP32-S3 nodes (~$8-54 for a 3-6 node mesh):
vital_signs.rs)heartbeat.rs)2. Deployment Topologies
Single-Room (Core Model)
The default deployment. One sensing server, one or more WiFi nodes in a single space.
CLI:
sensing-server --source esp32 --udp-port 5005Or Docker:
docker run -p 3000:3000 ruvnet/wifi-densepose:latestMulti-Room / Multi-AP
Supported through the WiFi-Mat module (
wifi-densepose-matcrate):triangulation.rs:47-285) using log-distance path loss model (indoor path loss exponent = 3.0)triangulation.rs:388-470)triangulation.rs:246-284, max threshold 5.0m)domain/scan_zone.rs)Edge Deployment
RVF model containers (
rvf_container.rs) enable portable edge deployment:Cloud vs Local
The architecture is entirely local-first. I searched every crate — there are zero external API calls, zero cloud dependencies, zero telemetry. All processing happens on the sensing server. Data never leaves the local machine unless a WebSocket client connects. This is by design for privacy.
3. Use Cases — What Is Actually Implemented
Fully Implemented and Testable Today
classifier.py,main.rs:449-456movement.rs:29-31vital_signs.rs,breathing.rsheartbeat.rs:82-96graph_transformer.rs,main.rsfresnel.rs, MAT modulewifi-densepose-matembedding.rs(ADR-024)main.rs:507-527Disaster/SAR Detail (WiFi-Mat)
The
wifi-densepose-matcrate is a complete disaster response system:SurvivorDetected,AlertGenerated,ZoneScanCompletedUse Case Feasibility Matrix
4. Privacy and Regulatory Considerations
What CSI Data Actually Is
CSI is complex-valued I/Q pairs per WiFi subcarrier — raw numbers, not images. From
csi_frame.rs:128-137:These get converted to amplitude (
sqrt(I^2 + Q^2)) and phase (atan2(Q, I)) — still just arrays of floating-point numbers. No camera, no video, no audio, no pixels are ever captured or processed.What Gets Transmitted Over WebSocket
The
SensingUpdatemessage (main.rs:162-201) contains only:All numerical signal measurements. No PII, no biometrics in the legal sense, no images, no audio.
Privacy Advantages Over Alternatives
Regulatory Landscape
WiFi sensing occupies a regulatory gray area:
Local-Only Architecture
All processing is on the local machine. No cloud dependencies in any crate. No external API calls. No telemetry. No analytics. The Docker container runs fully self-contained. Data never leaves the premises unless you explicitly connect a remote WebSocket client.
5. Integration Points
REST API (28 endpoints)
Sensing Server (
main.rsroutes):MAT REST API (
wifi-densepose-mat/src/api/mod.rs):WebSocket Streaming
ws://host:3000/ws/sensingws://host:3000/ws/posews://host/ws/mat/streamData Formats
MQTT / Home Assistant
Not currently implemented. No MQTT client, no Home Assistant integration exists anywhere in the codebase. This is a clear integration gap for smart home deployments and would be a valuable contribution. The REST API and WebSocket streaming provide the data — an MQTT bridge would be straightforward to build.
6. Known Limitations (Honest Assessment)
Physics Constraints
fresnel.rs:88-206heartbeat.rs:133-136vital_signs.rs:28vital_signs.rs:29Sample Rate Limitations
Windows WiFi at 2 Hz is explicitly noted as "insufficient for heartbeat" (
vital_signs.rs:92).Accuracy Caveats
Amplitude-based detection is fragile in dynamic environments (issue #51). The rule-based classifier uses fixed thresholds and works best in enclosed, static rooms. The Rust CSI pipeline mitigates this with Hampel filtering, conjugate multiplication, and dynamic subcarrier partitioning — but has not been validated cross-scene.
Heartbeat is much harder than breathing: 0.5mm vs 10mm chest displacement, significantly lower SNR. Confidence threshold is stricter (0.4 vs 0.3).
Pose estimation requires a trained model. The current
derive_pose_from_sensingfunction generates COCO keypoints from signal-field heuristics, not from trained weights. True pose estimation requires loading a trained RVF model via--model. No pre-trained model is shipped. Training requires the MM-Fi dataset and compute time.No cross-scene validation data exists yet. The system has 229+ unit tests and deterministic proof bundles, but no published metrics comparing accuracy across different rooms, AP placements, or subjects.
What Is Not Yet Built
Deliverables Checklist
Per your requested deliverables:
Recommended Next Steps
For someone looking to deploy this:
docker run -p 3000:3000 ruvnet/wifi-densepose:latest— see the UI, hit the REST API, verify the signal processing chain worksHappy to discuss any specific area in more depth.
-- ruFlo AI