Setup: the most efficient offline toolchain
Do this once (~20 minutes with a normal connection, then never again — everything below works with the network cable unplugged). Windows commands shown; macOS/Linux equivalents in each step.
1Python 3.9+
Download from python.org → run the installer → tick "Add python.exe to PATH" (the single most common setup mistake is skipping this box).
# check it worked (any terminal):
python --version # Windows
python3 --version # macOS / Linux python opens the Microsoft Store instead of Python, disable the alias: Settings → Apps → Advanced app settings → App execution aliases → turn off both python entries.2Manim + manim-slides (one command)
pip install manim "manim-slides[pyside6]"
# pyside6 gives you the native presenter window (GUI) — worth having. That's the entire animation stack. manim-slides pulls in everything it needs, including python-pptx for PowerPoint export.
PyAV library — you do not have to download or install an ffmpeg binary. (Older tutorials that say otherwise predate this change.)-ql (480p, fast). Only your final render needs -qh (1080p60). Manim caches unchanged animations, so re-renders after small edits are much faster than the first one.3LaTeX (two valid strategies)
| Strategy A — no install (start today) | Strategy B — full install (recommended eventually) | |
|---|---|---|
| What | Use Manim's Text() and this site's live playgrounds; skip a LaTeX distribution entirely. | Install MiKTeX (Windows) or TeX Live / MacTeX. |
| Gets you | Everything except Manim's MathTex/Tex objects. | Beautiful math inside animations: MathTex(r"e^{i\pi}+1=0"). |
| Size | 0 MB | MiKTeX basic ≈ 250 MB (auto-installs packages on first use) |
MathTex scene while still online — the handful of packages Manim needs get cached and you're offline-ready forever.4VS Code
Install VS Code, then just two extensions (more = slower, and defeats the lightweight goal):
| Extension | Why |
|---|---|
| Python (Microsoft) | IntelliSense + running scripts. Nothing else needed for Manim. |
| Manim Slides Preview (.vsix, offline — download from GitHub) | The ▶-button → auto-preview workflow used in this course; installs from a local file, no marketplace/internet. |
# install a .vsix without internet:
code --install-extension manim-slides-preview-1.7.4.vsix # use the version you downloaded 5The one-keystroke workflow
With the extension installed, the whole edit-render-preview loop collapses to:
| You do | What happens |
|---|---|
Open your .py, press ▶ | Scene rendered → converted to interactive HTML → opens in your browser (or VS Code tab, or the native GUI window — your pick) |
| Edit, press Ctrl+S | Only changed animations re-render (cache), preview refreshes itself, staying on your current slide |
Optional: enable pptxExport | A .pptx of your deck is silently kept up to date in the background |
No terminal commands, no manual refreshing — your brain stays on the math, not the tooling.
6Verify everything (60 seconds)
manim --version # e.g. Manim Community v0.19.x
manim-slides --version # e.g. 5.x
python -c "import pptx; print('pptx OK')"
latex --version # only if you chose Strategy B Then render your very first animation:
# save as first.py, then: manim render -ql -p first.py Hello
from manim import *
class Hello(Scene):
def construct(self):
self.play(Write(Text("It works!"))) -p means "play when done" — a video window should pop up. If it does, you're ready for Chapter 1.
7Going fully offline
- This site is already offline — you're reading files from your own disk.
- Manim & manim-slides never phone home. Rendering is fully local.
- Slide exports: always convert with
--offline(bundles Reveal.js beside the HTML) so presentations work in a lecture hall with no WiFi:manim-slides convert --to html --offline MyScene out.html - pip on an air-gapped machine: on a connected machine run
pip download manim "manim-slides[pyside6]" -d wheelhouse/, copy the folder, thenpip install --no-index --find-links wheelhouse manim "manim-slides[pyside6]".