The interface
The Editor is one screen with four working areas, plus a topbar.

The topbar
From left to right:
- Template β the document menu: New, Open templateβ¦, Save, Save as templateβ¦, Import JSONβ¦, Export JSON. See Saving your work.
- The document name, with a coloured dot reporting where the document stands.
- Visual / JSON β switch between the visual editor and the raw JSON view.
- Render β opens the pre-flight dialog. See Rendering.
- Undo / redo, a light/dark theme toggle, and your account.
The outline (left)
A tree of the movie: the Movie node at the top, then one row per scene, then that scene's elements. Selecting a row selects that node and fills the properties panel; selecting a scene also moves the playhead to it.
The badge on the right of a row carries the useful summary β the movie's
resolution, a scene's duration, or auto when the duration is derived from the
scene's contents. Scenes that repeat or that carry a condition are marked here
too; see Repeating scenes.
Below the scenes, Movie elements holds elements that belong to the movie as a whole rather than to one scene β a soundtrack, a watermark, a logo that stays on screen for the whole video.
The canvas (centre)
A live preview of the movie at the playhead, rendered by the same engine that powers the standalone previewer.
The canvas is also an editing surface. Selecting an element draws a bounding box with handles: drag inside it to move the element, drag a handle to resize it. The properties panel updates as you drag, and the change lands in the document like any other edit β undo works on it.
When a movie uses generated assets, the canvas shows a Generating assets progress bar the first time it needs them. This is the preview preparing what it needs in order to play; it is not a render, and it does not consume credits.
The timeline (bottom)
One row per scene, laid out along the movie's real duration, with a ruler and a draggable playhead. Click anywhere on the ruler to scrub.
Expanding a scene row reveals one bar per element, colour-coded by type, showing when each element starts and how long it lasts. Selecting a bar selects the element. The transport controls on the left play, jump to the start and loop; the readout next to them shows the playhead position and the total duration.
The properties panel (right)
A form for whatever is selected, generated from the API's own schema β which is why the fields, their names, their defaults and their allowed values match the JSON syntax reference exactly.

Properties are grouped β Content, Position, Size, Timing, Effects, Animation, and an Advanced group for the rest β and each group can be collapsed. Two controls appear next to most fields:
?opens the property's help text, the same description the reference publishes.fxswitches the field into expression mode, so its value comes from a variable or an expression instead of a fixed value. A field in expression mode shows the expression itself, for example{{slide2Text}}.
Fields that accept more than one unit expose the unit next to the value. Position
accepts pixels or percentages, and also the named positions left / center /
right horizontally and top / center / bottom vertically β the same values
the API accepts.
The other panels
The tabs above the properties panel hold, besides Properties:
- Variables β the movie's inputs. See Variables.
- Renders β renders submitted from this Editor session, with their status.
- Inspector β the resolved value of every variable at the playhead, which is
what you want when a
{{ }}reference is not producing what you expected. - Issues β problems found in the current document.
- Assets and Console β what the preview engine downloaded and what it logged. Useful when an asset will not load.
The JSON view
The JSON tab replaces the outline and properties with the movie JSON itself, syntax-highlighted, next to a smaller live preview.

Edits in the JSON view and edits in the visual editor act on the same document, so you can switch freely. Anything the visual editor does not expose can be written here directly.
While the text does not parse, the preview keeps showing the last valid version of the document rather than going blank.