← All repositories

3b1bmanim

84,611 stars7,130 forksPythonmit1 view

Manim

Features

  • Computational Geometry FrameworksA set of specialized tools for rendering coordinate systems, algebraic functions, and 3D surfaces with high mathematical fidelity and visual clarity.
  • Mathematical Visualization EnginesCreating precise, programmatic animations to explain complex mathematical functions, geometric proofs, and abstract theories for educational content.
  • Interpolation Animation EnginesCalculates intermediate states between keyframes using mathematical functions to generate smooth transitions across a sequence of rendered frames.
  • LaTeX-based Animation Components##### TexTransformExample[¶](#textransformexample) class TexTransformExample(Scene): def construct(self): to\_isolate \= \["B", "C", "=", "(", ")"\] lines \= VGroup( \# Passing in muliple arguments to Tex will result \#
  • Declarative Scene GraphsA hierarchical structure where visual objects are defined, composed, and manipulated through state-driven updates and time-based interpolation sequences.
  • Scene GraphsOrganizes visual elements into a tree structure where transformations and properties propagate from parent containers to nested child objects.
  • Programmatic Video ProductionGenerating high-quality, frame-accurate video assets through code-based scripting rather than traditional manual timeline-based video editing software.
  • Rasterization EnginesRenders individual scene states into image buffers sequentially to produce high-fidelity video output from programmatic geometric definitions.
  • Scene Animation Scripts##### GraphExample[¶](#graphexample) class GraphExample(Scene): def construct(self): axes \= Axes((\-3, 10), (\-1, 8)) axes.add\_coordinate\_labels() self.play(Write(axes, lag\_ratio\=0.01, run\_time\=1)) \# Axes.get\_gr
  • Mathematical Animation EnginesA programmatic environment for generating precise, high-quality mathematical visualizations through scriptable scene definitions and complex geometric transformations.
  • Declarative Update SystemsRegisters callback functions that execute on every frame to dynamically modify object properties based on time or external state.
  • 3D Surface Visualizations##### SurfaceExample[¶](#surfaceexample) class SurfaceExample(Scene): CONFIG \= { "camera\_class": ThreeDCamera, } def construct(self): surface\_text \= Text("For 3d scenes, try using surfaces") surface\_text.fix\_in\_fr
  • Animation Updaters##### UpdatersExample[¶](#updatersexample) class UpdatersExample(Scene): def construct(self): square \= Square() square.set\_fill(BLUE\_E, 1) \# On all all frames, the constructor Brace(square, UP) will \# be called, and
  • Interactive Animation Scenes##### InteractiveDevelopment[¶](#interactivedevelopment) from manimlib import \* class InteractiveDevelopment(Scene): def construct(self): circle \= Circle() circle.set\_fill(BLUE, opacity\=0.5) circle.set\_stroke(BLUE\_
  • Camera Projection SystemsMaps three-dimensional coordinate spaces into two-dimensional viewports by applying perspective or orthographic projection matrices to scene objects.
  • Animation EnginesA collection of primitives and rendering tools that translate code-based instructions into frame-by-frame vector animations for educational content.
  • Vector Geometry PipelinesProcesses mathematical primitives and paths into resolution-independent shapes before rasterizing them into the final output format.
  • Dynamic Geometry ModelsConstructing interactive or animated geometric models that respond to mathematical inputs and constraints for research or instructional purposes.
  • Technical Presentation DesignDeveloping dynamic, data-driven visual aids that clearly communicate technical processes, algorithms, or scientific phenomena to a professional audience.
  • Animation Methods##### AnimatingMethods[¶](#animatingmethods) class AnimatingMethods(Scene): def construct(self): grid \= OldTex(r"\\pi").get\_grid(10, 10, height\=4) self.add(grid) \# You can animate the application of mobject methods w
  • Coordinate Systems##### CoordinateSystemExample[¶](#coordinatesystemexample) class CoordinateSystemExample(Scene): def construct(self): axes \= Axes( \# x-axis ranges from -1 to 10, with a default step size of 1 x\_range\=(\-1, 10), \# y-