Tool for live presentations using either Manim (community edition) or ManimGL. Manim Slides will automatically detect the one you are using!
NOTE: this project extends the work of
manim-presentation
, with a lot more features!
While installing Manim Slides and its dependencies on your global Python is fine, I recommend using a virtual environment (e.g., venv) for a local installation.
Manim Slides requires either Manim or ManimGL to be installed. Having both packages installed is fine too.
If none of those packages are installed, please refer to their specific installation guidelines:
The recommended way to install the latest release is to use pip:
pip install manim-slides
Optionally, you can also install Manim or ManimGL using extras[^1]:
pip install manim-slides[manim] # For Manim
# or
pip install manim-slides[manimgl] # For ManimGL
[^1]: NOTE: you still need to have Manim or ManimGL platform-specific dependencies installed on your computer.
An alternative way to install Manim Slides is to clone the git repository, and install from there: read the contributing guide to know how.
Using Manim Slides is a two-step process:
Slide
(resp. ThreeDSlide
) as a base class instead of Scene
(resp. ThreeDScene
), and add calls to self.next_slide()
everytime you want to create a new slide.manim-slides
on rendered animations and display them like a Power Point presentation.The documentation is available online.
Call self.next_slide()
everytime you want to create a pause between
animations, and self.next_slide(loop=True)
if you want the next slide to loop
over animations until the user presses continue:
# example.py
from manim import * # or: from manimlib import *
from manim_slides import Slide
class BasicExample(Slide):
def construct(self):
circle = Circle(radius=3, color=BLUE)
dot = Dot()
self.play(GrowFromCenter(circle))
self.next_slide() # Waits user to press continue to go to the next slide
self.next_slide(loop=True) # Start loop
self.play(MoveAlongPath(dot, circle), run_time=2, rate_func=linear)
self.next_slide() # This will start a new non-looping slide
self.play(dot.animate.move_to(ORIGIN))
First, render the animation files:
manim example.py BasicExample
# or
manimgl example.py BasicExample
To start the presentation using Scene1
, Scene2
and so on simply run:
manim-slides [OPTIONS] Scene1 Scene2...
Or in this example:
manim-slides BasicExample
The default key bindings to control the presentation are:
You can run the configuration wizard to change those key bindings:
manim-slides wizard
A default file can be created with:
manim-slides init
NOTE:
manim-slides
uses key codes, which are platform dependent. Using the configuration wizard is therefore highly recommended.
Click on the image to watch a slides presentation that explains you how to use Manim Slides.
Other examples are available in the example.py
file, if you downloaded the git repository.
Below is a small recording of me playing with the slides back and forth.
There exists are variety of tools that allows to create slides presentations containing Manim animations.
Below is a comparison of the most used ones with Manim Slides:
On Windows platform, one may encounter a lower image resolution than expected. Usually, this is observed because Windows rescales every application to fit the screen. As found by @arashash, in #20, the problem can be addressed by changing the scaling factor to 100%:
in Settings->Display.
Contributions are more than welcome! Please read through our contributing section.
If you think you found a bug, an error in the documentation, or wish there was some feature that is currently missing, we would love to hear from you!
The best way to reach us is via the GitHub issues. If your problem is not covered by an already existing (closed or open) issue, then we suggest you create a new issue. You can choose from a list of templates, or open a blank issue if your issue does not fit one of the proposed topics.
The more precise you are in the description of your problem, the faster we will be able to help you!
Sometimes, you may have a question about Manim Slides, not necessarily an issue.
There are two ways you can reach us for questions:
Question/Help/Support
topic when
choosing an issue template;Finally, if you do not have any GitHub account, or just wish to contact the author of Manim Slides, you can do so at: jeertmans@icloud.com.