Skip to content

Render engines

Three engines, chosen per scene (engine in plan.json). Preflight sets them all up in ./video-kit/ in your project, never in your home directory.

Engine Best for Notes
web The default for most scenes: kinetic titles, stat reveals, layered builds, real screenshots and screen recordings HTML/CSS + GSAP stepped frame by frame in headless Chromium (Playwright). Templates: kinetic_title, layer_stack, screenshot_zoom, stat_reveal. Theme from preferences.json palette.
blender One or two hero moments, or the intro: physical metaphors, depth, physics Headless Blender 4 with Eevee; scripts built on video-kit/blender/lib.py. Optional.
manim Code, diffs, terminals, charts, exact geometry JSON-driven templates: code_diff, flow, reveal, terminal, chart, meme_card, hero.

Choosing

The scene needs to show Use
A hook, claim, number or title card web kinetic_title / stat_reveal
Something real: docs, repo, UI, dashboard web screenshot_zoom (screenshot) or record.mjs (screen recording)
A process or build-up web layer_stack, or Blender when depth sells it
The one memorable moment Blender hero
Code, a diff, a terminal, a chart Manim

Target mix per 10-minute video: web 50-60% of runtime, Blender 10-20%, Manim 20-30%. Never more than two consecutive scenes with the same engine and template, and no static frame longer than about 2 seconds. When no template fits, add one to the kit instead of forcing it.

Speed

Drafts use --draft (web 1280x720, Blender half size, Manim -ql); the final renders once at full quality. Each scene is cached by a hash of its spec, audio and kit source: change anything in the kit and every scene re-renders.

Screenshots and recordings

node video-kit/web/record.mjs <url> <out_dir> <seconds> [--actions actions.json] records a real, public page. Aurora rejects cookie banners, redacts personal data, records the URL and capture date in visual_assets.md, and credits the source on screen.

Mascot

Optional. Two PNGs (mouth closed/open) plus speech windows from cues.json make the mascot lip-sync; she stays still otherwise, moves mainly at scene changes, and never covers text.