feat(studio): smooth gesture recordings#1658
Closed
miguel-heygen wants to merge 1 commit into
Closed
Conversation
0c9e793 to
cf30ff8
Compare
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
…ion panel Gesture recordings now go through Gaussian smoothing (radius 3) before commit, eliminating jitter while preserving motion shape. The Animation panel's Speed dropdown writes easeEach for keyframed tweens (ease for flat tweens), and the selected preset highlights correctly. Fixed a fetch-cancellation race in useGsapAnimationsForElement — the target object reference in useEffect deps was unstable across re-renders, causing cleanup to cancel in-flight API calls before results arrived. Switched deps to target?.id and target?.selector primitives. Also adds a cache-buster query param on the gsap-animations fetch to prevent stale HTTP-cached responses after mutations.
cf30ff8 to
5ae8a9b
Compare
miguel-heygen
added a commit
that referenced
this pull request
Jun 23, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
miguel-heygen
added a commit
that referenced
this pull request
Jun 23, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
miguel-heygen
added a commit
that referenced
this pull request
Jun 23, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
miguel-heygen
added a commit
that referenced
this pull request
Jun 23, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
Collaborator
Author
|
Superseded by #1663 which includes all these changes (gesture smoothing, easeEach, fetch-race fix) plus marquee selection, AE presets, per-keyframe ease editing, and velocity fitting. |
miguel-heygen
added a commit
that referenced
this pull request
Jun 23, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
miguel-heygen
added a commit
that referenced
this pull request
Jun 24, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
miguel-heygen
added a commit
that referenced
this pull request
Jun 24, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
miguel-heygen
added a commit
that referenced
this pull request
Jun 24, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
miguel-heygen
added a commit
that referenced
this pull request
Jun 24, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
miguel-heygen
added a commit
that referenced
this pull request
Jun 24, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
miguel-heygen
added a commit
that referenced
this pull request
Jun 24, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
miguel-heygen
added a commit
that referenced
this pull request
Jun 24, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
miguel-heygen
added a commit
that referenced
this pull request
Jun 24, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
miguel-heygen
added a commit
that referenced
this pull request
Jun 24, 2026
…city fitting Marquee selection: click+drag on empty canvas draws a dashed selection rectangle. All elements whose OBB intersects are group-selected via SAT. Shift+marquee adds to selection. Click on empty deselects. Per-keyframe easing: each keyframe segment has its own ease, editable via expandable bezier curve editor in the Animation panel. Parser preserves per-keyframe ease through round-trips (ease-only updates preserve existing properties). AE Easy Ease presets: correct After Effects bezier values (0.333, 0, 0.667, 1) in the preset grid. Velocity-based curve fitting: gesture recordings analyze velocity profile and assign per-keyframe custom eases automatically. Gesture smoothing: Gaussian-weighted moving average (from PR #1658) + easeEach support for keyframed tweens + fetch-cancellation race fix in useGsapAnimationsForElement.
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
easeEachfor keyframed tweens (interpolation between individual keyframes) andeasefor flat tweens. Gesture recordings default topower1.inOut.useGsapAnimationsForElementhad a bug where thetargetobject in useEffect deps was unstable across re-renders, causing cleanup to cancel in-flight API calls before results arrived. Switched deps to primitive strings (target?.id,target?.selector).Test plan
easecorrectly