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