MotionGfx
A backend-agnostic motion graphics framework for procedural animation.
Procedural, Not Keyframed
Describe how a value changes and let the timeline compile it. No hand-placed keyframes to keep in sync.
Rust
// subject, field, and its new value
let grow = b.act(RADIUS, path!(<f32>), |_| 70.0)
.with_ease(ease::cubic::ease_in_out)
.play(s(1));
let track = grow.compile();Live Playground
Running live, in this page, right now.
Start With Bevy
Bevy MotionGfx wires everything up for you: add the plugin, describe what should change, and it plays. No boilerplate to write.
Using a different engine, or your own renderer? See Building a Backend to plug it in.
Scrub Forward and Backward, for Free
Every timeline bakes once, then plays at any speed, in either direction, or jumps straight to a frame. No extra computation, no re-simulation.