Block F · Motion

Motion

Every generative mesh arrives as a static surface, and rigging one by hand is the step that kept character animation out of reach entirely. So a skeleton is fitted to the mesh, a clip is written once as text, and motion.bake fits, weights, compiles and bakes it on that mesh by name.

Two frames is not motion

A settle expressed as a squashed re-render of the same mesh is right for exactly one beat, and has no way to say what a walk or a reaction would be. A clip does.

A curve is text or it is unreachable

A timing change inside a binary track is invisible in a diff and unreachable by an edit, which makes every adjustment a re-export from a tool nobody scripted. A clip and its curves are TOML instead, so a retime is one edit a diff shows, and clip.retime and clip.set_key make it as a new clip.

One settle, two outputs

The same motion exists as frames a 2D interface crossfades to and as something a 3D scene plays. Authoring it twice and keeping the two in step by hand is the work this removes.