pip install manim_express
(Find action 'Registry' in PyCharm) named 'run.processes.with.pty' that allows to run Python processes with tty
-
Render an animation: 3b1b:SquareToCircle
from manimlib import * from manim_express import GlEagerScene scene = GlEagerScene() circle = Circle() circle.set_fill(BLUE, opacity=0.5) circle.set_stroke(BLUE_E, width=4) square = Square() scene.show_creation(square) scene.play(ReplacementTransform(square, circle)) scene.hold_on()
Operating graphics:
- hold down the
d
key ormouse left
on the keyboard and move the mouse to change the three-dimensional perspective. - hold down the
s
key ormouse right
on the keyboard and move the mouse to pan the screen - hold down the
z
orctrl
on the keyboard while scrolling the middle mouse button to zoom the screen - scroll the middle mouse button to move the screen up and down
- reset camera view by pressing
r
- close the window and exit the program by pressing
q
ortab
- pause the animation by pressing
space
orctrl
oralt
- previews animation clip by pressing
LEFT
- next animation clip:
RIGHT
- replay current animation clip:
DOWN
- hold down the
-
manim_express
vsMatplotlib
:
Eager mode usage:from manimlib import * from manim_express import GlEagerScene CONFIG.use_online_tex = True # If you don't have installed latex locally. theta = np.linspace(0, 2*np.pi, 200) x = np.cos(theta) y = np.sin(theta) scene = GlEagerScene() scene.plot(x, y, color=GREEN, width=2, scale_ratio=1) scene.show_plot() scene.hold_on()
Object oriented usage:
from manimlib import * from manim_express import GlEagerScene import numpy as np class ScatterExample(GlEagerScene): def clip_1(self): n_features = 2 X = np.random.normal(0, 20, (2000, n_features)) theta = np.linspace(0, np.pi*2, 150) r = 50 x, y = r*np.cos(theta), r*np.sin(theta) self.scatter2d(X[:, 0], X[:, 1], size=.03, color=YELLOW, ratio=0.618) self.scatter2d(x, y, size=.03, color=BLUE) ScatterExample().render()