wifi-densepose/v2/crates/wifi-densepose-core
rUv f49c722764
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.
2026-04-25 21:28:13 -04:00
..
src chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
Cargo.toml chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
README.md chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00

README.md

wifi-densepose-core

Crates.io Documentation License

Core types, traits, and utilities for the WiFi-DensePose pose estimation system.

Overview

wifi-densepose-core is the foundation crate for the WiFi-DensePose workspace. It defines the shared data structures, error types, and trait contracts used by every other crate in the ecosystem. The crate is no_std-compatible (with the std feature disabled) and forbids all unsafe code.

Features

  • Core data types -- CsiFrame, ProcessedSignal, PoseEstimate, PersonPose, Keypoint, KeypointType, BoundingBox, Confidence, Timestamp, and more.
  • Trait abstractions -- SignalProcessor, NeuralInference, and DataStore define the contracts for signal processing, neural network inference, and data persistence respectively.
  • Error hierarchy -- CoreError, SignalError, InferenceError, and StorageError provide typed error handling across subsystem boundaries.
  • no_std support -- Disable the default std feature for embedded or WASM targets.
  • Constants -- MAX_KEYPOINTS (17, COCO format), MAX_SUBCARRIERS (256), DEFAULT_CONFIDENCE_THRESHOLD (0.5).

Feature flags

Flag Default Description
std yes Enable standard library support
serde no Serialization via serde (+ ndarray serde)
async no Async trait definitions via async-trait

Quick Start

use wifi_densepose_core::{CsiFrame, Keypoint, KeypointType, Confidence};

// Create a keypoint with high confidence
let keypoint = Keypoint::new(
    KeypointType::Nose,
    0.5,
    0.3,
    Confidence::new(0.95).unwrap(),
);

assert!(keypoint.is_visible());

Or use the prelude for convenient bulk imports:

use wifi_densepose_core::prelude::*;

Architecture

wifi-densepose-core/src/
  lib.rs          -- Re-exports, constants, prelude
  types.rs        -- CsiFrame, PoseEstimate, Keypoint, etc.
  traits.rs       -- SignalProcessor, NeuralInference, DataStore
  error.rs        -- CoreError, SignalError, InferenceError, StorageError
  utils.rs        -- Shared helper functions
Crate Role
wifi-densepose-signal CSI signal processing algorithms
wifi-densepose-nn Neural network inference backends
wifi-densepose-train Training pipeline with ruvector
wifi-densepose-mat Disaster detection (MAT)
wifi-densepose-hardware Hardware sensor interfaces
wifi-densepose-vitals Vital sign extraction
wifi-densepose-wifiscan Multi-BSSID WiFi scanning

License

MIT OR Apache-2.0