CineCode
Tutorials

Install CineCode

Get the engine and ffmpeg working, then render the bundled example documentary.

In this first lesson you'll install everything CineCode needs and render the example project β€” so you can confirm your setup works before writing a single line of your own.

Step 1 β€” Install the prerequisites

CineCode needs two things on your machine:

Rust (stable)

Install it with rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Verify:

rustc --version
cargo --version

ffmpeg

CineCode pipes raw frames into ffmpeg to produce the final MP4.

brew install ffmpeg

Verify:

ffmpeg -version

If ffmpeg isn't on your PATH, rendering will fail at the very last step. Run ffmpeg -version and make sure it prints something before continuing.

Step 2 β€” Get CineCode

Download a prebuilt archive from GitHub Releases, or install the binary from source with Cargo:

cargo install --git https://github.com/Fanaperana/cinecode cinecode

For engine development, clone the repository and build:

git clone https://github.com/Fanaperana/cinecode
cd cinecode
cargo build --release -p cinecode

The first build compiles the engine crates and may take a few minutes. When it finishes you'll have a binary at ./target/release/cinecode.

Check it runs:

./target/release/cinecode --help

v0.1 is distributed as binaries and is not published on crates.io. The Git installation still places cinecode in Cargo's normal binary directory.

Step 3 β€” Render the example

The repo ships with a complete example documentary, rivers-project. Render it:

./target/release/cinecode render examples/rivers-project -o rivers.mp4

You'll see per-scene progress as the engine evaluates each frame and streams it to ffmpeg. After a few seconds you'll have rivers.mp4 β€” open it and you should see exactly this:

rivers.mp4 β€” your first render. 20 scenes, one command.
Files that made this video

The complete `rivers-project` render. These are the project files that compose the 17-scene documentary.

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

You did it

You have a working CineCode toolchain and a rendered video. Next, you'll build your own project from scratch.

On this page