Conversation
…s previous render capabilities on keyframes.
…SVG icon rendering abilities
…ing when one is hovered as it ends
✅ Deploy Preview for blockbench-dev ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Azagwen
marked this pull request as ready for review
August 30, 2026 22:37
Contributor
Author
|
Tweaks to perform (checked = done):
|
This branch has not been deployed
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.
What is that?
This PR aims to reduce timeline stutter & load time by replacing the Vue rendered HTML keyframe elements with a single, fixed sized, and culled Canvas element.
Why, who needs this?
Animation size can heavily influence how the timeline performs as of now, with some extreme cases being able to straight up crash Blockbench if the
Bing up All AnimatorsAction were to be pressed (looking at you, Figurigamma). Whereas other, less extreme cases can take up to 30s to load a full timeline for all animators on some longer/more loaded animations.This PR should be quite beneficial to projects with heavy animations that feature thousands of keyframes across hundreds of channels! Bringing up all animators on a file with 250.000+ keyframes takes a mere couple of seconds now, altho it is still quite choppy to scroll, it does not crash the app anymore.
Using a Canvas also means we do not need to worry about HTML reflow, something which Vue seems to do quite often I've realized. Here, when our canvas is re-flown, the renderer discards all keyframes that shouldn't be visible.
Some stylistic changes!
While working on this, I also added new icons for molang keyframes, and minified keyframes, since I already had a SVG renderer developped (no need to add blurry or pixelated text rendering here).
Keyframes now also respond to hovering with a color & size change!
Molang
Known issue so far (checked = resolved):
width: 0,height: 0, and withdisplay: none, after the selector box was used.To-dos: