Skip to main content

Tool for live presentations using manim

Project description

Manim Slides Logo

Latest Release Python version PyPI - Downloads Documentation DOI JOSE Paper codecov

Manim Slides

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!

Installation

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.

Dependencies

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:

Pip Install

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.

Install From Repository

An alternative way to install Manim Slides is to clone the git repository, and install from there: read the contributing guide to know how.

Usage

Using Manim Slides is a two-step process:

  1. Render animations using 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.
  2. Run manim-slides on rendered animations and display them like a Power Point presentation.

The documentation is available online.

Basic Example

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

Key Bindings

The default key bindings to control the presentation are:

Manim Slides Wizard

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.

Interactive Tutorial

Click on the image to watch a slides presentation that explains you how to use Manim Slides.

Manim Slides Docs

Other Examples

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.

Comparison with Similar Tools

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:

Project name Manim Slides Manim Presentation Manim Editor Jupyter Notebooks
Link GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars
Activity GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars
Usage Command-line Command-line Web Browser Notebook
Note Requires minimal modif. in scenes files Requires minimal modif. in scenes files Requires the usage of sections, and configuration through graphical interface Relies on nbconvert to create slides from a Notebook
Support for ManimGL Yes No No No
Web Browser presentations Yes No Yes No
Offline presentations Yes, with Qt Yes, with OpenCV No No

F.A.Q

How to increase quality on Windows

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%:

Windows Fix Scaling

in Settings->Display.

Contributing

Contributions are more than welcome! Please read through our contributing section.

Reporting an Issue

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!

Seeking for help

Sometimes, you may have a question about Manim Slides, not necessarily an issue.

There are two ways you can reach us for questions:

Contact

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

manim_slides-5.0.0rc3.tar.gz (49.3 kB view details)

Uploaded Source

Built Distribution

manim_slides-5.0.0rc3-py3-none-any.whl (53.7 kB view details)

Uploaded Python 3

File details

Details for the file manim_slides-5.0.0rc3.tar.gz.

File metadata

  • Download URL: manim_slides-5.0.0rc3.tar.gz
  • Upload date:
  • Size: 49.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/6.2.0-1014-azure

File hashes

Hashes for manim_slides-5.0.0rc3.tar.gz
Algorithm Hash digest
SHA256 a3d8cf0b3cf21afddc1dbde152d71cd5857f65d6e9ea138da069323f6b257894
MD5 6fe50a1063217b53e6629f69ee1d1f94
BLAKE2b-256 4c25d132c4b879d08248b0c4b3bd3a3ff8d02d76c32c35531aef4df05cd31222

See more details on using hashes here.

File details

Details for the file manim_slides-5.0.0rc3-py3-none-any.whl.

File metadata

  • Download URL: manim_slides-5.0.0rc3-py3-none-any.whl
  • Upload date:
  • Size: 53.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/6.2.0-1014-azure

File hashes

Hashes for manim_slides-5.0.0rc3-py3-none-any.whl
Algorithm Hash digest
SHA256 6913bf17c460185de35549af5adaedad29edbc6d8166d8ff68b2885055da9022
MD5 a2d7d7325907f68ed1a8eced038aa9dd
BLAKE2b-256 fcc5d97eefc23cc9c43290525a67c9f5d973ad97b5b1a10aacd6c53d1d70fc3f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page