Manim Studio supports three local development paths:
Python source remains the source of truth in every path.
Build the local runtime image from the repository root:
docker build --target runtime -t manim-studio:local .
The runtime image:
manimcommunity/manim:v0.20.1 as its basedvisvgm, fontconfig, DejaVu fonts, and Noto fonts/opt/venv/workspace as the mounted external project rootstudio and manim-mcp on PATHLinux users can match host ownership at build time:
docker build \
--target runtime \
--build-arg USER_UID="$(id -u)" \
--build-arg USER_GID="$(id -g)" \
-t manim-studio:local .
The defaults are 1000:1000. On Docker Desktop for Windows and macOS,
bind-mount ownership is mediated by Docker Desktop.
Install these host tools:
Open the repository in VS Code and run Dev Containers: Reopen in Container.
The devcontainer builds the dev target from the root Dockerfile, installs
the package in editable mode, and runs studio doctor after creation.
For non-container development, use Python 3.11 or newer:
python -m pip install -e ".[dev]"
This path expects the local machine to already provide compatible render
prerequisites such as Manim, Manim Slides, FFmpeg, LaTeX/XeLaTeX, dvisvgm, and
Hebrew-capable fonts. The Docker runtime is the supported reproducible path when
those tools are not already installed.
Run:
studio doctor
studio doctor --catalog
Expected checks include Python, Manim, Manim Slides, FFmpeg, LaTeX, XeLaTeX,
dvisvgm, and Hebrew-capable font availability. The --catalog option also
checks migrated scene metadata, baseline paths, render command coverage, and
font notes.