Skip to main content

Manim Extensions

An extension toolkit for Manim — reusable mobjects, geometric computations, and animations to help you build mathematical videos faster.

Magnetic field of a current loop Chaotic double pendulum Rubik's cube

PyPI version Python versions CI Validate Documentation MIT License


manim_extensions extends Manim with:

  • Chinese formula support — render Chinese characters inside MathTex via xelatex / xeCJK
  • Reusable mobjects — labelled dots, braces and arrows tied to formulas, file trees, motion trails, shadows, 3D vectors, tree diagrams, and more
  • Geometry helpers — circle / line / arc intersections and tangent points
  • Common animations — typewriting, random / reverse writes, highlights, sweep effects, and extra easing functions
  • Bundled toolkits — involute gears, mind maps / timelines / catalog diagrams, compass-and-straightedge constructions, algorithm visualisation, automata, circuits, data structures, meshes, neural networks, physics, Rubik's cube, sequence diagrams, and TikZ integration

Modules

Package Description
manim_extensions.algorithm Algorithm visualisation helpers
manim_extensions.animations Animations and easing functions (Basic)
manim_extensions.arabic Arabic text support
manim_extensions.automata Automata visualisation helpers
manim_extensions.chemistry Chemistry visualisation (periodic table, molecules)
manim_extensions.circuit Circuit diagram animations
manim_extensions.compass Compass, ruler, pencil, and construction animations
manim_extensions.data_structures Data structure animations
manim_extensions.economics Economics diagrams
manim_extensions.fontawesome Font Awesome icon mobjects
manim_extensions.gearbox Involute gears and racks
manim_extensions.geometry Geometric calculation functions (Basic)
manim_extensions.machine_learning Machine-learning visualisation
manim_extensions.meshes Mesh and geometry visualisation
manim_extensions.mindmap Mind maps, timelines, catalog diagrams
manim_extensions.mobjects Custom mobjects (Basic)
manim_extensions.physics Physics simulation helpers
manim_extensions.pymunk Pymunk physics engine integration
manim_extensions.qr_codes QR code generation
manim_extensions.rubikscube Rubik's Cube animation toolkit
manim_extensions.sequence_diagram Sequence diagram animations
manim_extensions.svg_animations HTML/SVG animation export
manim_extensions.table Animated tables
manim_extensions.tikz TikZ import helpers
manim_extensions.weighted_line Weighted line graphs

Bundled plugins

The following third-party Manim plugins are bundled directly as subpackages inside manim_extensions:

  • manim-algorithm → manim_extensions.algorithm
  • manim-arabic → manim_extensions.arabic
  • manim-automata → manim_extensions.automata
  • manim-Chemistry → manim_extensions.chemistry
  • manim-circuit → manim_extensions.circuit
  • manim-data-structures → manim_extensions.data_structures
  • manim_ec → manim_extensions.economics
  • manim-fontawesome → manim_extensions.fontawesome
  • manim-gearbox → manim_extensions.gearbox
  • manim-meshes → manim_extensions.meshes
  • manim-ml (ManimML) → manim_extensions.machine_learning
  • manim-mindmap → manim_extensions.mindmap
  • manim-physics → manim_extensions.physics
  • manim-pymunk → manim_extensions.pymunk
  • manim-qr-codes → manim_extensions.qr_codes
  • manim-rubikscube → manim_extensions.rubikscube
  • manim-sequence-diagram → manim_extensions.sequence_diagram
  • manim-svg-animations → manim_extensions.svg_animations
  • manim-table → manim_extensions.table
  • manim-tikz → manim_extensions.tikz
  • manim-weighted-line → manim_extensions.weighted_line

Installing manim_extensions lets you import them directly from the package namespace and guarantees compatible versions. See the documentation for details and attribution to the original authors.

Documentation

Full API reference: manim-extensions.readthedocs.io

Installation

pip install manim_extensions

Requires Manim Community Edition (>=0.21). For the Chinese-formula features you also need xelatex with the xeCJK package installed.

Optional extras

Each bundled module only pulls in what it needs. The base install is just manim + numpy; heavy or niche dependencies are lazy-imported and belong to the matching extra:

pip install manim_extensions[all]         # every module at once
pip install manim_extensions[automata]    # xmltodict
pip install manim_extensions[chemistry]   # pandas, xmltodict, requests
pip install manim_extensions[dev]         # pytest for running tests
pip install manim_extensions[docs]        # sphinx + furo for building docs
pip install manim_extensions[meshes]      # trimesh, moderngl
pip install manim_extensions[ml]          # matplotlib, scikit-learn, seaborn, tqdm
pip install manim_extensions[physics]     # pymunk, shapely
pip install manim_extensions[qr]          # segno
pip install manim_extensions[rubikscube]  # kociemba
pip install manim_extensions[svg]         # svgpathtools
pip install manim_extensions[video]       # opencv (VideoMobject)

If a feature is used without its extra installed, the error message names the exact pip install manim_extensions[...] command.

Every vendored module has a same-named extra. The ones below declare no additional dependencies (they work with the base install) but exist so that installs can uniformly request manim_extensions[<module>]: algorithm, arabic, circuit, compass, data_structures, economics, fontawesome, gearbox, mindmap, sequence_diagram, table, tikz, weighted_line.

Why we bundle upstream packages

Most of manim_extensions is vendored: source copied from small, independent upstream Manim extension projects and maintained here as one coherent, tested whole. The motivations:

  • Upstream metadata locks. Some upstream packages declare dependency ranges that conflict with reality. For example manim-nerdfont-icons 1.0.x pins manim>=0.19,<0.20 on PyPI even though it works with current manim — it is bundled as manim_extensions.utils.nerdfont instead of being a dependency. manim-mobject-svg similarly declares python<3.13; it stays a lazily-imported plugin for that reason.
  • Integration. Vendoring lets us normalise import style, docstring conventions and CI checks across all modules, fix cross-module bugs in one place, and keep every public name importable from a single package.
  • Longevity. Several upstream projects are inactive; vendoring decouples this package from their release cadence.
  • Lean installs. Because each module's extra dependencies are lazy-imported, the base install stays at two packages while every feature remains a pip install manim_extensions[...] away.

Every vendored package's upstream repository, sync version and local patches are tracked in VENDORED.md; patched files carry a # patched: <reason> marker in their header. Licensing and attribution are kept per-package in REUSE.toml.

License

MIT

Metadata

Release files for manim-extensions 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for manim-extensions 1.0.5
File Size Uploaded
manim_extensions-1.0.5.tar.gz 4.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for manim-extensions 1.0.5
File Interpreter ABI Platform
manim_extensions-1.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 9.7 MB

Release files / manim_extensions-1.0.5.tar.gz

Download URL manim_extensions-1.0.5.tar.gz
Size 4.3 MB
Tags Source
SHA-256 checksum
How to use checksums
0d8324318a4ac155421e1455f681cac1ba5a575bd19af2cf93dfb5fc6906f073
BLAKE2b-256 checksum
How to use checksums
81a9c18becb23d271e910c157290992f0b188886c311a43d48616e3312a4430f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / manim_extensions-1.0.5-py3-none-any.whl

Download URL manim_extensions-1.0.5-py3-none-any.whl
Size 5.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
63e2e5542f5c486daf672e9c3b2b11e76efd49ad3f91fd7c3c1f05327f7a7128
BLAKE2b-256 checksum
How to use checksums
167b7c755d670b42aad9a0e9dd9cd17d852d5d3ccdc527560476856e22510ed6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

1.0.5 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page