feat: RuvSense Multistatic Sensing + Persistent Field Model + RuView Fusion (ADR-029/030/031) #76
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?
See Through Walls Better — With $48 Worth of ESP32s
WiFi-DensePose already tracks people through walls using a single receiver. But one viewpoint has blind spots — limbs behind the torso are invisible, depth is ambiguous, and two people at the same range merge into one signal. Physics, not software, is the bottleneck.
RuvSense fixes the physics. Four ESP32-S3 nodes ($12 each) arranged around a room provide 12 TX-RX measurement links covering 360 degrees. Each node hops across WiFi channels 1/6/11, tripling effective bandwidth from 20 to 60 MHz. An attention-weighted fusion layer learns which viewpoints matter most for each body part. The result: production-grade pose tracking that a single receiver physically cannot achieve.
What's New — Three ADRs, One Pipeline
ADR-029: RuvSense Multistatic Sensing Mode
The core pipeline. Turns a bag of ESP32s into a coordinated sensing instrument.
Acceptance test: Two people, 20 Hz, <30mm torso jitter, zero identity swaps for 10 minutes, breathing SNR >10 dB at 3 meters.
ADR-030: Persistent Field Model — 7 Exotic Sensing Tiers
Treats the electromagnetic field as a persistent world model, not a momentary measurement. The room remembers.
Important: These detect biophysical proxies, not diagnoses. "Your gait asymmetry shifted 18% over 14 days" — actionable, not diagnostic. Full evidence chain stored.
ADR-031: RuView Cross-Viewpoint Fusion
Learned attention replaces hand-crafted aggregation.
Implementation Summary
New Rust Modules
Signal crate (
wifi-densepose-signal/src/ruvsense/):mod.rs— Pipeline orchestratormultiband.rs— Multi-band CSI frame fusionphase_align.rs— Cross-channel phase correctionmultistatic.rs— Attention-weighted viewpoint fusioncoherence.rs— Z-score coherence scoringcoherence_gate.rs— Accept/PredictOnly/Reject/Recalibratepose_tracker.rs— 17-keypoint Kalman + re-IDfield_model.rs— Room eigenstructure via SVD + Welfordtomography.rs— RF tomography with ISTA solverlongitudinal.rs— Personal drift detection over daysintention.rs— Pre-movement lead signal detectioncross_room.rs— Cross-room identity continuitygesture.rs— DTW gesture classificationadversarial.rs— Impossible signal detectionRuVector crate (
wifi-densepose-ruvector/src/viewpoint/):attention.rs— Scaled dot-product with geometric biasgeometry.rs— Geometric Diversity Index + Cramer-Rao boundscoherence.rs— Phase phasor coherence gatingfusion.rs— MultistaticArray fusion orchestratorHardware crate:
esp32/tdm.rs— TDM sensing protocol, sync beacons, drift compensationTraining crate:
ruview_metrics.rs— 3-metric acceptance test (Bronze/Silver/Gold)Security Audit Findings
Quick Verification
Related
Security Audit Results
Overall Rating: 8/10 — Strong security posture. Zero
unsafeblocks, all public APIs returnResult, comprehensive input validation.Fixed (commit
5541926e)tomography.rschecked_mul()for grid dimension overflow on 32-bit targetsmultistatic.rsphase_align.rs.get()bounds check on index accessOpen Recommendations
cross_room.rstransition log unboundedPositive Security Patterns
unsafeblocks across all 18 Rust filesthiserrorderive on all error types (nounwrap()on public paths)max_rooms,max_entries,max_events,window_size1e-6) prevent division-by-zero in coherence.clamp()on all output scores prevents NaN/Inf propagationESP_ERROR_CHECK,strncpy+ null termination, NVS bounds validationADR-032: Multistatic Mesh Security Hardening
Created ADR-032 to address all open security findings from the security audit:
Findings Addressed
Status
docs/adr/ADR-032-multistatic-mesh-security-hardening.md