CineCode
How-to Guides

Render videos

Render whole projects, single scenes, frame ranges, or PNG frames — with quality controls.

Goal

Get exactly the output you want out of cinecode render, fast.

Render the whole project

cinecode render my-video -o my-video.mp4

Scenes play in the order listed in codescene.toml.

Render a single scene

While iterating, render just the scene you're working on. Scenes can be selected by name or 1-based index:

cinecode render my-video -s intro -o intro.mp4
cinecode render my-video -s 2 -o second-scene.mp4

Scene indices start at 1, not 0. -s 0 is an error.

Render a frame range

cinecode render my-video --from 90 --to 180 -o preview.mp4

--from is a 0-based, inclusive output frame. --to is exclusive, so the example renders frames 90 through 179. Use -s <name|index> when you want to select one scene instead.

Control quality and size

cinecode render my-video -o final.mp4 --crf 18 --preset slow
  • --crf <18–28> — constant rate factor. Lower = higher quality, larger file.
  • --preset <p> — ffmpeg speed/efficiency preset (ultrafastveryslow).

Smooth edges and zooms (--ssaa)

The CPU backend supersamples by default (--ssaa 2): it renders each frame at double resolution and averages it down, which anti-aliases every stroke, glyph, and rounded panel and keeps camera zooms from shimmering.

cinecode render my-video -o draft.mp4 --ssaa 1   # fastest, native res
cinecode render my-video -o hero.mp4  --ssaa 4   # crispest, ~16× the pixels

2 is the sweet spot and the default. Use 1 for quick drafts and 34 for a final pass. See the CLI reference.

Export frames instead of a video

cinecode render my-video --format png -o frames/

This writes numbered PNGs — handy for thumbnails or external editing.

Quieter or louder output

cinecode render my-video -o out.mp4 -q   # quiet
cinecode render my-video -o out.mp4 -v   # verbose

Render on the GPU

For shaders and bloom, enable the GPU backend:

cinecode render my-video -o out.mp4 --gpu --bloom 0.8
GPU render with WGSL effects and a bloom pass.
Files that made this video

The GPU effects scene: a scene script, one Rust source file, and three WGSL shaders registered in the manifest.

codescene.toml
Project manifest: output size, theme, scene order, transitions, and shader names.
Open full file
scenes = ["scenes/intro.ccs", "scenes/terrain.ccs", "scenes/pathfind.ccs", "scenes/particles.ccs", "scenes/graph.ccs", "scenes/life.ccs", "scenes/boids.ccs", "scenes/tweens.ccs", "scenes/inserts.ccs", "scenes/edit.ccs", "scenes/edit_source.ccs", "scenes/editor_theme.ccs", "scenes/font_set.ccs", "scenes/remove_styles.ccs", "scenes/morph.ccs", "scenes/shapes.ccs", "scenes/effects.ccs"]
theme = "dark_documentary"

[episode]
title = "How Rivers Form"

[output]
fps = 30
width = 1280
height = 720

[shaders]
aurora = "shaders/aurora.wgsl"
glitch = "shaders/glitch.wgsl"
scanlines = "shaders/scanlines.wgsl"

[transition]
kind = "crossfade"
frames = 18

See Apply GPU shaders for the shader workflow.

Full flag list

Everything above, plus a few extras, is documented in the CLI reference.

On this page