Commit Graph

3 Commits

Author SHA1 Message Date
rUv 2b8a7cc458
feat: happiness scoring pipeline + ESP32 swarm with Cognitum Seed (#285)
* 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>
2026-03-20 18:46:34 -04:00
ruv a7d417837f feat: RuView Live v2 — RuVector signal processing integration
Ported 5 RuVector/RuvSense algorithms from Rust to Python:
- WelfordStats (field_model.rs): online mean/variance/z-score
- VitalAnomalyDetector (vitals/anomaly.rs): Welford z-score apnea/tachy/brady
- LongitudinalTracker (ruvsense/longitudinal.rs): drift detection over time
- CoherenceScorer (ruvsense/coherence.rs): signal quality with decay
- HRVAnalyzer (vitals/heartrate.rs): SDNN, RMSSD, pNN50, LF/HF spectral

Live verified: detected HR anomaly (2.5sd drop) and BR drift (2.2sd rise)
from real mmWave + CSI data. Full session baselines tracked for 3 metrics.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-03-15 17:03:29 -04:00
ruv 4239dfa35a feat: RuView Live unified dashboard + improved examples README
ruview_live.py: single-file dashboard that auto-detects CSI and
mmWave sensors, displays fused vitals (HR, BR, BP, stress/HRV),
environment (light, RSSI, RF fingerprint), presence, and events.

Tested live: CSI 1000 frames/60s (17 Hz), light trending 7.4→6.0
lux, RSSI -57 to -72 dBm. Handles graceful degradation when
sensors are unavailable.

README: updated with unified dashboard as primary entry point,
hardware table with capabilities, expanded quick start.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-03-15 16:56:11 -04:00