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§
- Disaster
Config - Configuration for the disaster response system
- Disaster
Config Builder - Builder for DisasterConfig
- Disaster
Response - 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