spaxel/dashboard/js
jedarden 14c49cb919 feat(breathing): implement stationary person detection via breathing analysis
Add FFT-based breathing detection with long-dwell presence tracking:

- FFTBreathingDetector: Rolling 30-second buffer, Hann window, FFT analysis
  to detect periodic breathing signals in 0.2-1.0 Hz band
- DwellTracker: State machine with CLEAR → MOTION_DETECTED →
  POSSIBLY_PRESENT → STATIONARY_DETECTED transitions
- Health gating: Detection disabled when link health < 0.7
- Dashboard: Slow-pulsing blue dot for stationary detection with BPM tooltip
- Timeline: Event logging on transition to STATIONARY_DETECTED

Physics: CSI phase oscillates at 2x breathing rate due to round-trip
path length change. 15 BPM breathing → 0.5 Hz CSI phase oscillation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 20:25:17 -04:00
..
accuracy.js feat(localization): implement self-improving localization with BLE ground truth 2026-03-29 20:11:22 -04:00
app.js feat(breathing): implement stationary person detection via breathing analysis 2026-03-29 20:25:17 -04:00
feedback.js feat(learning): implement detection feedback loop and accuracy tracking 2026-03-29 14:50:36 -04:00
linkhealth.js feat(signal): add ambient confidence score and link health monitoring 2026-03-29 01:41:43 -04:00
onboard.js feat(dashboard): complete Phase 4 onboarding & OTA system 2026-03-28 21:21:55 -04:00
onboard.test.js fix(dashboard): fix onboarding wizard test failures 2026-03-28 04:01:20 -04:00
onboard.test.setup.js feat(dashboard): complete Phase 4 onboarding & OTA system 2026-03-28 21:21:55 -04:00
ota.js feat(dashboard): complete Phase 4 onboarding & OTA system 2026-03-28 21:21:55 -04:00
placement.js feat(dashboard): interactive 3D node placement with real-time GDOP coverage overlay 2026-03-28 09:25:44 -04:00
tooltips.js feat(dashboard): guided troubleshooting and first-time UX 2026-03-28 04:19:06 -04:00
troubleshoot.js feat(dashboard): guided troubleshooting and first-time UX 2026-03-28 04:19:06 -04:00
troubleshoot.test.js feat(dashboard): guided troubleshooting and first-time UX 2026-03-28 04:19:06 -04:00
viz3d.js feat(learning): complete feedback loop with time-range queries and zone breakdown 2026-03-29 18:03:45 -04:00