Changelog¶
All notable changes to manimvox are listed here. The format follows Keep a Changelog, and versions follow Semantic Versioning; before 1.0, a minor version may break the API.
Unreleased¶
Added¶
clip.play(start=, end=)plays part of a recording, at real speed by default: one part per narrated line.- Gallery: Install manimvox and make a video, a beginner's walkthrough made by Claude Code from one prompt with real terminal recordings, zooms and callouts; also on the docs' install and agent pages. Its project is in
examples/gallery/install-tutorial.
Fixed¶
- A zoom to a region at the picture's edge could leave the view a hair outside it (an offset of -1e-13), and a zoom out ended a hair short of the whole picture. Zooms now stay inside the picture and land exactly on their target.
0.4.0 - 2026-10-23¶
Added¶
- Screenshots and screen recordings for demo videos:
screenshot(path)andfrom_video(path)inmanimvox.scenes,clip.zoom(x, y, w, h)andclip.zoom_out()inside the clip's own frame, and overlays placed by pixel:spotlight,callout,cursorwithpointandclick, andwindowchrome. Capture stays with the agent's own tools (a browser tool, computer use); the animation skill says how to capture, save and cite them.
Fixed¶
- A
pronpattern written"\bword\b"inseries.jsonis refused with a hint: JSON reads\bas a backspace, so the rule silently never matched (write"\\bword\\b"). A pattern that is not a valid regex is refused too. - A fresh install drew no images: Pillow 13, released after 0.3.0, refuses the blank canvas Manim 0.22 asks for, so every clip, chart, 3D model render and screenshot failed with
ValueError: Invalid mode for data type. Pillow is capped below 13 until Manim fixes it. Found by an agent installing manimvox in a fresh environment.
0.3.0 - 2026-10-23¶
Added¶
- Even loudness across voices: every narration line is levelled to
loudnessinseries.json(−16 LUFS by default, ITU-R BS.1770), with true peaks kept under −1.5 dBTP. The UPI benchmark episode, rendered with Sarvam, Gnani, ElevenLabs and Kokoro, went from a 7.9 LU spread to 0.1. The line as the voice returned it stays cached, so changing the target never pays for synthesis again.nullkeeps each voice's own level.
Changed¶
- Benchmarks: every cost is in US dollars. Rupee costs are converted at the mid-market rate on the day of the run, and ElevenLabs' credits at its cheapest commercial plan's rate.
- README: the status line is gone. The alpha status is still in the PyPI classifiers and the roadmap.
- Install with pip or uv: the README, docs and skills give both commands, and a missing extra's error names the installer manimvox came from (
uv tool install --forcein a uv tool environment,pip installotherwise).
0.2.0 - 2026-10-23¶
Added¶
- Documentation site at laplacianai.github.io/manimvox, with a gallery of finished videos and a gallery of every block (
python -m manimvox.blocks docs). - Gallery: Made by your agent, an introduction to manimvox, and Inside the heart, from a CT-derived heart; both made by Claude Code with manimvox, with their source projects in
examples/gallery/. ROADMAP.md,CONTRIBUTING.md,CODE_OF_CONDUCT.md,SECURITY.md,SUPPORT.md, and issue and pull request templates.- A
docsextra for building the documentation site. scripts/release.py: sets a new version in the package, every plugin manifest and the skills manifest, and dates the changelog.- Benchmarks of agent harnesses, models and voices, with the method, and the records and scripts in
benchmarks/. The first run compares Sarvam AI, Gnani.ai and ElevenLabs on an episode made by Claude Code with Sonnet 5.5. - A leaderboard on each gallery example that has benchmark runs (Voice, Harness and Model tables), generated by
benchmarks/leaderboard.py. Gallery: How UPI payments work, made by Claude Code with Sonnet 5.5 from one prompt. - Voices for Indian languages: Sarvam AI (
sarvam:shubh,SARVAM_API_KEY) and Gnani.ai (gnani:Kaveri,GNANI_API_KEY), in thecloudextra. A voice can name its language, as insarvam:anushka@hi-IN. - A manimvox logo (
docs/assets/logo.svg), used by the README and as the docs site's logo and favicon. The README GIF is now the logo drawing itself, then four block demos, and a social preview card goes with it;scripts/brand/build.pyrebuilds both.
Fixed¶
manimvox doctor: the Kokoro status line ended mid-sentence; it now names the command that downloads the models.manimvox skills install: on Node.js older than 22.20, which the pinnedskillsCLI needs, it uses the built-in installer instead of letting npx crash.- Online voices send a
manimvox/<version>User-Agent. Gnani.ai's firewall refused Python's default one. - ElevenLabs: a key restricted to speech (without
voices_read) can render; the voice check is skipped, and a missing permission is named instead of being reported as a rejected key.
0.1.0 - 2026-10-23¶
The first release.
Added¶
- Videos: one episode file in, a finished MP4 with subtitles out.
manimvox new,draft,render,join,indexandpackage. A theme per video fromseries.json, a music bed ducked under the narration, caption plates and cards. - Voices: eight engines behind one interface. Kokoro is the default, offline and keyless; Piper, macOS
say, edge-tts, OpenAI, ElevenLabs, XTTS-v2 and F5-TTS are also supported. - Checks: text contrast, text off the stage or overlapping, silent narration lines, and contact sheets; every failed check exits non-zero.
- Blocks: eleven ready-made scene components via
manimvox add. - Clips from Pillow, Cairo, Matplotlib and Plotly.
- 3D:
Episode3D, themesh-modelblock for glTF, OBJ and STL models, andfrom_modelandfrom_pyvistafor models, scans and simulations rendered with lighting. - For agents: eleven agent skills, the CLI as typed tools, adapters for eight Python agent frameworks, and plugin manifests for Claude Code, Codex, Cursor and Gemini CLI.
- CI on Linux, macOS and Windows; releases published to PyPI with trusted publishing.