Skip to content

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.