Back to Manim

v0.18.0

docs/source/changelog/0.18.0-changelog.rst

0.20.17.8 KB
Original Source

v0.18.0


:Date: November 11, 2023

Contributors

A total of 41 people contributed to this release. People with a '+' by their names authored a patch for the first time.

  • Abulafia +
  • Adhyyan Sekhsaria +
  • Adrien Ludwig +
  • Alex Kempen +
  • Andres Berejnoi +
  • Anousheh Moonen +
  • Benjamin Hackl
  • Francisco Manríquez Novoa
  • Harald Schilly +
  • Immanuel-Alvaro-Bhirawa +
  • Jason Grace +
  • Jason Villanueva
  • Jinchu Li
  • John Lynch +
  • Jérome Eertmans
  • Matt Turner +
  • Narahari Rao +
  • Naveen M K
  • Nikhil Iyer +
  • Ron Li +
  • Sujal Singh +
  • Tristan Schulz
  • Uwe Zimmermann +
  • Václav Blažej +
  • Zachary Winkeler +

The patches included in this release have been reviewed by the following contributors.

  • Alex Lembcke
  • Andres Berejnoi
  • Axel
  • Benjamin Hackl
  • Francisco Manríquez Novoa
  • Immanuel-Alvaro-Bhirawa
  • Jan-Hendrik Müller
  • Jason Grace
  • Jason Villanueva
  • Jinchu Li
  • John Lynch
  • Jérome Eertmans
  • Kevin Lubick
  • Narahari Rao
  • Naveen M K
  • NotWearingPants
  • SsNiPeR1
  • TheMathematicFanatic
  • Tristan Schulz
  • Uwe Zimmermann
  • Viicos
  • icedcoffeeee

Pull requests merged

A total of 59 pull requests were merged for this release.

Breaking changes

  • :pr:3020: Rewrote Manim's color system This change removed the colour library as a dependency of Manim and replaced the internal handling of colors with the newly added :class:.ManimColor. This also adds hundreds of new predefined colors, see :mod:.utils.color for more details. This should only be a breaking change if you have interacted directly with the colour module before. The general interface has been kept stable.

Highlights

  • :pr:3299: Added new manim checkhealth CLI subcommand This adds a new command line interface subcommand which can be used to check whether a local installation of Manim has been configured correctly, and all required (and optional) dependencies are available. To try it, run it via manim checkhealth or python -m manim checkhealth.

  • :pr:3427: New feature: rendered examples in documentation can now be run directly via binder This adds a "Make interactive" button below the examples in our documentation that establishes a connection to binder such that examples can be modified and rerendered directly from your browser.

  • :pr:3086: Introduced a new module :mod:.typing for type hints This also adds various type hints to integral parts of the code base.

  • :pr:3322: Implemented auto-removal of auxiliary LaTeX files, enabled by default This automatically removes auxiliary files creating during the compilation of LaTeX documents like .aux or .dvi files. This behavior can be controlled via the newly introduced no_latex_cleanup config key (False by default). On the command line, the autoremoval can be disabled via the --no_latex_cleanup CLI flag.

  • :pr:3395: Added support for Python 3.12

New features

  • :pr:3361: Added three new rate functions This adds the rate functions :func:.smoothstep, :func:.smootherstep, :func:.smoothererstep based on the SmoothStep sigmoid functions.

  • :pr:3264: Added new mobjects :class:.LabeledLine and :class:.LabeledArrow

Enhancements

  • :pr:3190: Made :class:.CurvesAsSubmobjects mobjects compatible with :meth:.input_to_graph_point

  • :pr:3226: Avoid using a mobject as a default argument of :class:.ArcBrace

  • :pr:3366: Added spacing between values and unit in :class:.DecimalNumber This adds the new keyword argument unit_buff_per_font_unit (default: 0, for backwards compatibility). Setting it to some positive number creates additional space between the numeric value and the displayed unit.

