Manim Extensions
An extension toolkit for Manim — reusable mobjects, geometric computations, and animations to help you build mathematical videos faster.
manim_extensions extends Manim with:
- Chinese formula support — render Chinese characters inside
MathTexviaxelatex/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.algorithmmanim-arabic→manim_extensions.arabicmanim-automata→manim_extensions.automatamanim-Chemistry→manim_extensions.chemistrymanim-circuit→manim_extensions.circuitmanim-data-structures→manim_extensions.data_structuresmanim_ec→manim_extensions.economicsmanim-fontawesome→manim_extensions.fontawesomemanim-gearbox→manim_extensions.gearboxmanim-meshes→manim_extensions.meshesmanim-ml(ManimML) →manim_extensions.machine_learningmanim-mindmap→manim_extensions.mindmapmanim-physics→manim_extensions.physicsmanim-pymunk→manim_extensions.pymunkmanim-qr-codes→manim_extensions.qr_codesmanim-rubikscube→manim_extensions.rubikscubemanim-sequence-diagram→manim_extensions.sequence_diagrammanim-svg-animations→manim_extensions.svg_animationsmanim-table→manim_extensions.tablemanim-tikz→manim_extensions.tikzmanim-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-icons1.0.x pinsmanim>=0.19,<0.20on PyPI even though it works with current manim — it is bundled asmanim_extensions.utils.nerdfontinstead of being a dependency.manim-mobject-svgsimilarly declarespython<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
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| manim_extensions-1.0.5.tar.gz | 4.3 MB | Without provenance | Details for manim_extensions-1.0.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| manim_extensions-1.0.5-py3-none-any.whl | Python 3 | none | any | Details for manim_extensions-1.0.5-py3-none-any.whl |
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
|
Security for manim-extensions 1.0.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.