Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

manim-slides

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

manim-slides

Tool for live presentations using manim

  • 5.1.10
  • PyPI
  • Socket score

Maintainers
1

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

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

Manim Slides requires either Manim or ManimGL to be installed, along with their dependencies. Please checkout the documentation for detailed install instructions.

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() every time you want to create a new slide.
  2. Run manim-slides on rendered animations and display them like a PowerPoint presentation.

The documentation is available online.

Basic Example

Call self.next_slide() every time 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:

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-slides render example.py BasicExample
# or use ManimGL
manim-slides render --GL example.py BasicExample

NOTE: Using manim-slides render makes sure to use the manim (or manimlib) library that was installed in the same Python environment. Put simply, this is a wrapper around manim render [ARGS]... (or manimgl [ARGS]...).

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

manim-slides [OPTIONS] Scene1 Scene2...

In our example:

manim-slides BasicExample

Example GIF

For detailed usage documentation, run manim-slides --help, or go to the documentation.

Interactive Tutorial

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

Manim Slides Docs

More Examples

More examples are available in the example.py file, if you downloaded the git repository.

Comparison with Similar Tools

There exists a 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 nameManim SlidesManim PresentationManim EditorJupyter Notebooks
LinkGitHub Repo starsGitHub Repo starsGitHub Repo starsGitHub Repo stars
ActivityGitHub Repo starsGitHub Repo starsGitHub Repo starsGitHub Repo stars
UsageCommand-lineCommand-lineWeb BrowserNotebook
NoteRequires minimal modif. in scenes filesRequires minimal modif. in scenes filesRequires the usage of sections, and configuration through graphical interfaceRelies on nbconvert to create slides from a Notebook
Support for ManimGLYesNoNoNo
Web Browser presentationsYesNoYesNo
Offline presentationsYes, with QtYes, with OpenCVNoNo

Citing

If you use this project, please cite it using the following reference:

@article{Jerome_Eertmans_Manim_Slides_A_2023,
	title        = {{Manim Slides: A Python package for presenting Manim content anywhere}},
	author       = {{Jérome Eertmans}},
	year         = 2023,
	month        = aug,
	journal      = {Journal of Open Source Education},
	volume       = 6,
	doi          = {10.21105/jose.00206}
}

or by linking this GitHub repository at the end of the presentation.

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.

First, make sure to read the F.A.Q to see if your question has already been answered. If not, please follow the recommendation (from that page) to 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.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc