Latest Release Python version PyPI - Downloads

Manim Slides

Tool for live presentations using either manim or manim-community.

NOTE: This project is a fork of manim-presentation. Since the project seemed to be inactive, I decided to create my own fork to deploy new features more rapidly.


pip install manim-slides


Use the class Slide as your scenes base class:

from manim_slides import Slide

class Example(Slide):
    def construct(self):

call self.pause() when you want to pause the playback and wait for an input to continue (check the keybindings).

Wrap a series of animations between self.start_loop() and self.stop_loop() when you want to loop them (until input to continue):

from manim import *
from manim_slides import Slide

class Example(Slide):
    def construct(self):
        circle = Circle(radius=3, color=BLUE)
        dot = Dot()

        self.start_loop(), circle), run_time=2, rate_func=linear)


You must end your Slide with a or a self.wait(..).

To start the presentation using Scene1, Scene2 and so on simply run:

manim-slides Scene1 Scene2...


Default keybindings to control the presentation:

Keybinding Action
Right Arrow Continue/Next Slide
Left Arrow Previous Slide
R Re-Animate Current Slide
Spacebar Play/Pause
Q Quit

You can run the configuration wizard with:

manim-slides wizard

Alternatively you can specify different keybindings creating a file named .manim-slides.json with the keys: QUIT CONTINUE BACK REWIND and PLAY_PAUSE.

A default file can be created with:

manim-slides init

NOTE: manim-slides uses cv2.waitKeyEx() to wait for keypresses, and directly registers the key code.

Run Example

Clone this repository:

git clone
cd manim-slides

Install manim and manim-slides:

pip install manim manim-slides

Render the example scene:

manim -qh

Run the presentation

manim-slides Example

Below is a small recording of me playing with the slides back and forth.

Comparison with original manim-presentation

Here are a few things that I implemented (or that I'm planning to implement) on top of the original work:

  • Allowing multiple keys to control one action (useful when you use a laser pointer)
  • More robust config files checking
  • Dependencies are installed with the package
  • Only one cli (to rule them all)
  • User can easily generate dummy config file
  • Config file path can be manually set
  • Play animation in reverse #9
  • Handle 3D scenes out of the box
  • Can work with both community and 3b1b versions (not tested)
  • Generate docs online
  • Fix the quality problem on Windows platforms with fullscreen flag

Contributions and license

The code is released as Free Software under the GNU/GPLv3 license. Copying, adapting and republishing it is not only consent but also encouraged.