Skip to content

Headless capture and video

Render a preset with no window. A surface-less GPU context draws into an offscreen texture and hands back raw pixels, and three things are built on that: a shot CLI that writes PNGs and a metrics report, an offline video renderer that walks a WAV end to end, and a live video-out that publishes every frame to another application.

This is the page a preset author reaches for. The differential test harness that runs on the same offscreen path is Testing and visual QA, and the MilkDrop converter is MilkDrop conversion.

A headless render is a pure function of (preset, input, frame-count, size). Scenes are reseeded per capture, every frame steps at a fixed dt where the live app injects its real one, and every capture path pins the preset’s declared numeric seed so the grammar’s hash() and noise() reproduce even where the preset asked for seed = "random" (ADR-0051; see Seeded randomness). The analysis is deterministic too, so a render is reproducible and diff-able.

The seed pin is the one place a capture deliberately shows you something other than the live app: a seed = "random" preset’s filmstrip is an instance of it, not the instance a user will see. Tune with a number.

Sections

Built from a8ce055 at version 0.115.0. This site tracks main and is not versioned per release.