rUv
9bbe95648c
feat: ADR-024 Contrastive CSI Embedding Model — all 7 phases ( #52 )
...
Full implementation of Project AETHER — Contrastive CSI Embedding Model.
## Phases Delivered
1. ProjectionHead (64→128→128) + L2 normalization
2. CsiAugmenter (5 physically-motivated augmentations)
3. InfoNCE contrastive loss + SimCLR pretraining
4. FingerprintIndex (4 index types: env, activity, temporal, person)
5. RVF SEG_EMBED (0x0C) + CLI integration
6. Cross-modal alignment (PoseEncoder + InfoNCE)
7. Deep RuVector: MicroLoRA, EWC++, drift detection, hard-negative mining, SEG_LORA
## Stats
- 276 tests passing (191 lib + 51 bin + 16 rvf + 18 vitals)
- 3,342 additions across 8 files
- Zero unsafe/unwrap/panic/todo stubs
- ~55KB INT8 model for ESP32 edge deployment
Also fixes deprecated GitHub Actions (v3→v4) and adds feat/* branch CI triggers.
Closes #50
2026-03-01 01:44:38 -05:00
ruv
fc409dfd6a
feat: ADR-023 full DensePose training pipeline (Phases 1-8)
...
Implement complete WiFi CSI-to-DensePose neural network pipeline:
Phase 1 - Dataset loaders: .npy/.mat v5 parsers, MM-Fi + Wi-Pose
loaders, subcarrier resampling (114->56, 30->56), DataPipeline
Phase 2 - Graph transformer: COCO BodyGraph (17 kp, 16 edges),
AntennaGraph, multi-head CrossAttention, GCN message passing,
CsiToPoseTransformer full pipeline
Phase 4 - Training loop: 6-term composite loss (MSE, cross-entropy,
UV regression, temporal consistency, bone length, symmetry),
SGD+momentum, cosine+warmup scheduler, PCK/OKS metrics, checkpoints
Phase 5 - SONA adaptation: LoRA (rank-4, A*B delta), EWC++ Fisher
regularization, EnvironmentDetector (3-sigma drift), temporal
consistency loss
Phase 6 - Sparse inference: NeuronProfiler hot/cold partitioning,
SparseLinear (skip cold rows), INT8/FP16 quantization with <0.01
MSE, SparseModel engine, BenchmarkRunner
Phase 7 - RVF pipeline: 6 new segment types (Index, Overlay, Crypto,
WASM, Dashboard, AggregateWeights), HNSW index, OverlayGraph,
RvfModelBuilder, ProgressiveLoader (3-layer: A=instant, B=hot, C=full)
Phase 8 - Server integration: --model, --progressive CLI flags,
4 new REST endpoints, WebSocket pose_keypoints + model_status
229 tests passing (147 unit + 48 bin + 34 integration)
Benchmark: 9,520 frames/sec (105μs/frame), 476x real-time at 20 Hz
7,832 lines of pure Rust, zero external ML dependencies
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-02-28 23:22:15 -05:00
ruv
1192de951a
feat: ADR-021 vital sign detection + RVF container format ( closes #45 )
...
Implement WiFi CSI-based vital sign detection and RVF model container:
- Pure-Rust radix-2 DIT FFT with Hann windowing and parabolic interpolation
- FIR bandpass filter (windowed-sinc, Hamming) for breathing (0.1-0.5 Hz)
and heartbeat (0.8-2.0 Hz) band isolation
- VitalSignDetector with rolling buffers (30s breathing, 15s heartbeat)
- RVF binary container with 64-byte SegmentHeader, CRC32 integrity,
6 segment types (Vec, Manifest, Quant, Meta, Witness, Profile)
- RvfBuilder/RvfReader with file I/O and VitalSignConfig support
- Server integration: --benchmark, --load-rvf, --save-rvf CLI flags
- REST endpoint /api/v1/vital-signs and WebSocket vital_signs field
- 98 tests (32 unit + 16 RVF integration + 18 vital signs integration)
- Benchmark: 7,313 frames/sec (136μs/frame), 365x real-time at 20 Hz
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-02-28 22:52:19 -05:00
ruv
d956c30f9e
feat: Rust sensing server with full DensePose-compatible API
...
Replace Python FastAPI + WebSocket servers with a single 2.1MB Rust binary
(wifi-densepose-sensing-server) that serves all UI endpoints:
- REST: /health/*, /api/v1/info, /api/v1/pose/current, /api/v1/pose/stats,
/api/v1/pose/zones/summary, /api/v1/stream/status
- WebSocket: /api/v1/stream/pose (pose_data with 17 COCO keypoints),
/ws/sensing (raw sensing_update stream on port 8765)
- Static: /ui/* with no-cache headers
WiFi-derived pose estimation: derive_pose_from_sensing() generates 17 COCO
keypoints from CSI/WiFi signal data with motion-driven animation.
Data sources: ESP32 CSI via UDP :5005, Windows WiFi via netsh, simulation
fallback. Auto-detection probes each in order.
UI changes:
- Point all endpoints to Rust server on :8080 (was Python :8000)
- Fix WebSocket sensing URL to include /ws/sensing path
- Remove sensingOnlyMode gating — all tabs init normally
- Remove api.service.js sensing-only short-circuit
- Fix clearPingInterval bug in websocket.service.js
Also removes obsolete k8s/ template manifests.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-02-28 21:29:45 -05:00