diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ad2b83..a498d7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Added +- **Project MERIDIAN (ADR-027)** — Cross-environment domain generalization for WiFi pose estimation (1,858 lines, 72 tests) + - `HardwareNormalizer` — Catmull-Rom cubic interpolation resamples any hardware CSI to canonical 56 subcarriers; z-score + phase sanitization + - `DomainFactorizer` + `GradientReversalLayer` — adversarial disentanglement of pose-relevant vs environment-specific features + - `GeometryEncoder` + `FilmLayer` — Fourier positional encoding + DeepSets + FiLM for zero-shot deployment given AP positions + - `VirtualDomainAugmentor` — synthetic environment diversity (room scale, wall material, scatterers, noise) for 4x training augmentation + - `RapidAdaptation` — 10-second unsupervised calibration via contrastive test-time training + LoRA adapters + - `CrossDomainEvaluator` — 6-metric evaluation protocol (MPJPE in-domain/cross-domain/few-shot/cross-hardware, domain gap ratio, adaptation speedup) +- ADR-027: Cross-Environment Domain Generalization — 10 SOTA citations (PerceptAlign, X-Fi ICLR 2025, AM-FM, DGSense, CVPR 2024) - **Cross-platform RSSI adapters** — macOS CoreWLAN (`MacosCoreWlanScanner`) and Linux `iw` (`LinuxIwScanner`) Rust adapters with `#[cfg(target_os)]` gating - macOS CoreWLAN Python sensing adapter with Swift helper (`mac_wifi.swift`) - macOS synthetic BSSID generation (FNV-1a hash) for Sonoma 14.4+ BSSID redaction diff --git a/README.md b/README.md index 331d2fe..e4a41a8 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,7 @@ The system learns on its own and gets smarter over time — no hand-tuning, no l |---|---------|---------------| | 🧠 | **Self-Learning** | Teaches itself from raw WiFi data — no labeled training sets, no cameras needed to bootstrap ([ADR-024](#self-learning-wifi-ai-adr-024)) | | 🎯 | **AI Signal Processing** | Attention networks, graph algorithms, and smart compression replace hand-tuned thresholds — adapts to each room automatically ([RuVector](#ai-backbone-ruvector)) | +| 🌍 | **Works Everywhere** | Train once, deploy in any room — adversarial domain generalization strips environment bias so models transfer across rooms, buildings, and hardware ([ADR-027](#cross-environment-generalization-adr-027)) | ### Performance & Deployment @@ -107,7 +108,7 @@ Neural Network maps processed signals → 17 body keypoints + vital signs Output: real-time pose, breathing rate, heart rate, presence, room fingerprint ``` -No training cameras required — the [Self-Learning system (ADR-024)](#self-learning-wifi-ai-adr-024) bootstraps from raw WiFi data alone. +No training cameras required — the [Self-Learning system (ADR-024)](#self-learning-wifi-ai-adr-024) bootstraps from raw WiFi data alone. [MERIDIAN (ADR-027)](#cross-environment-generalization-adr-027) ensures the model works in any room, not just the one it trained in. --- diff --git a/docs/adr/ADR-002-ruvector-rvf-integration-strategy.md b/docs/adr/ADR-002-ruvector-rvf-integration-strategy.md index 6e9b8a0..7b07fd7 100644 --- a/docs/adr/ADR-002-ruvector-rvf-integration-strategy.md +++ b/docs/adr/ADR-002-ruvector-rvf-integration-strategy.md @@ -1,7 +1,9 @@ # ADR-002: RuVector RVF Integration Strategy ## Status -Proposed +Superseded by [ADR-016](ADR-016-ruvector-integration.md) and [ADR-017](ADR-017-ruvector-signal-mat-integration.md) + +> **Note:** The vision in this ADR has been fully realized. ADR-016 integrates all 5 RuVector crates into the training pipeline. ADR-017 adds 7 signal + MAT integration points. The `wifi-densepose-ruvector` crate is [published on crates.io](https://crates.io/crates/wifi-densepose-ruvector). See also [ADR-027](ADR-027-cross-environment-domain-generalization.md) for how RuVector is extended with domain generalization. ## Date 2026-02-28 diff --git a/docs/adr/ADR-004-hnsw-vector-search-fingerprinting.md b/docs/adr/ADR-004-hnsw-vector-search-fingerprinting.md index 9219b37..40b2ba6 100644 --- a/docs/adr/ADR-004-hnsw-vector-search-fingerprinting.md +++ b/docs/adr/ADR-004-hnsw-vector-search-fingerprinting.md @@ -1,7 +1,9 @@ # ADR-004: HNSW Vector Search for Signal Fingerprinting ## Status -Proposed +Partially realized by [ADR-024](ADR-024-contrastive-csi-embedding-model.md); extended by [ADR-027](ADR-027-cross-environment-domain-generalization.md) + +> **Note:** ADR-024 (AETHER) implements HNSW-compatible fingerprint indices with 4 index types. ADR-027 (MERIDIAN) extends this with domain-disentangled embeddings so fingerprints match across environments, not just within a single room. ## Date 2026-02-28 diff --git a/docs/adr/ADR-005-sona-self-learning-pose-estimation.md b/docs/adr/ADR-005-sona-self-learning-pose-estimation.md index 153b3b5..bba6475 100644 --- a/docs/adr/ADR-005-sona-self-learning-pose-estimation.md +++ b/docs/adr/ADR-005-sona-self-learning-pose-estimation.md @@ -1,7 +1,9 @@ # ADR-005: SONA Self-Learning for Pose Estimation ## Status -Proposed +Partially realized in [ADR-023](ADR-023-trained-densepose-model-ruvector-pipeline.md); extended by [ADR-027](ADR-027-cross-environment-domain-generalization.md) + +> **Note:** ADR-023 implements SONA with MicroLoRA rank-4 adapters and EWC++ memory preservation. ADR-027 (MERIDIAN) extends SONA with unsupervised rapid adaptation: 10 seconds of unlabeled WiFi data in a new room automatically generates environment-specific LoRA weights via contrastive test-time training. ## Date 2026-02-28 diff --git a/docs/adr/ADR-006-gnn-enhanced-csi-pattern-recognition.md b/docs/adr/ADR-006-gnn-enhanced-csi-pattern-recognition.md index 482d676..fac600e 100644 --- a/docs/adr/ADR-006-gnn-enhanced-csi-pattern-recognition.md +++ b/docs/adr/ADR-006-gnn-enhanced-csi-pattern-recognition.md @@ -1,7 +1,9 @@ # ADR-006: GNN-Enhanced CSI Pattern Recognition ## Status -Proposed +Partially realized in [ADR-023](ADR-023-trained-densepose-model-ruvector-pipeline.md); extended by [ADR-027](ADR-027-cross-environment-domain-generalization.md) + +> **Note:** ADR-023 implements a 2-layer GCN on the COCO skeleton graph for spatial reasoning. ADR-027 (MERIDIAN) adds domain-adversarial regularization via a gradient reversal layer that forces the GCN to learn environment-invariant graph features, shedding room-specific multipath patterns. ## Date 2026-02-28