chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427)

The Rust port lived two directories deep (rust-port/wifi-densepose-rs/)
without any sibling under rust-port/ that warranted the extra level.
Move the whole workspace up to v2/ to match v1/ (Python) at the same
depth and shorten every cd / build command across the repo.

git mv preserves history for all tracked files. 60 files updated for
path references (CI workflows, ADRs, docs, scripts, READMEs, internal
.claude-flow state). Two manual fixes for relative-cd paths in
CLAUDE.md and ADR-043 that became wrong after the depth change
(cd ../.. → cd ..).

Validated:
- cargo check --workspace --no-default-features → clean (after target/
  nuke; the gitignored target/ was carried by the OS rename and had
  hard-coded old paths in build scripts)
- cargo test --workspace --no-default-features → 1,539 passed, 0 failed,
  8 ignored (same totals as pre-rename)
- ESP32-S3 on COM7 → still streaming live CSI (cb #40300, RSSI -64 dBm)

After-merge follow-up: contributors should `rm -rf v2/target` once and
let cargo regenerate from the new path.
This commit is contained in:
rUv
2026-04-25 21:28:13 -04:00
committed by GitHub
parent 2a58fe478b
commit f49c722764
626 changed files with 240 additions and 363 deletions
+3 -3
View File
@@ -79,13 +79,13 @@ jobs:
path: | path: |
~/.cargo/registry ~/.cargo/registry
~/.cargo/git ~/.cargo/git
rust-port/wifi-densepose-rs/target v2/target
key: ${{ runner.os }}-cargo-${{ hashFiles('rust-port/wifi-densepose-rs/Cargo.lock') }} key: ${{ runner.os }}-cargo-${{ hashFiles('v2/Cargo.lock') }}
restore-keys: | restore-keys: |
${{ runner.os }}-cargo- ${{ runner.os }}-cargo-
- name: Run Rust tests - name: Run Rust tests
working-directory: rust-port/wifi-densepose-rs working-directory: v2
run: cargo test --workspace --no-default-features run: cargo test --workspace --no-default-features
# Unit and Integration Tests # Unit and Integration Tests
+10 -10
View File
@@ -40,18 +40,18 @@ jobs:
targets: ${{ matrix.target }} targets: ${{ matrix.target }}
- name: Install frontend dependencies - name: Install frontend dependencies
working-directory: rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop/ui working-directory: v2/crates/wifi-densepose-desktop/ui
run: npm ci run: npm ci
- name: Build frontend - name: Build frontend
working-directory: rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop/ui working-directory: v2/crates/wifi-densepose-desktop/ui
run: npm run build run: npm run build
- name: Install Tauri CLI - name: Install Tauri CLI
run: cargo install tauri-cli --version "^2.0.0" run: cargo install tauri-cli --version "^2.0.0"
- name: Build Tauri app - name: Build Tauri app
working-directory: rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop working-directory: v2/crates/wifi-densepose-desktop
run: cargo tauri build --target ${{ matrix.target }} run: cargo tauri build --target ${{ matrix.target }}
env: env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
@@ -68,14 +68,14 @@ jobs:
- name: Package macOS app - name: Package macOS app
run: | run: |
cd rust-port/wifi-densepose-rs/target/${{ matrix.target }}/release/bundle/macos cd v2/target/${{ matrix.target }}/release/bundle/macos
zip -r "RuView-Desktop-${{ github.event.inputs.version || '0.4.0' }}-macos-${{ steps.arch.outputs.arch }}.zip" "RuView Desktop.app" zip -r "RuView-Desktop-${{ github.event.inputs.version || '0.4.0' }}-macos-${{ steps.arch.outputs.arch }}.zip" "RuView Desktop.app"
- name: Upload macOS artifact - name: Upload macOS artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ruview-macos-${{ steps.arch.outputs.arch }} name: ruview-macos-${{ steps.arch.outputs.arch }}
path: rust-port/wifi-densepose-rs/target/${{ matrix.target }}/release/bundle/macos/*.zip path: v2/target/${{ matrix.target }}/release/bundle/macos/*.zip
build-windows: build-windows:
name: Build Windows name: Build Windows
@@ -93,18 +93,18 @@ jobs:
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
- name: Install frontend dependencies - name: Install frontend dependencies
working-directory: rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop/ui working-directory: v2/crates/wifi-densepose-desktop/ui
run: npm ci run: npm ci
- name: Build frontend - name: Build frontend
working-directory: rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop/ui working-directory: v2/crates/wifi-densepose-desktop/ui
run: npm run build run: npm run build
- name: Install Tauri CLI - name: Install Tauri CLI
run: cargo install tauri-cli --version "^2.0.0" run: cargo install tauri-cli --version "^2.0.0"
- name: Build Tauri app - name: Build Tauri app
working-directory: rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop working-directory: v2/crates/wifi-densepose-desktop
run: cargo tauri build run: cargo tauri build
env: env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
@@ -114,13 +114,13 @@ jobs:
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ruview-windows-msi name: ruview-windows-msi
path: rust-port/wifi-densepose-rs/target/release/bundle/msi/*.msi path: v2/target/release/bundle/msi/*.msi
- name: Upload Windows NSIS artifact - name: Upload Windows NSIS artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ruview-windows-nsis name: ruview-windows-nsis
path: rust-port/wifi-densepose-rs/target/release/bundle/nsis/*.exe path: v2/target/release/bundle/nsis/*.exe
create-release: create-release:
name: Create Release name: Create Release
+8 -8
View File
@@ -3,7 +3,7 @@
## Project: wifi-densepose ## Project: wifi-densepose
WiFi-based human pose estimation using Channel State Information (CSI). WiFi-based human pose estimation using Channel State Information (CSI).
Dual codebase: Python v1 (`v1/`) and Rust port (`rust-port/wifi-densepose-rs/`). Dual codebase: Python v1 (`v1/`) and Rust port (`v2/`).
### Key Rust Crates ### Key Rust Crates
| Crate | Description | | Crate | Description |
|-------|-------------| |-------|-------------|
@@ -84,7 +84,7 @@ All 5 ruvector crates integrated in workspace:
### Build & Test Commands (this repo) ### Build & Test Commands (this repo)
```bash ```bash
# Rust — full workspace tests (1,031+ tests, ~2 min) # Rust — full workspace tests (1,031+ tests, ~2 min)
cd rust-port/wifi-densepose-rs cd v2
cargo test --workspace --no-default-features cargo test --workspace --no-default-features
# Rust — single crate check (no GPU needed) # Rust — single crate check (no GPU needed)
@@ -151,11 +151,11 @@ Crates must be published in dependency order:
```bash ```bash
# 1. Rust tests — must be 1,031+ passed, 0 failed # 1. Rust tests — must be 1,031+ passed, 0 failed
cd rust-port/wifi-densepose-rs cd v2
cargo test --workspace --no-default-features cargo test --workspace --no-default-features
# 2. Python proof — must print VERDICT: PASS # 2. Python proof — must print VERDICT: PASS
cd ../.. cd ..
python v1/data/proof/verify.py python v1/data/proof/verify.py
# 3. Generate witness bundle (includes both above + firmware hashes) # 3. Generate witness bundle (includes both above + firmware hashes)
@@ -211,10 +211,10 @@ Active feature branch: `ruvsense-full-implementation` (PR #77)
- NEVER save to root folder — use the directories below - NEVER save to root folder — use the directories below
- `docs/adr/` — Architecture Decision Records (43 ADRs) - `docs/adr/` — Architecture Decision Records (43 ADRs)
- `docs/ddd/` — Domain-Driven Design models - `docs/ddd/` — Domain-Driven Design models
- `rust-port/wifi-densepose-rs/crates/` — Rust workspace crates (15 crates) - `v2/crates/` — Rust workspace crates (15 crates)
- `rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/` — RuvSense multistatic modules (14 files) - `v2/crates/wifi-densepose-signal/src/ruvsense/` — RuvSense multistatic modules (14 files)
- `rust-port/wifi-densepose-rs/crates/wifi-densepose-ruvector/src/viewpoint/` — Cross-viewpoint fusion (5 files) - `v2/crates/wifi-densepose-ruvector/src/viewpoint/` — Cross-viewpoint fusion (5 files)
- `rust-port/wifi-densepose-rs/crates/wifi-densepose-hardware/src/esp32/` — ESP32 TDM protocol - `v2/crates/wifi-densepose-hardware/src/esp32/` — ESP32 TDM protocol
- `firmware/esp32-csi-node/main/` — ESP32 C firmware (channel hopping, NVS config, TDM) - `firmware/esp32-csi-node/main/` — ESP32 C firmware (channel hopping, NVS config, TDM)
- `v1/src/` — Python source (core, hardware, services, api) - `v1/src/` — Python source (core, hardware, services, api)
- `v1/data/proof/` — Deterministic CSI proof bundles - `v1/data/proof/` — Deterministic CSI proof bundles
+76 -76
View File
@@ -110,7 +110,7 @@ RuView now generates **real-time 3D point clouds** by fusing camera depth + WiFi
**Quick start:** **Quick start:**
```bash ```bash
cd rust-port/wifi-densepose-rs cd v2
cargo build --release -p wifi-densepose-pointcloud cargo build --release -p wifi-densepose-pointcloud
./target/release/ruview-pointcloud serve --bind 127.0.0.1:9880 ./target/release/ruview-pointcloud serve --bind 127.0.0.1:9880
# Open http://localhost:9880 for live 3D viewer # Open http://localhost:9880 for live 3D viewer
@@ -381,7 +381,7 @@ See [ADR-069](docs/adr/ADR-069-cognitum-seed-csi-pipeline.md), [ADR-071](docs/ad
| [Build Guide](docs/build-guide.md) | Building from source (Rust and Python) | | [Build Guide](docs/build-guide.md) | Building from source (Rust and Python) |
| [Architecture Decisions](docs/adr/README.md) | 79 ADRs — why each technical choice was made, organized by domain (hardware, signal processing, ML, platform, infrastructure) | | [Architecture Decisions](docs/adr/README.md) | 79 ADRs — why each technical choice was made, organized by domain (hardware, signal processing, ML, platform, infrastructure) |
| [Domain Models](docs/ddd/README.md) | 7 DDD models (RuvSense, Signal Processing, Training Pipeline, Hardware Platform, Sensing Server, WiFi-Mat, CHCI) — bounded contexts, aggregates, domain events, and ubiquitous language | | [Domain Models](docs/ddd/README.md) | 7 DDD models (RuvSense, Signal Processing, Training Pipeline, Hardware Platform, Sensing Server, WiFi-Mat, CHCI) — bounded contexts, aggregates, domain events, and ubiquitous language |
| [Desktop App](rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop/README.md) | **WIP** — Tauri v2 desktop app for node management, OTA updates, WASM deployment, and mesh visualization | | [Desktop App](v2/crates/wifi-densepose-desktop/README.md) | **WIP** — Tauri v2 desktop app for node management, OTA updates, WASM deployment, and mesh visualization |
| [Medical Examples](examples/medical/README.md) | Contactless blood pressure, heart rate, breathing rate via 60 GHz mmWave radar — $15 hardware, no wearable | | [Medical Examples](examples/medical/README.md) | Contactless blood pressure, heart rate, breathing rate via 60 GHz mmWave radar — $15 hardware, no wearable |
--- ---
@@ -581,24 +581,24 @@ Small programs that run directly on the ESP32 sensor — no internet needed, no
| ⚛️ | [**Quantum-Inspired**](docs/edge-modules/autonomous.md) | Uses quantum-inspired math to map room-wide signal coherence and search for optimal sensor configurations | | ⚛️ | [**Quantum-Inspired**](docs/edge-modules/autonomous.md) | Uses quantum-inspired math to map room-wide signal coherence and search for optimal sensor configurations |
| 🤖 | [**Autonomous & Exotic**](docs/edge-modules/autonomous.md) | Self-managing sensor mesh — auto-heals dropped nodes, plans its own actions, and explores experimental signal representations | | 🤖 | [**Autonomous & Exotic**](docs/edge-modules/autonomous.md) | Self-managing sensor mesh — auto-heals dropped nodes, plans its own actions, and explores experimental signal representations |
All implemented modules are `no_std` Rust, share a [common utility library](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/vendor_common.rs), and talk to the host through a 12-function API. Full documentation: [**Edge Modules Guide**](docs/edge-modules/README.md). See the [complete implemented module list](#edge-module-list) below. All implemented modules are `no_std` Rust, share a [common utility library](v2/crates/wifi-densepose-wasm-edge/src/vendor_common.rs), and talk to the host through a 12-function API. Full documentation: [**Edge Modules Guide**](docs/edge-modules/README.md). See the [complete implemented module list](#edge-module-list) below.
<details id="edge-module-list"> <details id="edge-module-list">
<summary><strong>🧩 Edge Intelligence — <a href="docs/edge-modules/README.md">All 65 Modules Implemented</a></strong> (ADR-041 complete)</summary> <summary><strong>🧩 Edge Intelligence — <a href="docs/edge-modules/README.md">All 65 Modules Implemented</a></strong> (ADR-041 complete)</summary>
All 60 modules are implemented, tested (609 tests passing), and ready to deploy. They compile to `wasm32-unknown-unknown`, run on ESP32-S3 via WASM3, and share a [common utility library](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/vendor_common.rs). Source: [`crates/wifi-densepose-wasm-edge/src/`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/) All 60 modules are implemented, tested (609 tests passing), and ready to deploy. They compile to `wasm32-unknown-unknown`, run on ESP32-S3 via WASM3, and share a [common utility library](v2/crates/wifi-densepose-wasm-edge/src/vendor_common.rs). Source: [`crates/wifi-densepose-wasm-edge/src/`](v2/crates/wifi-densepose-wasm-edge/src/)
**Core modules** (ADR-040 flagship + early implementations): **Core modules** (ADR-040 flagship + early implementations):
| Module | File | What It Does | | Module | File | What It Does |
|--------|------|-------------| |--------|------|-------------|
| Gesture Classifier | [`gesture.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/gesture.rs) | DTW template matching for hand gestures | | Gesture Classifier | [`gesture.rs`](v2/crates/wifi-densepose-wasm-edge/src/gesture.rs) | DTW template matching for hand gestures |
| Coherence Filter | [`coherence.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/coherence.rs) | Phase coherence gating for signal quality | | Coherence Filter | [`coherence.rs`](v2/crates/wifi-densepose-wasm-edge/src/coherence.rs) | Phase coherence gating for signal quality |
| Adversarial Detector | [`adversarial.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/adversarial.rs) | Detects physically impossible signal patterns | | Adversarial Detector | [`adversarial.rs`](v2/crates/wifi-densepose-wasm-edge/src/adversarial.rs) | Detects physically impossible signal patterns |
| Intrusion Detector | [`intrusion.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/intrusion.rs) | Human vs non-human motion classification | | Intrusion Detector | [`intrusion.rs`](v2/crates/wifi-densepose-wasm-edge/src/intrusion.rs) | Human vs non-human motion classification |
| Occupancy Counter | [`occupancy.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/occupancy.rs) | Zone-level person counting | | Occupancy Counter | [`occupancy.rs`](v2/crates/wifi-densepose-wasm-edge/src/occupancy.rs) | Zone-level person counting |
| Vital Trend | [`vital_trend.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/vital_trend.rs) | Long-term breathing and heart rate trending | | Vital Trend | [`vital_trend.rs`](v2/crates/wifi-densepose-wasm-edge/src/vital_trend.rs) | Long-term breathing and heart rate trending |
| RVF Parser | [`rvf.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/rvf.rs) | RVF container format parsing | | RVF Parser | [`rvf.rs`](v2/crates/wifi-densepose-wasm-edge/src/rvf.rs) | RVF container format parsing |
**Vendor-integrated modules** (24 modules, ADR-041 Category 7): **Vendor-integrated modules** (24 modules, ADR-041 Category 7):
@@ -606,128 +606,128 @@ All 60 modules are implemented, tested (609 tests passing), and ready to deploy.
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| Flash Attention | [`sig_flash_attention.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/sig_flash_attention.rs) | Tiled attention over 8 subcarrier groups — finds spatial focus regions and entropy | S (<5ms) | | Flash Attention | [`sig_flash_attention.rs`](v2/crates/wifi-densepose-wasm-edge/src/sig_flash_attention.rs) | Tiled attention over 8 subcarrier groups — finds spatial focus regions and entropy | S (<5ms) |
| Coherence Gate | [`sig_coherence_gate.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/sig_coherence_gate.rs) | Z-score phasor gating with hysteresis: Accept / PredictOnly / Reject / Recalibrate | L (<2ms) | | Coherence Gate | [`sig_coherence_gate.rs`](v2/crates/wifi-densepose-wasm-edge/src/sig_coherence_gate.rs) | Z-score phasor gating with hysteresis: Accept / PredictOnly / Reject / Recalibrate | L (<2ms) |
| Temporal Compress | [`sig_temporal_compress.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/sig_temporal_compress.rs) | 3-tier adaptive quantization (8-bit hot / 5-bit warm / 3-bit cold) | L (<2ms) | | Temporal Compress | [`sig_temporal_compress.rs`](v2/crates/wifi-densepose-wasm-edge/src/sig_temporal_compress.rs) | 3-tier adaptive quantization (8-bit hot / 5-bit warm / 3-bit cold) | L (<2ms) |
| Sparse Recovery | [`sig_sparse_recovery.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/sig_sparse_recovery.rs) | ISTA L1 reconstruction for dropped subcarriers | H (<10ms) | | Sparse Recovery | [`sig_sparse_recovery.rs`](v2/crates/wifi-densepose-wasm-edge/src/sig_sparse_recovery.rs) | ISTA L1 reconstruction for dropped subcarriers | H (<10ms) |
| Person Match | [`sig_mincut_person_match.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/sig_mincut_person_match.rs) | Hungarian-lite bipartite assignment for multi-person tracking | S (<5ms) | | Person Match | [`sig_mincut_person_match.rs`](v2/crates/wifi-densepose-wasm-edge/src/sig_mincut_person_match.rs) | Hungarian-lite bipartite assignment for multi-person tracking | S (<5ms) |
| Optimal Transport | [`sig_optimal_transport.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/sig_optimal_transport.rs) | Sliced Wasserstein-1 distance with 4 projections | L (<2ms) | | Optimal Transport | [`sig_optimal_transport.rs`](v2/crates/wifi-densepose-wasm-edge/src/sig_optimal_transport.rs) | Sliced Wasserstein-1 distance with 4 projections | L (<2ms) |
**🧠 Adaptive Learning** — On-device learning without cloud connectivity **🧠 Adaptive Learning** — On-device learning without cloud connectivity
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| DTW Gesture Learn | [`lrn_dtw_gesture_learn.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/lrn_dtw_gesture_learn.rs) | User-teachable gesture recognition — 3-rehearsal protocol, 16 templates | S (<5ms) | | DTW Gesture Learn | [`lrn_dtw_gesture_learn.rs`](v2/crates/wifi-densepose-wasm-edge/src/lrn_dtw_gesture_learn.rs) | User-teachable gesture recognition — 3-rehearsal protocol, 16 templates | S (<5ms) |
| Anomaly Attractor | [`lrn_anomaly_attractor.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/lrn_anomaly_attractor.rs) | 4D dynamical system attractor classification with Lyapunov exponents | H (<10ms) | | Anomaly Attractor | [`lrn_anomaly_attractor.rs`](v2/crates/wifi-densepose-wasm-edge/src/lrn_anomaly_attractor.rs) | 4D dynamical system attractor classification with Lyapunov exponents | H (<10ms) |
| Meta Adapt | [`lrn_meta_adapt.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/lrn_meta_adapt.rs) | Hill-climbing self-optimization with safety rollback | L (<2ms) | | Meta Adapt | [`lrn_meta_adapt.rs`](v2/crates/wifi-densepose-wasm-edge/src/lrn_meta_adapt.rs) | Hill-climbing self-optimization with safety rollback | L (<2ms) |
| EWC Lifelong | [`lrn_ewc_lifelong.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/lrn_ewc_lifelong.rs) | Elastic Weight Consolidation — remembers past tasks while learning new ones | S (<5ms) | | EWC Lifelong | [`lrn_ewc_lifelong.rs`](v2/crates/wifi-densepose-wasm-edge/src/lrn_ewc_lifelong.rs) | Elastic Weight Consolidation — remembers past tasks while learning new ones | S (<5ms) |
**🗺️ Spatial Reasoning** — Location, proximity, and influence mapping **🗺️ Spatial Reasoning** — Location, proximity, and influence mapping
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| PageRank Influence | [`spt_pagerank_influence.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/spt_pagerank_influence.rs) | 4x4 cross-correlation graph with power iteration PageRank | L (<2ms) | | PageRank Influence | [`spt_pagerank_influence.rs`](v2/crates/wifi-densepose-wasm-edge/src/spt_pagerank_influence.rs) | 4x4 cross-correlation graph with power iteration PageRank | L (<2ms) |
| Micro HNSW | [`spt_micro_hnsw.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/spt_micro_hnsw.rs) | 64-vector navigable small-world graph for nearest-neighbor search | S (<5ms) | | Micro HNSW | [`spt_micro_hnsw.rs`](v2/crates/wifi-densepose-wasm-edge/src/spt_micro_hnsw.rs) | 64-vector navigable small-world graph for nearest-neighbor search | S (<5ms) |
| Spiking Tracker | [`spt_spiking_tracker.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/spt_spiking_tracker.rs) | 32 LIF neurons + 4 output zone neurons with STDP learning | S (<5ms) | | Spiking Tracker | [`spt_spiking_tracker.rs`](v2/crates/wifi-densepose-wasm-edge/src/spt_spiking_tracker.rs) | 32 LIF neurons + 4 output zone neurons with STDP learning | S (<5ms) |
**⏱️ Temporal Analysis** — Activity patterns, logic verification, autonomous planning **⏱️ Temporal Analysis** — Activity patterns, logic verification, autonomous planning
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| Pattern Sequence | [`tmp_pattern_sequence.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/tmp_pattern_sequence.rs) | Activity routine detection and deviation alerts | S (<5ms) | | Pattern Sequence | [`tmp_pattern_sequence.rs`](v2/crates/wifi-densepose-wasm-edge/src/tmp_pattern_sequence.rs) | Activity routine detection and deviation alerts | S (<5ms) |
| Temporal Logic Guard | [`tmp_temporal_logic_guard.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/tmp_temporal_logic_guard.rs) | LTL formula verification on CSI event streams | S (<5ms) | | Temporal Logic Guard | [`tmp_temporal_logic_guard.rs`](v2/crates/wifi-densepose-wasm-edge/src/tmp_temporal_logic_guard.rs) | LTL formula verification on CSI event streams | S (<5ms) |
| GOAP Autonomy | [`tmp_goap_autonomy.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/tmp_goap_autonomy.rs) | Goal-Oriented Action Planning for autonomous module management | S (<5ms) | | GOAP Autonomy | [`tmp_goap_autonomy.rs`](v2/crates/wifi-densepose-wasm-edge/src/tmp_goap_autonomy.rs) | Goal-Oriented Action Planning for autonomous module management | S (<5ms) |
**🛡️ AI Security** — Tamper detection and behavioral anomaly profiling **🛡️ AI Security** — Tamper detection and behavioral anomaly profiling
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| Prompt Shield | [`ais_prompt_shield.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/ais_prompt_shield.rs) | FNV-1a replay detection, injection detection (10x amplitude), jamming (SNR) | L (<2ms) | | Prompt Shield | [`ais_prompt_shield.rs`](v2/crates/wifi-densepose-wasm-edge/src/ais_prompt_shield.rs) | FNV-1a replay detection, injection detection (10x amplitude), jamming (SNR) | L (<2ms) |
| Behavioral Profiler | [`ais_behavioral_profiler.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/ais_behavioral_profiler.rs) | 6D behavioral profile with Mahalanobis anomaly scoring | S (<5ms) | | Behavioral Profiler | [`ais_behavioral_profiler.rs`](v2/crates/wifi-densepose-wasm-edge/src/ais_behavioral_profiler.rs) | 6D behavioral profile with Mahalanobis anomaly scoring | S (<5ms) |
**⚛️ Quantum-Inspired** — Quantum computing metaphors applied to CSI analysis **⚛️ Quantum-Inspired** — Quantum computing metaphors applied to CSI analysis
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| Quantum Coherence | [`qnt_quantum_coherence.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/qnt_quantum_coherence.rs) | Bloch sphere mapping, Von Neumann entropy, decoherence detection | S (<5ms) | | Quantum Coherence | [`qnt_quantum_coherence.rs`](v2/crates/wifi-densepose-wasm-edge/src/qnt_quantum_coherence.rs) | Bloch sphere mapping, Von Neumann entropy, decoherence detection | S (<5ms) |
| Interference Search | [`qnt_interference_search.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/qnt_interference_search.rs) | 16 room-state hypotheses with Grover-inspired oracle + diffusion | S (<5ms) | | Interference Search | [`qnt_interference_search.rs`](v2/crates/wifi-densepose-wasm-edge/src/qnt_interference_search.rs) | 16 room-state hypotheses with Grover-inspired oracle + diffusion | S (<5ms) |
**🤖 Autonomous Systems** — Self-governing and self-healing behaviors **🤖 Autonomous Systems** — Self-governing and self-healing behaviors
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| Psycho-Symbolic | [`aut_psycho_symbolic.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/aut_psycho_symbolic.rs) | 16-rule forward-chaining knowledge base with contradiction detection | S (<5ms) | | Psycho-Symbolic | [`aut_psycho_symbolic.rs`](v2/crates/wifi-densepose-wasm-edge/src/aut_psycho_symbolic.rs) | 16-rule forward-chaining knowledge base with contradiction detection | S (<5ms) |
| Self-Healing Mesh | [`aut_self_healing_mesh.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/aut_self_healing_mesh.rs) | 8-node mesh with health tracking, degradation/recovery, coverage healing | S (<5ms) | | Self-Healing Mesh | [`aut_self_healing_mesh.rs`](v2/crates/wifi-densepose-wasm-edge/src/aut_self_healing_mesh.rs) | 8-node mesh with health tracking, degradation/recovery, coverage healing | S (<5ms) |
**🔮 Exotic (Vendor)** — Novel mathematical models for CSI interpretation **🔮 Exotic (Vendor)** — Novel mathematical models for CSI interpretation
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| Time Crystal | [`exo_time_crystal.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/exo_time_crystal.rs) | Autocorrelation subharmonic detection in 256-frame history | S (<5ms) | | Time Crystal | [`exo_time_crystal.rs`](v2/crates/wifi-densepose-wasm-edge/src/exo_time_crystal.rs) | Autocorrelation subharmonic detection in 256-frame history | S (<5ms) |
| Hyperbolic Space | [`exo_hyperbolic_space.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/exo_hyperbolic_space.rs) | Poincare ball embedding with 32 reference locations, hyperbolic distance | S (<5ms) | | Hyperbolic Space | [`exo_hyperbolic_space.rs`](v2/crates/wifi-densepose-wasm-edge/src/exo_hyperbolic_space.rs) | Poincare ball embedding with 32 reference locations, hyperbolic distance | S (<5ms) |
**🏥 Medical & Health** (Category 1) — Contactless health monitoring **🏥 Medical & Health** (Category 1) — Contactless health monitoring
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| Sleep Apnea | [`med_sleep_apnea.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/med_sleep_apnea.rs) | Detects breathing pauses during sleep | S (<5ms) | | Sleep Apnea | [`med_sleep_apnea.rs`](v2/crates/wifi-densepose-wasm-edge/src/med_sleep_apnea.rs) | Detects breathing pauses during sleep | S (<5ms) |
| Cardiac Arrhythmia | [`med_cardiac_arrhythmia.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/med_cardiac_arrhythmia.rs) | Monitors heart rate for irregular rhythms | S (<5ms) | | Cardiac Arrhythmia | [`med_cardiac_arrhythmia.rs`](v2/crates/wifi-densepose-wasm-edge/src/med_cardiac_arrhythmia.rs) | Monitors heart rate for irregular rhythms | S (<5ms) |
| Respiratory Distress | [`med_respiratory_distress.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/med_respiratory_distress.rs) | Alerts on abnormal breathing patterns | S (<5ms) | | Respiratory Distress | [`med_respiratory_distress.rs`](v2/crates/wifi-densepose-wasm-edge/src/med_respiratory_distress.rs) | Alerts on abnormal breathing patterns | S (<5ms) |
| Gait Analysis | [`med_gait_analysis.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/med_gait_analysis.rs) | Tracks walking patterns and detects changes | S (<5ms) | | Gait Analysis | [`med_gait_analysis.rs`](v2/crates/wifi-densepose-wasm-edge/src/med_gait_analysis.rs) | Tracks walking patterns and detects changes | S (<5ms) |
| Seizure Detection | [`med_seizure_detect.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/med_seizure_detect.rs) | 6-state machine for tonic-clonic seizure recognition | S (<5ms) | | Seizure Detection | [`med_seizure_detect.rs`](v2/crates/wifi-densepose-wasm-edge/src/med_seizure_detect.rs) | 6-state machine for tonic-clonic seizure recognition | S (<5ms) |
**🔐 Security & Safety** (Category 2) — Perimeter and threat detection **🔐 Security & Safety** (Category 2) — Perimeter and threat detection
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| Perimeter Breach | [`sec_perimeter_breach.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/sec_perimeter_breach.rs) | Detects boundary crossings with approach/departure | S (<5ms) | | Perimeter Breach | [`sec_perimeter_breach.rs`](v2/crates/wifi-densepose-wasm-edge/src/sec_perimeter_breach.rs) | Detects boundary crossings with approach/departure | S (<5ms) |
| Weapon Detection | [`sec_weapon_detect.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/sec_weapon_detect.rs) | Metal anomaly detection via CSI amplitude shifts | S (<5ms) | | Weapon Detection | [`sec_weapon_detect.rs`](v2/crates/wifi-densepose-wasm-edge/src/sec_weapon_detect.rs) | Metal anomaly detection via CSI amplitude shifts | S (<5ms) |
| Tailgating | [`sec_tailgating.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/sec_tailgating.rs) | Detects unauthorized follow-through at access points | S (<5ms) | | Tailgating | [`sec_tailgating.rs`](v2/crates/wifi-densepose-wasm-edge/src/sec_tailgating.rs) | Detects unauthorized follow-through at access points | S (<5ms) |
| Loitering | [`sec_loitering.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/sec_loitering.rs) | Alerts when someone lingers too long in a zone | S (<5ms) | | Loitering | [`sec_loitering.rs`](v2/crates/wifi-densepose-wasm-edge/src/sec_loitering.rs) | Alerts when someone lingers too long in a zone | S (<5ms) |
| Panic Motion | [`sec_panic_motion.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/sec_panic_motion.rs) | Detects fleeing, struggling, or panic movement | S (<5ms) | | Panic Motion | [`sec_panic_motion.rs`](v2/crates/wifi-densepose-wasm-edge/src/sec_panic_motion.rs) | Detects fleeing, struggling, or panic movement | S (<5ms) |
**🏢 Smart Building** (Category 3) — Automation and energy efficiency **🏢 Smart Building** (Category 3) — Automation and energy efficiency
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| HVAC Presence | [`bld_hvac_presence.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/bld_hvac_presence.rs) | Occupancy-driven HVAC control with departure countdown | S (<5ms) | | HVAC Presence | [`bld_hvac_presence.rs`](v2/crates/wifi-densepose-wasm-edge/src/bld_hvac_presence.rs) | Occupancy-driven HVAC control with departure countdown | S (<5ms) |
| Lighting Zones | [`bld_lighting_zones.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/bld_lighting_zones.rs) | Auto-dim/off lighting based on zone activity | S (<5ms) | | Lighting Zones | [`bld_lighting_zones.rs`](v2/crates/wifi-densepose-wasm-edge/src/bld_lighting_zones.rs) | Auto-dim/off lighting based on zone activity | S (<5ms) |
| Elevator Count | [`bld_elevator_count.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/bld_elevator_count.rs) | Counts people entering/leaving with overload warning | S (<5ms) | | Elevator Count | [`bld_elevator_count.rs`](v2/crates/wifi-densepose-wasm-edge/src/bld_elevator_count.rs) | Counts people entering/leaving with overload warning | S (<5ms) |
| Meeting Room | [`bld_meeting_room.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/bld_meeting_room.rs) | Tracks meeting lifecycle: start, headcount, end, availability | S (<5ms) | | Meeting Room | [`bld_meeting_room.rs`](v2/crates/wifi-densepose-wasm-edge/src/bld_meeting_room.rs) | Tracks meeting lifecycle: start, headcount, end, availability | S (<5ms) |
| Energy Audit | [`bld_energy_audit.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/bld_energy_audit.rs) | Tracks after-hours usage and room utilization rates | S (<5ms) | | Energy Audit | [`bld_energy_audit.rs`](v2/crates/wifi-densepose-wasm-edge/src/bld_energy_audit.rs) | Tracks after-hours usage and room utilization rates | S (<5ms) |
**🛒 Retail & Hospitality** (Category 4) — Customer insights without cameras **🛒 Retail & Hospitality** (Category 4) — Customer insights without cameras
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| Queue Length | [`ret_queue_length.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/ret_queue_length.rs) | Estimates queue size and wait times | S (<5ms) | | Queue Length | [`ret_queue_length.rs`](v2/crates/wifi-densepose-wasm-edge/src/ret_queue_length.rs) | Estimates queue size and wait times | S (<5ms) |
| Dwell Heatmap | [`ret_dwell_heatmap.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/ret_dwell_heatmap.rs) | Shows where people spend time (hot/cold zones) | S (<5ms) | | Dwell Heatmap | [`ret_dwell_heatmap.rs`](v2/crates/wifi-densepose-wasm-edge/src/ret_dwell_heatmap.rs) | Shows where people spend time (hot/cold zones) | S (<5ms) |
| Customer Flow | [`ret_customer_flow.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/ret_customer_flow.rs) | Counts ins/outs and tracks net occupancy | S (<5ms) | | Customer Flow | [`ret_customer_flow.rs`](v2/crates/wifi-densepose-wasm-edge/src/ret_customer_flow.rs) | Counts ins/outs and tracks net occupancy | S (<5ms) |
| Table Turnover | [`ret_table_turnover.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/ret_table_turnover.rs) | Restaurant table lifecycle: seated, dining, vacated | S (<5ms) | | Table Turnover | [`ret_table_turnover.rs`](v2/crates/wifi-densepose-wasm-edge/src/ret_table_turnover.rs) | Restaurant table lifecycle: seated, dining, vacated | S (<5ms) |
| Shelf Engagement | [`ret_shelf_engagement.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/ret_shelf_engagement.rs) | Detects browsing, considering, and reaching for products | S (<5ms) | | Shelf Engagement | [`ret_shelf_engagement.rs`](v2/crates/wifi-densepose-wasm-edge/src/ret_shelf_engagement.rs) | Detects browsing, considering, and reaching for products | S (<5ms) |
**🏭 Industrial & Specialized** (Category 5) — Safety and compliance **🏭 Industrial & Specialized** (Category 5) — Safety and compliance
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| Forklift Proximity | [`ind_forklift_proximity.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/ind_forklift_proximity.rs) | Warns when people get too close to vehicles | S (<5ms) | | Forklift Proximity | [`ind_forklift_proximity.rs`](v2/crates/wifi-densepose-wasm-edge/src/ind_forklift_proximity.rs) | Warns when people get too close to vehicles | S (<5ms) |
| Confined Space | [`ind_confined_space.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/ind_confined_space.rs) | OSHA-compliant worker monitoring with extraction alerts | S (<5ms) | | Confined Space | [`ind_confined_space.rs`](v2/crates/wifi-densepose-wasm-edge/src/ind_confined_space.rs) | OSHA-compliant worker monitoring with extraction alerts | S (<5ms) |
| Clean Room | [`ind_clean_room.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/ind_clean_room.rs) | Occupancy limits and turbulent motion detection | S (<5ms) | | Clean Room | [`ind_clean_room.rs`](v2/crates/wifi-densepose-wasm-edge/src/ind_clean_room.rs) | Occupancy limits and turbulent motion detection | S (<5ms) |
| Livestock Monitor | [`ind_livestock_monitor.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/ind_livestock_monitor.rs) | Animal presence, stillness, and escape alerts | S (<5ms) | | Livestock Monitor | [`ind_livestock_monitor.rs`](v2/crates/wifi-densepose-wasm-edge/src/ind_livestock_monitor.rs) | Animal presence, stillness, and escape alerts | S (<5ms) |
| Structural Vibration | [`ind_structural_vibration.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/ind_structural_vibration.rs) | Seismic events, mechanical resonance, structural drift | S (<5ms) | | Structural Vibration | [`ind_structural_vibration.rs`](v2/crates/wifi-densepose-wasm-edge/src/ind_structural_vibration.rs) | Seismic events, mechanical resonance, structural drift | S (<5ms) |
**🔮 Exotic & Research** (Category 6) — Experimental sensing applications **🔮 Exotic & Research** (Category 6) — Experimental sensing applications
| Module | File | What It Does | Budget | | Module | File | What It Does | Budget |
|--------|------|-------------|--------| |--------|------|-------------|--------|
| Dream Stage | [`exo_dream_stage.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/exo_dream_stage.rs) | Contactless sleep stage classification (wake/light/deep/REM) | S (<5ms) | | Dream Stage | [`exo_dream_stage.rs`](v2/crates/wifi-densepose-wasm-edge/src/exo_dream_stage.rs) | Contactless sleep stage classification (wake/light/deep/REM) | S (<5ms) |
| Emotion Detection | [`exo_emotion_detect.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/exo_emotion_detect.rs) | Arousal, stress, and calm detection from micro-movements | S (<5ms) | | Emotion Detection | [`exo_emotion_detect.rs`](v2/crates/wifi-densepose-wasm-edge/src/exo_emotion_detect.rs) | Arousal, stress, and calm detection from micro-movements | S (<5ms) |
| Gesture Language | [`exo_gesture_language.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/exo_gesture_language.rs) | Sign language letter recognition via WiFi | S (<5ms) | | Gesture Language | [`exo_gesture_language.rs`](v2/crates/wifi-densepose-wasm-edge/src/exo_gesture_language.rs) | Sign language letter recognition via WiFi | S (<5ms) |
| Music Conductor | [`exo_music_conductor.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/exo_music_conductor.rs) | Tempo and dynamic tracking from conducting gestures | S (<5ms) | | Music Conductor | [`exo_music_conductor.rs`](v2/crates/wifi-densepose-wasm-edge/src/exo_music_conductor.rs) | Tempo and dynamic tracking from conducting gestures | S (<5ms) |
| Plant Growth | [`exo_plant_growth.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/exo_plant_growth.rs) | Monitors plant growth, circadian rhythms, wilt detection | S (<5ms) | | Plant Growth | [`exo_plant_growth.rs`](v2/crates/wifi-densepose-wasm-edge/src/exo_plant_growth.rs) | Monitors plant growth, circadian rhythms, wilt detection | S (<5ms) |
| Ghost Hunter | [`exo_ghost_hunter.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/exo_ghost_hunter.rs) | Environmental anomaly classification (draft/insect/wind/unknown) | S (<5ms) | | Ghost Hunter | [`exo_ghost_hunter.rs`](v2/crates/wifi-densepose-wasm-edge/src/exo_ghost_hunter.rs) | Environmental anomaly classification (draft/insect/wind/unknown) | S (<5ms) |
| Rain Detection | [`exo_rain_detect.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/exo_rain_detect.rs) | Detects rain onset, intensity, and cessation via signal scatter | S (<5ms) | | Rain Detection | [`exo_rain_detect.rs`](v2/crates/wifi-densepose-wasm-edge/src/exo_rain_detect.rs) | Detects rain onset, intensity, and cessation via signal scatter | S (<5ms) |
| Breathing Sync | [`exo_breathing_sync.rs`](rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/exo_breathing_sync.rs) | Detects synchronized breathing between multiple people | S (<5ms) | | Breathing Sync | [`exo_breathing_sync.rs`](v2/crates/wifi-densepose-wasm-edge/src/exo_breathing_sync.rs) | Detects synchronized breathing between multiple people | S (<5ms) |
</details> </details>
@@ -855,7 +855,7 @@ git clone https://github.com/ruvnet/RuView.git
cd RuView cd RuView
# Rust (primary — 810x faster) # Rust (primary — 810x faster)
cd rust-port/wifi-densepose-rs cd v2
cargo build --release cargo build --release
cargo test --workspace cargo test --workspace
@@ -950,7 +950,7 @@ cargo add wifi-densepose-ruvector # RuVector v2.0.4 integration layer (ADR-017
All crates integrate with [RuVector v2.0.4](https://github.com/ruvnet/ruvector) — see [AI Backbone](#ai-backbone-ruvector) below. All crates integrate with [RuVector v2.0.4](https://github.com/ruvnet/ruvector) — see [AI Backbone](#ai-backbone-ruvector) below.
**[rUv Neural](rust-port/wifi-densepose-rs/crates/ruv-neural/)** — A separate 12-crate workspace for brain network topology analysis, neural decoding, and medical sensing. See [rUv Neural](#ruv-neural) in Models & Training. **[rUv Neural](v2/crates/ruv-neural/)** — A separate 12-crate workspace for brain network topology analysis, neural decoding, and medical sensing. See [rUv Neural](#ruv-neural) in Models & Training.
</details> </details>
@@ -1050,7 +1050,7 @@ The neural pipeline uses a graph transformer with cross-attention to map CSI fea
| [RVF Model Container](#rvf-model-container) | Binary packaging with Ed25519 signing, progressive 3-layer loading, SIMD quantization | [ADR-023](docs/adr/ADR-023-trained-densepose-model-ruvector-pipeline.md) | | [RVF Model Container](#rvf-model-container) | Binary packaging with Ed25519 signing, progressive 3-layer loading, SIMD quantization | [ADR-023](docs/adr/ADR-023-trained-densepose-model-ruvector-pipeline.md) |
| [Training & Fine-Tuning](#training--fine-tuning) | 8-phase pure Rust pipeline (7,832 lines), MM-Fi/Wi-Pose pre-training, 6-term composite loss, SONA LoRA | [ADR-023](docs/adr/ADR-023-trained-densepose-model-ruvector-pipeline.md) | | [Training & Fine-Tuning](#training--fine-tuning) | 8-phase pure Rust pipeline (7,832 lines), MM-Fi/Wi-Pose pre-training, 6-term composite loss, SONA LoRA | [ADR-023](docs/adr/ADR-023-trained-densepose-model-ruvector-pipeline.md) |
| [RuVector Crates](#ruvector-crates) | 11 vendored Rust crates from [ruvector](https://github.com/ruvnet/ruvector): attention, min-cut, solver, GNN, HNSW, temporal compression, sparse inference | [GitHub](https://github.com/ruvnet/ruvector) · [Source](vendor/ruvector/) | | [RuVector Crates](#ruvector-crates) | 11 vendored Rust crates from [ruvector](https://github.com/ruvnet/ruvector): attention, min-cut, solver, GNN, HNSW, temporal compression, sparse inference | [GitHub](https://github.com/ruvnet/ruvector) · [Source](vendor/ruvector/) |
| [rUv Neural](#ruv-neural) | 12-crate brain topology analysis ecosystem: neural decoding, quantum sensor integration, cognitive state classification, BCI output | [README](rust-port/wifi-densepose-rs/crates/ruv-neural/README.md) | | [rUv Neural](#ruv-neural) | 12-crate brain topology analysis ecosystem: neural decoding, quantum sensor integration, cognitive state classification, BCI output | [README](v2/crates/ruv-neural/README.md) |
| [AI Backbone (RuVector)](#ai-backbone-ruvector) | 5 AI capabilities replacing hand-tuned thresholds: attention, graph min-cut, sparse solvers, tiered compression | [crates.io](https://crates.io/crates/wifi-densepose-ruvector) | | [AI Backbone (RuVector)](#ai-backbone-ruvector) | 5 AI capabilities replacing hand-tuned thresholds: attention, graph min-cut, sparse solvers, tiered compression | [crates.io](https://crates.io/crates/wifi-densepose-ruvector) |
| [Self-Learning WiFi AI (ADR-024)](#self-learning-wifi-ai-adr-024) | Contrastive self-supervised learning, room fingerprinting, anomaly detection, 55 KB model | [ADR-024](docs/adr/ADR-024-contrastive-csi-embedding-model.md) | | [Self-Learning WiFi AI (ADR-024)](#self-learning-wifi-ai-adr-024) | Contrastive self-supervised learning, room fingerprinting, anomaly detection, 55 KB model | [ADR-024](docs/adr/ADR-024-contrastive-csi-embedding-model.md) |
| [Cross-Environment Generalization (ADR-027)](docs/adr/ADR-027-cross-environment-domain-generalization.md) | Domain-adversarial training, geometry-conditioned inference, hardware normalization, zero-shot deployment | [ADR-027](docs/adr/ADR-027-cross-environment-domain-generalization.md) | | [Cross-Environment Generalization (ADR-027)](docs/adr/ADR-027-cross-environment-domain-generalization.md) | Domain-adversarial training, geometry-conditioned inference, hardware normalization, zero-shot deployment | [ADR-027](docs/adr/ADR-027-cross-environment-domain-generalization.md) |
@@ -1168,7 +1168,7 @@ Bundle verify: 7/7 checks PASS
**Verify it yourself** (no hardware needed): **Verify it yourself** (no hardware needed):
```bash ```bash
# Run all tests # Run all tests
cd rust-port/wifi-densepose-rs && cargo test --workspace --no-default-features cd v2 && cargo test --workspace --no-default-features
# Run the deterministic proof # Run the deterministic proof
python v1/data/proof/verify.py python v1/data/proof/verify.py
@@ -1484,7 +1484,7 @@ See [firmware/esp32-csi-node/README.md](firmware/esp32-csi-node/README.md), [ADR
| WASM Support | No | Yes | | WASM Support | No | Yes |
```bash ```bash
cd rust-port/wifi-densepose-rs cd v2
cargo build --release cargo build --release
cargo test --workspace cargo test --workspace
cargo bench --package wifi-densepose-signal cargo bench --package wifi-densepose-signal
@@ -1781,7 +1781,7 @@ The full RuVector ecosystem includes 90+ crates. See [github.com/ruvnet/ruvector
<details> <details>
<summary><a id="ruv-neural"></a><strong>🧠 rUv Neural</strong> — Brain topology analysis ecosystem for neural decoding and medical sensing</summary> <summary><a id="ruv-neural"></a><strong>🧠 rUv Neural</strong> — Brain topology analysis ecosystem for neural decoding and medical sensing</summary>
[**rUv Neural**](rust-port/wifi-densepose-rs/crates/ruv-neural/README.md) is a 12-crate Rust ecosystem that extends RuView's signal processing into brain network topology analysis. It transforms neural magnetic field measurements from quantum sensors (NV diamond magnetometers, optically pumped magnetometers) into dynamic connectivity graphs, using minimum cut algorithms to detect cognitive state transitions in real time. The ecosystem includes crates for signal processing (`ruv-neural-signal`), graph construction (`ruv-neural-graph`), HNSW-indexed pattern memory (`ruv-neural-memory`), graph embeddings (`ruv-neural-embed`), cognitive state decoding (`ruv-neural-decoder`), and ESP32/WASM edge targets. Medical and research applications include early neurological disease detection via topology signatures, brain-computer interfaces, clinical neurofeedback, and non-invasive biomedical sensing -- bridging RuView's RF sensing architecture with the emerging field of quantum biomedical diagnostics. [**rUv Neural**](v2/crates/ruv-neural/README.md) is a 12-crate Rust ecosystem that extends RuView's signal processing into brain network topology analysis. It transforms neural magnetic field measurements from quantum sensors (NV diamond magnetometers, optically pumped magnetometers) into dynamic connectivity graphs, using minimum cut algorithms to detect cognitive state transitions in real time. The ecosystem includes crates for signal processing (`ruv-neural-signal`), graph construction (`ruv-neural-graph`), HNSW-indexed pattern memory (`ruv-neural-memory`), graph embeddings (`ruv-neural-embed`), cognitive state decoding (`ruv-neural-decoder`), and ESP32/WASM edge targets. Medical and research applications include early neurological disease detection via topology signatures, brain-computer interfaces, clinical neurofeedback, and non-invasive biomedical sensing -- bridging RuView's RF sensing architecture with the emerging field of quantum biomedical diagnostics.
</details> </details>
@@ -2154,7 +2154,7 @@ wifi-densepose tasks list # List background tasks
```bash ```bash
# Rust tests (primary — 542+ tests) # Rust tests (primary — 542+ tests)
cd rust-port/wifi-densepose-rs cd v2
cargo test --workspace cargo test --workspace
# Sensing server tests (229 tests) # Sensing server tests (229 tests)
@@ -2258,7 +2258,7 @@ git clone https://github.com/ruvnet/RuView.git
cd RuView cd RuView
# Rust development # Rust development
cd rust-port/wifi-densepose-rs cd v2
cargo build --release cargo build --release
cargo test --workspace cargo test --workspace
+2 -2
View File
@@ -8,8 +8,8 @@ FROM rust:1.85-bookworm AS builder
WORKDIR /build WORKDIR /build
# Copy workspace files # Copy workspace files
COPY rust-port/wifi-densepose-rs/Cargo.toml rust-port/wifi-densepose-rs/Cargo.lock ./ COPY v2/Cargo.toml v2/Cargo.lock ./
COPY rust-port/wifi-densepose-rs/crates/ ./crates/ COPY v2/crates/ ./crates/
# Copy vendored RuVector crates # Copy vendored RuVector crates
COPY vendor/ruvector/ /build/vendor/ruvector/ COPY vendor/ruvector/ /build/vendor/ruvector/
+2 -2
View File
@@ -35,7 +35,7 @@ git checkout 96b01008
### Step 2: Rust Workspace — Full Test Suite ### Step 2: Rust Workspace — Full Test Suite
```bash ```bash
cd rust-port/wifi-densepose-rs cd v2
cargo test --workspace --no-default-features cargo test --workspace --no-default-features
``` ```
@@ -89,7 +89,7 @@ ls firmware/esp32-csi-node/build/*.bin 2>/dev/null || echo "App binary in build/
### Step 6: Verify ADR-018 Binary Frame Parser ### Step 6: Verify ADR-018 Binary Frame Parser
```bash ```bash
cd rust-port/wifi-densepose-rs cd v2
cargo test -p wifi-densepose-hardware --no-default-features cargo test -p wifi-densepose-hardware --no-default-features
``` ```
@@ -216,4 +216,4 @@ full = ["mincut-matching", "attn-mincut", "temporal-compress", "solver-interpola
- [Elastic Weight Consolidation](https://arxiv.org/abs/1612.00796) - [Elastic Weight Consolidation](https://arxiv.org/abs/1612.00796)
- [Raft Consensus](https://raft.github.io/raft.pdf) - [Raft Consensus](https://raft.github.io/raft.pdf)
- [ML-DSA (FIPS 204)](https://csrc.nist.gov/pubs/fips/204/final) - [ML-DSA (FIPS 204)](https://csrc.nist.gov/pubs/fips/204/final)
- [WiFi-DensePose Rust ADR-001: Workspace Structure](../rust-port/wifi-densepose-rs/docs/adr/ADR-001-workspace-structure.md) - [WiFi-DensePose Rust ADR-001: Workspace Structure](../v2/docs/adr/ADR-001-workspace-structure.md)
@@ -510,7 +510,7 @@ impl CompressedHeartbeatSpectrogram {
## Dependency Changes Required ## Dependency Changes Required
Add to `rust-port/wifi-densepose-rs/Cargo.toml` workspace (already present from ADR-016): Add to `v2/Cargo.toml` workspace (already present from ADR-016):
```toml ```toml
ruvector-mincut = "2.0.4" # already present ruvector-mincut = "2.0.4" # already present
ruvector-attn-mincut = "2.0.4" # already present ruvector-attn-mincut = "2.0.4" # already present
+1 -1
View File
@@ -11,7 +11,7 @@
The WiFi-DensePose UI was originally built to require the full FastAPI DensePose backend (`localhost:8000`) for all functionality. This backend depends on heavy Python packages (PyTorch ~2GB, torchvision, OpenCV, SQLAlchemy, Redis) making it impractical for lightweight sensing-only deployments where the user simply wants to visualize live WiFi signal data from ESP32 CSI or Windows RSSI collectors. The WiFi-DensePose UI was originally built to require the full FastAPI DensePose backend (`localhost:8000`) for all functionality. This backend depends on heavy Python packages (PyTorch ~2GB, torchvision, OpenCV, SQLAlchemy, Redis) making it impractical for lightweight sensing-only deployments where the user simply wants to visualize live WiFi signal data from ESP32 CSI or Windows RSSI collectors.
A Rust port exists (`rust-port/wifi-densepose-rs`) using Axum with lighter runtime footprint (~10MB binary, ~5MB RAM), but it still requires libtorch C++ bindings and OpenBLAS for compilation—a non-trivial build. A Rust port exists (`v2`) using Axum with lighter runtime footprint (~10MB binary, ~5MB RAM), but it still requires libtorch C++ bindings and OpenBLAS for compilation—a non-trivial build.
Users need a way to run the UI with **only the sensing pipeline** active, without installing the full DensePose backend stack. Users need a way to run the UI with **only the sensing pipeline** active, without installing the full DensePose backend stack.
@@ -22,7 +22,7 @@ The current Python DensePose backend requires ~2GB+ of dependencies:
This makes the DensePose backend impractical for edge deployments, CI pipelines, and developer laptops where users only need WiFi sensing + pose estimation. This makes the DensePose backend impractical for edge deployments, CI pipelines, and developer laptops where users only need WiFi sensing + pose estimation.
Meanwhile, the Rust port at `rust-port/wifi-densepose-rs/` already has: Meanwhile, the Rust port at `v2/` already has:
- **12 workspace crates** covering core, signal, nn, api, db, config, hardware, wasm, cli, mat, train - **12 workspace crates** covering core, signal, nn, api, db, config, hardware, wasm, cli, mat, train
- **5 RuVector crates** (v2.0.4, published on crates.io) integrated into signal, mat, and train crates - **5 RuVector crates** (v2.0.4, published on crates.io) integrated into signal, mat, and train crates
@@ -143,7 +143,7 @@ The `wifi-densepose-nn::onnx` module loads `.onnx` files directly.
```bash ```bash
# Build the Rust workspace (ONNX-only, no libtorch) # Build the Rust workspace (ONNX-only, no libtorch)
cd rust-port/wifi-densepose-rs cd v2
cargo check --workspace 2>&1 cargo check --workspace 2>&1
# Build release binary # Build release binary
@@ -34,7 +34,7 @@ The `vendor/ruvector` codebase provides a rich set of signal processing primitiv
### Current Project State ### Current Project State
The Rust port (`rust-port/wifi-densepose-rs/`) already contains: The Rust port (`v2/`) already contains:
- **`wifi-densepose-signal`**: CSI processing, BVP extraction, phase sanitization, Hampel filter, spectrogram generation, Fresnel geometry, motion detection, subcarrier selection - **`wifi-densepose-signal`**: CSI processing, BVP extraction, phase sanitization, Hampel filter, spectrogram generation, Fresnel geometry, motion detection, subcarrier selection
- **`wifi-densepose-sensing-server`**: Axum server receiving ESP32 CSI frames (UDP 5005), WebSocket broadcasting sensing updates, signal field generation, with three data source modes: - **`wifi-densepose-sensing-server`**: Axum server receiving ESP32 CSI frames (UDP 5005), WebSocket broadcasting sensing updates, signal field generation, with three data source modes:
@@ -108,7 +108,7 @@ ESP32 CSI (UDP:5005) ──▶│ ┌──────────────
### Module Structure ### Module Structure
``` ```
rust-port/wifi-densepose-rs/crates/wifi-densepose-vitals/ v2/crates/wifi-densepose-vitals/
├── Cargo.toml ├── Cargo.toml
└── src/ └── src/
├── lib.rs # Public API and re-exports ├── lib.rs # Public API and re-exports
@@ -592,7 +592,7 @@ impl FrameBuilder {
### 3.3 Module Structure ### 3.3 Module Structure
``` ```
rust-port/wifi-densepose-rs/crates/wifi-densepose-wifiscan/ v2/crates/wifi-densepose-wifiscan/
├── Cargo.toml ├── Cargo.toml
└── src/ └── src/
├── lib.rs # Public API, re-exports ├── lib.rs # Public API, re-exports
@@ -699,28 +699,28 @@ let dashboard = container.load_dashboard()?;
| File | Purpose | | File | Purpose |
|------|---------| |------|---------|
| `rust-port/.../wifi-densepose-train/src/dataset_mmfi.rs` | MM-Fi dataset loader with subcarrier resampling | | `v2/.../wifi-densepose-train/src/dataset_mmfi.rs` | MM-Fi dataset loader with subcarrier resampling |
| `rust-port/.../wifi-densepose-train/src/dataset_wipose.rs` | Wi-Pose dataset loader | | `v2/.../wifi-densepose-train/src/dataset_wipose.rs` | Wi-Pose dataset loader |
| `rust-port/.../wifi-densepose-train/src/graph_transformer.rs` | Graph transformer integration | | `v2/.../wifi-densepose-train/src/graph_transformer.rs` | Graph transformer integration |
| `rust-port/.../wifi-densepose-train/src/body_gnn.rs` | GNN body graph reasoning | | `v2/.../wifi-densepose-train/src/body_gnn.rs` | GNN body graph reasoning |
| `rust-port/.../wifi-densepose-train/src/adaptation.rs` | SONA LoRA + EWC++ adaptation | | `v2/.../wifi-densepose-train/src/adaptation.rs` | SONA LoRA + EWC++ adaptation |
| `rust-port/.../wifi-densepose-train/src/trainer.rs` | Training loop with multi-term loss | | `v2/.../wifi-densepose-train/src/trainer.rs` | Training loop with multi-term loss |
| `scripts/generate_densepose_labels.py` | Teacher-student UV label generation | | `scripts/generate_densepose_labels.py` | Teacher-student UV label generation |
| `scripts/benchmark_inference.py` | Inference latency benchmarking | | `scripts/benchmark_inference.py` | Inference latency benchmarking |
| `rust-port/.../wifi-densepose-train/src/rvf_builder.rs` | RVF container build pipeline | | `v2/.../wifi-densepose-train/src/rvf_builder.rs` | RVF container build pipeline |
| `rust-port/.../wifi-densepose-train/src/bin/build_rvf.rs` | CLI binary for building `.rvf` containers | | `v2/.../wifi-densepose-train/src/bin/build_rvf.rs` | CLI binary for building `.rvf` containers |
| `rust-port/.../wifi-densepose-train/src/bin/verify_rvf.rs` | CLI binary for verifying `.rvf` containers | | `v2/.../wifi-densepose-train/src/bin/verify_rvf.rs` | CLI binary for verifying `.rvf` containers |
### Modified Files ### Modified Files
| File | Change | | File | Change |
|------|--------| |------|--------|
| `rust-port/.../wifi-densepose-train/Cargo.toml` | Add ruvector-gnn, graph-transformer, sona, sparse-inference, math, rvf-types, rvf-wire, rvf-manifest, rvf-index, rvf-quant, rvf-crypto, rvf-runtime deps | | `v2/.../wifi-densepose-train/Cargo.toml` | Add ruvector-gnn, graph-transformer, sona, sparse-inference, math, rvf-types, rvf-wire, rvf-manifest, rvf-index, rvf-quant, rvf-crypto, rvf-runtime deps |
| `rust-port/.../wifi-densepose-train/src/model.rs` | Integrate graph transformer + GNN layers | | `v2/.../wifi-densepose-train/src/model.rs` | Integrate graph transformer + GNN layers |
| `rust-port/.../wifi-densepose-train/src/losses.rs` | Add optimal transport + GNN edge consistency loss terms | | `v2/.../wifi-densepose-train/src/losses.rs` | Add optimal transport + GNN edge consistency loss terms |
| `rust-port/.../wifi-densepose-train/src/config.rs` | Add training hyperparameters for new components | | `v2/.../wifi-densepose-train/src/config.rs` | Add training hyperparameters for new components |
| `rust-port/.../sensing-server/Cargo.toml` | Add rvf-runtime, rvf-types, rvf-index, rvf-quant deps | | `v2/.../sensing-server/Cargo.toml` | Add rvf-runtime, rvf-types, rvf-index, rvf-quant deps |
| `rust-port/.../sensing-server/src/main.rs` | Add `--model` flag, load `.rvf` container, progressive startup, serve embedded dashboard | | `v2/.../sensing-server/src/main.rs` | Add `--model` flag, load `.rvf` container, progressive startup, serve embedded dashboard |
## Consequences ## Consequences
@@ -371,7 +371,7 @@ ESP32 SRAM budget: 520 KB. Model at INT8: 53-60 KB = 10-12% of SRAM. Ample margi
### 2.6 Concrete Module Additions ### 2.6 Concrete Module Additions
All new/modified files in `rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/`: All new/modified files in `v2/crates/wifi-densepose-sensing-server/src/`:
#### 2.6.1 `embedding.rs` (NEW, ~450 lines) #### 2.6.1 `embedding.rs` (NEW, ~450 lines)
@@ -107,7 +107,7 @@ Implement a **macOS CoreWLAN sensing adapter** as a Swift helper binary + Rust a
### 3.2 Swift Helper Binary ### 3.2 Swift Helper Binary
**File:** `rust-port/wifi-densepose-rs/tools/macos-wifi-scan/main.swift` **File:** `v2/tools/macos-wifi-scan/main.swift`
```swift ```swift
// Modes: // Modes:
+7 -7
View File
@@ -198,16 +198,16 @@ When a `.rvf` model is loaded:
### New Files ### New Files
- `ui/components/ModelPanel.js` — Model library, inspector, load/unload controls - `ui/components/ModelPanel.js` — Model library, inspector, load/unload controls
- `ui/components/TrainingPanel.js` — Recording controls, training progress, metric charts - `ui/components/TrainingPanel.js` — Recording controls, training progress, metric charts
- `rust-port/.../sensing-server/src/recording.rs` — CSI recording API handlers - `v2/.../sensing-server/src/recording.rs` — CSI recording API handlers
- `rust-port/.../sensing-server/src/training_api.rs` — Training API handlers + WS progress stream - `v2/.../sensing-server/src/training_api.rs` — Training API handlers + WS progress stream
- `rust-port/.../sensing-server/src/model_manager.rs` — Model loading, hot-swap, 32LoRA activation - `v2/.../sensing-server/src/model_manager.rs` — Model loading, hot-swap, 32LoRA activation
- `data/models/` — Default model storage directory - `data/models/` — Default model storage directory
### Modified Files ### Modified Files
- `rust-port/.../sensing-server/src/main.rs` — Wire recording, training, and model APIs - `v2/.../sensing-server/src/main.rs` — Wire recording, training, and model APIs
- `rust-port/.../train/src/trainer.rs` — Add WebSocket progress callback, LoRA training mode - `v2/.../train/src/trainer.rs` — Add WebSocket progress callback, LoRA training mode
- `rust-port/.../train/src/dataset.rs` — MM-Fi and Wi-Pose dataset loaders - `v2/.../train/src/dataset.rs` — MM-Fi and Wi-Pose dataset loaders
- `rust-port/.../nn/src/onnx.rs` — LoRA weight injection, INT8 quantization support - `v2/.../nn/src/onnx.rs` — LoRA weight injection, INT8 quantization support
- `ui/components/LiveDemoTab.js` — Model selector, LoRA dropdown, A/B spsplit view - `ui/components/LiveDemoTab.js` — Model selector, LoRA dropdown, A/B spsplit view
- `ui/components/SettingsPanel.js` — Model and training configuration sections - `ui/components/SettingsPanel.js` — Model and training configuration sections
- `ui/components/PoseDetectionCanvas.js` — Pose trail rendering, confidence heatmap overlay - `ui/components/PoseDetectionCanvas.js` — Pose trail rendering, confidence heatmap overlay
+1 -1
View File
@@ -128,7 +128,7 @@ All configurable via `provision.py --edge-tier 2 --pres-thresh 0.05 ...`
- `firmware/esp32-csi-node/main/edge_processing.h` — Types and API - `firmware/esp32-csi-node/main/edge_processing.h` — Types and API
- `firmware/esp32-csi-node/main/ota_update.c/h` — HTTP OTA endpoint - `firmware/esp32-csi-node/main/ota_update.c/h` — HTTP OTA endpoint
- `firmware/esp32-csi-node/main/power_mgmt.c/h` — Power management - `firmware/esp32-csi-node/main/power_mgmt.c/h` — Power management
- `rust-port/.../wifi-densepose-sensing-server/src/main.rs` — Vitals parser + REST endpoint - `v2/.../wifi-densepose-sensing-server/src/main.rs` — Vitals parser + REST endpoint
- `scripts/provision.py` — Edge config CLI arguments - `scripts/provision.py` — Edge config CLI arguments
- `.github/workflows/firmware-ci.yml` — CI build + size gate (updated to 950 KB for Tier 3) - `.github/workflows/firmware-ci.yml` — CI build + size gate (updated to 950 KB for Tier 3)
@@ -164,8 +164,8 @@ Core 1 (DSP Task)
- `firmware/esp32-csi-node/main/wasm_runtime.c/h` — Runtime host with 12 API bindings + manifest - `firmware/esp32-csi-node/main/wasm_runtime.c/h` — Runtime host with 12 API bindings + manifest
- `firmware/esp32-csi-node/main/wasm_upload.c/h` — HTTP REST endpoints (RVF-aware) - `firmware/esp32-csi-node/main/wasm_upload.c/h` — HTTP REST endpoints (RVF-aware)
- `firmware/esp32-csi-node/main/rvf_parser.c/h` — RVF container parser and verifier - `firmware/esp32-csi-node/main/rvf_parser.c/h` — RVF container parser and verifier
- `rust-port/.../wifi-densepose-wasm-edge/` — Rust WASM crate (gesture, coherence, adversarial, rvf, occupancy, vital_trend, intrusion) - `v2/.../wifi-densepose-wasm-edge/` — Rust WASM crate (gesture, coherence, adversarial, rvf, occupancy, vital_trend, intrusion)
- `rust-port/.../wifi-densepose-sensing-server/src/main.rs``0xC5110004` parser - `v2/.../wifi-densepose-sensing-server/src/main.rs``0xC5110004` parser
- `docs/adr/ADR-039-esp32-edge-intelligence.md` — Updated with Tier 3 reference - `docs/adr/ADR-039-esp32-edge-intelligence.md` — Updated with Tier 3 reference
--- ---
@@ -289,7 +289,7 @@ Startup creates `data/models/` and `data/recordings/` directories and populates
```bash ```bash
# 1. Start sensing server with auto source (simulated fallback) # 1. Start sensing server with auto source (simulated fallback)
cd rust-port/wifi-densepose-rs cd v2
cargo run -p wifi-densepose-sensing-server -- --http-port 3000 --source auto cargo run -p wifi-densepose-sensing-server -- --http-port 3000 --source auto
# 2. Verify model endpoints return 200 # 2. Verify model endpoints return 200
@@ -312,11 +312,11 @@ curl -s http://localhost:3000/api/v1/models/lora/profiles | jq '.'
# Navigate to http://localhost:3000/ui/ # Navigate to http://localhost:3000/ui/
# 7. Run mobile tests # 7. Run mobile tests
cd ../../ui/mobile cd ../ui/mobile
npx jest --no-coverage npx jest --no-coverage
# 8. Run Rust workspace tests (must pass, 1031+ tests) # 8. Run Rust workspace tests (must pass, 1031+ tests)
cd ../../rust-port/wifi-densepose-rs cd ../../v2
cargo test --workspace --no-default-features cargo test --workspace --no-default-features
``` ```
+5 -5
View File
@@ -52,7 +52,7 @@ Build a Tauri v2 desktop application as a new crate in the Rust workspace. The f
Add a new crate to the workspace: Add a new crate to the workspace:
``` ```
rust-port/wifi-densepose-rs/ v2/
Cargo.toml # Add "crates/wifi-densepose-desktop" to members Cargo.toml # Add "crates/wifi-densepose-desktop" to members
crates/ crates/
wifi-densepose-desktop/ # NEW — Tauri app crate wifi-densepose-desktop/ # NEW — Tauri app crate
@@ -621,11 +621,11 @@ chrono = { version = "0.4", features = ["serde"] }
```bash ```bash
# Prerequisites # Prerequisites
cargo install tauri-cli@^2 cargo install tauri-cli@^2
cd rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop/frontend cd v2/crates/wifi-densepose-desktop/frontend
npm install npm install
# Development (hot-reload frontend + Rust rebuild) # Development (hot-reload frontend + Rust rebuild)
cd rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop cd v2/crates/wifi-densepose-desktop
cargo tauri dev cargo tauri dev
# Production build # Production build
@@ -805,6 +805,6 @@ Total estimated effort: ~11 weeks for a single developer.
- ADR-051: Sensing Server Decomposition - ADR-051: Sensing Server Decomposition
- `firmware/esp32-csi-node/` — ESP32 firmware source - `firmware/esp32-csi-node/` — ESP32 firmware source
- `firmware/esp32-csi-node/provision.py` — Current provisioning script - `firmware/esp32-csi-node/provision.py` — Current provisioning script
- `rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/` — Sensing server - `v2/crates/wifi-densepose-sensing-server/` — Sensing server
- `rust-port/wifi-densepose-rs/crates/wifi-densepose-hardware/` — Hardware crate - `v2/crates/wifi-densepose-hardware/` — Hardware crate
- `ui/` — Existing web UI - `ui/` — Existing web UI
@@ -214,7 +214,7 @@ examples/wasm-browser-pose/
set -e set -e
# Build wifi-densepose-wasm (CSI processing) # Build wifi-densepose-wasm (CSI processing)
wasm-pack build ../../rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm \ wasm-pack build ../../v2/crates/wifi-densepose-wasm \
--target web --out-dir "$(pwd)/pkg/wifi_densepose_wasm" --no-typescript --target web --out-dir "$(pwd)/pkg/wifi_densepose_wasm" --no-typescript
# Build ruvector-cnn-wasm (CNN inference for both video and CSI) # Build ruvector-cnn-wasm (CNN inference for both video and CSI)
+1 -1
View File
@@ -191,5 +191,5 @@ Also does not give per-person subcarrier assignments.
- Stoer, M. & Wagner, F. (1997). "A Simple Min-Cut Algorithm." JACM 44(4). - Stoer, M. & Wagner, F. (1997). "A Simple Min-Cut Algorithm." JACM 44(4).
- `vendor/ruvector/crates/ruvector-mincut/src/algorithm/mod.rs` — DynamicMinCut API - `vendor/ruvector/crates/ruvector-mincut/src/algorithm/mod.rs` — DynamicMinCut API
- `rust-port/.../sig_mincut_person_match.rs` — current (broken) WASM edge matcher - `v2/.../sig_mincut_person_match.rs` — current (broken) WASM edge matcher
- `scripts/rf-scan.js` — CSI packet parsing and subcarrier classification - `scripts/rf-scan.js` — CSI packet parsing and subcarrier classification
@@ -481,7 +481,7 @@ make check
# → test_rv_mesh: 27/27 pass, HEALTH roundtrip = 1.0 µs # → test_rv_mesh: 27/27 pass, HEALTH roundtrip = 1.0 µs
# Rust-side radio_ops trait + mesh decoder tests # Rust-side radio_ops trait + mesh decoder tests
cd rust-port/wifi-densepose-rs cd v2
cargo test -p wifi-densepose-hardware --no-default-features --lib radio_ops cargo test -p wifi-densepose-hardware --no-default-features --lib radio_ops
# → 8 passed; verifies MockRadio, CRC32 parity with firmware vectors, # → 8 passed; verifies MockRadio, CRC32 parity with firmware vectors,
# HEALTH encode/decode roundtrip, bad-magic/short/CRC rejection, # HEALTH encode/decode roundtrip, bad-magic/short/CRC rejection,
+8 -8
View File
@@ -191,7 +191,7 @@ A high-performance Rust port with ~810x speedup over the Python pipeline for the
### Build ### Build
```bash ```bash
cd rust-port/wifi-densepose-rs cd v2
cargo build --release cargo build --release
``` ```
@@ -200,7 +200,7 @@ Release profile is configured with LTO, single codegen unit, and `-O3` for maxim
### Test ### Test
```bash ```bash
cd rust-port/wifi-densepose-rs cd v2
cargo test --workspace cargo test --workspace
``` ```
@@ -209,7 +209,7 @@ Runs 107 tests across all workspace crates.
### Benchmark ### Benchmark
```bash ```bash
cd rust-port/wifi-densepose-rs cd v2
cargo bench --package wifi-densepose-signal cargo bench --package wifi-densepose-signal
``` ```
@@ -468,7 +468,7 @@ The aggregator collects UDP streams from all ESP32 nodes, performs feature-level
docker compose -f docker-compose.esp32.yml up docker compose -f docker-compose.esp32.yml up
# Or run the Rust aggregator directly # Or run the Rust aggregator directly
cd rust-port/wifi-densepose-rs cd v2
cargo run --release --package wifi-densepose-hardware -- --mode esp32-aggregator --port 5000 cargo run --release --package wifi-densepose-hardware -- --mode esp32-aggregator --port 5000
``` ```
@@ -516,7 +516,7 @@ rustup target add wasm32-unknown-unknown
Build: Build:
```bash ```bash
cd rust-port/wifi-densepose-rs cd v2
# Build WASM package (outputs to pkg/) # Build WASM package (outputs to pkg/)
wasm-pack build crates/wifi-densepose-wasm --target web --release wasm-pack build crates/wifi-densepose-wasm --target web --release
@@ -601,7 +601,7 @@ uvicorn v1.src.api.main:app \
--workers 4 --workers 4
# Or run the Rust API server # Or run the Rust API server
cd rust-port/wifi-densepose-rs cd v2
cargo run --release --package wifi-densepose-api cargo run --release --package wifi-densepose-api
``` ```
@@ -631,7 +631,7 @@ pytest --cov=wifi_densepose --cov-report=html
Rust: Rust:
```bash ```bash
cd rust-port/wifi-densepose-rs cd v2
# Build in debug mode (faster compilation) # Build in debug mode (faster compilation)
cargo build cargo build
@@ -674,7 +674,7 @@ python3 -m http.server 3000 --directory ui
| `v1/data/proof/expected_features.sha256` | Published expected hash | | `v1/data/proof/expected_features.sha256` | Published expected hash |
| `v1/src/api/main.py` | FastAPI application entry point | | `v1/src/api/main.py` | FastAPI application entry point |
| `v1/src/sensing/` | Commodity WiFi sensing module (RSSI) | | `v1/src/sensing/` | Commodity WiFi sensing module (RSSI) |
| `rust-port/wifi-densepose-rs/Cargo.toml` | Rust workspace root | | `v2/Cargo.toml` | Rust workspace root |
| `ui/viz.html` | Three.js 3D visualization | | `ui/viz.html` | Three.js 3D visualization |
| `Dockerfile` | Multi-stage Docker build (dev/prod/test/security) | | `Dockerfile` | Multi-stage Docker build (dev/prod/test/security) |
| `docker-compose.yml` | Development stack (Postgres, Redis, Prometheus, Grafana) | | `docker-compose.yml` | Development stack (Postgres, Redis, Prometheus, Grafana) |
+1 -1
View File
@@ -14,7 +14,7 @@ This document defines the system using [Domain-Driven Design](https://martinfowl
| 4 | [Aggregation](#4-aggregation-context) | Server-side CSI frame reception, timestamp alignment, multi-node feature fusion | [ADR-012](../adr/ADR-012-esp32-csi-sensor-mesh.md) | `crates/wifi-densepose-hardware/src/esp32/` | | 4 | [Aggregation](#4-aggregation-context) | Server-side CSI frame reception, timestamp alignment, multi-node feature fusion | [ADR-012](../adr/ADR-012-esp32-csi-sensor-mesh.md) | `crates/wifi-densepose-hardware/src/esp32/` |
| 5 | [Provisioning](#5-provisioning-context) | NVS configuration, firmware lifecycle, fleet management, deployment presets | [ADR-044](../adr/ADR-044-provisioning-tool-enhancements.md) | `firmware/esp32-csi-node/provision.py` | | 5 | [Provisioning](#5-provisioning-context) | NVS configuration, firmware lifecycle, fleet management, deployment presets | [ADR-044](../adr/ADR-044-provisioning-tool-enhancements.md) | `firmware/esp32-csi-node/provision.py` |
All firmware paths are relative to the repository root. Rust crate paths are relative to `rust-port/wifi-densepose-rs/`. All firmware paths are relative to the repository root. Rust crate paths are relative to `v2/`.
--- ---
+1 -1
View File
@@ -16,7 +16,7 @@ This document defines the system using [Domain-Driven Design](https://martinfowl
| 6 | [Spatial Identity](#6-spatial-identity-context) | Cross-room tracking via environment fingerprints | [ADR-030](../adr/ADR-030-ruvsense-persistent-field-model.md) | `signal/src/ruvsense/cross_room.rs` | | 6 | [Spatial Identity](#6-spatial-identity-context) | Cross-room tracking via environment fingerprints | [ADR-030](../adr/ADR-030-ruvsense-persistent-field-model.md) | `signal/src/ruvsense/cross_room.rs` |
| 7 | [Edge Intelligence](#7-edge-intelligence-context) | On-device sensing (no server needed) | [ADR-039](../adr/ADR-039-esp32-edge-intelligence.md), [ADR-040](../adr/ADR-040-wasm-programmable-sensing.md) | `firmware/esp32-csi-node/main/edge_processing.c` | | 7 | [Edge Intelligence](#7-edge-intelligence-context) | On-device sensing (no server needed) | [ADR-039](../adr/ADR-039-esp32-edge-intelligence.md), [ADR-040](../adr/ADR-040-wasm-programmable-sensing.md) | `firmware/esp32-csi-node/main/edge_processing.c` |
All code paths shown are relative to `rust-port/wifi-densepose-rs/crates/wifi-densepose-` unless otherwise noted. All code paths shown are relative to `v2/crates/wifi-densepose-` unless otherwise noted.
--- ---
+1 -1
View File
@@ -14,7 +14,7 @@ This document defines the system using [Domain-Driven Design](https://martinfowl
| 4 | [Training Pipeline](#4-training-pipeline-context) | Background training runs, progress streaming, contrastive pretraining | [ADR-043](../adr/ADR-043-sensing-server-ui-api-completion.md) | `sensing-server/src/training_api.rs` | | 4 | [Training Pipeline](#4-training-pipeline-context) | Background training runs, progress streaming, contrastive pretraining | [ADR-043](../adr/ADR-043-sensing-server-ui-api-completion.md) | `sensing-server/src/training_api.rs` |
| 5 | [Visualization](#5-visualization-context) | WebSocket streaming to web UI, Gaussian splat rendering, data transparency | [ADR-019](../adr/ADR-019-sensing-only-ui-mode.md), [ADR-035](../adr/ADR-035-live-sensing-ui-accuracy.md) | `ui/` | | 5 | [Visualization](#5-visualization-context) | WebSocket streaming to web UI, Gaussian splat rendering, data transparency | [ADR-019](../adr/ADR-019-sensing-only-ui-mode.md), [ADR-035](../adr/ADR-035-live-sensing-ui-accuracy.md) | `ui/` |
All code paths shown are relative to `rust-port/wifi-densepose-rs/crates/wifi-densepose-` unless otherwise noted. All code paths shown are relative to `v2/crates/wifi-densepose-` unless otherwise noted.
--- ---
+1 -1
View File
@@ -13,7 +13,7 @@ This document defines the system using [Domain-Driven Design](https://martinfowl
| 3 | [Training Orchestration](#3-training-orchestration-context) | Run the training loop, compute composite loss, checkpoint, and verify deterministic proofs | [ADR-015](../adr/ADR-015-public-dataset-training-strategy.md), [ADR-016](../adr/ADR-016-ruvector-integration.md) | `train/src/trainer.rs`, `train/src/losses.rs`, `train/src/metrics.rs`, `train/src/proof.rs` | | 3 | [Training Orchestration](#3-training-orchestration-context) | Run the training loop, compute composite loss, checkpoint, and verify deterministic proofs | [ADR-015](../adr/ADR-015-public-dataset-training-strategy.md), [ADR-016](../adr/ADR-016-ruvector-integration.md) | `train/src/trainer.rs`, `train/src/losses.rs`, `train/src/metrics.rs`, `train/src/proof.rs` |
| 4 | [Embedding & Transfer](#4-embedding--transfer-context) | Produce AETHER contrastive embeddings, MERIDIAN domain-generalized features, and LoRA adapters | [ADR-024](../adr/ADR-024-contrastive-csi-embedding-model.md), [ADR-027](../adr/ADR-027-cross-environment-domain-generalization.md) | `train/src/embedding.rs`, `train/src/domain.rs`, `train/src/sona.rs` | | 4 | [Embedding & Transfer](#4-embedding--transfer-context) | Produce AETHER contrastive embeddings, MERIDIAN domain-generalized features, and LoRA adapters | [ADR-024](../adr/ADR-024-contrastive-csi-embedding-model.md), [ADR-027](../adr/ADR-027-cross-environment-domain-generalization.md) | `train/src/embedding.rs`, `train/src/domain.rs`, `train/src/sona.rs` |
All code paths shown are relative to `rust-port/wifi-densepose-rs/crates/wifi-densepose-` unless otherwise noted. All code paths shown are relative to `v2/crates/wifi-densepose-` unless otherwise noted.
--- ---
+2 -2
View File
@@ -6,7 +6,7 @@
```bash ```bash
# Build all modules for ESP32 # Build all modules for ESP32
cd rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge cd v2/crates/wifi-densepose-wasm-edge
cargo build --target wasm32-unknown-unknown --release cargo build --target wasm32-unknown-unknown --release
# Run all 632 tests # Run all 632 tests
@@ -144,4 +144,4 @@ Every module talks to the ESP32 through 12 functions:
- [ADR-039](../adr/ADR-039-esp32-edge-intelligence.md) — Edge processing tiers - [ADR-039](../adr/ADR-039-esp32-edge-intelligence.md) — Edge processing tiers
- [ADR-040](../adr/ADR-040-wasm-programmable-sensing.md) — WASM runtime design - [ADR-040](../adr/ADR-040-wasm-programmable-sensing.md) — WASM runtime design
- [ADR-041](../adr/ADR-041-wasm-module-collection.md) — Full module specification - [ADR-041](../adr/ADR-041-wasm-module-collection.md) — Full module specification
- [Source code](../../rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/) - [Source code](../../v2/crates/wifi-densepose-wasm-edge/src/)
+1 -1
View File
@@ -481,7 +481,7 @@ std::fs::write("my-gesture-v2.rvf", &rvf_mut)?;
From the crate directory: From the crate directory:
```bash ```bash
cd rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge cd v2/crates/wifi-densepose-wasm-edge
cargo test --features std -- gesture coherence adversarial intrusion occupancy vital_trend rvf cargo test --features std -- gesture coherence adversarial intrusion occupancy vital_trend rvf
``` ```
+1 -1
View File
@@ -618,7 +618,7 @@ for _ in 0..100 {
All medical modules include comprehensive unit tests covering initialization, normal operation, clinical scenario detection, edge cases, and cooldown behavior. All medical modules include comprehensive unit tests covering initialization, normal operation, clinical scenario detection, edge cases, and cooldown behavior.
```bash ```bash
cd rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge cd v2/crates/wifi-densepose-wasm-edge
cargo test --features std -- med_ cargo test --features std -- med_
``` ```
+1 -1
View File
@@ -556,7 +556,7 @@ for &(event_id, value) in events {
```bash ```bash
# Run all security module tests (requires std feature) # Run all security module tests (requires std feature)
cd rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge cd v2/crates/wifi-densepose-wasm-edge
cargo test --features std -- sec_ intrusion cargo test --features std -- sec_ intrusion
``` ```
+5 -5
View File
@@ -413,9 +413,9 @@ The `create_user()` method accepts any password without minimum length, complexi
### INFORMATIONAL-001: Rust API, DB, and Config Crates Are Stubs ### INFORMATIONAL-001: Rust API, DB, and Config Crates Are Stubs
**Files:** **Files:**
- `rust-port/wifi-densepose-rs/crates/wifi-densepose-api/src/lib.rs` -- `//! WiFi-DensePose REST API (stub)` - `v2/crates/wifi-densepose-api/src/lib.rs` -- `//! WiFi-DensePose REST API (stub)`
- `rust-port/wifi-densepose-rs/crates/wifi-densepose-db/src/lib.rs` -- `//! WiFi-DensePose database layer (stub)` - `v2/crates/wifi-densepose-db/src/lib.rs` -- `//! WiFi-DensePose database layer (stub)`
- `rust-port/wifi-densepose-rs/crates/wifi-densepose-config/src/lib.rs` -- `//! WiFi-DensePose configuration (stub)` - `v2/crates/wifi-densepose-config/src/lib.rs` -- `//! WiFi-DensePose configuration (stub)`
**Description:** **Description:**
The Rust API, database, and configuration crates contain only single-line stub comments. No security review of Rust API endpoints, database queries, or configuration handling was possible because no implementation exists. The `wifi-densepose-sensing-server` crate contains the actual Rust server implementation. The Rust API, database, and configuration crates contain only single-line stub comments. No security review of Rust API endpoints, database queries, or configuration handling was possible because no implementation exists. The `wifi-densepose-sensing-server` crate contains the actual Rust server implementation.
@@ -426,7 +426,7 @@ The Rust API, database, and configuration crates contain only single-line stub c
### INFORMATIONAL-002: Rust `unsafe` Blocks in WASM Edge Crate ### INFORMATIONAL-002: Rust `unsafe` Blocks in WASM Edge Crate
**Files:** `rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/*.rs` (multiple files) **Files:** `v2/crates/wifi-densepose-wasm-edge/src/*.rs` (multiple files)
**Description:** **Description:**
The `wifi-densepose-wasm-edge` crate contains approximately 40 `unsafe` blocks, primarily for: The `wifi-densepose-wasm-edge` crate contains approximately 40 `unsafe` blocks, primarily for:
@@ -518,7 +518,7 @@ The following areas demonstrate security-conscious design:
- `v1/src/tasks/backup.py` (partial) -- Subprocess command construction - `v1/src/tasks/backup.py` (partial) -- Subprocess command construction
- `v1/test_auth_rate_limit.py` (partial) -- Test credentials review - `v1/test_auth_rate_limit.py` (partial) -- Test credentials review
### Rust (rust-port/wifi-densepose-rs/) ### Rust (v2/)
- `crates/wifi-densepose-api/src/lib.rs` (1 line -- stub) - `crates/wifi-densepose-api/src/lib.rs` (1 line -- stub)
- `crates/wifi-densepose-db/src/lib.rs` (1 line -- stub) - `crates/wifi-densepose-db/src/lib.rs` (1 line -- stub)
- `crates/wifi-densepose-config/src/lib.rs` (1 line -- stub) - `crates/wifi-densepose-config/src/lib.rs` (1 line -- stub)
+32 -32
View File
@@ -40,7 +40,7 @@ The WiFi-DensePose codebase is a real-time sensing system targeting 20 Hz output
### FINDING PERF-R01: Tomography Weight Matrix -- O(L * nx * ny * nz) per Link [CRITICAL] ### FINDING PERF-R01: Tomography Weight Matrix -- O(L * nx * ny * nz) per Link [CRITICAL]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/tomography.rs` **File**: `v2/crates/wifi-densepose-signal/src/ruvsense/tomography.rs`
**Lines**: 345-383 (`compute_link_weights`) **Lines**: 345-383 (`compute_link_weights`)
The `compute_link_weights` function iterates over every voxel in the grid for every link to compute Fresnel-zone intersection weights: The `compute_link_weights` function iterates over every voxel in the grid for every link to compute Fresnel-zone intersection weights:
@@ -76,7 +76,7 @@ for iz in 0..config.nz {
### FINDING PERF-R02: Multistatic Fusion -- sin()/cos() per Subcarrier per Node [HIGH] ### FINDING PERF-R02: Multistatic Fusion -- sin()/cos() per Subcarrier per Node [HIGH]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/multistatic.rs` **File**: `v2/crates/wifi-densepose-signal/src/ruvsense/multistatic.rs`
**Lines**: 287-298 (`attention_weighted_fusion`) **Lines**: 287-298 (`attention_weighted_fusion`)
```rust ```rust
@@ -105,7 +105,7 @@ for (n, (&amp, &ph)) in amplitudes.iter().zip(phases.iter()).enumerate() {
### FINDING PERF-R03: Pose Tracker find_track -- Linear Search [MEDIUM] ### FINDING PERF-R03: Pose Tracker find_track -- Linear Search [MEDIUM]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/pose_tracker.rs` **File**: `v2/crates/wifi-densepose-signal/src/ruvsense/pose_tracker.rs`
**Lines**: 546-553 **Lines**: 546-553
```rust ```rust
@@ -124,7 +124,7 @@ pub fn find_track(&self, id: TrackId) -> Option<&PoseTrack> {
### FINDING PERF-R04: Multistatic FusedSensingFrame -- Deep Clone of node_frames [HIGH] ### FINDING PERF-R04: Multistatic FusedSensingFrame -- Deep Clone of node_frames [HIGH]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/multistatic.rs` **File**: `v2/crates/wifi-densepose-signal/src/ruvsense/multistatic.rs`
**Line**: 222 **Line**: 222
```rust ```rust
@@ -150,7 +150,7 @@ Ok(FusedSensingFrame {
### FINDING PERF-R05: Coherence Score -- Efficient but exp() in Hot Loop [LOW] ### FINDING PERF-R05: Coherence Score -- Efficient but exp() in Hot Loop [LOW]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/coherence.rs` **File**: `v2/crates/wifi-densepose-signal/src/ruvsense/coherence.rs`
**Lines**: 224-252 (`coherence_score`) **Lines**: 224-252 (`coherence_score`)
```rust ```rust
@@ -174,7 +174,7 @@ for i in 0..n {
### FINDING PERF-R06: Gesture DTW -- O(N * M) per Template [MEDIUM] ### FINDING PERF-R06: Gesture DTW -- O(N * M) per Template [MEDIUM]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/gesture.rs` **File**: `v2/crates/wifi-densepose-signal/src/ruvsense/gesture.rs`
**Lines**: 288-328 (`dtw_distance`) **Lines**: 288-328 (`dtw_distance`)
The DTW implementation uses the Sakoe-Chiba band constraint (good), but allocates two full Vec<f64> per call: The DTW implementation uses the Sakoe-Chiba band constraint (good), but allocates two full Vec<f64> per call:
@@ -199,7 +199,7 @@ With T templates and band_width=5, complexity is O(T * N * band_width * feature_
### FINDING PERF-R07: Field Model Covariance -- O(S^2) Memory [MEDIUM] ### FINDING PERF-R07: Field Model Covariance -- O(S^2) Memory [MEDIUM]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/field_model.rs` **File**: `v2/crates/wifi-densepose-signal/src/ruvsense/field_model.rs`
**Line**: 330 (`covariance_sum: Option<Array2<f64>>`) **Line**: 330 (`covariance_sum: Option<Array2<f64>>`)
The full covariance matrix for SVD is S x S where S = number of subcarriers. With S=56, this is 56 * 56 * 8 = 25 KB -- reasonable. But the diagonal_fallback (lines 338-383) creates unnecessary intermediate allocations. The full covariance matrix for SVD is S x S where S = number of subcarriers. With S=56, this is 56 * 56 * 8 = 25 KB -- reasonable. But the diagonal_fallback (lines 338-383) creates unnecessary intermediate allocations.
@@ -212,7 +212,7 @@ The full covariance matrix for SVD is S x S where S = number of subcarriers. Wit
### FINDING PERF-R08: Multiband Duplicate Frequency Check -- O(N^2) [LOW] ### FINDING PERF-R08: Multiband Duplicate Frequency Check -- O(N^2) [LOW]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/multiband.rs` **File**: `v2/crates/wifi-densepose-signal/src/ruvsense/multiband.rs`
**Lines**: 126-135 **Lines**: 126-135
```rust ```rust
@@ -235,7 +235,7 @@ for i in 0..self.frequencies.len() {
### FINDING PERF-R09: Adversarial Detector -- Potential O(L^2) Consistency Check [MEDIUM] ### FINDING PERF-R09: Adversarial Detector -- Potential O(L^2) Consistency Check [MEDIUM]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/adversarial.rs` **File**: `v2/crates/wifi-densepose-signal/src/ruvsense/adversarial.rs`
**Lines**: 147+ **Lines**: 147+
The multi-link consistency check compares energy ratios across all links. With L=12 links, the pairwise comparison (if implemented) would be O(L^2) = 144. Combined with the four independent checks (consistency, field model, temporal, energy), this runs on every frame. The multi-link consistency check compares energy ratios across all links. With L=12 links, the pairwise comparison (if implemented) would be O(L^2) = 144. Combined with the four independent checks (consistency, field model, temporal, energy), this runs on every frame.
@@ -259,7 +259,7 @@ The multi-link consistency check compares energy ratios across all links. With L
### FINDING PERF-NN01: Serial Batch Inference [CRITICAL] ### FINDING PERF-NN01: Serial Batch Inference [CRITICAL]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-nn/src/inference.rs` **File**: `v2/crates/wifi-densepose-nn/src/inference.rs`
**Lines**: 334-336 **Lines**: 334-336
```rust ```rust
@@ -283,7 +283,7 @@ pub fn infer_batch(&self, inputs: &[Tensor]) -> NnResult<Vec<Tensor>> {
### FINDING PERF-NN02: Async Stats Update Spawns Tokio Task per Inference [HIGH] ### FINDING PERF-NN02: Async Stats Update Spawns Tokio Task per Inference [HIGH]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-nn/src/inference.rs` **File**: `v2/crates/wifi-densepose-nn/src/inference.rs`
**Lines**: 311-315 **Lines**: 311-315
```rust ```rust
@@ -307,7 +307,7 @@ tokio::spawn(async move {
### FINDING PERF-NN03: Tensor Clone in run_single [MEDIUM] ### FINDING PERF-NN03: Tensor Clone in run_single [MEDIUM]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-nn/src/inference.rs` **File**: `v2/crates/wifi-densepose-nn/src/inference.rs`
**Lines**: 122 **Lines**: 122
```rust ```rust
@@ -326,7 +326,7 @@ fn run_single(&self, input: &Tensor) -> NnResult<Tensor> {
### FINDING PERF-NN04: WiFiDensePosePipeline -- Two Sequential Inferences [MEDIUM] ### FINDING PERF-NN04: WiFiDensePosePipeline -- Two Sequential Inferences [MEDIUM]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-nn/src/inference.rs` **File**: `v2/crates/wifi-densepose-nn/src/inference.rs`
**Lines**: 389-413 **Lines**: 389-413
```rust ```rust
@@ -634,7 +634,7 @@ uint32_t next = (s_ring.head + 1) & (EDGE_RING_SLOTS - 1);
### FINDING PERF-XC01: Missing Parallelism in Multistatic Pipeline [HIGH] ### FINDING PERF-XC01: Missing Parallelism in Multistatic Pipeline [HIGH]
**File**: `rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/mod.rs` **File**: `v2/crates/wifi-densepose-signal/src/ruvsense/mod.rs`
**Lines**: 183-232 **Lines**: 183-232
The `RuvSensePipeline` orchestrator processes stages sequentially. The multiband fusion and phase alignment stages for each node are independent and could run in parallel using Rayon: The `RuvSensePipeline` orchestrator processes stages sequentially. The multiband fusion and phase alignment stages for each node are independent and could run in parallel using Rayon:
@@ -756,26 +756,26 @@ The following patterns were checked and found to be well-implemented:
## Appendix A: File Paths Analyzed ## Appendix A: File Paths Analyzed
### Rust Signal Processing ### Rust Signal Processing
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/mod.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/mod.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/tomography.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/tomography.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/multistatic.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/multistatic.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/pose_tracker.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/pose_tracker.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/field_model.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/field_model.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/gesture.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/gesture.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/coherence.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/coherence.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/coherence_gate.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/coherence_gate.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/multiband.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/multiband.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/phase_align.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/phase_align.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/adversarial.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/adversarial.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/intention.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/intention.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/longitudinal.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/longitudinal.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/cross_room.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/cross_room.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/temporal_gesture.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/temporal_gesture.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/attractor_drift.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-signal/src/ruvsense/attractor_drift.rs`
### Rust Neural Network ### Rust Neural Network
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-nn/src/inference.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-nn/src/inference.rs`
- `/workspaces/ruview/rust-port/wifi-densepose-rs/crates/wifi-densepose-nn/src/tensor.rs` - `/workspaces/ruview/v2/crates/wifi-densepose-nn/src/tensor.rs`
### Python Pipeline ### Python Pipeline
- `/workspaces/ruview/v1/src/core/csi_processor.py` - `/workspaces/ruview/v1/src/core/csi_processor.py`
+3 -3
View File
@@ -3,7 +3,7 @@
**Project:** wifi-densepose (ruview) **Project:** wifi-densepose (ruview)
**Date:** 2026-04-05 **Date:** 2026-04-05
**Analyst:** QE Test Architect (V3) **Analyst:** QE Test Architect (V3)
**Scope:** All test suites across Python (v1), Rust (rust-port), and Mobile (ui/mobile) **Scope:** All test suites across Python (v1), Rust (v2), and Mobile (ui/mobile)
--- ---
@@ -470,8 +470,8 @@ This is the best-tested service in the mobile suite.
|------|---------------| |------|---------------|
| `v1/tests/unit/test_sensing.py` | 45 tests with mathematical rigor, known-signal validation, domain-specific edge cases, cross-receiver agreement, band isolation. No mocks for core logic. | | `v1/tests/unit/test_sensing.py` | 45 tests with mathematical rigor, known-signal validation, domain-specific edge cases, cross-receiver agreement, band isolation. No mocks for core logic. |
| `v1/tests/unit/test_esp32_binary_parser.py` | Real UDP socket testing, struct-level binary validation, ADR-018 compliance. Tests actual I/Q to amplitude/phase math. | | `v1/tests/unit/test_esp32_binary_parser.py` | Real UDP socket testing, struct-level binary validation, ADR-018 compliance. Tests actual I/Q to amplitude/phase math. |
| `rust-port/.../tests/validation_test.rs` | Physics-based validation (Doppler, phase unwrapping, spectral analysis). Tests prove algorithm correctness, not just non-failure. | | `v2/.../tests/validation_test.rs` | Physics-based validation (Doppler, phase unwrapping, spectral analysis). Tests prove algorithm correctness, not just non-failure. |
| `rust-port/.../tests/test_losses.rs` | Deterministic data, feature-gated, tests mathematical properties (zero loss for identical inputs, non-zero for mismatched). | | `v2/.../tests/test_losses.rs` | Deterministic data, feature-gated, tests mathematical properties (zero loss for identical inputs, non-zero for mismatched). |
| `ui/mobile/.../utils/ringBuffer.test.ts` | Comprehensive boundary testing (NaN, Infinity, 0, negative, overflow). Tests copy semantics. | | `ui/mobile/.../utils/ringBuffer.test.ts` | Comprehensive boundary testing (NaN, Infinity, 0, negative, overflow). Tests copy semantics. |
### 5.2 Worst Test Files (Needs Improvement) ### 5.2 Worst Test Files (Needs Improvement)
@@ -337,7 +337,7 @@ Usage in rf_topology:
### 3.1 Module Location ### 3.1 Module Location
``` ```
rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/ v2/crates/wifi-densepose-signal/src/ruvsense/
rf_topology.rs <-- New module (primary) rf_topology.rs <-- New module (primary)
rf_topology/ rf_topology/
graph.rs <-- RfGraph aggregate root graph.rs <-- RfGraph aggregate root
@@ -351,7 +351,7 @@ rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/
Alternatively, rf_topology could be a standalone crate: Alternatively, rf_topology could be a standalone crate:
``` ```
rust-port/wifi-densepose-rs/crates/wifi-densepose-topology/ v2/crates/wifi-densepose-topology/
src/ src/
lib.rs lib.rs
graph.rs graph.rs
+1 -1
View File
@@ -2,7 +2,7 @@
**Date**: 2026-03-03 **Date**: 2026-03-03
**Auditor**: Security Auditor Agent (Claude Opus 4.6) **Auditor**: Security Auditor Agent (Claude Opus 4.6)
**Scope**: All 29 `.rs` files in `rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/` **Scope**: All 29 `.rs` files in `v2/crates/wifi-densepose-wasm-edge/src/`
**Crate version**: 0.3.0 **Crate version**: 0.3.0
**Target**: `wasm32-unknown-unknown` (ESP32-S3 WASM3 interpreter) **Target**: `wasm32-unknown-unknown` (ESP32-S3 WASM3 interpreter)
+1 -1
View File
@@ -909,7 +909,7 @@ For users with the Rust toolchain, the `wifi-densepose-train` crate
provides the full training pipeline with RuVector integration: provides the full training pipeline with RuVector integration:
```bash ```bash
cd rust-port/wifi-densepose-rs cd v2
cargo run -p wifi-densepose-train -- \ cargo run -p wifi-densepose-train -- \
--data pretrain-vectors.rvf \ --data pretrain-vectors.rvf \
--epochs 50 \ --epochs 50 \
+2 -2
View File
@@ -119,7 +119,7 @@ This prepares the native GTK/WebKit dependencies used by the desktop/Tauri crate
```bash ```bash
git clone https://github.com/ruvnet/RuView.git git clone https://github.com/ruvnet/RuView.git
cd RuView/rust-port/wifi-densepose-rs cd RuView/v2
# Build # Build
cargo build --release cargo build --release
@@ -558,7 +558,7 @@ RuView can generate real-time 3D point clouds by fusing camera depth estimation
```bash ```bash
# Build the pointcloud binary # Build the pointcloud binary
cd rust-port/wifi-densepose-rs cd v2
cargo build --release -p wifi-densepose-pointcloud cargo build --release -p wifi-densepose-pointcloud
# Start the server (auto-detects camera + CSI). Loopback-only by default. # Start the server (auto-detects camera + CSI). Loopback-only by default.
+1 -1
View File
@@ -92,7 +92,7 @@ sudo apt-get install -y build-essential pkg-config libssl-dev
```bash ```bash
# Clone the repository # Clone the repository
git clone https://github.com/ruvnet/wifi-densepose.git git clone https://github.com/ruvnet/wifi-densepose.git
cd wifi-densepose/rust-port/wifi-densepose-rs cd wifi-densepose/v2
# Build the wifi-mat crate # Build the wifi-mat crate
cargo build --release --package wifi-densepose-mat cargo build --release --package wifi-densepose-mat
+2 -2
View File
@@ -159,7 +159,7 @@ The happiness scoring algorithm also exists as a WASM module for on-device execu
```bash ```bash
# Build the happiness scorer WASM # Build the happiness scorer WASM
cd rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge cd v2/crates/wifi-densepose-wasm-edge
cargo build --bin ghost_hunter --target wasm32-unknown-unknown --release --no-default-features cargo build --bin ghost_hunter --target wasm32-unknown-unknown --release --no-default-features
# Output: target/wasm32-unknown-unknown/release/ghost_hunter.wasm (5.7 KB) # Output: target/wasm32-unknown-unknown/release/ghost_hunter.wasm (5.7 KB)
@@ -201,6 +201,6 @@ This system is designed to be privacy-preserving by construction:
- [ADR-065](../../docs/adr/ADR-065-happiness-scoring-seed-bridge.md) — Happiness scoring pipeline architecture - [ADR-065](../../docs/adr/ADR-065-happiness-scoring-seed-bridge.md) — Happiness scoring pipeline architecture
- [ADR-066](../../docs/adr/ADR-066-esp32-swarm-seed-coordinator.md) — ESP32 swarm with Seed coordinator - [ADR-066](../../docs/adr/ADR-066-esp32-swarm-seed-coordinator.md) — ESP32 swarm with Seed coordinator
- [exo_happiness_score.rs](../../rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/exo_happiness_score.rs) — WASM edge module (Rust) - [exo_happiness_score.rs](../../v2/crates/wifi-densepose-wasm-edge/src/exo_happiness_score.rs) — WASM edge module (Rust)
- [swarm_bridge.c](../../firmware/esp32-csi-node/main/swarm_bridge.c) — ESP32 firmware swarm bridge - [swarm_bridge.c](../../firmware/esp32-csi-node/main/swarm_bridge.c) — ESP32 firmware swarm bridge
- [ruview_live.py](../ruview_live.py) — RuView Live dashboard with `--mode happiness` - [ruview_live.py](../ruview_live.py) — RuView Live dashboard with `--mode happiness`
+7 -7
View File
@@ -25,7 +25,7 @@
set -euo pipefail set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
RUST_DIR="${SCRIPT_DIR}/rust-port/wifi-densepose-rs" RUST_DIR="${SCRIPT_DIR}/v2"
# ─── Colors ─────────────────────────────────────────────────────────── # ─── Colors ───────────────────────────────────────────────────────────
if [ -t 1 ]; then if [ -t 1 ]; then
@@ -955,7 +955,7 @@ post_install() {
;; ;;
rust) rust)
echo " # Run benchmarks:" echo " # Run benchmarks:"
echo " cd rust-port/wifi-densepose-rs" echo " cd v2"
echo " cargo bench --package wifi-densepose-signal" echo " cargo bench --package wifi-densepose-signal"
echo "" echo ""
echo " # Start Rust API server:" echo " # Start Rust API server:"
@@ -963,7 +963,7 @@ post_install() {
;; ;;
browser) browser)
echo " # WASM package is at:" echo " # WASM package is at:"
echo " # rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm/pkg/" echo " # v2/crates/wifi-densepose-wasm/pkg/"
echo "" echo ""
echo " # Open the 3D visualization:" echo " # Open the 3D visualization:"
echo " python3 -m http.server 3000 --directory ui" echo " python3 -m http.server 3000 --directory ui"
@@ -999,17 +999,17 @@ post_install() {
echo " # WiFi-Mat disaster response module built." echo " # WiFi-Mat disaster response module built."
echo "" echo ""
echo " # Run WiFi-Mat tests:" echo " # Run WiFi-Mat tests:"
echo " cd rust-port/wifi-densepose-rs" echo " cd v2"
echo " cargo test --package wifi-densepose-mat" echo " cargo test --package wifi-densepose-mat"
echo "" echo ""
echo " # Field deployment WASM package at:" echo " # Field deployment WASM package at:"
echo " # rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm/pkg/" echo " # v2/crates/wifi-densepose-wasm/pkg/"
;; ;;
full) full)
echo " # Verification: ./verify" echo " # Verification: ./verify"
echo " # Python API: uvicorn v1.src.api.main:app --host 0.0.0.0 --port 8000" echo " # Python API: uvicorn v1.src.api.main:app --host 0.0.0.0 --port 8000"
echo " # Rust API: cd rust-port/wifi-densepose-rs && cargo run --release --package wifi-densepose-api" echo " # Rust API: cd v2 && cargo run --release --package wifi-densepose-api"
echo " # Benchmarks: cd rust-port/wifi-densepose-rs && cargo bench" echo " # Benchmarks: cd v2 && cargo bench"
echo " # Visualization: python3 -m http.server 3000 --directory ui" echo " # Visualization: python3 -m http.server 3000 --directory ui"
echo " # Docker: docker compose up" echo " # Docker: docker compose up"
;; ;;
@@ -1 +0,0 @@
26601
@@ -1,42 +0,0 @@
{"type":"edit","file":"unknown","timestamp":1773100520674,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100630628,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100635269,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100648222,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100660593,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100670480,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100765961,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100793408,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100801110,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100806887,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100820942,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100857691,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100894224,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773100911798,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773101430507,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773101470221,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773101478246,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773103575668,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773103693989,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773115108388,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773115362485,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773115372676,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773115388605,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773115394377,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773115415015,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773115600459,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773146102258,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773146113449,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773146119695,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773146128174,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773146133721,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773146150082,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773146337071,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773150581963,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773150596765,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773152997925,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773153073387,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773153109436,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773153121443,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773153290476,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773153290781,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773153291056,"sessionId":null}
@@ -1,12 +0,0 @@
{
"id": "session-1773150558480",
"startedAt": "2026-03-10T13:49:18.480Z",
"cwd": "/Users/cohen/GitHub/ruvnet/RuView/rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop",
"context": {},
"metrics": {
"edits": 9,
"commands": 0,
"tasks": 0,
"errors": 0
}
}
@@ -1,14 +0,0 @@
{
"id": "session-1773100562538",
"startedAt": "2026-03-09T23:56:02.538Z",
"cwd": "/Users/cohen/GitHub/ruvnet/RuView/rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop",
"context": {},
"metrics": {
"edits": 13,
"commands": 0,
"tasks": 0,
"errors": 0
},
"endedAt": "2026-03-10T00:07:15.557Z",
"duration": 673020
}
@@ -1,14 +0,0 @@
{
"id": "session-1773101285009",
"startedAt": "2026-03-10T00:08:05.009Z",
"cwd": "/Users/cohen/GitHub/ruvnet/RuView/rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop",
"context": {},
"metrics": {
"edits": 19,
"commands": 0,
"tasks": 0,
"errors": 0
},
"endedAt": "2026-03-10T13:48:30.150Z",
"duration": 49225141
}
@@ -1,28 +0,0 @@
{"type":"edit","file":"unknown","timestamp":1772835768740,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1772835786050,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1772835802335,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1772835865846,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1772835875824,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1772835892636,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1772835909237,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1772835921184,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1772835930809,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1772835942468,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1772835952451,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773070971487,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773070977376,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773101503481,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773107530083,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773107530201,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773107530319,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773114830434,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773114834713,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773114838852,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773150617007,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773150621430,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773150628006,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773150640909,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773150672276,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773150677219,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773150683839,"sessionId":null}
{"type":"edit","file":"unknown","timestamp":1773150688912,"sessionId":null}
@@ -1,12 +0,0 @@
{
"id": "session-1773103750755",
"startedAt": "2026-03-10T00:49:10.755Z",
"cwd": "/Users/cohen/GitHub/ruvnet/RuView/rust-port/wifi-densepose-rs/crates/wifi-densepose-desktop/ui",
"context": {},
"metrics": {
"edits": 14,
"commands": 0,
"tasks": 0,
"errors": 0
}
}
+3 -3
View File
@@ -263,7 +263,7 @@ export LIBTORCH=\$(python3 -c "import torch; print(torch.__path__[0] + '/lib')")
export LD_LIBRARY_PATH="\${LIBTORCH}:\${LD_LIBRARY_PATH:-}" export LD_LIBRARY_PATH="\${LIBTORCH}:\${LD_LIBRARY_PATH:-}"
# Build the training binary with tch-backend # Build the training binary with tch-backend
cd ~/wifi-densepose/rust-port/wifi-densepose-rs cd ~/wifi-densepose/v2
echo "Building with LIBTORCH=\$LIBTORCH ..." echo "Building with LIBTORCH=\$LIBTORCH ..."
cargo build --release --features tch-backend --bin train 2>&1 | tail -5 cargo build --release --features tch-backend --bin train 2>&1 | tail -5
@@ -325,7 +325,7 @@ set -euo pipefail
source \$HOME/.cargo/env source \$HOME/.cargo/env
export LIBTORCH=\$(python3 -c \"import torch; print(torch.__path__[0] + '/lib')\") export LIBTORCH=\$(python3 -c \"import torch; print(torch.__path__[0] + '/lib')\")
export LD_LIBRARY_PATH=\"\${LIBTORCH}:\${LD_LIBRARY_PATH:-}\" export LD_LIBRARY_PATH=\"\${LIBTORCH}:\${LD_LIBRARY_PATH:-}\"
cd ~/wifi-densepose/rust-port/wifi-densepose-rs cd ~/wifi-densepose/v2
# Set auto-shutdown timer (safety net) # Set auto-shutdown timer (safety net)
sudo shutdown -P +$((MAX_HOURS * 60)) & sudo shutdown -P +$((MAX_HOURS * 60)) &
@@ -408,7 +408,7 @@ mkdir -p "$LOCAL_RESULTS"
# Package results on the VM # Package results on the VM
gcloud compute ssh "$INSTANCE_NAME" --zone="$ZONE" --command=" gcloud compute ssh "$INSTANCE_NAME" --zone="$ZONE" --command="
cd ~/wifi-densepose/rust-port/wifi-densepose-rs cd ~/wifi-densepose/v2
tar czf ~/training-artifacts.tar.gz \ tar czf ~/training-artifacts.tar.gz \
checkpoints/ \ checkpoints/ \
logs/ \ logs/ \
+2 -2
View File
@@ -60,7 +60,7 @@ with open('$BUNDLE_DIR/proof/reference_signal_metadata.json', 'w') as f:
# --------------------------------------------------------------- # ---------------------------------------------------------------
echo "[3/7] Running Rust test suite..." echo "[3/7] Running Rust test suite..."
mkdir -p "$BUNDLE_DIR/test-results" mkdir -p "$BUNDLE_DIR/test-results"
cd "$REPO_ROOT/rust-port/wifi-densepose-rs" cd "$REPO_ROOT/v2"
cargo test --workspace --no-default-features 2>&1 | tee "$BUNDLE_DIR/test-results/rust-workspace-tests.log" | tail -5 cargo test --workspace --no-default-features 2>&1 | tee "$BUNDLE_DIR/test-results/rust-workspace-tests.log" | tail -5
# Extract summary # Extract summary
grep "^test result" "$BUNDLE_DIR/test-results/rust-workspace-tests.log" | \ grep "^test result" "$BUNDLE_DIR/test-results/rust-workspace-tests.log" | \
@@ -98,7 +98,7 @@ fi
# --------------------------------------------------------------- # ---------------------------------------------------------------
echo "[6/7] Generating crate manifest..." echo "[6/7] Generating crate manifest..."
mkdir -p "$BUNDLE_DIR/crate-manifest" mkdir -p "$BUNDLE_DIR/crate-manifest"
for crate_dir in "$REPO_ROOT/rust-port/wifi-densepose-rs/crates/"*/; do for crate_dir in "$REPO_ROOT/v2/crates/"*/; do
crate_name="$(basename "$crate_dir")" crate_name="$(basename "$crate_dir")"
if [ -f "$crate_dir/Cargo.toml" ]; then if [ -f "$crate_dir/Cargo.toml" ]; then
version=$(grep '^version' "$crate_dir/Cargo.toml" | head -1 | sed 's/.*"\(.*\)".*/\1/') version=$(grep '^version' "$crate_dir/Cargo.toml" | head -1 | sed 's/.*"\(.*\)".*/\1/')
+1 -1
View File
@@ -82,7 +82,7 @@ PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
FIRMWARE_DIR="$PROJECT_ROOT/firmware/esp32-csi-node" FIRMWARE_DIR="$PROJECT_ROOT/firmware/esp32-csi-node"
BUILD_DIR="$FIRMWARE_DIR/build" BUILD_DIR="$FIRMWARE_DIR/build"
RUST_DIR="$PROJECT_ROOT/rust-port/wifi-densepose-rs" RUST_DIR="$PROJECT_ROOT/v2"
PROVISION_SCRIPT="$FIRMWARE_DIR/provision.py" PROVISION_SCRIPT="$FIRMWARE_DIR/provision.py"
VALIDATE_SCRIPT="$SCRIPT_DIR/validate_mesh_test.py" VALIDATE_SCRIPT="$SCRIPT_DIR/validate_mesh_test.py"
+1 -1
View File
@@ -46,7 +46,7 @@ except ImportError:
SCRIPT_DIR = Path(__file__).resolve().parent SCRIPT_DIR = Path(__file__).resolve().parent
PROJECT_ROOT = SCRIPT_DIR.parent PROJECT_ROOT = SCRIPT_DIR.parent
FIRMWARE_DIR = PROJECT_ROOT / "firmware" / "esp32-csi-node" FIRMWARE_DIR = PROJECT_ROOT / "firmware" / "esp32-csi-node"
RUST_DIR = PROJECT_ROOT / "rust-port" / "wifi-densepose-rs" RUST_DIR = PROJECT_ROOT / "v2" / "wifi-densepose-rs"
PROVISION_SCRIPT = FIRMWARE_DIR / "provision.py" PROVISION_SCRIPT = FIRMWARE_DIR / "provision.py"
PRESETS_DIR = SCRIPT_DIR / "swarm_presets" PRESETS_DIR = SCRIPT_DIR / "swarm_presets"
+1 -1
View File
@@ -125,7 +125,7 @@ Open http://localhost:3000/ui/index.html
### With local Rust binary ### With local Rust binary
```bash ```bash
cd rust-port/wifi-densepose-rs cd v2
cargo build -p wifi-densepose-sensing-server --no-default-features cargo build -p wifi-densepose-sensing-server --no-default-features
# Run with simulated data # Run with simulated data
+1 -1
View File
@@ -51,4 +51,4 @@ pytest tests/
## Note ## Note
This is the legacy Python implementation. For the new Rust implementation with improved performance, see `/rust-port/wifi-densepose-rs/`. This is the legacy Python implementation. For the new Rust implementation with improved performance, see `/v2/`.
@@ -64,8 +64,8 @@
}, },
"config": { "config": {
"autoStart": false, "autoStart": false,
"logDir": "/home/user/wifi-densepose/rust-port/wifi-densepose-rs/.claude-flow/logs", "logDir": "/home/user/wifi-densepose/v2/.claude-flow/logs",
"stateFile": "/home/user/wifi-densepose/rust-port/wifi-densepose-rs/.claude-flow/daemon-state.json", "stateFile": "/home/user/wifi-densepose/v2/.claude-flow/daemon-state.json",
"maxConcurrent": 2, "maxConcurrent": 2,
"workerTimeoutMs": 300000, "workerTimeoutMs": 300000,
"resourceThresholds": { "resourceThresholds": {
@@ -1,6 +1,6 @@
{ {
"timestamp": "2026-02-28T14:40:51.151Z", "timestamp": "2026-02-28T14:40:51.151Z",
"projectRoot": "/home/user/wifi-densepose/rust-port/wifi-densepose-rs", "projectRoot": "/home/user/wifi-densepose/v2",
"structure": { "structure": {
"hasPackageJson": false, "hasPackageJson": false,
"hasTsConfig": false, "hasTsConfig": false,
@@ -213,7 +213,7 @@ cargo run -p wifi-densepose-train --features tch-backend --bin verify-training
```bash ```bash
# Clone the repository # Clone the repository
git clone https://github.com/ruvnet/wifi-densepose.git git clone https://github.com/ruvnet/wifi-densepose.git
cd wifi-densepose/rust-port/wifi-densepose-rs cd wifi-densepose/v2
# Check workspace (no GPU dependencies) # Check workspace (no GPU dependencies)
cargo check --workspace --no-default-features cargo check --workspace --no-default-features
@@ -214,7 +214,7 @@ All crates are published on [crates.io](https://crates.io/search?q=ruv-neural):
### Build ### Build
```bash ```bash
cd rust-port/wifi-densepose-rs/crates/ruv-neural cd v2/crates/ruv-neural
cargo build --workspace cargo build --workspace
cargo test --workspace cargo test --workspace
``` ```

Some files were not shown because too many files have changed in this diff Show More