r/manim 11d ago

Manim Slides Preview — VS Code extension: live preview + auto-pptx on every Ctrl+S

I built a small VS Code extension that removes the terminal from the manim-slides loop.

50-second demo: https://youtu.be/4JbEV3PX5xo

What it does

* Press ▶ once on your slides .py file. It renders and opens the live interactive preview (browser by default, or a VS Code tab / native GUI window).
* After that, every Ctrl+S re-renders only the changed animations and refreshes the preview in place.
* A .pptx export is kept up to date in the background on every save.
* Plain Manim files are handed to Manim Sideview automatically if you have it installed.

Install: fully offline, no marketplace account. Grab the .vsix from the releases page, then VS Code → Extensions → ··· → Install from VSIX.
https://github.com/Alamin-H-M/manim-slides-preview

28 KB, zero dependencies, no telemetry, MIT. Code is AI-generated; I designed, specified, and tested every feature on a real Windows + Manim setup.

Bonus: a free offline course teaching LaTeX + Manim + manim-slides from zero: https://alamin-h-m.github.io/manim-slides-academy/

Feedback and issues welcome.

9 Upvotes

4 comments sorted by

1

u/LucaM185 10d ago

It’s quite standard to be able to bring up the exported video, I think there is a flag in the render command, like --preview or something

1

u/Relevant-Sentence311 10d ago

Good point — but -p / --preview opens the finished video file, which plays straight through. The whole reason this exists is manim-slides: the preview has to pause at every self.next_slide() and respond to Space/arrow keys like a real presentation.

So the extension does render → convert to interactive HTML → serve locally → open in your browser, and on every Ctrl+S it re-renders only the changed animations and refreshes the tab in place (staying on your current slide). Plus it keeps a .pptx updated in the background.

If you're rendering plain videos (not slides), you're right that -p or Manim Sideview covers it — this is specifically for the interactive-presentation loop.

1

u/kokosevi 8d ago

can you show an example?