KenyonY / manim-express

Easy-to-use math animation rendering engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

  • Bezier curve

    Bezier.mp4
  • GOA model

    ParticleMultiRay.mp4
  • GOA

  • Apply function

  • Double pendulum

About

Easy-to-use math animation rendering engine

License:MIT License


Languages

Language:Python 100.0%