Element
An element is the smallest renderable unit in a movie. Elements live inside a scene's elements array or on the movie's top-level elements array (overlaying every scene). The shape of an element depends on its type field.
Element types
| Type | Description | Reference |
|---|---|---|
image |
Static image. | Image element |
video |
Video clip. | Video element |
text |
Styled text overlay. | Text element |
html |
HTML snippet or full webpage screenshot/recording. | HTML element |
component |
Pre-built animated component from the library. | Component element |
audio |
Audio track. | Audio element |
voice |
AI text-to-speech voiceover. | Voice element |
audiogram |
Audio waveform visualisation. | Audiogram element |
subtitles |
Automatic or manual subtitles. | Subtitles element |
The
templateelement type is deprecated. Use thetemplatemovie-level field to reference a saved template instead.
Common properties
All element types share the following base properties:
id— unique identifier.type— element discriminator. Required on every element.condition— string expression; element is rendered only when truthy.variables— element-local variables.comment— free-form note.duration— element length in seconds.-1auto-calculates from the asset;-2matches the container.start— start time in seconds relative to the parent container.extra-time— additional time after the element ends.z-index— stacking order override (-99 to 99).cache— reuse the cached render when inputs match.fade-in,fade-out— opacity envelope, in seconds.
Visual elements (image, video, text, html, component, audiogram) additionally share:
position,x,y— placement.width,height,resize— sizing.rotate,crop,zoom,pan,pan-distance,pan-crop— transformations.chroma-key,correction,flip-horizontal,flip-vertical,mask— visual effects.
Audio-producing elements (video, audio, voice, audiogram) additionally share:
muted— silence the element.volume— gain (0–10,1= unity).
Example
{
"resolution": "full-hd",
"scenes": [
{
"elements": [
{ "type": "image", "src": "https://example.com/photo.png" },
{ "type": "text", "text": "Hello", "style": "001" }
]
}
]
}
Elements placed at the movie level (instead of inside a scene) render above every scene for the entire movie:
{
"scenes": [/* … */],
"elements": [
{ "type": "image", "src": "https://example.com/logo.png", "position": "top-right" }
]
}