v0.16.0#

Date:

July 13, 2022

Contributors#

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

  • Alex Lembcke

  • Baroudi Aymen +

  • Benjamin Hackl

  • Charalampos Georgiou +

  • Cindy Park +

  • Ejar +

  • Francesco Frassinelli +

  • Francisco Manríquez Novoa +

  • Jacob Evan Shreve +

  • Jaime Santos +

  • Jonathan Alpert

  • Joshua Mankelow +

  • Kevin Lubick +

  • Laith Bahodi

  • Lingren Kong +

  • Logen +

  • Naveen M K

  • Noam Zaks

  • Pedro Lamkowski +

  • Raghav Goel

  • Simeon Widdis

  • Sparsh Goenka

  • TornaxO7 +

  • Tristan Schulz +

  • WillSoltas

  • ad_chaos

  • conor-oneill-2 +

  • fcrozatier +

  • mooncaker816 +

  • niklebedenko +

  • nyabkun +

  • quark67

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

  • Alex Lembcke

  • Benjamin Hackl

  • Darylgolden

  • Francesco Frassinelli

  • Francisco Manríquez Novoa

  • Gianluca Gippetto

  • Jan-Hendrik Müller

  • Jonathan Alpert

  • Kevin Lubick

  • Laith Bahodi

  • Naveen M K

  • Pedro Lamkowski

  • Philipp Imhof

  • Raghav Goel

  • Ryan McCauley

  • Sparsh Goenka

  • TornaxO7

  • Tristan Schulz

  • ad_chaos

  • hickmott99

Pull requests merged#

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

Highlights#

  • #2550: New thematic guide: a deep dive into the internals of the library

    This new thematic guide aims to be a comprehensive walkthrough describing all the things that Manim does when you run it to produce a video.

  • #2732: Improved overall structure of deployed documentation; added a dedicated FAQ section

  • #2749: Added ChangeSpeed, an animation wrapper that allows to smoothly change the speed at which an animation is played

    The speed of any animation can be changed by wrapping the animation with ChangeSpeed and passing a dictionary as speedinfo whose keys are the relative animation run time stamps and whose values are the absolute speed factors; e.g., {0.5: 2, 0.75: 0.25} smoothly speeds up the animation by a factor of 2 once it has been completed to 50%, and then it is smoothly slowed down to 1/4 of the default run speed after 75% of the animation are completed. The run_time of the animation will be adjusted to match the changed play speed.

    It is also possible to add time-based updaters that respect the change in speed, use the auxiliary ChangeSpeed.add_updater() method to do so.

New features#

  • #2667: Made FFmpeg executable path configurable

  • #2739: Added vectorized plotting functionality via keyword argument use_vectorized to improve performance

Enhancements#

  • #2186: Enabled filling color by value for OpenGLSurface, replaced colors keyword argument of Surface.set_fill_by_value() with colorscale

  • #2288: Added warning when attempting to add same mobject as child twice

  • #2707: Fixed missing get_nth_curve_length_pieces method of OpenGLVMobject
    • Removed duplicate definition of get_curve_functions_with_lengths in OpenGLVMobject

    • Added definition of get_nth_curve_length_pieces to OpenGLVMobject

  • #2709: Improved the look of the brackets of Matrix

  • #2714: Fixed OpenGLVMobject.pointwise_become_partial() to improve stroke rendering

  • #2727: Slight performance improvement for ArrowVectorField and Bézier curve computation

  • #2728: Added VectorField.fit_to_coordinate_system() to fit a vector field to a given coordinate system

  • #2730: Added note to let users find documentation of default CLI subcommand easier

  • #2746: Installed ghostscript in the docker image

  • #2841: Added split_quadratic_bezier() and subdivide_quadratic_bezier()

  • #2842: CLI: Moved functionality from manim new to manim init and added deprecation warning for manim new

  • #2866: Reorganize test files to match library module structure

Fixed bugs#

Changes concerning the testing system#

  • #2743: Replaced assert statements with with assertion functions from np.testing

Changes to our development infrastructure#

  • #2700: CI: updated Python versions

  • #2701: CI: added a workflow to publish docker image after releases and commits to main branch

Code quality improvements and similar refactors#

  • #2680: Increased minimum required version of numpy to 1.19

  • #2687: Migrated from os.path to pathlib in SVGMobject and other locations

  • #2715: Updated deprecated pillow constants

  • #2735: Bump pyjwt from 2.3.0 to 2.4.0

  • #2748: Bump pillow from 9.1.0 to 9.1.1

  • #2751: Fixed flake C417 and improved a comment

  • #2825: Bump notebook from 6.4.11 to 6.4.12

  • #2864: Updated lockfile

New releases#

  • #2863: Prepared new release, v0.16.0