--- title: Film & Rendering description: Assemble peer visual and audio contributions, then render the selected program range. --- Film is an ordinary author component. It combines explicitly selected VisualTrack and AudioTrack outputs with one Canvas and one Timeline, producing a Composition. The renderer turns that Composition into a video. ```svml ``` ## Assemble the Film ```svml ``` | Attribute | Required | Meaning | |---|---|---| | `id` | yes | Public composition identity | | `canvas` | yes | The picture coordinate system | | `timeline` | yes | The finite absolute program range | | `appearance` | yes | Film Recipe, including the clear color | Each `` accepts one VisualTrack or AudioTrack. Film does not discover sibling outputs. If one normalized source should contribute both picture and sound, author one Visual Clip and one Audio Clip from that media; both resulting Tracks must then be selected here. Common outputs include: | Source | Type | Role | |---|---|---| | `{picture.visual}` | VisualTrack | picture occurrences placed by Visual Track | | `{mix.audio}` | AudioTrack | placed voices, music and effects from Audio Track | | `{cards.visual}` | VisualTrack | independent image/video Clips | | `{captions.visual}` | VisualTrack | a Caption family | | `{scene.visual}` | VisualTrack | a project component | The public output is `{main.composition}`. ## Visual order belongs to Presents Film children select contributions; their source order does not define picture stacking. Each visual component publishes timed Presents with an absolute `z`, commonly authored through `stack-order` in its Recipe. Lower values paint behind higher values. Equal values use stable Track identity, then Track-local Present `order` and Present identity; use distinct values whenever the relative paint relation matters. ```svs film.vertical { background: #09090B; } media.speaker { stack-order: 10; fit: cover; } media.card { stack-order: 40; fit: contain; } caption.base { stack-order: 70; } /* Fine Text writes z="90" on its Flow, Point or Path occurrence. */ ``` Presents from different Tracks can interleave. A Present may also own an internal element tree or a HTML visual when several pictures, graphics and text share layout or motion. Put content together when its behavior belongs together; keep independently useful contributions as peers. ## Render the complete video ```svml ``` The renderer compiles the visual contributions, captures requested frames, renders AudioTracks and muxes them into the delivered file. `{final.video}` is an ordinary Resource-backed `Blob` and the usual Run Target. ```svml ``` ## Render a frame interval ```svml ``` The bounds use the original Timeline and a half-open interval. At 30 fps this example renders seconds 8–12. Animation and media sampling retain their original program positions even though the encoded clip starts at zero. Range rendering limits final capture and encoding; upstream graph work still follows the selected Run, so reuse accepted media and alignment Outputs explicitly. ## A film drawn entirely by components Timeline does not require speech or media: ```svml ``` The component owns its reading rhythm through ordinary absolute time. With no selected AudioTrack, the result is silent. In a spoken composition, a Narrative Projection can reveal Moments or Selections as the same absolute Instant and Window inputs. ## Check before execution ```bash hypit check main.svml hypit plan build.svrun ``` `check` validates imports, types and graph edges without calling external services. `plan` compiles the selected Run and shows the Operations it would demand. Inspect that plan before paid execution. See [Timing & Assembly](./timing.md) for normalization, Timeline construction, media presentation and semantic projection. See [Tracks](./tracks.md) for Visual and Audio authoring forms.