Release: Rust Sensing Server v0.1.0 — Full DensePose-Compatible API #41
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?
Rust Sensing Server v0.1.0 - WiFi-DensePose
Introduction
This release replaces the entire Python backend stack (FastAPI HTTP server + WebSocket server + mock server, ~2.7GB of Python dependencies) with a single 2.1MB Rust binary (
sensing-server.exe). The server provides full DensePose-compatible API endpoints, dual WebSocket streams, WiFi-derived pose estimation with 17 COCO keypoints, and static UI file serving - all from one process.The Rust server integrates the RuVector signal processing pipeline (5 crates) and supports three data sources: ESP32 CSI hardware, Windows WiFi RSSI, and simulation mode with automatic detection at startup.
Capabilities
Single Binary, Full Stack
/api/v1/stream/pose) - real-time pose data/ws/sensing) - raw CSI sensing updates/ui/*) - serves the entire web UIREST Endpoints
GET /health/liveGET /health/readyGET /health/versionGET /health/healthGET /health/metricsGET /api/v1/infoGET /api/v1/pose/currentGET /api/v1/pose/statsGET /api/v1/pose/zones/summaryGET /api/v1/stream/statusWiFi-Derived Pose Estimation
{x, y, width, height}(UI-compatible format)Data Sources (Auto-Detected)
Test Results
REST API (7/7 PASS)
WebSocket Streams (2/2 PASS)
ESP32 Hardware Test
Compilation
Instructions
Build
Run
Access UI
Open http://localhost:8080/ui/index.html
Items Left To Do
High Priority
Medium Priority
Low Priority
PR
https://github.com/ruvnet/wifi-densepose/pull/40
Status Update: ADR-022 Multi-BSSID Pipeline Integration
Several items from this release checklist are being addressed by the ADR-022 Windows WiFi Enhanced Fidelity work (branch:
feat/windows-wifi-enhanced-fidelity):Completed (Issue #46)
wifi-densepose-wifiscancrate (125 tests, ~12M frames/sec release). Stages: predictive gating, attention weighting, spatial correlation, motion estimation, breathing extraction, quality gate, fingerprint matching, orchestration.wifi-densepose-vitalscrate scaffold in progress.In Progress (Phase 3 swarm active)
WindowsWifiPipelineinto sensing serverWlanApiScannerstub for 10-20 Hz scan rateswifi-densepose-vitalscrate (ADR-021)Architecture
The new
wifi-densepose-wifiscancrate adds multi-BSSID spatial diversity to the Windows WiFi path:netsh wlan show interfaces→ pseudo-1-subcarrier framenetsh wlan show networks mode=bssid→ multi-AP pseudo-CSI frame → 8-stage signal intelligence pipeline → motion level, breathing rate, posture, quality verdictSee #46 for full capability matrix.
Post-v0.1.0 Update: Major Capabilities Added
Since the v0.1.0 release, the sensing server has grown significantly. Here's what's new:
Vital Sign Detection (ADR-021)
The server now extracts breathing rate (6–30 BPM) and heart rate (48–120 BPM) from WiFi CSI in real time:
GET /api/v1/vital-signsvital_signsfield in every broadcastFull DensePose Training Pipeline (ADR-023)
6 new modules implementing the complete CSI-to-pose neural network pipeline:
New CLI Flags
New REST Endpoints
Test Coverage
229 tests passing (up from 66 at v0.1.0), covering all 8 modules. Zero external ML dependencies — everything is pure Rust.
— Ruflo AI
Checklist Update — Phase 3 Complete
Updating the remaining items from the v0.1.0 checklist:
Now Complete
wifi-densepose-wifiscan(138 tests, 0 clippy warnings)wifi-densepose-vitalscrate: IIR bandpass + zero-crossing for breathing (0.1-0.5 Hz), autocorrelation + phase coherence for heart rate (0.8-2.0 Hz). 53 tests.Optimization Pass
All new code (
wifi-densepose-wifiscan,wifi-densepose-vitals) passes clippy pedantic with 0 warnings. Fixes applied:f64::midpoint(),strip_suffixidiom,RangeInclusive::contains, redundant closures, iterator patterns.Architecture Summary
The server now has two signal paths:
netsh→BssidRegistry→WindowsWifiPipeline(8 stages) → motion/breathing/posture/qualityCsiVitalPreprocessor→BreathingExtractor+HeartRateExtractor→ vital signs with anomaly detectionBoth paths feed the same
SensingUpdateWebSocket broadcast with backward-compatible optional fields.