Tool for live presentations using manim


pip install manim-presentation opencv-python


Use the class Slide as your scenes base class

from manim_presentation 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_presentation 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_presentation 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


Alternatively you can specify different keybindings creating a file named manim-presentation.json with the keys: QUIT_KEY CONTINUE_KEY BACK_KEY REWIND_KEY and PLAYPAUSE_KEY
manim-presentation uses cv2.waitKeyEx() to wait for keypresses

Run Example

Clone this repository

git clone
cd manim-presentation

Create a virtualenv

virtualenv --python=python3.7 env
. ./env/bin/activate

Install manim and manim-presentation

pip install manim manim-presentation opencv-python

Render the example scene

manim -qh

Run the presentation

manim-presentation Example