Expand description
Pipeline-mechanical clip transforms, ported from the incubating bake’s Python: frame-window slicing, hold-extension, duplicate-endpoint removal, and gait-anchor rotation. Scope rule (DESIGN.md §1): animsmith may rewrite a clip only in ways whose correctness its own checks can verify.
Structs§
- Constant
Track Prune Record - One constant-track candidate considered by
prune_constant_tracks. - Constant
Track Retained Record - A candidate that
prune_constant_tracksconservatively retained. - Duplicate
Loop Endpoint Outcome - The lossless change made by
drop_duplicate_loop_endpoint. - Gait
Align Outcome - Outcome of
align_gait_anchor. - Prune
Constant Tracks Outcome - Outcome of
prune_constant_tracks.
Enums§
- Constant
Track Retention Reason - Reason a constant-track candidate was not removed.
- Duplicate
Loop Endpoint Error - Failure while analyzing a duplicate loop endpoint.
- Gait
Trajectory Policy - Declared movement contract under which gait-anchor rotation may run.
Constants§
- CONSTANT_
TRACK_ PRUNE_ QUAT_ TOLERANCE_ RAD - Maximum sign-invariant local rotation change accepted when pruning a
constant track. This aliases the
constant-trackcheck’s tolerance. - CONSTANT_
TRACK_ PRUNE_ VEC3_ TOLERANCE - Maximum component-wise local translation/scale change accepted when
pruning a constant track. This aliases the
constant-trackcheck’s classification tolerance. - DUPLICATE_
ENDPOINT_ QUATERNION_ TOLERANCE_ RAD - Sign-invariant shortest-path angular tolerance for duplicate rotations.
- DUPLICATE_
ENDPOINT_ VEC3_ TOLERANCE - Component-wise tolerance for duplicate translation and scale endpoints.
- GAIT_
ANCHOR_ MAX_ HORIZONTAL_ ACCUMULATION_ M - Maximum horizontal root-trajectory endpoint displacement admitted by the in-place gait-anchor policy.
- GAIT_
ANCHOR_ MAX_ TRAJECTORY_ POSE_ SAMPLES - Maximum samples admitted by each in-place gait work bound.
- GAIT_
ANCHOR_ MAX_ YAW_ ACCUMULATION_ DEG - Maximum accumulated root yaw admitted by the in-place gait-anchor policy.
Functions§
- align_
gait_ anchor - Rotate a cyclic clip in time so its measured stride anchor (the trough of the L−R foot-height fundamental) lands at clip time 0.
- analyze_
duplicate_ loop_ endpoint - Analyze whether a clip has a safe, duplicated loop endpoint.
- drop_
duplicate_ loop_ endpoint - Atomically remove all consecutive duplicate closing keys from every track.
- hold_
extend - Append one key per track duplicating its final value
hold_sseconds after its last key (a linear hold — charge/block poses). The clip duration extends to the longest held end. - prune_
constant_ tracks - Remove constant multi-key tracks only when doing so preserves every local TRS and model-space position/rotation on the original clip’s default sample grid.
- slice
- Keep only the keys inside
[start, end]seconds (with a half-frame epsilon atfpsabsorbing float drift from earlier retimings) and retime them so the window starts at 0. Cubic tangent triplets move with their keys. The clip duration becomesend - start.