@Rhvy1 , does this align with what you had in mind when you suggested variable font support? At the moment I’ve kept it isolated from the TextGroup work since it’s a separate feature, but I’d be interested in hearing whether you think this is the right direction before taking it further.
I can’t even begin to express how sorry I am for not replying for 2 weeks now. I just saw your message!
Yes, this is exactly what I had in mind. Can other axes be animated too?
I’m so sorry for the late reply—I only just saw your message ![]()
My main focus recently has been getting the per-character animation layer finished and stabilized first, so I haven’t explored variable fonts much beyond an initial prototype.
At the moment, it’s only implemented for the weight axis of a variable font (I used Roboto Flex), so no. But it’s really a cool feature to add.
Week 8–9 Progress Update — Per-Glyph Animation
Highlights
-
Completed the shared converter-graph implementation by replacing the previous shared-animation registry with a
SharedEntrymodel. Shared animation graphs are now exported under stable identifiers and correctly reconstructed after save/load, preserving shared animations across project reloads. -
Generalized staggering to operate on any shared converter graph. Each glyph now receives a per-glyph
ValueNode_TimeOffsetwrapper around the shared animation, with configurable Forward, Reverse, Center-Out, and Random ordering (the latter using a stable per-layer permutation). -
Hardened serialization and lifecycle handling by implementing shared-entry encoding/decoding, deduplication, cleanup of removed shared animations, invalidation when source animation nodes are deleted, and deferred re-resolution of pending shared entries after canvas attachment.
-
Integrated the shared animation workflow into the Studio parameter panel, including Add/Update/Remove Shared Animation, Stagger Delay, and Stagger Order controls.
-
Performed additional cleanup and refinement of the shared animation pipeline, including improvements to glyph synchronization and save/load behavior.
Demo
- Created a prototype animation demonstrating the current TextGroup shared animation workflow. The demo showcases shared Scale, Rotation, and Animation Offset animations with configurable staggering applied across independently animated glyph layers.
Current work
-
Investigating rendering/playback performance with larger animated text sequences.
-
Debugging remaining edge cases related to shared animation evaluation during rendering.
I forgot to tell you before: with random, user should be able to choose the random seed. This seed parameter can always appear to user no matter if s/he selected “random” ordering.