Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 00530ae

Browse files
committed
merge: resolve README conflict (26 ADRs includes ADR-025 + ADR-026)
Co-Authored-By: claude-flow <[email protected]>
2 parents ed3261f + 6a2ef11 commit 00530ae

14 files changed

Lines changed: 1576 additions & 261 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,9 @@ cython_debug/
193193
# PyPI configuration file
194194
.pypirc
195195

196+
# Compiled Swift helper binaries (macOS WiFi sensing)
197+
v1/src/sensing/mac_wifi
198+
196199
# Cursor
197200
# Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
198201
# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data

CHANGELOG.md

Lines changed: 219 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -5,68 +5,238 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [1.1.0] - 2025-06-07
8+
## [Unreleased]
99

1010
### Added
11-
- Multi-column table of contents in README.md for improved navigation
12-
- Enhanced documentation structure with better organization
13-
- Improved visual layout for better user experience
11+
- **Cross-platform RSSI adapters** — macOS CoreWLAN (`MacosCoreWlanScanner`) and Linux `iw` (`LinuxIwScanner`) Rust adapters with `#[cfg(target_os)]` gating
12+
- macOS CoreWLAN Python sensing adapter with Swift helper (`mac_wifi.swift`)
13+
- macOS synthetic BSSID generation (FNV-1a hash) for Sonoma 14.4+ BSSID redaction
14+
- Linux `iw dev <iface> scan` parser with freq-to-channel conversion and `scan dump` (no-root) mode
15+
- ADR-025: macOS CoreWLAN WiFi Sensing (ORCA)
16+
17+
### Fixed
18+
- Removed synthetic byte counters from Python `MacosWifiCollector` — now reports `tx_bytes=0, rx_bytes=0` instead of fake incrementing values
19+
20+
---
21+
22+
## [3.0.0] - 2026-03-01
23+
24+
Major release: AETHER contrastive embedding model, Docker Hub images, and comprehensive UI overhaul.
25+
26+
### Added — AETHER Contrastive Embedding Model (ADR-024)
27+
- **Project AETHER** — self-supervised contrastive learning for WiFi CSI fingerprinting, similarity search, and anomaly detection (`9bbe956`)
28+
- `embedding.rs` module: `ProjectionHead`, `InfoNceLoss`, `CsiAugmenter`, `FingerprintIndex`, `PoseEncoder`, `EmbeddingExtractor` (909 lines, zero external ML dependencies)
29+
- SimCLR-style pretraining with 5 physically-motivated augmentations (temporal jitter, subcarrier masking, Gaussian noise, phase rotation, amplitude scaling)
30+
- CLI flags: `--pretrain`, `--pretrain-epochs`, `--embed`, `--build-index <type>`
31+
- Four HNSW-compatible fingerprint index types: `env_fingerprint`, `activity_pattern`, `temporal_baseline`, `person_track`
32+
- Cross-modal `PoseEncoder` for WiFi-to-camera embedding alignment
33+
- VICReg regularization for embedding collapse prevention
34+
- 53K total parameters (55 KB at INT8) — fits on ESP32
35+
36+
### Added — Docker & Deployment
37+
- Published Docker Hub images: `ruvnet/wifi-densepose:latest` (132 MB Rust) and `ruvnet/wifi-densepose:python` (569 MB) (`add9f19`)
38+
- Multi-stage Dockerfile for Rust sensing server with RuVector crates
39+
- `docker-compose.yml` orchestrating both Rust and Python services
40+
- RVF model export via `--export-rvf` and load via `--load-rvf` CLI flags
41+
42+
### Added — Documentation
43+
- 33 use cases across 4 vertical tiers: Everyday, Specialized, Robotics & Industrial, Extreme (`0afd9c5`)
44+
- "Why WiFi Wins" comparison table (WiFi vs camera vs LIDAR vs wearable vs PIR)
45+
- Mermaid architecture diagrams: end-to-end pipeline, signal processing detail, deployment topology (`50f0fc9`)
46+
- Models & Training section with RuVector crate links (GitHub + crates.io), SONA component table (`965a1cc`)
47+
- RVF container section with deployment targets table (ESP32 0.7 MB to server 50+ MB)
48+
- Collapsible README sections for improved navigation (`478d964`, `99ec980`, `0ebd6be`)
49+
- Installation and Quick Start moved above Table of Contents (`50acbf7`)
50+
- CSI hardware requirement notice (`528b394`)
51+
52+
### Fixed
53+
- **UI auto-detects server port from page origin** — no more hardcoded `localhost:8080`; works on any port (Docker :3000, native :8080, custom) (`3b72f35`, closes #55)
54+
- **Docker port mismatch** — server now binds 3000/3001 inside container as documented (`44b9c30`)
55+
- Added `/ws/sensing` WebSocket route to the HTTP server so UI only needs one port
56+
- Fixed README API endpoint references: `/api/v1/health``/health`, `/api/v1/sensing``/api/v1/sensing/latest`
57+
- Multi-person tracking limit corrected: configurable default 10, no hard software cap (`e2ce250`)
58+
59+
---
60+
61+
## [2.0.0] - 2026-02-28
62+
63+
Major release: complete Rust sensing server, full DensePose training pipeline, RuVector v2.0.4 integration, ESP32-S3 firmware, and 6 security hardening patches.
64+
65+
### Added — Rust Sensing Server
66+
- **Full DensePose-compatible REST API** served by Axum (`d956c30`)
67+
- `GET /health` — server health
68+
- `GET /api/v1/sensing/latest` — live CSI sensing data
69+
- `GET /api/v1/vital-signs` — breathing rate (6-30 BPM) and heartbeat (40-120 BPM)
70+
- `GET /api/v1/pose/current` — 17 COCO keypoints derived from WiFi signal field
71+
- `GET /api/v1/info` — server build and feature info
72+
- `GET /api/v1/model/info` — RVF model container metadata
73+
- `ws://host/ws/sensing` — real-time WebSocket stream
74+
- Three data sources: `--source esp32` (UDP CSI), `--source windows` (netsh RSSI), `--source simulated` (deterministic reference)
75+
- Auto-detection: server probes ESP32 UDP and Windows WiFi, falls back to simulated
76+
- Three.js visualization UI with 3D body skeleton, signal heatmap, phase plot, Doppler bars, vital signs panel
77+
- Static UI serving via `--ui-path` flag
78+
- Throughput: 9,520–11,665 frames/sec (release build)
79+
80+
### Added — ADR-021: Vital Sign Detection
81+
- `VitalSignDetector` with breathing (6-30 BPM) and heartbeat (40-120 BPM) extraction from CSI fluctuations (`1192de9`)
82+
- FFT-based spectral analysis with configurable band-pass filters
83+
- Confidence scoring based on spectral peak prominence
84+
- REST endpoint `/api/v1/vital-signs` with real-time JSON output
85+
86+
### Added — ADR-023: DensePose Training Pipeline (Phases 1-8)
87+
- `wifi-densepose-train` crate with complete 8-phase pipeline (`fc409df`, `ec98e40`, `fce1271`)
88+
- Phase 1: `DataPipeline` with MM-Fi and Wi-Pose dataset loaders
89+
- Phase 2: `CsiToPoseTransformer` — 4-head cross-attention + 2-layer GCN on COCO skeleton
90+
- Phase 3: 6-term composite loss (MSE, bone length, symmetry, joint angle, temporal, confidence)
91+
- Phase 4: `DynamicPersonMatcher` via ruvector-mincut (O(n^1.5 log n) Hungarian assignment)
92+
- Phase 5: `SonaAdapter` — MicroLoRA rank-4 with EWC++ memory preservation
93+
- Phase 6: `SparseInference` — progressive 3-layer model loading (A: essential, B: refinement, C: full)
94+
- Phase 7: `RvfContainer` — single-file model packaging with segment-based binary format
95+
- Phase 8: End-to-end training with cosine-annealing LR, early stopping, checkpoint saving
96+
- CLI: `--train`, `--dataset`, `--epochs`, `--save-rvf`, `--load-rvf`, `--export-rvf`
97+
- Benchmark: ~11,665 fps inference, 229 tests passing
98+
99+
### Added — ADR-016: RuVector Training Integration (all 5 crates)
100+
- `ruvector-mincut``DynamicPersonMatcher` in `metrics.rs` + subcarrier selection (`81ad09d`, `a7dd31c`)
101+
- `ruvector-attn-mincut` → antenna attention in `model.rs` + noise-gated spectrogram
102+
- `ruvector-temporal-tensor``CompressedCsiBuffer` in `dataset.rs` + compressed breathing/heartbeat
103+
- `ruvector-solver` → sparse subcarrier interpolation (114→56) + Fresnel triangulation
104+
- `ruvector-attention` → spatial attention in `model.rs` + attention-weighted BVP
105+
- Vendored all 11 RuVector crates under `vendor/ruvector/` (`d803bfe`)
106+
107+
### Added — ADR-017: RuVector Signal & MAT Integration (7 integration points)
108+
- `gate_spectrogram()` — attention-gated noise suppression (`18170d7`)
109+
- `attention_weighted_bvp()` — sensitivity-weighted velocity profiles
110+
- `mincut_subcarrier_partition()` — dynamic sensitive/insensitive subcarrier split
111+
- `solve_fresnel_geometry()` — TX-body-RX distance estimation
112+
- `CompressedBreathingBuffer` + `CompressedHeartbeatSpectrogram`
113+
- `BreathingDetector` + `HeartbeatDetector` (MAT crate, real FFT + micro-Doppler)
114+
- Feature-gated behind `cfg(feature = "ruvector")` (`ab2453e`)
115+
116+
### Added — ADR-018: ESP32-S3 Firmware & Live CSI Pipeline
117+
- ESP32-S3 firmware with FreeRTOS CSI extraction (`92a5182`)
118+
- ADR-018 binary frame format: `[0xAD, 0x18, len_hi, len_lo, payload]`
119+
- Rust `Esp32Aggregator` receiving UDP frames on port 5005
120+
- `bridge.rs` converting I/Q pairs to amplitude/phase vectors
121+
- NVS provisioning for WiFi credentials
122+
- Pre-built binary quick start documentation (`696a726`)
123+
124+
### Added — ADR-014: SOTA Signal Processing
125+
- 6 algorithms, 83 tests (`fcb93cc`)
126+
- Hampel filter (median + MAD, resistant to 50% contamination)
127+
- Conjugate multiplication (reference-antenna ratio, cancels common-mode noise)
128+
- Phase sanitization (unwrap + linear detrend, removes CFO/SFO)
129+
- Fresnel zone geometry (TX-body-RX distance from first-principles physics)
130+
- Body Velocity Profile (micro-Doppler extraction, 5.7x speedup)
131+
- Attention-gated spectrogram (learned noise suppression)
132+
133+
### Added — ADR-015: Public Dataset Training Strategy
134+
- MM-Fi and Wi-Pose dataset specifications with download links (`4babb32`, `5dc2f66`)
135+
- Verified dataset dimensions, sampling rates, and annotation formats
136+
- Cross-dataset evaluation protocol
137+
138+
### Added — WiFi-Mat Disaster Detection Module
139+
- Multi-AP triangulation for through-wall survivor detection (`a17b630`, `6b20ff0`)
140+
- Triage classification (breathing, heartbeat, motion)
141+
- Domain events: `survivor_detected`, `survivor_updated`, `alert_created`
142+
- WebSocket broadcast at `/ws/mat/stream`
143+
144+
### Added — Infrastructure
145+
- Guided 7-step interactive installer with 8 hardware profiles (`8583f3e`)
146+
- Comprehensive build guide for Linux, macOS, Windows, Docker, ESP32 (`45f8a0d`)
147+
- 12 Architecture Decision Records (ADR-001 through ADR-012) (`337dd96`)
148+
149+
### Added — UI & Visualization
150+
- Sensing-only UI mode with Gaussian splat visualization (`b7e0f07`)
151+
- Three.js 3D body model (17 joints, 16 limbs) with signal-viz components
152+
- Tabs: Dashboard, Hardware, Live Demo, Sensing, Architecture, Performance, Applications
153+
- WebSocket client with automatic reconnection and exponential backoff
154+
155+
### Added — Rust Signal Processing Crate
156+
- Complete Rust port of WiFi-DensePose with modular workspace (`6ed69a3`)
157+
- `wifi-densepose-signal` — CSI processing, phase sanitization, feature extraction
158+
- `wifi-densepose-core` — shared types and configuration
159+
- `wifi-densepose-nn` — neural network inference (DensePose head, RCNN)
160+
- `wifi-densepose-hardware` — ESP32 aggregator, hardware interfaces
161+
- `wifi-densepose-config` — configuration management
162+
- Comprehensive benchmarks and validation tests (`3ccb301`)
163+
164+
### Added — Python Sensing Pipeline
165+
- `WindowsWifiCollector` — RSSI collection via `netsh wlan show networks`
166+
- `RssiFeatureExtractor` — variance, spectral bands (motion 0.5-4 Hz, breathing 0.1-0.5 Hz), change points
167+
- `PresenceClassifier` — rule-based 3-state classification (ABSENT / PRESENT_STILL / ACTIVE)
168+
- Cross-receiver agreement scoring for multi-AP confidence boosting
169+
- WebSocket sensing server (`ws_server.py`) broadcasting JSON at 2 Hz
170+
- Deterministic CSI proof bundles for reproducible verification (`v1/data/proof/`)
171+
- Commodity sensing unit tests (`b391638`)
14172

15173
### Changed
16-
- Updated README.md table of contents to use a two-column layout
17-
- Reorganized documentation sections for better logical flow
18-
- Enhanced readability of navigation structure
174+
- Rust hardware adapters now return explicit errors instead of silent empty data (`6e0e539`)
19175

20-
### Documentation
21-
- Restructured table of contents for better accessibility
22-
- Improved visual hierarchy in documentation
23-
- Enhanced user experience for documentation navigation
176+
### Fixed
177+
- Review fixes for end-to-end training pipeline (`45f0304`)
178+
- Dockerfile paths updated from `src/` to `v1/src/` (`7872987`)
179+
- IoT profile installer instructions updated for aggregator CLI (`f460097`)
180+
- `process.env` reference removed from browser ES module (`e320bc9`)
181+
182+
### Performance
183+
- 5.7x Doppler extraction speedup via optimized FFT windowing (`32c75c8`)
184+
- Single 2.1 MB static binary, zero Python dependencies for Rust server
185+
186+
### Security
187+
- Fix SQL injection in status command and migrations (`f9d125d`)
188+
- Fix XSS vulnerabilities in UI components (`5db55fd`)
189+
- Fix command injection in statusline.cjs (`4cb01fd`)
190+
- Fix path traversal vulnerabilities (`896c4fc`)
191+
- Fix insecure WebSocket connections — enforce wss:// on non-localhost (`ac094d4`)
192+
- Fix GitHub Actions shell injection (`ab2e7b4`)
193+
- Fix 10 additional vulnerabilities, remove 12 dead code instances (`7afdad0`)
194+
195+
---
196+
197+
## [1.1.0] - 2025-06-07
198+
199+
### Added
200+
- Complete Python WiFi-DensePose system with CSI data extraction and router interface
201+
- CSI processing and phase sanitization modules
202+
- Batch processing for CSI data in `CSIProcessor` and `PhaseSanitizer`
203+
- Hardware, pose, and stream services for WiFi-DensePose API
204+
- Comprehensive CSS styles for UI components and dark mode support
205+
- API and Deployment documentation
206+
207+
### Fixed
208+
- Badge links for PyPI and Docker in README
209+
- Async engine creation poolclass specification
210+
211+
---
24212

25213
## [1.0.0] - 2024-12-01
26214

27215
### Added
28-
- Initial release of WiFi DensePose
29-
- Real-time WiFi-based human pose estimation using CSI data
30-
- DensePose neural network integration
31-
- RESTful API with comprehensive endpoints
32-
- WebSocket streaming for real-time data
33-
- Multi-person tracking capabilities
216+
- Initial release of WiFi-DensePose
217+
- Real-time WiFi-based human pose estimation using Channel State Information (CSI)
218+
- DensePose neural network integration for body surface mapping
219+
- RESTful API with comprehensive endpoint coverage
220+
- WebSocket streaming for real-time pose data
221+
- Multi-person tracking with configurable capacity (default 10, up to 50+)
34222
- Fall detection and activity recognition
35-
- Healthcare, fitness, smart home, and security domain configurations
36-
- Comprehensive CLI interface
37-
- Docker and Kubernetes deployment support
38-
- 100% test coverage
39-
- Production-ready monitoring and logging
40-
- Hardware abstraction layer for multiple WiFi devices
41-
- Phase sanitization and signal processing
223+
- Domain configurations: healthcare, fitness, smart home, security
224+
- CLI interface for server management and configuration
225+
- Hardware abstraction layer for multiple WiFi chipsets
226+
- Phase sanitization and signal processing pipeline
42227
- Authentication and rate limiting
43228
- Background task management
44-
- Database integration with PostgreSQL and Redis
45-
- Prometheus metrics and Grafana dashboards
46-
- Comprehensive documentation and examples
47-
48-
### Features
49-
- Privacy-preserving pose detection without cameras
50-
- Sub-50ms latency with 30 FPS processing
51-
- Support for up to 10 simultaneous person tracking
52-
- Enterprise-grade security and scalability
53-
- Cross-platform compatibility (Linux, macOS, Windows)
54-
- GPU acceleration support
55-
- Real-time analytics and alerting
56-
- Configurable confidence thresholds
57-
- Zone-based occupancy monitoring
58-
- Historical data analysis
59-
- Performance optimization tools
60-
- Load testing capabilities
61-
- Infrastructure as Code (Terraform, Ansible)
62-
- CI/CD pipeline integration
63-
- Comprehensive error handling and logging
229+
- Cross-platform support (Linux, macOS, Windows)
64230

65231
### Documentation
66-
- Complete user guide and API reference
232+
- User guide and API reference
67233
- Deployment and troubleshooting guides
68234
- Hardware setup and calibration instructions
69-
- Performance benchmarks and optimization tips
70-
- Contributing guidelines and code standards
71-
- Security best practices
72-
- Example configurations and use cases
235+
- Performance benchmarks
236+
- Contributing guidelines
237+
238+
[Unreleased]: https://github.com/ruvnet/wifi-densepose/compare/v3.0.0...HEAD
239+
[3.0.0]: https://github.com/ruvnet/wifi-densepose/compare/v2.0.0...v3.0.0
240+
[2.0.0]: https://github.com/ruvnet/wifi-densepose/compare/v1.1.0...v2.0.0
241+
[1.1.0]: https://github.com/ruvnet/wifi-densepose/compare/v1.0.0...v1.1.0
242+
[1.0.0]: https://github.com/ruvnet/wifi-densepose/releases/tag/v1.0.0

0 commit comments

Comments
 (0)