* feat: happiness scoring pipeline with ESP32 swarm + Cognitum Seed coordinator ADR-065: Hotel guest happiness scoring from WiFi CSI physiological proxies. ADR-066: ESP32 swarm with Cognitum Seed as coordinator for multi-zone analytics. Firmware: - swarm_bridge.c/h: FreeRTOS task on Core 0, HTTP client with Bearer auth, registers with Seed, sends heartbeats (30s) and happiness vectors (5s) - nvs_config: seed_url, seed_token, zone_name, swarm intervals - provision.py: --seed-url, --seed-token, --zone CLI args - esp32-hello-world: capability discovery firmware for 4MB ESP32-S3 variant WASM edge modules: - exo_happiness_score.rs: 8-dim happiness vector from gait speed, stride regularity, movement fluidity, breathing calm, posture, dwell time (events 690-694, 11 tests, ESP32-optimized buffers + event decimation) - ghost_hunter.rs standalone binary: 5.7 KB WASM, feature-gated default pipeline RuView Live: - --mode happiness dashboard with bar visualization - --seed flag for Cognitum Seed bridge (urllib, background POST) - HappinessScorer + SeedBridge classes (stdlib only, no deps) Examples: - seed_query.py: CLI tool (status, search, witness, monitor, report) - provision_swarm.sh: batch provisioning for multi-node deployment - happiness_vector_schema.json: 8-dim vector format documentation Verified live: ESP32 on COM5 (4MB flash) registered with Seed at 10.1.10.236, vectors flowing, witness chain growing (epoch 455, chain 1108). Co-Authored-By: claude-flow <ruv@ruv.net> * ci: raise firmware binary size gate to 1100 KB for HTTP client stack The swarm bridge (ADR-066) adds esp_http_client for Seed communication, which pulls in the HTTP/TLS stack (~150 KB). Binary grew from ~978 KB to ~1077 KB. Raise the gate from 950 KB to 1100 KB. Still fits comfortably in both 4MB (1856 KB OTA slot, 43% free) and 8MB flash variants. Co-Authored-By: claude-flow <ruv@ruv.net> |
||
|---|---|---|
| .. | ||
| .issue-177-body.md | ||
| ADR-001-wifi-mat-disaster-detection.md | ||
| ADR-002-ruvector-rvf-integration-strategy.md | ||
| ADR-003-rvf-cognitive-containers-csi.md | ||
| ADR-004-hnsw-vector-search-fingerprinting.md | ||
| ADR-005-sona-self-learning-pose-estimation.md | ||
| ADR-006-gnn-enhanced-csi-pattern-recognition.md | ||
| ADR-007-post-quantum-cryptography-secure-sensing.md | ||
| ADR-008-distributed-consensus-multi-ap.md | ||
| ADR-009-rvf-wasm-runtime-edge-deployment.md | ||
| ADR-010-witness-chains-audit-trail-integrity.md | ||
| ADR-011-python-proof-of-reality-mock-elimination.md | ||
| ADR-012-esp32-csi-sensor-mesh.md | ||
| ADR-013-feature-level-sensing-commodity-gear.md | ||
| ADR-014-sota-signal-processing.md | ||
| ADR-015-public-dataset-training-strategy.md | ||
| ADR-016-ruvector-integration.md | ||
| ADR-017-ruvector-signal-mat-integration.md | ||
| ADR-018-esp32-dev-implementation.md | ||
| ADR-019-sensing-only-ui-mode.md | ||
| ADR-020-rust-ruvector-ai-model-migration.md | ||
| ADR-021-vital-sign-detection-rvdna-pipeline.md | ||
| ADR-022-windows-wifi-enhanced-fidelity-ruvector.md | ||
| ADR-023-trained-densepose-model-ruvector-pipeline.md | ||
| ADR-024-contrastive-csi-embedding-model.md | ||
| ADR-025-macos-corewlan-wifi-sensing.md | ||
| ADR-026-survivor-track-lifecycle.md | ||
| ADR-027-cross-environment-domain-generalization.md | ||
| ADR-028-esp32-capability-audit.md | ||
| ADR-029-ruvsense-multistatic-sensing-mode.md | ||
| ADR-030-ruvsense-persistent-field-model.md | ||
| ADR-031-ruview-sensing-first-rf-mode.md | ||
| ADR-032-multistatic-mesh-security-hardening.md | ||
| ADR-033-crv-signal-line-sensing-integration.md | ||
| ADR-034-expo-mobile-app.md | ||
| ADR-035-live-sensing-ui-accuracy.md | ||
| ADR-036-rvf-training-pipeline-ui.md | ||
| ADR-037-multi-person-pose-detection.md | ||
| ADR-038-sublinear-goal-oriented-action-planning.md | ||
| ADR-039-esp32-edge-intelligence.md | ||
| ADR-040-wasm-programmable-sensing.md | ||
| ADR-041-wasm-module-collection.md | ||
| ADR-042-coherent-human-channel-imaging.md | ||
| ADR-043-sensing-server-ui-api-completion.md | ||
| ADR-044-provisioning-tool-enhancements.md | ||
| ADR-045-amoled-display-support.md | ||
| ADR-046-android-tv-box-armbian-deployment.md | ||
| ADR-047-psychohistory-observatory-visualization.md | ||
| ADR-048-adaptive-csi-classifier.md | ||
| ADR-049-cross-platform-wifi-interface-detection.md | ||
| ADR-050-quality-engineering-security-hardening.md | ||
| ADR-052-ddd-bounded-contexts.md | ||
| ADR-052-tauri-desktop-frontend.md | ||
| ADR-053-ui-design-system.md | ||
| ADR-054-desktop-full-implementation.md | ||
| ADR-055-integrated-sensing-server.md | ||
| ADR-056-ruview-desktop-capabilities.md | ||
| ADR-057-firmware-csi-build-guard.md | ||
| ADR-058-ruvector-wasm-browser-pose-example.md | ||
| ADR-059-live-esp32-csi-pipeline.md | ||
| ADR-060-provision-channel-mac-filter.md | ||
| ADR-061-qemu-esp32s3-firmware-testing.md | ||
| ADR-062-qemu-swarm-configurator.md | ||
| ADR-063-mmwave-sensor-fusion.md | ||
| ADR-064-multimodal-ambient-intelligence.md | ||
| ADR-065-happiness-scoring-seed-bridge.md | ||
| ADR-066-esp32-swarm-seed-coordinator.md | ||
| README.md | ||
Architecture Decision Records
This folder contains 44 Architecture Decision Records (ADRs) that document every significant technical choice in the RuView / WiFi-DensePose project.
Why ADRs?
Building a system that turns WiFi signals into human pose estimation involves hundreds of non-obvious decisions: which signal processing algorithms to use, how to bridge ESP32 firmware to a Rust pipeline, whether to run inference on-device or on a server, how to handle multi-person separation with limited subcarriers.
ADRs capture the context, options considered, decision made, and consequences for each of these choices. They serve three purposes:
-
Institutional memory — Six months from now, anyone (human or AI) can read why we chose IIR bandpass filters over FIR for vital sign extraction, not just see the code.
-
AI-assisted development — When an AI agent works on this codebase, ADRs give it the constraints and rationale it needs to make changes that align with the existing architecture. Without them, AI-generated code tends to drift — reinventing patterns that already exist, contradicting earlier decisions, or optimizing for the wrong tradeoffs.
-
Review checkpoints — Each ADR is a reviewable artifact. When a proposed change touches the architecture, the ADR forces the author to articulate tradeoffs before writing code, not after.
ADRs and Domain-Driven Design
The project uses Domain-Driven Design (DDD) to organize code into bounded contexts — each with its own language, types, and responsibilities. ADRs and DDD work together:
- ADRs define boundaries: ADR-029 (RuvSense) established multistatic sensing as a separate bounded context from single-node CSI. ADR-042 (CHCI) defined a new aggregate root for coherent channel imaging.
- DDD models define the language: The RuvSense domain model defines terms like "coherence gate", "dwell time", and "TDM slot" that ADRs reference precisely.
- Together they prevent drift: An AI agent reading ADR-039 knows that edge processing tiers are configured via NVS keys, not compile-time flags — because the ADR says so. The DDD model tells it which aggregate owns that configuration.
How ADRs are structured
Each ADR follows a consistent format:
- Context — What problem or gap prompted this decision
- Decision — What we chose to do and how
- Consequences — What improved, what got harder, and what risks remain
- References — Related ADRs, papers, and code paths
Statuses: Proposed (under discussion), Accepted (approved and/or implemented), Superseded (replaced by a later ADR).
ADR Index
Hardware and firmware
| ADR | Title | Status |
|---|---|---|
| ADR-012 | ESP32 CSI Sensor Mesh for Distributed Sensing | Accepted (partial) |
| ADR-018 | ESP32 Development Implementation Path | Proposed |
| ADR-028 | ESP32 Capability Audit and Witness Record | Accepted |
| ADR-029 | RuvSense Multistatic Sensing Mode (TDM, channel hopping) | Proposed |
| ADR-032 | Multistatic Mesh Security Hardening | Accepted |
| ADR-039 | ESP32-S3 Edge Intelligence Pipeline (on-device vitals) | Accepted (hardware-validated) |
| ADR-040 | WASM Programmable Sensing (Tier 3) | Accepted |
| ADR-041 | WASM Module Collection (65 edge modules) | Accepted (hardware-validated) |
| ADR-044 | Provisioning Tool Enhancements | Proposed |
Signal processing and sensing
| ADR | Title | Status |
|---|---|---|
| ADR-013 | Feature-Level Sensing on Commodity Gear | Accepted |
| ADR-014 | SOTA Signal Processing Algorithms | Accepted |
| ADR-021 | Vital Sign Detection (breathing, heart rate) | Partial |
| ADR-030 | Persistent Field Model and Drift Detection | Proposed |
| ADR-033 | CRV Signal Line Sensing Integration | Proposed |
| ADR-037 | Multi-Person Pose Detection from Single ESP32 | Proposed |
| ADR-042 | Coherent Human Channel Imaging (beyond CSI) | Proposed |
Machine learning and training
| ADR | Title | Status |
|---|---|---|
| ADR-005 | SONA Self-Learning for Pose Estimation | Partial |
| ADR-006 | GNN-Enhanced CSI Pattern Recognition | Partial |
| ADR-015 | Public Dataset Strategy (MM-Fi, Wi-Pose) | Accepted |
| ADR-016 | RuVector Training Pipeline Integration | Accepted |
| ADR-017 | RuVector Signal + MAT Integration | Proposed |
| ADR-020 | Migrate AI Inference to Rust (ONNX Runtime) | Accepted |
| ADR-023 | Trained DensePose Model with RuVector Pipeline | Proposed |
| ADR-024 | Project AETHER: Contrastive CSI Embeddings | Required |
| ADR-027 | Project MERIDIAN: Cross-Environment Generalization | Proposed |
Platform and UI
| ADR | Title | Status |
|---|---|---|
| ADR-019 | Sensing-Only UI with Gaussian Splats | Accepted |
| ADR-022 | Windows WiFi Enhanced Fidelity (multi-BSSID) | Partial |
| ADR-025 | macOS CoreWLAN WiFi Sensing | Proposed |
| ADR-031 | RuView Sensing-First RF Mode | Proposed |
| ADR-034 | Expo React Native Mobile App | Accepted |
| ADR-035 | Live Sensing UI Accuracy and Data Transparency | Accepted |
| ADR-036 | Training Pipeline UI Integration | Proposed |
| ADR-043 | Sensing Server UI API Completion (14 endpoints) | Accepted |
Architecture and infrastructure
| ADR | Title | Status |
|---|---|---|
| ADR-001 | WiFi-Mat Disaster Detection Architecture | Accepted |
| ADR-002 | RuVector RVF Integration Strategy | Superseded |
| ADR-003 | RVF Cognitive Containers for CSI | Proposed |
| ADR-004 | HNSW Vector Search for Fingerprinting | Partial |
| ADR-007 | Post-Quantum Cryptography for Sensing | Proposed |
| ADR-008 | Distributed Consensus for Multi-AP | Proposed |
| ADR-009 | RVF WASM Runtime for Edge Deployment | Proposed |
| ADR-010 | Witness Chains for Audit Trail Integrity | Proposed |
| ADR-011 | Proof-of-Reality and Mock Elimination | Proposed |
| ADR-026 | Survivor Track Lifecycle (MAT crate) | Accepted |
| ADR-038 | Sublinear GOAP for Roadmap Optimization | Proposed |
Related
- DDD Domain Models — Bounded context definitions, aggregate roots, and ubiquitous language
- User Guide — Setup, API reference, and hardware instructions
- Build Guide — Building from source