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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adea29d4016e02bdfe432e7a5934de31e4d1ee0fc26cfd1ae96d5ce3234baf40
|
|
| MD5 |
b594de21b0eac7545cf973fc3cf35ebc
|
|
| BLAKE2b-256 |
4e2e3a9791b5be4df415c472bf0a7ea1e91f8178678aba9b8f83439365521db6
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
336c8689d5240a5a3eb742d962e7b8b84f58e51a1b910c2facf6428ae7af7e3a
|
|
| MD5 |
21480c857ac1b5c83aa0c6f5fb2edd3d
|
|
| BLAKE2b-256 |
0fb08a146df9c456d490fc4c2cc64898f622c515a31dfe5807d7455935f087da
|