| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| manim-0.21.0.tar.gz | 2026-08-10 | 580.4 kB | |
| Manim v0.21.0 source code.tar.gz | 2026-08-10 | 6.9 MB | |
| Manim v0.21.0 source code.zip | 2026-08-10 | 7.6 MB | |
| README.md | 2026-08-10 | 13.1 kB | |
| Totals: 4 Items | 15.0 MB | 13 | |
What's Changed
Breaking Changes ๐จ
- Delegate color handling in
Codeto Pygments and document custom styles by @Helbronner in https://github.com/manimcommunity/manim/pull/4816
Code no longer honors foreground color overrides passed through
paragraph_config={"color": ...} or Code.default_paragraph_config["color"];
syntax and line-number colors now come from the selected Pygments
formatter_style. To customize them, pass a custom Pygments Style subclass
through formatter_style and configure its token styles and
line_number_color. Background colors can still be overridden with
background_config={"fill_color": ...}; otherwise, the selected Pygments
style provides the background. See the note in the documentation of Code
for an explicit example.
- Speed up Cairo renderer by 2.2x on animation-heavy scenes by @HamdiBarkous in https://github.com/manimcommunity/manim/pull/4695
Cairo path construction now uses vectorized subpath splitting, and pixel-array
handling avoids redundant copies while producing pixel-identical output. This
changes Camera.convert_pixel_array(): the convert_from_floats argument has
been removed, and the method now always converts floats to the camera's pixel
format. Omit the argument if it was previously True; use
np.array(pixel_array) instead if relying on the old default copying behavior.
Highlights ๐
- Introduce first-class support for rendering text and markup via Typst (optional dependency) by @behackl in https://github.com/manimcommunity/manim/pull/4681
The new Typst and TypstMath mobjects compile Typst markup
and mathematical expressions directly to SVG without requiring a TeX
installation. They support label-based subgroup selection, {{ ... }}
expression grouping, and integration with existing label APIs. Install the
optional dependency with pip install "manim[typst]".
- Hash NumPy arrays without JSON expansion by @dexhunter in https://github.com/manimcommunity/manim/pull/4883
NumPy arrays in scene cache keys are now represented by deterministic hashes of their complete logical contents instead of sampled JSON data. This prevents stale cache hits when visible image data changes and reduces hashing CPU time by roughly 94โ98% in representative benchmarks.
- Add support for encoding partial movie files in parallel by @pjfo in https://github.com/manimcommunity/manim/pull/4899
The new max_inflight_encoders configuration option allows partial movie
encoding to overlap with rendering while bounding the number of encoder
workers. Try it with
manim render --max-inflight-encoders 4 --encoder-queue-size 8 scene.py Scene;
--encoder-queue-size limits the pending frame buffers held by each encoder.
The default of one in-flight encoder preserves serial behavior; higher values
reduced an encoding-heavy benchmark by 56% and larger real-world renders by
roughly 8โ11%.
New Features โจ
- Allow inner lines to be omitted from
Tableby @leqo-c in https://github.com/manimcommunity/manim/pull/4731 - Support multiple compiler passes in
TexTemplateby @Sazzzzzz in https://github.com/manimcommunity/manim/pull/4810 - Add a
dot_buffparameter toBulletedListby @GniLudio in https://github.com/manimcommunity/manim/pull/4892
Enhancements ๐
- Support tuple-based edge lookup in
GenericGraph.__getitem__()by @HairlessVillager in https://github.com/manimcommunity/manim/pull/3799 - Raise a clear error when rendered glyphs do not match input characters by @SupernovaIa in https://github.com/manimcommunity/manim/pull/4868
- Avoid copying
Mobject.submobjectsin sequence methods by @nikolajmunk in https://github.com/manimcommunity/manim/pull/4915 - Make additional mobject methods chainable by @GniLudio in https://github.com/manimcommunity/manim/pull/4913
Bug Fixes ๐
- Fix OpenGL crashes in
arrange_in_grid()andget_location()by @Croustit in https://github.com/manimcommunity/manim/pull/4622 - Prevent
get_nth_subpath()from raisingIndexErrorand ensure it returns a NumPy array by @MqCreaple in https://github.com/manimcommunity/manim/pull/4630 - Preserve closed curves in
put_start_and_end_on()by @GoThrones in https://github.com/manimcommunity/manim/pull/4658 - Fix inconsistent stroke-width scaling for text in compound objects by @vihdutta in https://github.com/manimcommunity/manim/pull/4694
- Accept a single
GrouporVGroupinCyclicReplaceandSwapby @irvanalhaq9 in https://github.com/manimcommunity/manim/pull/4211 - Prevent empty submobjects from distorting parent dimensions by @gvauvert in https://github.com/manimcommunity/manim/pull/4088
- Honor
languagewhen constructingCodefromcode_fileby @GniLudio in https://github.com/manimcommunity/manim/pull/4706 - Fix
ThreeDScene.set_to_default_angled_camera_orientation()raisingAttributeErrorby @siddhu-pikachu in https://github.com/manimcommunity/manim/pull/4704 - Fix reversed default resolution in
manim init project --defaultby @aoxiangtianyu-go in https://github.com/manimcommunity/manim/pull/4839 - Prevent memoizer collisions between object hashes and IDs by @pjfo in https://github.com/manimcommunity/manim/pull/4901
- Prevent
round_corners()failures for collinear vertices by @MeiSiristhebest in https://github.com/manimcommunity/manim/pull/4906 - Fix
checkhealthfalse positives for uv launcher shims by @srinu2003 in https://github.com/manimcommunity/manim/pull/4889 - Fix OpenGL triangulation errors at ring boundaries by @Theelx in https://github.com/manimcommunity/manim/pull/4819
- Fix
Anglecrashes for parallel or collinear lines by @MeiSiristhebest in https://github.com/manimcommunity/manim/pull/4907 - Stabilize cache hashes for transient objects by @pjfo in https://github.com/manimcommunity/manim/pull/4896
- Ignore SVG shape elements without points by @behackl in https://github.com/manimcommunity/manim/pull/4917
- Normalize
Codebaseline alignment inParagraphby @Croustit in https://github.com/manimcommunity/manim/pull/4692 - Preserve z-index ordering in animation groups by @behackl in https://github.com/manimcommunity/manim/pull/4918
- Let
MathTexhandle multiline strings by @henrikmidtiby in https://github.com/manimcommunity/manim/pull/4634 - Ensure that glyphs at end of
Codelines are no longer deleted whendisable_ligaturesisFalseby @nikolajmunk in https://github.com/manimcommunity/manim/pull/4926
Documentation ๐
- Correct
SquareToCircleterminology in the quickstart guide by @xuruidong in https://github.com/manimcommunity/manim/pull/4631 - Correct angle ranges in
Spheredocumentation and add examples by @Jackyuanx in https://github.com/manimcommunity/manim/pull/3973 - Document edge lookup in
GenericGraph.__getitem__()by @mayank-dev-15 in https://github.com/manimcommunity/manim/pull/4761 - Correct the
FadeOutexample name by @GniLudio in https://github.com/manimcommunity/manim/pull/4832 - Document whitespace-stripped indexing in
Textby @SupernovaIa in https://github.com/manimcommunity/manim/pull/4866 - Preserve line color in the
MovingDotsexample by @shenao010415 in https://github.com/manimcommunity/manim/pull/4895 - Correct the font-directory lookup documented for
register_font()by @ExploreMaths in https://github.com/manimcommunity/manim/pull/4880 - Correct angle ordering in the
cartesian_to_spherical()andspherical_to_cartesian()docstrings by @changsheng0804-blip in https://github.com/manimcommunity/manim/pull/4764 - Clarify frame terminology in the
MovingCameraSceneexample by @nikolajmunk in https://github.com/manimcommunity/manim/pull/4910
Testing ๐งช
- Add unit tests for color helper functions by @THE-RAF in https://github.com/manimcommunity/manim/pull/4749
- Add regression tests for four recent
VMobjectfixes by @THE-RAF in https://github.com/manimcommunity/manim/pull/4750 - Add tests for edge lookup in
GenericGraph.__getitem__()by @sridhar-3009 in https://github.com/manimcommunity/manim/pull/4753 - Add a regression test for text stroke-width scaling in compound objects by @vihdutta in https://github.com/manimcommunity/manim/pull/4703
Infrastructure & Build ๐จ
- Update TinyTeX installation on Windows and macOS to fix CI failures by @chopan050 in https://github.com/manimcommunity/manim/pull/4679
- Update CI workflow dependencies by @behackl in https://github.com/manimcommunity/manim/pull/4677
- Switch package builds from Hatchling to uv-build by @JasonGrace2282 in https://github.com/manimcommunity/manim/pull/4619
Code Quality & Refactoring ๐งน
- Update the project metadata link to X (formerly Twitter) by @henrikmidtiby in https://github.com/manimcommunity/manim/pull/4642
- Replace a bare
exceptinrate_functions.pyby @koteshyelamati in https://github.com/manimcommunity/manim/pull/4891 - Simplify the
Codesyntax-coloring implementation by @GniLudio in https://github.com/manimcommunity/manim/pull/4894 - Update pre-commit hooks by @behackl in https://github.com/manimcommunity/manim/pull/4920
- Rename
TypstMathtoMathTypstto match existingTex/MathTexcoupling by @behackl in https://github.com/manimcommunity/manim/pull/4925
Type Hints ๐
- Add type annotations to
mobject.pyby @henrikmidtiby in https://github.com/manimcommunity/manim/pull/4388 - Use
npt.NDArray[np.float64]forVMobject._bezier_t_valuesby @GoThrones in https://github.com/manimcommunity/manim/pull/4675 - Improve
Callableannotations for mobject updater utilities by @treszkai in https://github.com/manimcommunity/manim/pull/4728 - Add type annotations to
transform_matching_parts.pyby @henrikmidtiby in https://github.com/manimcommunity/manim/pull/4400 - Fix the
_on_finishannotation inAnimation.__init__by @GniLudio in https://github.com/manimcommunity/manim/pull/4812 - Add type annotations to
table.pyby @henrikmidtiby in https://github.com/manimcommunity/manim/pull/4641
Other Changes
- Prepare new release:
v0.21.0by @behackl in https://github.com/manimcommunity/manim/pull/4919
New Contributors
- @Croustit made their first contribution in https://github.com/manimcommunity/manim/pull/4622
- @xuruidong made their first contribution in https://github.com/manimcommunity/manim/pull/4631
- @MqCreaple made their first contribution in https://github.com/manimcommunity/manim/pull/4630
- @vihdutta made their first contribution in https://github.com/manimcommunity/manim/pull/4694
- @THE-RAF made their first contribution in https://github.com/manimcommunity/manim/pull/4749
- @leqo-c made their first contribution in https://github.com/manimcommunity/manim/pull/4731
- @treszkai made their first contribution in https://github.com/manimcommunity/manim/pull/4728
- @gvauvert made their first contribution in https://github.com/manimcommunity/manim/pull/4088
- @sridhar-3009 made their first contribution in https://github.com/manimcommunity/manim/pull/4753
- @GniLudio made their first contribution in https://github.com/manimcommunity/manim/pull/4706
- @mayank-dev-15 made their first contribution in https://github.com/manimcommunity/manim/pull/4761
- @siddhu-pikachu made their first contribution in https://github.com/manimcommunity/manim/pull/4704
- @Sazzzzzz made their first contribution in https://github.com/manimcommunity/manim/pull/4810
- @aoxiangtianyu-go made their first contribution in https://github.com/manimcommunity/manim/pull/4839
- @SupernovaIa made their first contribution in https://github.com/manimcommunity/manim/pull/4866
- @koteshyelamati made their first contribution in https://github.com/manimcommunity/manim/pull/4891
- @pjfo made their first contribution in https://github.com/manimcommunity/manim/pull/4901
- @MeiSiristhebest made their first contribution in https://github.com/manimcommunity/manim/pull/4906
- @shenao010415 made their first contribution in https://github.com/manimcommunity/manim/pull/4895
- @ExploreMaths made their first contribution in https://github.com/manimcommunity/manim/pull/4880
- @srinu2003 made their first contribution in https://github.com/manimcommunity/manim/pull/4889
- @changsheng0804-blip made their first contribution in https://github.com/manimcommunity/manim/pull/4764
- @Theelx made their first contribution in https://github.com/manimcommunity/manim/pull/4819
- @dexhunter made their first contribution in https://github.com/manimcommunity/manim/pull/4883
- @nikolajmunk made their first contribution in https://github.com/manimcommunity/manim/pull/4910
- @Helbronner made their first contribution in https://github.com/manimcommunity/manim/pull/4816
- @HamdiBarkous made their first contribution in https://github.com/manimcommunity/manim/pull/4695
Full Changelog: Compare view