fix(pose): Live-Demo black canvas + ghost skeletons (split from #1381, no depth bundle)#1428
Open
PrinceAudre wants to merge 1 commit into
Open
fix(pose): Live-Demo black canvas + ghost skeletons (split from #1381, no depth bundle)#1428PrinceAudre wants to merge 1 commit into
PrinceAudre wants to merge 1 commit into
Conversation
Isolates the pose-tracking fix from ruvnet#1381, which also bundled the ADR-271 depth-anything backend (identical to ruvnet#1375) and an unrelated vendor/ruvector submodule bump. This carries only the three pose files so the fix can land independently. Root causes (as diagnosed in ruvnet#1381): - Per-keypoint confidence was never set on KeypointState, so the tracker's bbox fit (which keeps only confidence > 0.0 keypoints) collapsed to a degenerate fallback and the renderer skipped every joint. Confidence is now threaded through PoseTrack create/update; centroid-filled slots stay 0.0. - Tracker input was compared in pixel units against metre-scaled gates; the tracker boundary now converts px<->m. - Renderer threshold comparisons changed from strict to inclusive so observed joints at the 0.1 floor render while unobserved 0.0 joints stay hidden. Files: ui/utils/pose-renderer.js, sensing-server/tracker_bridge.rs, signal/ruvsense/pose_tracker.rs (with ruvnet#1381's inline regression tests). The depth-anything backend (ruvnet#1375) and the submodule bump are excluded. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This lands only the pose-tracking fix from #1381, split out from the rest of that PR.
#1381's pose fix is correct and well-tested, but it also bundles the entire ADR-271 depth-anything backend (identical to #1375) and an unrelated
vendor/ruvectorsubmodule bump — so it conflicts with #1375 and mixes an opaque submodule change into a bugfix. This PR carries just the three pose files, none of which are touched by #1375:ui/utils/pose-renderer.jsv2/crates/wifi-densepose-sensing-server/src/tracker_bridge.rsv2/crates/wifi-densepose-signal/src/ruvsense/pose_tracker.rsThe fix (as diagnosed in #1381)
KeypointState, so the tracker's bbox fit — which keeps onlyconfidence > 0.0keypoints — collapsed to a degenerate fallback and the renderer skipped every joint. Confidence is now threaded throughPoseTrackcreate/update; centroid-filled slots stay0.0.>/<=) to inclusive (>=/<) so observed joints at the0.1floor render while unobserved0.0joints stay hidden.The confidence-roundtrip / multi-person-separation / single-person-no-churn regression tests #1381 added to these files are included.
Note
The code and diagnosis are from #1381 — this only isolates them so the pose fix can land independently of the depth backend (#1375) and the submodule bump. Verified the three files carry no coupling to the depth-anything backend or the ruvector bump; CI will confirm the build.
🤖 Generated with Claude Code