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 #3612
- Fixed action for building downloadable documentation by @JasonGrace2282 in #3737
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3739
- Fixes #3744 - underline tag should be in the documentation. by @anagorko in #3745
- Bump tqdm from 4.66.1 to 4.66.3 by @dependabot in #3746
- Bump jinja2 from 3.1.3 to 3.1.4 by @dependabot in #3750
- Add typehints to
manim.utils.iterablesby @JasonGrace2282 in #3751 - Let
SceneFileWriteraccessffmpegviaavinstead of via external process by @behackl in #3501 - Use --py39-plus in pre-commit by @JasonGrace2282 in #3761
- Optimized
manim.utils.bezier.is_closed()by @chopan050 in #3768 - Created and optimized Bézier splitting functions such as
partial_bezier_points()inmanim.utils.bezierby @chopan050 in #3766 - Bump requests from 2.31.0 to 2.32.0 by @dependabot in #3776
- Fix assertions and improve error messages when adding submobjects by @chopan050 in #3756
- Add pyproject for ruff formatting by @JasonGrace2282 in #3777
- pre-commit change to ruff by @JasonGrace2282 in #3779
- Ignore Ruff format in git blame by @Viicos in #3781
- Fixed
there_and_back_with_pause()rate function behaviour with differentpause_ratiovalues by @jkjkil4 in #3778 - Optimize
VMobjectmethods which append topointsby @chopan050 in #3765 - Add
@shorthand forCoordinateSystemmethodscoords_to_point(c2p) andpoint_to_coords(p2c) by @JasonGrace2282 in #3754 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3784
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3794
- Add Ruff Lint by @JasonGrace2282 in #3780
- Replace Pyupgrade with Ruff rule by @JasonGrace2282 in #3795
- Bump tornado from 6.4 to 6.4.1 by @dependabot in #3796
- Fixing the
get_nth_subpathfunction in "opengl_vectorized_mobject.py". by @yang-tsao in #3790 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3801
- Add typings to
OpenGLMobjectby @chopan050 in #3803 - fix: importing manim should not trigger pygments.styles.get_all_styles by @goldenphoenix713 in #3797
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3809
- Bump urllib3 from 2.2.1 to 2.2.2 by @dependabot in #3810
- Fix MacOS LaTeX CI by @JasonGrace2282 in #3812
- Fixed infinite loop in OpenGL
BackgroundRectangle.get_color()by @camburd2 in #3732 - docs(contributing): add manim.typing guide by @JasonGrace2282 in #3669
- Fix
DiGraphedges not fading correctly onFadeInandFadeOutby @Nikhil-42 in #3786 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3823
- feat(autoaliasattr): Implement Documentation of TypeVar's by @JasonGrace2282 in #3818
- Fixed
Arrow3D.put_start_and_end_on()to use the actual end of the arrow by @SirJamesClarkMaxwell in #3706 - Optimized
manim.utils.bezier.get_smooth_cubic_bezier_handle_points()by @chopan050 in #3767 - Fix docker build by @JasonGrace2282 in #3827
- Doc: add docstrings to Brace by @biinnnggggg in #3715
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3834
- Bump docker/build-push-action from 5 to 6 by @dependabot in #3835
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3844
- Bump certifi from 2024.2.2 to 2024.7.4 by @dependabot in #3841
- Fix incorrect version number in plugin section in docs by @JasonGrace2282 in #3849
- Bump zipp from 3.18.2 to 3.19.1 by @dependabot in #3847
- Rename
manim.typing.Imagetype aliases toPixelArrayto avoid conflict withPIL.Imageby @chopan050 in #3851 - Change from tempconfig to a config fixture in tests by @JasonGrace2282 in #3853
- Fix :attr:
.ManimConfig.formatnot updating movie file extension by @JasonGrace2282 in #3839 - Rewrite
manim.utils.bezier.get_quadratic_approximation_of_cubic()to produce curves which can be animated smoothly by @chopan050 in #3829 - Log execution time of scene rendering in the Manim Checkhealth command by @chopan050 in #3855
- Optimize
VMobject.pointwise_become_partial()by @chopan050 in #3760 - Update installation instructions for MacOS (via dedicated brew formula) by @Elastino in #3857
- Update docker to use ENV x=y instead of ENV x y by @JasonGrace2282 in #3858
- Fixed behavior of
config.background_opacity < 1and duplicated log messages by @abul4fia in #3680 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3865
- Fix pre-commit linting by @JasonGrace2282 in #3877
- Use ruff for pytest style by @JasonGrace2282 in #3872
- feat: set_default for Animation class by @christopher-hampson in #3876
- Use ruff instead of flake8-simplify by @JasonGrace2282 in #3873
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3880
- Change flake8-comprehensions and flake8-bugbear to ruff by @JasonGrace2282 in #3882
- Rename parameters and variables conflicting with builtin functions by @JasonGrace2282 in #3884
- Added
colorscaletoaxes.plot()by @alembcke in #3148 - Fix :meth:
.OpenGLMobject.invertnot reassembling family by @JasonGrace2282 in #3885 - Experimenting with an HSV class by @MrDiver in #3518
- Fix typo from HSV PR by @JasonGrace2282 in #3887
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3889
- Replace the TypeError message code in the _typecheck_input method in … by @irvanalhaq9 in #3890
- Significantly reduce rendering time with a separate thread for writing frames to stream by @smu160 in #3888
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3896
- Lock
poetry.lockby @JasonGrace2282 in #3895 - fix a wrong type mark in a function head. by @fogsong233 in #3902
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3904
- bugfix: convert non-
.wav/.rawfiles to.wavbefore passing to pydub by @behackl in #3832 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3911
- fix type hint, change int to float by @irvanalhaq9 in #3916
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3918
- Simplify Sector Class by Removing Redundant Parameters by @irvanalhaq9 in #3922
- Changing the 'side_length' attribute to a property by @irvanalhaq9 in #3901
- Standardize docstrings with ruff pydocstyle rules by @JasonGrace2282 in #3881
- feat: preserve original TeX colors by @christopher-hampson in #3903
- Use Ruff pygrep rules by @JasonGrace2282 in #3923
- Bump cryptography from 43.0.0 to 43.0.1 by @dependabot in #3931
- Fix np.float_ to np.float64 while using numpy >= 2.0 by @geoochi in #3940
- os.system -> subprocess by @achille-fouilleul in #3955
- Set AAC codec for audio in mp4 files, add transcoding utility by @achille-fouilleul in #3956
- Optimized
interpolateandbezierinmanim.utils.bezierby @chopan050 in #3960 - Fix:
.to_edge()'s example demonstration in docs by @DuskyElf in #3958 - Use Github Markdown on README by @JasonGrace2282 in #3925
- Fixed typehint in
types.rstand replaced outdated reference tomanim.typing.Imagewithmanim.typing.PixelArrayby @JasonGrace2282 in #3878 - Improve line rendering performance by decreasing redundant subdivision count by @nitzanbueno in #3893
- Fix typehints of
ParametricFunctionby @JasonGrace2282 in #3926 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3929
VGroupcan now be initialized withVMobjectiterables by @NikhilaGurusinghe in #3966- 3098 Refining documentations for moving_camera_scene module by @Jackyuanx in #3972
- Allow videos to be embedded in Google Colab without explicitly setting
config.media_embed = Trueby @skusel in #3974 - Type annotation work in manim/mobject/geometry/ by @henrikmidtiby in #3961
- Added new
PointNDandPointND_Arraytype aliases by @chopan050 in #3980 - Refactored
run_timevalidation forAnimationandScene.wait()by @chopan050 in #3982 - Add
scale_strokeboolean parameter toVMobject.scale()to allow scalingstroke_widthalong with theVMobjectby @Boris-Filin in #3965 - Allow :class:
.SurroundingRectangleto accept multiple Mobjects by @Boris-Filin in #3964 - Feat: dvipsnames and svgnames color palettes by @christopher-hampson in #3913
- Add type hints to
manim.climodule by @chopan050 in #3988 - Add a time property to scene by @JasonGrace2282 in #3997
- Stop ignoring
manim.pluginserrors inmypy.iniby @chopan050 in #4006 - Add typings to
manim/__main__.pyby @chopan050 in #4007 - Fix scene skipping for
config.upto_animation_number(-nflag in CLI) set to 0 to end after first animation by @behackl in #4013 - Bump tornado from 6.4.1 to 6.4.2 by @dependabot in #4023
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3987
- Add darker, lighter and contrasting methods to ManimColor by @hchargois in #3992
- Added
ConvexHull,ConvexHull3D,LabelandLabeledPolygramby @JayGupta797 in #3933 - Allow animations with
run_time=0and implement convenienceAddanimation by @chopan050 in #4017 - Add support for Python 3.13 by @JasonGrace2282 in #3967
- Pin version of pyav to avoid breaking changes in their API by @behackl in #4037
- Add a
delayparameter toturn_animation_into_updaterby @ChungLeeCN in #4039 - Add support in documentation for type aliases using Python 3.12
typedefinition by @chopan050 in #4044 - Rewrite installation instructions by @JasonGrace2282 in #3930
- Fix typehint of :meth:
.Scene.playto allow.animateby @JasonGrace2282 in #4038 - Call
.finish()for every animation inAnimationGroupon finish by @Laifsyn in #3951 - Fix
SyntaxWarningswhen building the docs and bumpreadthedocsto Python 3.13 by @JasonGrace2282 in #3924 - Rename
InternalPoint3DtoPoint3D,Point3DtoPoint3DLikeand other point-related type aliases by @chopan050 in #4027 - Add type annotations to manim.utils.* by @henrikmidtiby in #3999
- Fix
VMobject.add_points_as_corners()to returnselfand safely handle emptypointsparameter by @chopan050 in #4091 - Remove duplicate all declarations in vectorized_mobject.py by @irvanalhaq9 in #4108
- Corrected spelling mistake in documentation by @modjfy in #4107
- Remove PT004 from Ruff ignore by @JasonGrace2282 in #4102
- Add Homotopy example for waving square by @irvanalhaq9 in #4100
- Fix of ImageMobject opacity bug by @henrikmidtiby in #4089
- Fix broken link to Poetry installation in contribution docs by @fmuenkel in #4116
- Add Noto fonts install command to Dockerfile by @Reckadon in #4069
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #4035
- Add hash to ManimColor by @sophiawisdom in #4051
- Completely rewrite
Codemobject + add support for short notation RGB(A) hex code specifications toManimColorby @behackl in #4115 - Update README and documentation landing page, improve way how 3b1b is credited by @czuzu in #4077
- Draw more accurate circular
Arcs for larger angles by @chopan050 in #4034 - Polish documentation of
manim.utils.color.coreand removeinterpolate_array()by @chopan050 in #4065 - Create changelog for 0.19.0 by @JasonGrace2282 in #4032
New Contributors
- @VinhPhmCng made their first contribution in #3612
- @anagorko made their first contribution in #3745
- @jkjkil4 made their first contribution in #3778
- @yang-tsao made their first contribution in #3790
- @goldenphoenix713 made their first contribution in #3797
- @camburd2 made their first contribution in #3732
- @Elastino made their first contribution in #3857
- @christopher-hampson made their first contribution in #3876
- @irvanalhaq9 made their first contribution in #3890
- @smu160 made their first contribution in #3888
- @fogsong233 made their first contribution in #3902
- @achille-fouilleul made their first contribution in #3955
- @DuskyElf made their first contribution in #3958
- @nitzanbueno made their first contribution in #3893
- @NikhilaGurusinghe made their first contribution in #3966
- @Jackyuanx made their first contribution in #3972
- @skusel made their first contribution in #3974
- @henrikmidtiby made their first contribution in #3961
- @Boris-Filin made their first contribution in #3965
- @hchargois made their first contribution in #3992
- @JayGupta797 made their first contribution in #3933
- @ChungLeeCN made their first contribution in #4039
- @Laifsyn made their first contribution in #3951
- @modjfy made their first contribution in #4107
- @fmuenkel made their first contribution in #4116
- @Reckadon made their first contribution in #4069
- @sophiawisdom made their first contribution in #4051
- @czuzu made their first contribution in #4077
Full Changelog: v0.18.1...v0.19.0