Motion Studio
A language model writes an editable HTML scene; a separate renderer turns its deterministic frames into MP4. Availability depends on your deployment's database, configured models and isolated rendering worker. The studio shows that state before you start.
Start with one story
Choose a prompt from the original library or write a brief. Specify duration and aspect ratio, the exact strings and data to use, a beginning, a change and an ending. Describe how those moments should feel and leave space for visual decisions. Use fictional disclosures for example data and verify real claims yourself.
The seek contract
The scene sets window.DURATION in seconds and defines async window.seek(t). Every seek must reconstruct the complete frame for that time, regardless of the previously requested frame. Do not use timers, animation loops, wall-clock time, unseeded random numbers, network APIs or evaluated strings. Resources must be embedded locally. The linter rejects prohibited code before preview or render.
window.DURATION = 8;
window.seek = async function (t) {
// Clear and redraw the whole scene as a function of t.
};Preview, review and versions
Preview runs in an opaque sandboxed iframe with scripts permitted and same-origin access denied. Scrub through the scene, read the generated code and request a specific refinement. Saving corrected code runs the linter again and creates an immutable version; previous versions remain reviewable. A lint pass is one check, not proof of visual quality or factual accuracy.
Export and limits
Server-side plan rules control duration, resolution, monthly render seconds, concurrency and watermarks. Free exports are limited to 720p and include a watermark. The worker independently checks entitlement. A render remains queued until the isolated browser worker is available; downloads appear only for verified outputs. CPU rendering is metered separately from model usage.
Isolation
Generated JavaScript is untrusted. Production rendering requires a disposable container with no provider or Supabase credentials, no outbound network, a read-only root, a bounded temporary mount and CPU, memory, process and time limits. Browser request blocking and a restrictive Content Security Policy add another layer. Source code is never executed in the privileged queue controller. Missing isolation disables rendering.
Models and privacy
Your brief, exact text and relevant prior scene code are sent to the selected configured model. The current platform adapter uses OpenRouter when enabled; provider and model appear in the job record. Personal-key support uses the credential-resolution seam when its deployment is available. Tokens stay server-side. Reference frames and structured pacing briefs are sent to a vision model only when rights-attested analysis is enabled. Projects and versions remain workspace-private. Publishing to the gallery is a separate opt-in action with a user-granted license and moderation.
Original examples and references
Official prompt briefs and illustrative scenes are authored by Vidrial. They are not advertised as outputs from a named model. This approach learns from open-source seek-based animation tools; attribution and applicable license notices are recorded in THIRD_PARTY_NOTICES.md. Claude is a name used to describe compatibility; Vidrial is not affiliated with Anthropic.
Read the worked prompt guide