feat: Multi-BSSID WiFi sensing pipeline (ADR-022 Phase 2) - Complete #46
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?
Summary
Implemented the complete 8-stage Windows WiFi multi-BSSID sensing pipeline as specified in ADR-022. The
wifi-densepose-wifiscancrate transforms multi-AP RSSI data (23+ BSSIDs) into presence, motion, breathing rate, and posture estimates using pure Rust implementations.What was implemented
Phase 1: Domain Model
MultiApFramevalue object with amplitudes, phases, variances, historiesBssidRegistryaggregate root with Welford running statisticsNetshBssidScanneradapter parsingnetsh wlan show networks mode=bssidEnhancedSensingResultwith motion, breathing, posture, quality metricsPhase 2: Signal Intelligence Pipeline (8 stages)
predictive_gateattention_weightercorrelatormotion_estimatorbreathing_extractorquality_gatefingerprint_matcherorchestratorWindowsWifiPipelinedomain servicePhase 3: Integration & Vitals
WindowsWifiPipelinewired into sensing server's Windows WiFi taskSensingUpdatewith 6 new optional fieldsWlanApiScannerwith sync/async interfaces andScanMetricswifi-densepose-vitalscrate with real ESP32 CSI-grade vital sign extractionTest Results
wifi-densepose-wifiscan(0 failures)wifi-densepose-vitals(0 failures)Remaining work
wlanapi.dllFFI for true 10-20 Hz scan ratesRelated ADRs
Branch
feat/windows-wifi-enhanced-fidelityCapability Confirmation - All Verified
All ADR-022 Phase 2 capabilities have been implemented, tested, and validated. Here is the full capability matrix:
Domain Model (Phase 1) - COMPLETE
domain::frame::MultiApFramedomain::registry::BssidRegistrydomain::bssid::BssidObservationdomain::bssid::BandTypedomain::bssid::RadioTypenetsh wlan show networks mode=bssidparseradapter::netsh_scannerdomain::registry::RunningStatsdomain::registry::BssidRegistryport::WlanScanPorttraitSignal Intelligence Pipeline (Phase 2) - COMPLETE
pipeline::predictive_gatepipeline::attention_weighterpipeline::correlatorpipeline::motion_estimatorpipeline::breathing_extractorpipeline::quality_gatepipeline::fingerprint_matcherWindowsWifiPipelinedomain service composes all 7 stages into singleprocess()callpipeline::orchestratorOutput Capabilities
MotionLevelenum (None/Minimal/Moderate/High)f64[0.0, 1.0]f64BPM (when stationary)PostureClassenumf64[0.0, 1.0]Verdict(Permit/Warn/Deny)usizef64(mean correlation)Performance
Architecture Qualities
ruvector-nervous-system,ruqu, etc. when available#[cfg(feature = "pipeline")], compiles without itclippy::pedanticwith 0 warningsADR Status Updates
Branch
feat/windows-wifi-enhanced-fidelityPhase 3 Integration — In Progress
Work has been spawned for Phase 3:
WindowsWifiPipelineinto the sensing server's Windows WiFi task with backward-compatibleSensingUpdateextensionsWlanApiScannerasync stub with upgrade path to nativewlanapi.dllFFIwifi-densepose-vitalsscaffold for ESP32 CSI-grade heart rate + respiratory rate (ADR-021)Phase 2 metrics confirmed:
Cross-Reference: Full Pipeline Now Available
The multi-BSSID sensing pipeline in this issue complements the new DensePose training pipeline that just shipped. Together they cover two data paths:
wifi-densepose-wifiscanwifi-densepose-sensing-serverThe sensing server now includes:
Both pipelines share the RVF container format for model packaging and can be combined for multi-modal sensing (RSSI from many APs + CSI from one AP).
— Ruflo AI
Phase 3 Complete — Optimization Pass
All Phase 3 work is done and optimized:
Clippy Pedantic Clean
wifi-densepose-wifiscan: 0 warnings (pedantic level, all features)wifi-densepose-vitals: 0 warnings (pedantic level)strip_suffixidiom,f64::midpoint(),RangeInclusive::contains, redundant closures, similar variable names, iterator patternsFinal Test Counts
wifi-densepose-wifiscanwifi-densepose-vitalsPhase 3 Deliverables (All Complete)
WindowsWifiPipelinewired intowindows_wifi_taskwith backward-compatibleSensingUpdateextensions (6 new optional fields withskip_serializing_if)WlanApiScannerwith sync/async interfaces,ScanMetrics, andwlan_ffiutilities (freq-to-channel, freq-to-band)wifi-densepose-vitalswith real implementations:CsiVitalPreprocessor(EMA static suppression),BreathingExtractor(IIR bandpass 0.1-0.5 Hz + zero-crossing),HeartRateExtractor(IIR bandpass 0.8-2.0 Hz + autocorrelation + phase coherence),VitalAnomalyDetector(Welford + z-score + clinical thresholds),VitalSignStore(ring buffer with stats)Remaining
wlanapi.dllFFI for true 10-20 Hz scan rates