Changelog
This page tracks notable user-facing changes to package:pose_flow
and package:pose_flow_studio. For day-to-day commits, see the
source repository’s git history.
Unreleased
Renamed: Exercise* → Movement*
Several public classes were renamed for naming consistency with PoseFlow’s positioning as a general human-movement library (rather than a fitness-specific one):
| Old name | New name |
|---|---|
ExerciseConfig | MovementConfig |
ExerciseMetadata | MovementMetadata |
ExerciseConfigLoader | MovementConfigLoader |
ExerciseConfigException | MovementConfigException |
ExerciseLibrary | MovementLibrary |
ExerciseProfile | MovementProfile |
TrackedExerciseView | TrackedMovementView |
TrackedExerciseState | TrackedMovementState |
TrackedExerciseViewState | TrackedMovementViewState |
The old names are still exported as @Deprecated typedefs, so
existing call sites compile against this release without code
changes. The compiler emits deprecation warnings at each usage
prompting the migration. Plan to remove the typedefs in a future
minor release.
Migration: replace each old name with the corresponding new one. A find-and-replace across your project handles the mechanical edit; the deprecation warnings tell you when there’s anything left to fix.
Coordinate-space contract: one canonical Pose
PoseCameraView previously exposed two pose callbacks
(onPoseUpdate for display-space, onRawPoseUpdate for buffer-
space). The raw callback was a holdover from a deleted vector-
similarity matcher and has been removed.
PoseCameraView now emits a single canonical Pose via
onPoseUpdate: orientation-rotated, selfie-mirrored on the front
camera, normalised to [0, 1] against the post-rotation buffer
dimensions. Authoring (Studio) and playback (your app) agree on
coordinate scale by construction.
If you previously consumed onRawPoseUpdate, switch to
onPoseUpdate. If you applied any manual rotation / mirror to a
display-space pose before feeding the tracker, remove it: the tracker
expects display-space directly.
Camera bucket height-classifier boundary
CameraAngleDetector._detectHeight now uses an inclusive >= check
against _heightFloorMin = 0.55 so the boundary case lands in the
floor bucket. Matches the constant’s “minimum for floor” semantic
intent. The change is a no-op for non-boundary inputs.