Skip to Content
The AI assistant

The AI assistant

An assistant that builds and edits the actual scene. Not a chatbot that writes instructions for you to follow — it produces ordinary layers, keyframes and effects that you then edit by hand.

It is optional, and it is in both editions: the installers and the open-source local edition built from source. It is bring-your-own-key — you connect an OpenAI, Anthropic or Gemini key — and where that key lives is the only thing that differs. In the installers it is stored encrypted on the server; in the local edition it stays on your computer, encrypted with the operating system’s keystore, and model calls go from your machine to the provider.

The app is fully usable without the assistant either way, including every export format.

Since 1.0 there is a second way in: connect Claude, ChatGPT, Cursor or Antigravity from Dashboard ▸ Connections, and that app works in your open project with Premation’s tools, on its own subscription — free on every plan. See Connecting an assistant.

Where it lives

The AI panel in the left sidebar, laid out like a chat client: header with new-chat and history, a scrolling thread, a composer pinned to the bottom.

Switching to another tab mid-generation does not cancel the run.

There is also a floating prompt bar at the bottom centre of the canvas, for quick one-liners without opening the panel.

Two paths, one router

A prompt is classified by a pure function — no model call, no round trip — into one of two paths:

ClassGoes toFor
trivial_editThe direct tool loop“make it blue”, “delete that layer” — short, and pointing at something that already exists
generativeThe caster“a 6-second product intro” — a brief for a whole piece

The router is deliberately biased toward generative. Sending a piece-sized brief to the direct loop produces hand-assembled output; sending a small edit through the caster costs two extra model calls and still does the right thing. The costs of being wrong are asymmetric, and that sets the default.

The caster

This is the part that matters, and it is not what most AI features do.

The model does not author keyframes. It never sees a keyframe, a technique definition or a layout template. What it sees is a pre-filtered, capped list of one-line briefs — filtered by look pack, by energy, by slot duration, and by which roles your content can actually fill.

Every candidate it is offered is therefore already valid, and its job is taste rather than feasibility.

Your prompt | classify -> generative v Creative brief the model, writing a short brief | v Casting the model picks technique + layout ids and seeds | (capped at 25 motion / 12 layout candidates) v Validation unknown, forbidden, clashing or too-short casts are | REPLACED with the top-ranked valid candidate v Emit deterministic libraries produce the actual tool calls | - technique-library, design-system, product-motion v Fit critic judges the result against rendered evidence | v One undo entry

Why the cap

Handing a model 250 options and asking it to choose does not produce a considered choice; it produces a pick from the top of the list. The cap is 25 for motion and 12 for layout, enforced by the registries.

Why validation is not optional

A cast naming an unknown technique, a forbidden one, a clashing pair, or one whose slot is too short is rejected and replaced with the highest-ranked valid candidate. The model is not asked to try again — the constraint was already in the prompt, and a model that violated it once will violate it again. Falling back deterministically costs nothing and always produces something castable.

The practical consequence: the quality floor is deterministic. A bad model response degrades to a reasonable piece, not to a broken one.

Look packs

Casting is filtered by look pack — a coherent type and layout system, so a generated piece reads as designed rather than assembled. Eight ship:

Keynote · Swiss Editorial · Broadcast Sports · Cyberpunk Kinetic · Luxury Film · SaaS Explainer · SaaS Product UI · Mobile App

Entrance archetypes

So generated scenes do not all enter the same way, entrances are a parameter, not a template. Six archetypes, each a distinct keyframe and easing plan:

rise · scale_pop · blur_resolve · slide_settle · mask_wipe · char_cascade

They are varied automatically per role — a title, a card and an emblem will not get the same archetype by default — and coerced away from targets they cannot work on (char_cascade needs text, for instance).

Manual and Auto

The composer has an execution mode picker:

ModeBehaviour
ManualYou get a reviewable preview. Apply or Decline
AutoChanges are applied directly

Manual is the right default while you are learning what it does with your prompts.

Three invariants

  1. One prompt is one undo entry. A whole assistant turn is sent to the engine as one gesture, through the same commands the interface uses. Decline rolls back cleanly; Apply is a single Ctrl/⌘ + Z.
  2. The interface never holds a provider key. In the installers the call goes through the server, which attaches the key there. In the local edition the key sits in the operating system’s keystore and the desktop app’s main process attaches it. See Connecting a provider.
  3. Failures are recorded, never swallowed. A malformed model response is a logged path failure and a deterministic fallback, not a silent empty run.

What it cannot do

  • It cannot work without a provider key, and it needs a network connection to reach that provider.
  • It does not replace direction. It is much better at “build the structure” than at “make this feel right”.
  • Everything it makes is editable, which is the point — expect to refine.
Last updated on