Objects, not pixels
A scene is layers, transforms, materials, cameras, lights, behaviours and effects. Every one of them is a value you can type into.
ramin is a motion graphics studio that runs in the browser. Ask for an entrance and it writes a Y-position track, an easing curve, an overshoot and a letter stagger — all of it sitting in the inspector, waiting for you to disagree. It never hands you a video.
What you type
“Make the headline enter aggressively from below, overshoot slightly, and settle.”
Then you drag the overshoot to 2%, because 4% was too much. That is the part that matters: the AI produced an argument, not an artefact.
What lands in the inspector
Product ads, kinetic typography, title sequences, launch graphics, short-form campaign work. The things a brand ships, rather than the things a creative-coding sketch demonstrates.
A scene is layers, transforms, materials, cameras, lights, behaviours and effects. Every one of them is a value you can type into.
The composition is JSON. Export it, diff it, hand it to a model, open it again — the frames come back identical.
Tracks, keyframes you can drag, easing curves, springs solved to their settling time, and per-character stagger on any property.
Three.js through WebGPU where the browser has it, and the same TSL effect graph on WebGL2 where it does not.
The editor and the renderer are separated on purpose. React describes the document; the engine draws whatever the evaluator produced. Neither knows how the other works.
This is an honest prototype, so here is the list rather than a list of features it does not have.