Skip to main content

Tool for live presentations using manim

Project description

manim-presentation

Tool for live presentations using manim

Install

pip install manim-presentation opencv-python

Usage

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.play(GrowFromCenter(circle))
        self.pause()

        self.start_loop()
        self.play(MoveAlongPath(dot, circle), run_time=2, rate_func=linear)
        self.end_loop()

        self.play(dot.animate.move_to(ORIGIN))
        self.pause()

        self.wait()

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

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

manim_presentation Scene1 Scene2...

Keybindings

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-presentation-wizard

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 https://github.com/galatolofederico/manim-presentation.git
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 example.py

Run the presentation

manim-presentation Example

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.

For any further question feel free to reach me at federico.galatolo@ing.unipi.it or on Telegram @galatolo

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_presentation-0.2.1.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

manim_presentation-0.2.1-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file manim_presentation-0.2.1.tar.gz.

File metadata

  • Download URL: manim_presentation-0.2.1.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for manim_presentation-0.2.1.tar.gz
Algorithm Hash digest
SHA256 adea29d4016e02bdfe432e7a5934de31e4d1ee0fc26cfd1ae96d5ce3234baf40
MD5 b594de21b0eac7545cf973fc3cf35ebc
BLAKE2b-256 4e2e3a9791b5be4df415c472bf0a7ea1e91f8178678aba9b8f83439365521db6

See more details on using hashes here.

File details

Details for the file manim_presentation-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: manim_presentation-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 20.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for manim_presentation-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 336c8689d5240a5a3eb742d962e7b8b84f58e51a1b910c2facf6428ae7af7e3a
MD5 21480c857ac1b5c83aa0c6f5fb2edd3d
BLAKE2b-256 0fb08a146df9c456d490fc4c2cc64898f622c515a31dfe5807d7455935f087da

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