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.iterables
by @JasonGrace2282 in #3751 - Let
SceneFileWriter
accessffmpeg
viaav
instead 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.bezier
by @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_ratio
values by @jkjkil4 in #3778 - Optimize
VMobject
methods which append topoints
by @chopan050 in #3765 - Add
@
shorthand forCoordinateSystem
methodscoords_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_subpath
function 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
OpenGLMobject
by @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
DiGraph
edges not fading correctly onFadeIn
andFadeOut
by @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.Image
type aliases toPixelArray
to avoid conflict withPIL.Image
by @chopan050 in #3851 - Change from tempconfig to a config fixture in tests by @JasonGrace2282 in #3853
- Fix :attr:
.ManimConfig.format
not 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 < 1
and 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
colorscale
toaxes.plot()
by @alembcke in #3148 - Fix :meth:
.OpenGLMobject.invert
not 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.lock
by @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
/.raw
files to.wav
before 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
interpolate
andbezier
inmanim.utils.bezier
by @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.rst
and replaced outdated reference tomanim.typing.Image
withmanim.typing.PixelArray
by @JasonGrace2282 in #3878 - Improve line rendering performance by decreasing redundant subdivision count by @nitzanbueno in #3893
- Fix typehints of
ParametricFunction
by @JasonGrace2282 in #3926 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #3929
VGroup
can now be initialized withVMobject
iterables 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 = True
by @skusel in #3974 - Type annotation work in manim/mobject/geometry/ by @henrikmidtiby in #3961
- Added new
PointND
andPointND_Array
type aliases by @chopan050 in #3980 - Refactored
run_time
validation forAnimation
andScene.wait()
by @chopan050 in #3982 - Add
scale_stroke
boolean parameter toVMobject.scale()
to allow scalingstroke_width
along with theVMobject
by @Boris-Filin in #3965 - Allow :class:
.SurroundingRectangle
to accept multiple Mobjects by @Boris-Filin in #3964 - Feat: dvipsnames and svgnames color palettes by @christopher-hampson in #3913
- Add type hints to
manim.cli
module by @chopan050 in #3988 - Add a time property to scene by @JasonGrace2282 in #3997
- Stop ignoring
manim.plugins
errors inmypy.ini
by @chopan050 in #4006 - Add typings to
manim/__main__.py
by @chopan050 in #4007 - Fix scene skipping for
config.upto_animation_number
(-n
flag 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
,Label
andLabeledPolygram
by @JayGupta797 in #3933 - Allow animations with
run_time=0
and implement convenienceAdd
animation 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
delay
parameter toturn_animation_into_updater
by @ChungLeeCN in #4039 - Add support in documentation for type aliases using Python 3.12
type
definition by @chopan050 in #4044 - Rewrite installation instructions by @JasonGrace2282 in #3930
- Fix typehint of :meth:
.Scene.play
to allow.animate
by @JasonGrace2282 in #4038 - Call
.finish()
for every animation inAnimationGroup
on finish by @Laifsyn in #3951 - Fix
SyntaxWarnings
when building the docs and bumpreadthedocs
to Python 3.13 by @JasonGrace2282 in #3924 - Rename
InternalPoint3D
toPoint3D
,Point3D
toPoint3DLike
and 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 returnself
and safely handle emptypoints
parameter 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
Code
mobject + add support for short notation RGB(A) hex code specifications toManimColor
by @behackl in #4115 - Update README and documentation landing page, improve way how 3b1b is credited by @czuzu in #4077
- Draw more accurate circular
Arc
s for larger angles by @chopan050 in #4034 - Polish documentation of
manim.utils.color.core
and 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