Ruview/v2/crates
2026-08-19 13:23:29 -04:00
..
cog-ha-matter harden(cog-ha-matter crypto): domain-separate witness signing + verify_strict (signing chain otherwise sound — P2 crypto core verified) (#1080) 2026-06-14 19:04:09 -04:00
cog-person-count bench(cogs): steady-state CPU infer latency benches (ADR-163 T2) 2026-06-12 08:01:50 -04:00
cog-pose-estimation feat: add physics-constrained pose refinement 2026-08-15 14:29:07 -04:00
homecore feat(homecore): complete migration and startup restore 2026-07-27 14:14:56 -04:00
homecore-api fix(homecore): review findings from PR #1451 — HAP secret redaction, REST cap, event_type, migration --force (#1452) 2026-07-27 17:01:25 -07:00
homecore-assist feat(homecore): add API compatibility and voice protocols 2026-07-27 13:59:36 -04:00
homecore-automation fix(homecore): harden runtime and publish truthful capabilities (#1450) 2026-07-27 10:41:43 -07:00
homecore-hap fix(homecore): review findings from PR #1451 — HAP secret redaction, REST cap, event_type, migration --force (#1452) 2026-07-27 17:01:25 -07:00
homecore-migrate fix(homecore): review findings from PR #1451 — HAP secret redaction, REST cap, event_type, migration --force (#1452) 2026-07-27 17:01:25 -07:00
homecore-plugin-example HOMECORE: native Rust/WASM/TS port of Home Assistant — ADRs 125-134 implementation (#800) 2026-05-25 22:47:48 -04:00
homecore-plugins fix(homecore-plugins): use patched Wasmtime runtime 2026-07-27 15:23:33 -04:00
homecore-recorder fix(homecore-api): bound multi-entity history responses 2026-07-27 14:47:04 -04:00
homecore-server fix(homecore-server): provision stable HAP identity securely 2026-07-27 15:08:52 -04:00
nvsim security(nvsim): guard degenerate input — config panic + NaN silent-corruption + ADR-177 (#1098) 2026-06-15 10:55:04 -04:00
nvsim-server security: repair scanning and close stale alert sources 2026-08-02 15:22:13 -04:00
ruv-neural@c9638faaf8 chore(deps): bump ruv-neural submodule — ColorMap no_std for ESP32 (#1126) 2026-06-17 20:18:35 -04:00
ruview-active Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-attest Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-auth feat: add governed Cognitum Spaces activation (#1631) 2026-08-18 15:21:48 -04:00
ruview-certify fix: issue triage batch (#1521-1557) + wire the certificate spine together 2026-08-11 19:08:54 -04:00
ruview-cognitum-spaces feat(spaces): add spatial memory and governed actions (#1650) 2026-08-19 13:23:29 -04:00
ruview-counterfactual Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-evidence Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-fusion Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-groundtruth Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-hal Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-infogain Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-memory Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-offaxis feat(offaxis): clean-room Kooima off-axis projection in Rust/WASM (ADR-324) 2026-08-16 23:52:43 +00:00
ruview-ontology Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-ood Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-placement Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-policy feat(spaces): add spatial memory and governed actions (#1650) 2026-08-19 13:23:29 -04:00
ruview-scorecard Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-spatial-memory feat(spaces): add spatial memory and governed actions (#1650) 2026-08-19 13:23:29 -04:00
ruview-swarm@267aba5be2 chore: bump ruv-drone + worldgraph submodules (LICENSE + CI polish) 2026-06-16 14:43:10 -04:00
ruview-track Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-twin Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
ruview-unified feat(ruview-unified): Unified RF spatial world model — ADR-273..282 (#1437) 2026-07-26 14:37:56 -07:00
ruview-witness Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
wifi-densepose-aether test(python): close the three parity-review findings (native anchor in CI, NaN, cosine) 2026-07-24 12:29:23 +02:00
wifi-densepose-bfld Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
wifi-densepose-calibration Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
wifi-densepose-cli feat(spaces): add spatial memory and governed actions (#1650) 2026-08-19 13:23:29 -04:00
wifi-densepose-core feat: add physics-constrained pose refinement 2026-08-15 14:29:07 -04:00
wifi-densepose-desktop fix: remediate vitals, desktop, and repository integrity issues (#1618) 2026-08-15 20:09:43 -04:00
wifi-densepose-engine chore: bump wifi-densepose-engine 0.3.1, wifi-densepose-sensing-server 0.3.4 2026-07-14 12:12:48 -04:00
wifi-densepose-hardware chore: version-bump and republish 10 of 12 documented crates to crates.io (#1439) 2026-07-26 15:44:24 -07:00
wifi-densepose-mat Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
wifi-densepose-nn chore: version-bump and republish 10 of 12 documented crates to crates.io (#1439) 2026-07-26 15:44:24 -07:00
wifi-densepose-occworld-candle security(occworld-candle): int32-checkpoint crash + degenerate-input guards + ADR-179 (closes Milestone #9) (#1101) 2026-06-15 12:35:29 -04:00
wifi-densepose-physics feat: add physics-constrained pose refinement 2026-08-15 14:29:07 -04:00
wifi-densepose-pointcloud fix: crates.io publish-blocking manifest gaps (pointcloud license, nvsim-server version req) 2026-07-31 00:14:31 -04:00
wifi-densepose-privshield docs(privshield): rebrand project to "WiFi Veil" 2026-08-09 16:52:40 +00:00
wifi-densepose-rufield chore(publish): version rufield deps + bump worldgraph/rufield submodules (#1334) 2026-07-14 13:18:43 -04:00
wifi-densepose-ruvector chore: version-bump and republish 10 of 12 documented crates to crates.io (#1439) 2026-07-26 15:44:24 -07:00
wifi-densepose-sar fix: renumber wifi-densepose-sar's ADR from 283 to 287 (number collision) 2026-07-31 00:34:35 -04:00
wifi-densepose-sensing-server feat: add physics-constrained pose refinement 2026-08-15 14:29:07 -04:00
wifi-densepose-signal chore: version-bump and republish 10 of 12 documented crates to crates.io (#1439) 2026-07-26 15:44:24 -07:00
wifi-densepose-train Merge remote-tracking branch 'origin/main' into resolve-1579-conflict 2026-08-11 13:04:00 -04:00
wifi-densepose-vitals fix: remediate vitals, desktop, and repository integrity issues (#1618) 2026-08-15 20:09:43 -04:00
wifi-densepose-wasm fix(security): audit — fix RUSTSEC vulns, clippy warnings, dead code (#769) 2026-05-23 05:36:13 -04:00
wifi-densepose-wasm-edge fix(wasm-edge): sanitize non-finite host floats at the WASM↔host frame boundary (#1102) 2026-06-15 13:06:46 -04:00
wifi-densepose-wifiscan chore: version-bump and republish 10 of 12 documented crates to crates.io (#1439) 2026-07-26 15:44:24 -07:00
worldgraph@4441bc07b5 chore(publish): version rufield deps + bump worldgraph/rufield submodules (#1334) 2026-07-14 13:18:43 -04:00
README.md chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00

WiFi-DensePose Rust Crates

License: MIT OR Apache-2.0 Rust 1.85+ Workspace RuVector v2.0.4 Tests

See through walls with WiFi. No cameras. No wearables. Just radio waves.

A modular Rust workspace for WiFi-based human pose estimation, vital sign monitoring, and disaster response using Channel State Information (CSI). Built on RuVector graph algorithms and the WiFi-DensePose research platform by rUv.


Performance

Operation Python v1 Rust v2 Speedup
CSI Preprocessing ~5 ms 5.19 us ~1000x
Phase Sanitization ~3 ms 3.84 us ~780x
Feature Extraction ~8 ms 9.03 us ~890x
Motion Detection ~1 ms 186 ns ~5400x
Full Pipeline ~15 ms 18.47 us ~810x
Vital Signs N/A 86 us (11,665 fps) --

Crate Overview

Core Foundation

Crate Description crates.io
wifi-densepose-core Types, traits, and utilities (CsiFrame, PoseEstimate, SignalProcessor) crates.io
wifi-densepose-config Configuration management (env, TOML, YAML) crates.io
wifi-densepose-db Database persistence (PostgreSQL, SQLite, Redis) crates.io

Signal Processing & Sensing

Crate Description RuVector Integration crates.io
wifi-densepose-signal SOTA CSI signal processing (6 algorithms from SpotFi, FarSense, Widar 3.0) ruvector-mincut, ruvector-attn-mincut, ruvector-attention, ruvector-solver crates.io
wifi-densepose-vitals Vital sign extraction: breathing (6-30 BPM) and heart rate (40-120 BPM) -- crates.io
wifi-densepose-wifiscan Multi-BSSID WiFi scanning for Windows-enhanced sensing -- crates.io

Neural Network & Training

Crate Description RuVector Integration crates.io
wifi-densepose-nn Multi-backend inference (ONNX, PyTorch, Candle) with DensePose head (24 body parts) -- crates.io
wifi-densepose-train Training pipeline with MM-Fi dataset, 114->56 subcarrier interpolation All 5 crates crates.io

Disaster Response

Crate Description RuVector Integration crates.io
wifi-densepose-mat Mass Casualty Assessment Tool -- survivor detection, triage, multi-AP localization ruvector-solver, ruvector-temporal-tensor crates.io

Hardware & Deployment

Crate Description crates.io
wifi-densepose-hardware ESP32, Intel 5300, Atheros CSI sensor interfaces (pure Rust, no FFI) crates.io
wifi-densepose-wasm WebAssembly bindings for browser-based disaster dashboard crates.io
wifi-densepose-sensing-server Axum server: ESP32 UDP ingestion, WebSocket broadcast, sensing UI crates.io

Applications

Crate Description crates.io
wifi-densepose-api REST + WebSocket API layer crates.io
wifi-densepose-cli Command-line tool for MAT disaster scanning crates.io

Architecture

                          wifi-densepose-core
                         (types, traits, errors)
                                  |
              +-------------------+-------------------+
              |                   |                   |
    wifi-densepose-signal   wifi-densepose-nn   wifi-densepose-hardware
    (CSI processing)        (inference)         (ESP32, Intel 5300)
    + ruvector-mincut       + ONNX Runtime          |
    + ruvector-attn-mincut  + PyTorch (tch)   wifi-densepose-vitals
    + ruvector-attention    + Candle          (breathing, heart rate)
    + ruvector-solver            |
              |                  |             wifi-densepose-wifiscan
              +--------+---------+            (BSSID scanning)
                       |
          +------------+------------+
          |                         |
  wifi-densepose-train    wifi-densepose-mat
  (training pipeline)     (disaster response)
  + ALL 5 ruvector        + ruvector-solver
                          + ruvector-temporal-tensor
                                |
              +-----------------+-----------------+
              |                 |                 |
    wifi-densepose-api  wifi-densepose-wasm  wifi-densepose-cli
    (REST/WS)           (browser WASM)       (CLI tool)
              |
    wifi-densepose-sensing-server
    (Axum + WebSocket)

RuVector Integration

All RuVector crates at v2.0.4 from crates.io:

RuVector Crate Used In Purpose
ruvector-mincut signal, train Dynamic min-cut for subcarrier selection & person matching
ruvector-attn-mincut signal, train Attention-weighted min-cut for antenna gating & spectrograms
ruvector-temporal-tensor train, mat Tiered temporal compression (4-10x memory reduction)
ruvector-solver signal, train, mat Sparse Neumann solver for interpolation & triangulation
ruvector-attention signal, train Scaled dot-product attention for spatial features & BVP

Signal Processing Algorithms

Six state-of-the-art algorithms implemented in wifi-densepose-signal:

Algorithm Paper Year Module
Conjugate Multiplication SpotFi (SIGCOMM) 2015 csi_ratio.rs
Hampel Filter WiGest 2015 hampel.rs
Fresnel Zone Model FarSense (MobiCom) 2019 fresnel.rs
CSI Spectrogram Standard STFT 2018+ spectrogram.rs
Subcarrier Selection WiDance (MobiCom) 2017 subcarrier_selection.rs
Body Velocity Profile Widar 3.0 (MobiSys) 2019 bvp.rs

Quick Start

As a Library

use wifi_densepose_core::{CsiFrame, CsiMetadata, SignalProcessor};
use wifi_densepose_signal::{CsiProcessor, CsiProcessorConfig};

// Configure the CSI processor
let config = CsiProcessorConfig::default();
let processor = CsiProcessor::new(config);

// Process a CSI frame
let frame = CsiFrame { /* ... */ };
let processed = processor.process(&frame)?;

Vital Sign Monitoring

use wifi_densepose_vitals::{
    CsiVitalPreprocessor, BreathingExtractor, HeartRateExtractor,
    VitalAnomalyDetector,
};

let mut preprocessor = CsiVitalPreprocessor::new(56); // 56 subcarriers
let mut breathing = BreathingExtractor::new(100.0);    // 100 Hz sample rate
let mut heartrate = HeartRateExtractor::new(100.0);

// Feed CSI frames and extract vitals
for frame in csi_stream {
    let residuals = preprocessor.update(&frame.amplitudes);
    if let Some(bpm) = breathing.push_residuals(&residuals) {
        println!("Breathing: {:.1} BPM", bpm);
    }
}

Disaster Response (MAT)

use wifi_densepose_mat::{DisasterResponse, DisasterConfig, DisasterType};

let config = DisasterConfig {
    disaster_type: DisasterType::Earthquake,
    max_scan_zones: 16,
    ..Default::default()
};

let mut responder = DisasterResponse::new(config);
responder.add_scan_zone(zone)?;
responder.start_continuous_scan().await?;

Hardware (ESP32)

use wifi_densepose_hardware::{Esp32CsiParser, CsiFrame};

let parser = Esp32CsiParser::new();
let raw_bytes: &[u8] = /* UDP packet from ESP32 */;
let frame: CsiFrame = parser.parse(raw_bytes)?;
println!("RSSI: {} dBm, {} subcarriers", frame.metadata.rssi, frame.subcarriers.len());

Training

# Check training crate (no GPU needed)
cargo check -p wifi-densepose-train --no-default-features

# Run training with GPU (requires tch/libtorch)
cargo run -p wifi-densepose-train --features tch-backend --bin train -- \
    --config training.toml --dataset /path/to/mmfi

# Verify deterministic training proof
cargo run -p wifi-densepose-train --features tch-backend --bin verify-training

Building

# Clone the repository
git clone https://github.com/ruvnet/wifi-densepose.git
cd wifi-densepose/v2

# Check workspace (no GPU dependencies)
cargo check --workspace --no-default-features

# Run all tests
cargo test --workspace --no-default-features

# Build release
cargo build --release --workspace

Feature Flags

Crate Feature Description
wifi-densepose-nn onnx (default) ONNX Runtime backend
wifi-densepose-nn tch-backend PyTorch (libtorch) backend
wifi-densepose-nn candle-backend Candle (pure Rust) backend
wifi-densepose-nn cuda CUDA GPU acceleration
wifi-densepose-train tch-backend Enable GPU training modules
wifi-densepose-mat ruvector (default) RuVector graph algorithms
wifi-densepose-mat api (default) REST + WebSocket API
wifi-densepose-mat distributed Multi-node coordination
wifi-densepose-mat drone Drone-mounted scanning
wifi-densepose-hardware esp32 ESP32 protocol support
wifi-densepose-hardware intel5300 Intel 5300 CSI Tool
wifi-densepose-hardware linux-wifi Linux commodity WiFi
wifi-densepose-wifiscan wlanapi Windows WLAN API async scanning
wifi-densepose-core serde Serialization support
wifi-densepose-core async Async trait support

Testing

# Unit tests (all crates)
cargo test --workspace --no-default-features

# Signal processing benchmarks
cargo bench -p wifi-densepose-signal

# Training benchmarks
cargo bench -p wifi-densepose-train --no-default-features

# Detection benchmarks
cargo bench -p wifi-densepose-mat

Supported Hardware

Hardware Crate Feature CSI Subcarriers Cost
ESP32-S3 Mesh (3-6 nodes) hardware/esp32 52-56 ~$54
Intel 5300 NIC hardware/intel5300 30 ~$50
Atheros AR9580 hardware/linux-wifi 56 ~$100
Any WiFi (Windows/Linux) wifiscan RSSI-only $0

Architecture Decision Records

Key design decisions documented in docs/adr/:

ADR Title Status
ADR-014 SOTA Signal Processing Accepted
ADR-015 MM-Fi + Wi-Pose Training Datasets Accepted
ADR-016 RuVector Training Pipeline Accepted (Complete)
ADR-017 RuVector Signal + MAT Integration Accepted
ADR-021 Vital Sign Detection Pipeline Accepted
ADR-022 Windows WiFi Enhanced Sensing Accepted
ADR-024 Contrastive CSI Embedding Model Accepted
  • WiFi-DensePose -- Main repository (Python v1 + Rust v2)
  • RuVector -- Graph algorithms for neural networks (5 crates, v2.0.4)
  • rUv -- Creator and maintainer

License

All crates are dual-licensed under MIT OR Apache-2.0.

Copyright (c) 2024 rUv