Skip to main content

Crate wifi_densepose_mat

Crate wifi_densepose_mat 

Source
Expand description

§WiFi-DensePose MAT (Mass Casualty Assessment Tool)

A modular extension for WiFi-based disaster survivor detection and localization.

This crate provides capabilities for detecting human survivors trapped in rubble, debris, or collapsed structures using WiFi Channel State Information (CSI) analysis.

§Features

  • Vital Signs Detection: Breathing patterns, heartbeat signatures, and movement
  • Survivor Localization: 3D position estimation through debris
  • Triage Classification: Automatic START protocol-compatible triage
  • Real-time Alerting: Priority-based alert generation and dispatch

§Use Cases

  • Earthquake search and rescue
  • Building collapse response
  • Avalanche victim location
  • Flood rescue operations
  • Mine collapse detection

§Architecture

The crate follows Domain-Driven Design (DDD) principles with clear bounded contexts:

┌─────────────────────────────────────────────────────────┐
│                    wifi-densepose-mat                    │
├─────────────────────────────────────────────────────────┤
│  ┌───────────┐  ┌─────────────┐  ┌─────────────────┐   │
│  │ Detection │  │Localization │  │    Alerting     │   │
│  │  Context  │  │   Context   │  │    Context      │   │
│  └─────┬─────┘  └──────┬──────┘  └────────┬────────┘   │
│        └───────────────┼──────────────────┘            │
│                        │                                │
│              ┌─────────▼─────────┐                      │
│              │   Integration     │                      │
│              │      Layer        │                      │
│              └───────────────────┘                      │
└─────────────────────────────────────────────────────────┘

§Example

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

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Initialize disaster response system
    let config = DisasterConfig::builder()
        .disaster_type(DisasterType::Earthquake)
        .sensitivity(0.8)
        .build();

    let mut response = DisasterResponse::new(config);

    // Define scan zone
    let zone = ScanZone::new(
        "Building A - North Wing",
        ZoneBounds::rectangle(0.0, 0.0, 50.0, 30.0),
    );
    response.add_zone(zone)?;

    // Start scanning
    response.start_scanning().await?;

    Ok(())
}

Re-exports§

pub use domain::survivor::Survivor;
pub use domain::survivor::SurvivorId;
pub use domain::survivor::SurvivorMetadata;
pub use domain::survivor::SurvivorStatus;
pub use domain::disaster_event::DisasterEvent;
pub use domain::disaster_event::DisasterEventId;
pub use domain::disaster_event::DisasterType;
pub use domain::disaster_event::EventStatus;
pub use domain::scan_zone::ScanZone;
pub use domain::scan_zone::ScanZoneId;
pub use domain::scan_zone::ZoneBounds;
pub use domain::scan_zone::ZoneStatus;
pub use domain::scan_zone::ScanParameters;
pub use domain::alert::Alert;
pub use domain::alert::AlertId;
pub use domain::alert::AlertPayload;
pub use domain::alert::Priority;
pub use domain::vital_signs::VitalSignsReading;
pub use domain::vital_signs::BreathingPattern;
pub use domain::vital_signs::BreathingType;
pub use domain::vital_signs::HeartbeatSignature;
pub use domain::vital_signs::MovementProfile;
pub use domain::vital_signs::MovementType;
pub use domain::triage::TriageStatus;
pub use domain::triage::TriageCalculator;
pub use domain::coordinates::Coordinates3D;
pub use domain::coordinates::LocationUncertainty;
pub use domain::coordinates::DepthEstimate;
pub use domain::events::DetectionEvent;
pub use domain::events::AlertEvent;
pub use domain::events::DomainEvent;
pub use domain::events::EventStore;
pub use domain::events::InMemoryEventStore;
pub use domain::events::TrackingEvent;
pub use detection::BreathingDetector;
pub use detection::BreathingDetectorConfig;
pub use detection::HeartbeatDetector;
pub use detection::HeartbeatDetectorConfig;
pub use detection::MovementClassifier;
pub use detection::MovementClassifierConfig;
pub use detection::VitalSignsDetector;
pub use detection::DetectionPipeline;
pub use detection::DetectionConfig;
pub use detection::EnsembleClassifier;
pub use detection::EnsembleConfig;
pub use detection::EnsembleResult;
pub use localization::Triangulator;
pub use localization::TriangulationConfig;
pub use localization::DepthEstimator;
pub use localization::DepthEstimatorConfig;
pub use localization::PositionFuser;
pub use localization::LocalizationService;
pub use alerting::AlertGenerator;
pub use alerting::AlertDispatcher;
pub use alerting::AlertConfig;
pub use alerting::TriageService;
pub use alerting::PriorityCalculator;
pub use integration::SignalAdapter;
pub use integration::NeuralAdapter;
pub use integration::HardwareAdapter;
pub use integration::AdapterError;
pub use integration::IntegrationConfig;
pub use api::create_router;
pub use api::AppState;
pub use ml::MlError;
pub use ml::MlResult;
pub use ml::MlDetectionConfig;
pub use ml::MlDetectionPipeline;
pub use ml::MlDetectionResult;
pub use ml::DebrisPenetrationModel;
pub use ml::DebrisFeatures;
pub use ml::DepthEstimate as MlDepthEstimate;
pub use ml::DebrisModel;
pub use ml::DebrisModelConfig;
pub use ml::DebrisFeatureExtractor;
pub use ml::MaterialType;
pub use ml::DebrisClassification;
pub use ml::AttenuationPrediction;
pub use ml::VitalSignsClassifier;
pub use ml::VitalSignsClassifierConfig;
pub use ml::BreathingClassification;
pub use ml::HeartbeatClassification;
pub use ml::UncertaintyEstimate;
pub use ml::ClassifierOutput;
pub use tracking::SurvivorTracker;
pub use tracking::TrackerConfig;
pub use tracking::TrackId;
pub use tracking::TrackedSurvivor;
pub use tracking::DetectionObservation;
pub use tracking::AssociationResult;
pub use tracking::KalmanState;
pub use tracking::CsiFingerprint;
pub use tracking::TrackState;
pub use tracking::TrackLifecycle;

Modules§

alerting
Alerting module for emergency notifications.
api
REST API endpoints for WiFi-DensePose MAT disaster response monitoring.
detection
Detection module for vital signs detection from CSI data.
domain
Domain module containing core entities, value objects, and domain events.
integration
Integration layer (Anti-Corruption Layer) for upstream crates.
localization
Localization module for survivor position estimation.
ml
Machine Learning module for debris penetration pattern recognition.
prelude
Prelude module for convenient imports
tracking
Survivor track lifecycle management for the MAT crate.

Structs§

DisasterConfig
Configuration for the disaster response system
DisasterConfigBuilder
Builder for DisasterConfig
DisasterResponse
Main disaster response coordinator

Enums§

MatError
Unified error type for MAT operations

Constants§

VERSION
Library version

Type Aliases§

Result
Common result type for MAT operations