Fixed bugs

  • :pr:3205: Fixed type hint of angle in :class:.Arc

  • :pr:3210: Fixed :class:.DecimalNumber with show_ellipsis=True with the OpenGL renderer

  • :pr:3211: Fixed display issues with custom labels for :class:.Axes with the OpenGL renderer

  • :pr:3298: Fixed expand animation for :class:.ManimBanner

  • :pr:3306: Fixed IPython terminal history and embedded shell instantiation for scenes using :meth:.Scene.interactive_embed

  • :pr:3315: Fixed issue with parameter types in :meth:.Scene.add_subcaption

  • :pr:3423: Fixed incorrect submobject count of multi-part :class:.Tex mobjects This resolves various issues where formulas were not displayed completely, like it was the case with MathTex("1", "^{", "0").

  • :pr:3284: Fixed LinearTransformationSceneExample in Jupyter notebooks

  • :pr:3302: Fixed typo in comparison in :meth:.OpenGLVMobject.interpolate

  • :pr:3340: Fixed incorrect computation of bounding box for rotated :class:.ImageMobject

  • :pr:3343: Fixed return value of :meth:.TexTemplate.add_to_preamble and :meth:.TexTemplate.add_to_document

  • :pr:3282: Ensure that :meth:.ArrowVectorField.get_vector does not modify the passed inputs

  • :pr:3392: Fixed behavior of elongated tick lines for :class:.NumberLine

  • :pr:3430: Fixed CSV reader adding empty lists in rendering summary during documentation build

  • :pr:3404: Properly raise an exception on empty inputs to :class:.AddTextLetterByLetter

  • :pr:3219: Enabled social cards for links to documentation

  • :pr:3274: Replaced incorrect mentions of Python 3.7 as the minimally required version

  • :pr:3297: Improved arrow tip sowcase example for :class:.ArrowTip

  • :pr:3312: Added documentation for :func:.always_redraw

  • :pr:3218: Improved grammar in the :doc:deep dive guide </guides/deep_dive>

  • :pr:3251: Add LaTeX installation instructions for Fedora

  • :pr:3290: Updated required dependencies for MacOS installations

  • :pr:3325: Added documentation for functions in :mod:.mobject_update_utils This adds docstrings and typehints to :func:.always_rotate, :func:.always_shift, :func:.turn_animation_into_updater

  • :pr:3353: Added documentation for :meth:.Mobject.center

  • :pr:3355: Temporarily enabled htmlzip build on ReadTheDocs

  • :pr:3377: Fixed a typo in the :doc:deep dive guide </guides/deep_dive>

  • :pr:3389: Removed superfluous curly braces in a LaTeX expression

  • :pr:3417: Replaced htmlzip ReadTheDocs build with workflow attaching downloadable documentation to GitHub releases

Changes concerning the testing system

  • :pr:3416: Fixed tests to run on Cairo 1.18.0

  • :pr:3257: Fix a configuration error concerning poetry

  • :pr:3419: Fixed caching of Cairo builds on CI runners

Code quality improvements and similar refactors

  • :pr:3229: Made docbuild errors easier to debug and fixed error from changed exception class

  • :pr:3231: Fixed errors reported by flake8

  • :pr:3232: Upgrade ReadTheDocs build environment to use newer image

  • :pr:3286: Optimized :meth:.Axes.coords_to_point

  • :pr:3224: Replace final few occurrences of os.path by pathlib.Path

  • :pr:3236: Return self in :meth:.AbstractImageMobject.set_resampling_algorithm

  • :pr:3253: Bump tornado from 6.3.1 to 6.3.2

  • :pr:3272: Bump docker/build-push-action from 3 to 4

  • :pr:3287: Bump cryptography from 41.0.1 to 41.0.2

  • :pr:3350: Added missing dependency typing-extensions

  • :pr:3431: Bump teatimeguest/setup-texlive-action from 2 to 3

  • :pr:3433: Bump dependencies

  • :pr:3399: Updated several dependencies

  • :pr:3397: Several GitHub actions updates

  • :pr:3405: Updated manimpango version to fix error regarding type strictness

  • :pr:3421: Improved order of input checks when creating a tree graph

New releases

  • :pr:3439: Prepared new release: v0.18.0