Changelog
The full curated and commented changelog can be found at https://docs.manim.community/en/latest/changelog/0.19.0-changelog.html.
What's Changed
* feat: Add three animations that together simulate a typing animation by VinhPhmCng in https://github.com/ManimCommunity/manim/pull/3612
* Fixed action for building downloadable documentation by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3737
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3739
* Fixes 3744 - underline tag should be <u></u> in the documentation. by anagorko in https://github.com/ManimCommunity/manim/pull/3745
* Bump tqdm from 4.66.1 to 4.66.3 by dependabot in https://github.com/ManimCommunity/manim/pull/3746
* Bump jinja2 from 3.1.3 to 3.1.4 by dependabot in https://github.com/ManimCommunity/manim/pull/3750
* Add typehints to `manim.utils.iterables` by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3751
* Let `SceneFileWriter` access `ffmpeg` via `av` instead of via external process by behackl in https://github.com/ManimCommunity/manim/pull/3501
* Use --py39-plus in pre-commit by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3761
* Optimized `manim.utils.bezier.is_closed()` by chopan050 in https://github.com/ManimCommunity/manim/pull/3768
* Created and optimized Bézier splitting functions such as `partial_bezier_points()` in `manim.utils.bezier` by chopan050 in https://github.com/ManimCommunity/manim/pull/3766
* Bump requests from 2.31.0 to 2.32.0 by dependabot in https://github.com/ManimCommunity/manim/pull/3776
* Fix assertions and improve error messages when adding submobjects by chopan050 in https://github.com/ManimCommunity/manim/pull/3756
* Add pyproject for ruff formatting by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3777
* pre-commit change to ruff by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3779
* Ignore Ruff format in git blame by Viicos in https://github.com/ManimCommunity/manim/pull/3781
* Fixed `there_and_back_with_pause()` rate function behaviour with different `pause_ratio` values by jkjkil4 in https://github.com/ManimCommunity/manim/pull/3778
* Optimize `VMobject` methods which append to `points` by chopan050 in https://github.com/ManimCommunity/manim/pull/3765
* Add `` shorthand for `CoordinateSystem` methods `coords_to_point` (`c2p`) and `point_to_coords` (`p2c`) by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3754
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3784
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3794
* Add Ruff Lint by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3780
* Replace Pyupgrade with Ruff rule by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3795
* Bump tornado from 6.4 to 6.4.1 by dependabot in https://github.com/ManimCommunity/manim/pull/3796
* Fixing the `get_nth_subpath` function in "opengl_vectorized_mobject.py". by yang-tsao in https://github.com/ManimCommunity/manim/pull/3790
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3801
* Add typings to `OpenGLMobject` by chopan050 in https://github.com/ManimCommunity/manim/pull/3803
* fix: importing manim should not trigger pygments.styles.get_all_styles by goldenphoenix713 in https://github.com/ManimCommunity/manim/pull/3797
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3809
* Bump urllib3 from 2.2.1 to 2.2.2 by dependabot in https://github.com/ManimCommunity/manim/pull/3810
* Fix MacOS LaTeX CI by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3812
* Fixed infinite loop in OpenGL `BackgroundRectangle.get_color()` by camburd2 in https://github.com/ManimCommunity/manim/pull/3732
* docs(contributing): add manim.typing guide by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3669
* Fix `DiGraph` edges not fading correctly on `FadeIn` and `FadeOut` by Nikhil-42 in https://github.com/ManimCommunity/manim/pull/3786
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3823
* feat(autoaliasattr): Implement Documentation of TypeVar's by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3818
* Fixed `Arrow3D.put_start_and_end_on()` to use the actual end of the arrow by SirJamesClarkMaxwell in https://github.com/ManimCommunity/manim/pull/3706
* Optimized `manim.utils.bezier.get_smooth_cubic_bezier_handle_points()` by chopan050 in https://github.com/ManimCommunity/manim/pull/3767
* Fix docker build by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3827
* Doc: add docstrings to Brace by biinnnggggg in https://github.com/ManimCommunity/manim/pull/3715
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3834
* Bump docker/build-push-action from 5 to 6 by dependabot in https://github.com/ManimCommunity/manim/pull/3835
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3844
* Bump certifi from 2024.2.2 to 2024.7.4 by dependabot in https://github.com/ManimCommunity/manim/pull/3841
* Fix incorrect version number in plugin section in docs by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3849
* Bump zipp from 3.18.2 to 3.19.1 by dependabot in https://github.com/ManimCommunity/manim/pull/3847
* Rename `manim.typing.Image` type aliases to `PixelArray` to avoid conflict with `PIL.Image` by chopan050 in https://github.com/ManimCommunity/manim/pull/3851
* Change from tempconfig to a config fixture in tests by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3853
* Fix :attr:`.ManimConfig.format` not updating movie file extension by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3839
* Rewrite `manim.utils.bezier.get_quadratic_approximation_of_cubic()` to produce curves which can be animated smoothly by chopan050 in https://github.com/ManimCommunity/manim/pull/3829
* Log execution time of scene rendering in the Manim Checkhealth command by chopan050 in https://github.com/ManimCommunity/manim/pull/3855
* Optimize `VMobject.pointwise_become_partial()` by chopan050 in https://github.com/ManimCommunity/manim/pull/3760
* Update installation instructions for MacOS (via dedicated brew formula) by Elastino in https://github.com/ManimCommunity/manim/pull/3857
* Update docker to use ENV x=y instead of ENV x y by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3858
* Fixed behavior of `config.background_opacity < 1` and duplicated log messages by abul4fia in https://github.com/ManimCommunity/manim/pull/3680
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3865
* Fix pre-commit linting by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3877
* Use ruff for pytest style by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3872
* feat: set_default for Animation class by christopher-hampson in https://github.com/ManimCommunity/manim/pull/3876
* Use ruff instead of flake8-simplify by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3873
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3880
* Change flake8-comprehensions and flake8-bugbear to ruff by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3882
* Rename parameters and variables conflicting with builtin functions by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3884
* Added `colorscale` to `axes.plot()` by alembcke in https://github.com/ManimCommunity/manim/pull/3148
* Fix :meth:`.OpenGLMobject.invert` not reassembling family by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3885
* Experimenting with an HSV class by MrDiver in https://github.com/ManimCommunity/manim/pull/3518
* Fix typo from HSV PR by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3887
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3889
* Replace the TypeError message code in the _typecheck_input method in … by irvanalhaq9 in https://github.com/ManimCommunity/manim/pull/3890
* Significantly reduce rendering time with a separate thread for writing frames to stream by smu160 in https://github.com/ManimCommunity/manim/pull/3888
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3896
* Lock `poetry.lock` by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3895
* fix a wrong type mark in a function head. by fogsong233 in https://github.com/ManimCommunity/manim/pull/3902
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3904
* bugfix: convert non-`.wav`/`.raw` files to `.wav` before passing to pydub by behackl in https://github.com/ManimCommunity/manim/pull/3832
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3911
* fix type hint, change int to float by irvanalhaq9 in https://github.com/ManimCommunity/manim/pull/3916
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3918
* Simplify Sector Class by Removing Redundant Parameters by irvanalhaq9 in https://github.com/ManimCommunity/manim/pull/3922
* Changing the 'side_length' attribute to a property by irvanalhaq9 in https://github.com/ManimCommunity/manim/pull/3901
* Standardize docstrings with ruff pydocstyle rules by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3881
* feat: preserve original TeX colors by christopher-hampson in https://github.com/ManimCommunity/manim/pull/3903
* Use Ruff pygrep rules by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3923
* Bump cryptography from 43.0.0 to 43.0.1 by dependabot in https://github.com/ManimCommunity/manim/pull/3931
* Fix np.float_ to np.float64 while using numpy >= 2.0 by geoochi in https://github.com/ManimCommunity/manim/pull/3940
* os.system -> subprocess by achille-fouilleul in https://github.com/ManimCommunity/manim/pull/3955
* Set AAC codec for audio in mp4 files, add transcoding utility by achille-fouilleul in https://github.com/ManimCommunity/manim/pull/3956
* Optimized `interpolate` and `bezier` in `manim.utils.bezier` by chopan050 in https://github.com/ManimCommunity/manim/pull/3960
* Fix: `.to_edge()`'s example demonstration in docs by DuskyElf in https://github.com/ManimCommunity/manim/pull/3958
* Use Github Markdown on README by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3925
* Fixed typehint in `types.rst` and replaced outdated reference to `manim.typing.Image` with `manim.typing.PixelArray` by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3878
* Improve line rendering performance by decreasing redundant subdivision count by nitzanbueno in https://github.com/ManimCommunity/manim/pull/3893
* Fix typehints of `ParametricFunction` by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3926
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3929
* `VGroup` can now be initialized with `VMobject` iterables by NikhilaGurusinghe in https://github.com/ManimCommunity/manim/pull/3966
* 3098 Refining documentations for moving_camera_scene module by Jackyuanx in https://github.com/ManimCommunity/manim/pull/3972
* Allow videos to be embedded in Google Colab without explicitly setting `config.media_embed = True` by skusel in https://github.com/ManimCommunity/manim/pull/3974
* Type annotation work in manim/mobject/geometry/ by henrikmidtiby in https://github.com/ManimCommunity/manim/pull/3961
* Added new `PointND` and `PointND_Array` type aliases by chopan050 in https://github.com/ManimCommunity/manim/pull/3980
* Refactored `run_time` validation for `Animation` and `Scene.wait()` by chopan050 in https://github.com/ManimCommunity/manim/pull/3982
* Add `scale_stroke` boolean parameter to `VMobject.scale()` to allow scaling `stroke_width` along with the `VMobject` by Boris-Filin in https://github.com/ManimCommunity/manim/pull/3965
* Allow :class:`.SurroundingRectangle` to accept multiple Mobjects by Boris-Filin in https://github.com/ManimCommunity/manim/pull/3964
* Feat: dvipsnames and svgnames color palettes by christopher-hampson in https://github.com/ManimCommunity/manim/pull/3913
* Add type hints to `manim.cli` module by chopan050 in https://github.com/ManimCommunity/manim/pull/3988
* Add a time property to scene by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3997
* Stop ignoring `manim.plugins` errors in `mypy.ini` by chopan050 in https://github.com/ManimCommunity/manim/pull/4006
* Add typings to `manim/__main__.py` by chopan050 in https://github.com/ManimCommunity/manim/pull/4007
* Fix scene skipping for `config.upto_animation_number` (`-n` flag in CLI) set to 0 to end after first animation by behackl in https://github.com/ManimCommunity/manim/pull/4013
* Bump tornado from 6.4.1 to 6.4.2 by dependabot in https://github.com/ManimCommunity/manim/pull/4023
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/3987
* Add darker, lighter and contrasting methods to ManimColor by hchargois in https://github.com/ManimCommunity/manim/pull/3992
* Added `ConvexHull`, `ConvexHull3D`, `Label` and `LabeledPolygram` by JayGupta797 in https://github.com/ManimCommunity/manim/pull/3933
* Allow animations with `run_time=0` and implement convenience `Add` animation by chopan050 in https://github.com/ManimCommunity/manim/pull/4017
* Add support for Python 3.13 by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3967
* Pin version of pyav to avoid breaking changes in their API by behackl in https://github.com/ManimCommunity/manim/pull/4037
* Add a `delay` parameter to `turn_animation_into_updater` by ChungLeeCN in https://github.com/ManimCommunity/manim/pull/4039
* Add support in documentation for type aliases using Python 3.12 `type` definition by chopan050 in https://github.com/ManimCommunity/manim/pull/4044
* Rewrite installation instructions by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3930
* Fix typehint of :meth:`.Scene.play` to allow `.animate` by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/4038
* Call `.finish()` for every animation in `AnimationGroup` on finish by Laifsyn in https://github.com/ManimCommunity/manim/pull/3951
* Fix `SyntaxWarnings` when building the docs and bump `readthedocs` to Python 3.13 by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/3924
* Rename `InternalPoint3D` to `Point3D`, `Point3D` to `Point3DLike` and other point-related type aliases by chopan050 in https://github.com/ManimCommunity/manim/pull/4027
* Add type annotations to manim.utils.* by henrikmidtiby in https://github.com/ManimCommunity/manim/pull/3999
* Fix `VMobject.add_points_as_corners()` to return `self` and safely handle empty `points` parameter by chopan050 in https://github.com/ManimCommunity/manim/pull/4091
* Remove duplicate __all__ declarations in vectorized_mobject.py by irvanalhaq9 in https://github.com/ManimCommunity/manim/pull/4108
* Corrected spelling mistake in documentation by modjfy in https://github.com/ManimCommunity/manim/pull/4107
* Remove PT004 from Ruff ignore by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/4102
* Add Homotopy example for waving square by irvanalhaq9 in https://github.com/ManimCommunity/manim/pull/4100
* Fix of ImageMobject opacity bug by henrikmidtiby in https://github.com/ManimCommunity/manim/pull/4089
* Fix broken link to Poetry installation in contribution docs by fmuenkel in https://github.com/ManimCommunity/manim/pull/4116
* Add Noto fonts install command to Dockerfile by Reckadon in https://github.com/ManimCommunity/manim/pull/4069
* [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in https://github.com/ManimCommunity/manim/pull/4035
* Add __hash__ to ManimColor by sophiawisdom in https://github.com/ManimCommunity/manim/pull/4051
* Completely rewrite `Code` mobject + add support for short notation RGB(A) hex code specifications to `ManimColor` by behackl in https://github.com/ManimCommunity/manim/pull/4115
* Update README and documentation landing page, improve way how 3b1b is credited by czuzu in https://github.com/ManimCommunity/manim/pull/4077
* Draw more accurate circular `Arc`s for larger angles by chopan050 in https://github.com/ManimCommunity/manim/pull/4034
* Polish documentation of `manim.utils.color.core` and remove `interpolate_array()` by chopan050 in https://github.com/ManimCommunity/manim/pull/4065
* Create changelog for 0.19.0 by JasonGrace2282 in https://github.com/ManimCommunity/manim/pull/4032
New Contributors
* VinhPhmCng made their first contribution in https://github.com/ManimCommunity/manim/pull/3612
* anagorko made their first contribution in https://github.com/ManimCommunity/manim/pull/3745
* jkjkil4 made their first contribution in https://github.com/ManimCommunity/manim/pull/3778
* yang-tsao made their first contribution in https://github.com/ManimCommunity/manim/pull/3790
* goldenphoenix713 made their first contribution in https://github.com/ManimCommunity/manim/pull/3797
* camburd2 made their first contribution in https://github.com/ManimCommunity/manim/pull/3732
* Elastino made their first contribution in https://github.com/ManimCommunity/manim/pull/3857
* christopher-hampson made their first contribution in https://github.com/ManimCommunity/manim/pull/3876
* irvanalhaq9 made their first contribution in https://github.com/ManimCommunity/manim/pull/3890
* smu160 made their first contribution in https://github.com/ManimCommunity/manim/pull/3888
* fogsong233 made their first contribution in https://github.com/ManimCommunity/manim/pull/3902
* achille-fouilleul made their first contribution in https://github.com/ManimCommunity/manim/pull/3955
* DuskyElf made their first contribution in https://github.com/ManimCommunity/manim/pull/3958
* nitzanbueno made their first contribution in https://github.com/ManimCommunity/manim/pull/3893
* NikhilaGurusinghe made their first contribution in https://github.com/ManimCommunity/manim/pull/3966
* Jackyuanx made their first contribution in https://github.com/ManimCommunity/manim/pull/3972
* skusel made their first contribution in https://github.com/ManimCommunity/manim/pull/3974
* henrikmidtiby made their first contribution in https://github.com/ManimCommunity/manim/pull/3961
* Boris-Filin made their first contribution in https://github.com/ManimCommunity/manim/pull/3965
* hchargois made their first contribution in https://github.com/ManimCommunity/manim/pull/3992
* JayGupta797 made their first contribution in https://github.com/ManimCommunity/manim/pull/3933
* ChungLeeCN made their first contribution in https://github.com/ManimCommunity/manim/pull/4039
* Laifsyn made their first contribution in https://github.com/ManimCommunity/manim/pull/3951
* modjfy made their first contribution in https://github.com/ManimCommunity/manim/pull/4107
* fmuenkel made their first contribution in https://github.com/ManimCommunity/manim/pull/4116
* Reckadon made their first contribution in https://github.com/ManimCommunity/manim/pull/4069
* sophiawisdom made their first contribution in https://github.com/ManimCommunity/manim/pull/4051
* czuzu made their first contribution in https://github.com/ManimCommunity/manim/pull/4077
**Full Changelog**: https://github.com/ManimCommunity/manim/compare/v0.18.1...v0.19.0