{{ message }}
ESP32-S3 CSI Firmware v0.5.3 — Cross-Node Fusion + DynamicMinCut
What's Changed
Cross-Node Mesh Fusion
- RSSI-weighted feature fusion across multiple ESP32 nodes — closer node gets higher weight
- DynamicMinCut person separation via
ruvector_mincuton subcarrier temporal correlation graph - RSSI-based skeleton position tracking — walk between nodes and the skeleton follows
- Motion-responsive skeleton — arm swing (0-80px), leg kick (0-50px), walking bob, head nod all driven by real CSI data
Per-Node State (ADR-068)
- Each ESP32 gets independent classification, vitals, person count
- Stale node eviction after 60s inactivity
- Multi-node aggregation: max(per_node_counts)
RuVector Signal Processing (Phases 1-3)
- Subcarrier importance weighting via mincut partition
- Temporal EMA keypoint smoothing with coherence gating
- Skeleton kinematic constraints (Jakobsen relaxation, 12-bone COCO-17 tree)
- Compressed pose history for trajectory matching
Smoothing & Quality
- Client-side lerp interpolation (alpha=0.15) for fluid skeleton
- Server EMA (alpha=0.15) for temporal blending
- Dampened procedural animation, recalibrated for real ESP32 data
- Vital sign filtering: larger median window (31), faster EMA, looser jump filter
Hardware Benchmarks (2 ESP32 nodes, 30s)
Bug Fixes
- RSSI byte offset (#332), stack overflow, stale node leak, unsafe pointer removed
- Person count: sum→max aggregation, recalibrated thresholds
- Firmware CI: IDF v5.4, xxd→od
Binaries
Full Changelog: v0.5.2-esp32...v0.5.3-esp32
