GPU effect engine
MotionLoom
A graph-based video effects and motion graphics engine built on WGPU. This playground shows the direction for Anica: visual animation controls that write real MotionLoom DSL.
Live playground
Controls → DSL → Preview
Adjust animation values in the control panel, inspect the generated XML-like graph, then render the same DSL in the browser preview.
MotionLoom Graph
Select a Group id and variable from the current DSL, then edit its value.
Select the first Group above, then choose the second Group here.
Select Path, Rect, Circle, Ellipse, Line, Text and other visible Scene elements. Shift adds; Option/Alt removes.
Pointer selects exact visible Scene elements.
Preview
Source: demo.jpg (public domain)
Scene graphs render through MotionLoom WASM. Unsupported native scene DSL now reports an explicit renderer error instead of silently falling back.
Pipeline
How it works
MotionLoom keeps the editable source as plain DSL. A future Anica panel can expose After Effects-style controls while preserving the graph underneath.
1. Parse
Slider values update curve keyframes, timings, and node attributes in the DSL text.
2. Compile
The same source can be opened, edited, diffed, generated by agents, or compiled by the renderer.
3. Execute
Scene graphs render through MotionLoom WASM; native renderer errors are surfaced instead of hidden by a browser fallback.
Native vs Web
MotionLoom in the browser
This playground uses a Canvas 2D fallback to demonstrate the graph execution model. The real Anica desktop app runs the same MotionLoom DSL through Rust/WGPU with full GPU compute and video export.