Skip to main content

Animation engine for explanatory math videos

Project description

manim_express

image image image image


English | 中文说明

Install

pip install manim_express

Run in pycharm

https://stackoverflow.com/questions/44851652/how-to-allocate-a-pseudo-tty-in-which-to-run-scripts-from-ide

(Find action 'Registry' in PyCharm) named 'run.processes.with.pty' that allows to run Python processes with tty

Quick start

  • 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 or mouse left on the keyboard and move the mouse to change the three-dimensional perspective.
    • hold down the s key or mouse right on the keyboard and move the mouse to pan the screen
    • hold down the z or ctrl 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 or tab
    • pause the animation by pressing space or ctrl or alt
    • previews animation clip by pressing LEFT
    • next animation clip: RIGHT
    • replay current animation clip: DOWN
  • manim_express vs Matplotlib:
    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
    from sklearn.datasets import make_multilabel_classification 
    class ScatterExample(GlEagerScene):
        def clip_1(self):
            X1, y1 =make_multilabel_classification(n_samples=200, n_classes=4, n_features=2)
            X2, y2 =make_multilabel_classification(n_samples=200, n_classes=4, n_features=2)
            self.scatter2d(X1[:, 0], X1[:, 1], size=.05, color=BLUE)
            self.scatter2d(X2[:, 0], X2[:, 1], size=.05, color=YELLOW)
    
    ScatterExample().render()
    
    It should be noted that manim is not suitable for drawing patterns that need to be accurately realized!

Resources

Examples

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_express-0.6.8.tar.gz (18.0 MB view hashes)

Uploaded Source

Built Distribution

manim_express-0.6.8-py3-none-any.whl (83.5 kB view hashes)

Uploaded Python 3

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