Summary
When switching between two registered classes in the Keypoint Editor, existing keypoints are replaced by the class default pose (initial coordinates).
However, performing Undo restores the correct original keypoints.
This suggests the annotation data itself is preserved, but the display state is being overwritten.
Important Condition
This issue occurs only when:
-
Two classes are registered in the project
-
The annotated object’s class is switched between those two classes
It does not occur in single-class setups.
Steps to Reproduce
-
Prepare a project with two classes (both having keypoint skeletons)
-
Annotate an object using one class
-
Confirm keypoints are correctly positioned
-
Change the object’s class to the other class
-
Observe keypoints are replaced by default pose
-
Press Undo
-
Original keypoints reappear
Expected Behavior
When switching between classes:
-
Existing keypoints should remain, or
-
Be mapped to the new class skeleton if compatible
They should not be replaced by default coordinates unless explicitly reset.
Actual Behavior
-
On class switch, keypoints immediately change to default pose
-
Undo restores original keypoints
Key Observation
Since Undo restores the correct positions:
-
Annotation data appears intact
-
The issue likely occurs in rendering / class-switch handling
-
Default skeleton pose seems to be re-applied during class change
Impact
If saved after class switching (without Undo),
the default pose may overwrite correct annotations,
risking silent data corruption.
When it Started
Observed since around Feb 24, 2026.
Question
Were there any recent changes to:
-
Skeleton initialization
-
Class-switch handling
-
Assist / auto pose logic
that could cause default pose application when switching between two classes?
Happy to provide screen recording if needed.