diff --git a/CHANGELOG.md b/CHANGELOG.md index eb52f0697..641051168 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Added +- **3D stick figure visualization for spatial dashboard** (`ui/spatial.html`) — + Renders COCO-17 keypoint skeletons from `/api/v1/spatial/clusters` body cluster + centroids using Three.js. Three pose variants: standing (green), sitting (yellow), + lying (blue). Persistent figure map with position lerp (factor 0.1), smooth + posture-transition keypoint blending (~1s), breathing-rate Y-scale animation, + activity-based sway (still=0.01m, moderate=0.03m, active=0.08m), and opacity + fadeout for disappearing bodies. Falls back to polling `/api/v1/spatial/clusters` + every 2s when WebSocket is unavailable. Depends on body tracking endpoints + provided by the body tracking PR (#487). - **`nvsim` crate — deterministic NV-diamond magnetometer pipeline simulator** (ADR-089) — New standalone leaf crate at `v2/crates/nvsim` modeling a forward-only magnetic sensing path: scene → source synthesis (Biot–Savart, dipole, diff --git a/ui/spatial.html b/ui/spatial.html new file mode 100644 index 000000000..176209495 --- /dev/null +++ b/ui/spatial.html @@ -0,0 +1,1276 @@ + + + + + +RuView Spatial View + + + + + + + +
Waiting for spatial pipeline...
+ +
+
RuView Spatialβ
+
RF Tomography Visualization
+
RF tomography preview. Voxel clustering is a single-blob demo — multi-body resolution pending ADR-044.
+
+ +
-- FPS
+ +
+ + + + + + + +
+ +
+

Spatial Status

+
Status--
+
Active Nodes--
+
Links--
+
Reconstructions--
+
Resolution--
+
Residual--
+
+
Presence (coarse)β0
+
Breathingβ--
+
Heart Rateβ--
+
⚠ Tomography is currently a single-cluster blob (ADR-044)
+
+ +
+

Voxel Density

+
Low (0.01-0.3)
+
Medium (0.3-0.6)
+
High (0.6-1.0)
+
Sensor Node
+
Standing
+
Sitting
+
Lying
+
+ + + + + +