Template Object Model

A document object model (DOM) is an application programming interface (API), which allows you to programmatically access various components of a document through a scripting language.

The ImpossibleFX DOM consists of a hierarchical representation of a dynamic movie, the components used in a movie, such as scenes, tracks, image providers and transformations. The DOM allows you to programmatically access and manipulate the document and its components. For example, through the DOM, you can create a new movie, add scenes and tracks, or change the contents or color of image providers. All of the functionality of the ImpossibleFX Editor and the Management Console are available through the DOM.

A good understanding of the ImpossibleFX DOM, and how each aspect of the DOM relates to the dynamic movie and the renderer will make script writing easier.

Object Hierarchy

The ImpossibleFX object model is a hierarchy which means that objects in the model are contained in collections in the parent object. The Movie object sits at the top of the hierarchy. A movie has a collection called scenes which contains objects of type Scene, a scene contains VisualTracks in a collection called tracks, VisualTracks contain a single ImageProvider in a property called content, and so on. Through commands or methods you manipulate elements in the DOM, add or remove objects, or set or change individual properties like color, content or size.

ImpossibleFX DOM

Dynamic Movie Templates

To assemble and render a dynamic movie, the content and style is controlled by a Dynamic Movie Template written in the Scene Description Language (SDL), created by the Video Editor or, programmatically. A template defines placeholders and various bits of basic logic that regulate how the video should be rendered. A movie template may specify layers with static footage onto which dynamic data is added, similarily to Photoshop where an image is composed of several layers.

Movie & Scenes

Dynamic Movie Templates (also called a movie) are composed from a series of scenes (each with with an optional local sound) and one (optional) global sound. Scenes usually are shorter clips or sequences of frames from a video. Dividing a movie into scenes helps to make the setup more modular and allows to create videos where a storyline (or scene sequence) is choosen dynamically at runtime.

VisualTracks & AudioTrack

Each scene of a template contains one or more tracks. Tracks contain ImageProvider that render the contents of a track. Tracks can be layered on top of each other. the first VisualTrack is the bottom-most layer. In contrast to Photoshop's layers, ImageProvider may contain several frames. There are VisualTracks for video part and AudioTracks for the sound.

ImageProvider

Visual content for the tracks can be specified by various ImageProvider. There are ImageProvider for video, imges, text, charts and composite ImageProvider, which in turn again contain multiple VisualTracks composed of other ImageProvider.

Transformations

Finally, when a VisualTrack is rendered, a series of transformations and filters can be applied. Transformations change the geometry, content and the appearance of VisualTracks by filtering, masking and transforming content.

Variables & Dynamic Content

To make a movie dynamic, you need to supply content at runtime, i.e when requesting a new version of a movie. Content can be loaded dynamically from previously uploaded files and spreadsheets, from external HTTP servers, or generated on-the-fly within the system.

Terms of Use | © 2017, Impossible Software, or its affiliates. All rights reserved.