Writing episodes¶
Usage¶
| Command | What it does |
|---|---|
manimvox new DIR --series NAME [--tagline T] [--voice E:V] |
Create a project folder |
manimvox draft EP [--every SECONDS] |
Fast 480p render without voice; writes contact sheets and runs the layout check |
manimvox render EP [--voice E:V] [--yes] |
1080p render with narration, then the audio check |
manimvox check theme |
Contrast, fonts and theme source |
manimvox check layout EP |
Text off the stage or overlapping, from the last draft |
manimvox check audio EP |
Every narration line is audible in the final video |
manimvox voices [ENGINE] |
Engines with status and licence, or the voices of one engine |
manimvox voices --prepare ENGINE[:VOICE] [--yes] |
Download and check a voice ahead of a render |
manimvox add [BLOCK ...] [--list] [--force] |
Copy a scene block into the project's blocks/ folder |
manimvox join [EP ...] [-o OUT.mp4] [--no-cards] |
Join rendered episodes into one video with a title card (each episode keeps its own end card) |
manimvox doctor |
System libraries, fonts and voice engines |
EP can be written ep01, 1, or the episode's file stem. Commands exit non-zero on any failed check. Without a terminal, manimvox never prompts: pass --yes (or set MANIMVOX_ASSUME_YES=1) to allow downloads.
Writing episodes¶
An episode is a class that subclasses Episode and implements build(). from manimvox.kit import * brings in Manim plus:
- Structure:
intro(narration): title card, which then becomes the persistent header.chapter(title, narration): chapter card, which also advances the progress bar.clear(): removes everything from the stage.outro(recap, narration, next_title=None): recap list and a pointer to the next episode.- Narration:
say(text, *animations): plays the animations at the start of the line.steps(text, [animations]): spreads the animations across the line.with self.narrate(text):for full control.
Pass tts="..." when the spoken words should differ from the subtitle.
- Components:
- text: T (one line), P (wrapped paragraph), heading, note;
- shapes and cards: box, card, node, chip, stat;
- connections: arrow, flow, gnode, gedge, lifeline, message;
- content: bullets, table, code;
- icons: icon_*.
- 3D: subclass Episode3D instead of Episode to tilt and turn the camera (move_camera, begin_ambient_camera_rotation). pin(*mobs) keeps a label flat on screen, and camera_home() turns back to the flat view. Title, chapter and recap cards are always drawn flat.
- Theme colours: BG PANEL LINE INK MUTED ACCENT OK WARN ERROR BLUE ORANGE VIOLET PINK TEAL, plus any colour named in the theme (written in capitals).
Keep content inside the safe stage: x from −6.6 to 6.6, y from −3.45 to 3.15. The header and the progress bar sit outside it.