April 25, 2022


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

  • Bailey Powers +

  • Benjamin Hackl

  • Dan Walsh +

  • Darigov Research

  • Darylgolden

  • David Millard +

  • Hamidreza Hashemi +

  • Jan-Hendrik Müller

  • Jason Villanueva

  • Jonathan Alpert +

  • Joy Bhalla

  • Kian Cross +

  • Luca +

  • Mohsin Shaikh +

  • Naveen M K

  • Prismo +

  • Ryan McCauley

  • WillSoltas +

  • ad_chaos

  • darkways +

  • dawn*squirryl +

  • icedcoffeeee

  • peaceheis

  • sparshg

  • trickypr +

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

  • Benjamin Hackl

  • Dan Walsh

  • Darylgolden

  • GameDungeon

  • Hugues Devimeux

  • Jan-Hendrik Müller

  • Jason Villanueva

  • Jonathan Alpert

  • Luca

  • Naveen M K

  • Prismo

  • Ryan McCauley

  • ad_chaos

  • darkways

  • hickmott99

  • icedcoffeeee

  • peaceheis

Pull requests merged

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

New features

  • #1975: Improved CLI help page styling
    • Updates dependencies on Click and Cloup libraries for CLI help page styling.

    • Removed the dependency on click-default-group.

    • Added no_args_is_help parameter for manim render to allow easy access to help page.

    • Added note to manim help page epilog on how to access other command help pages.

  • #2404: Add SpiralIn Animation
  • #2534: Implement OpenGLImageMobject

  • #2684: Created a more accessible way to create Angles with line.py angle function - Angle.from_three_points()


  • #2062: Reuse shader wrappers and shader data

  • #2642: Migrated file_ops.py and scene_file_writer.py from os.path to Pathlib

    In file_ops.py and scene_file_writer.py: Uses of str type file names have been mostly (see further information) converted to pathlib’s Path objects. Uses of os.path methods have been converted to equivalent pathlib methods.

  • #2655: Fix assert_is_mobject_method() when using OpenGL

  • #2665: Improved handling of attributes when using the .animate syntax

  • #2674: Document and type simple_functions.py
    • Add documentation for simple_functions.py.

    • Small additions with some extra clarity for these functions.

  • #2693: Allow using MovingCamera.auto_zoom() without animation

    Allows auto zooming camera without having to play an animation by passing an animation=False argument

Fixed bugs

  • #2546: Fixed a file logging bug and some maintenance

  • #2597: Fix Bug in Uncreate with rate_func via introducing new parameter reversed to Animation
    • Refractor the Uncreate. The new implementation uses a flag member reversed. Set it to True and its superclass handles the reverse.

    • Introduce a bool parameter reversed to Animation. It decides whether the animation needs to be played backwards. Default to be False.

    • Add conditional branches in Animation.get_sub_alpha(). If the parameter reversed is True, it would set rate_func(t) to rate_func(1 - t).

  • #2613: Fixed bug in Circle.point_at_angle() when the angle is not in the interval \([0, 2\pi]\)

  • #2634: Fix background lines drawn twice in NumberPlane

  • #2648: Handle user-defined centers for Wiggle animation

  • #2658: Fix arguments of overridden set_style for BackgroundRectangle

    Using Write animation on a Text object with .add_background_rectangle() applied no longer generates a TypeError.

  • #2668: (Re)set background color of OpenGLRenderer when initializing scene

  • #2676: Fixed propagation of custom attributes in animations for the OpenGL renderer

  • #2688: Fixed two minor issues of SpiralIn and ManimBanner

Changes to our development infrastructure

  • #2561: Run tests on Linux-aarch64

  • #2656: Fixed incompatibility with black version

Code quality improvements and similar refactors

  • #2630: Remove WebGL renderer

    The WebGL renderer is broken and unmaintained. The support for it in Manim is removed.

  • #2652: Update cloup version to 0.13.0 from 0.7.0

  • #2678: Require backports-cached-property only for Python < 3.8

  • #2685: Migrate from os.path to pathlib in testing scripts

    This pull request changes a number of instances of os.path to Pathlib objects and functions. In addition, this PR modifies the SVGMobject constructor to accept both a Pathlib object or a string variable pathname its constructor.

  • #2691: Removed CameraFrame

  • #2696: Made changelog generation run in parallel plus further improvements to scripts/dev_changelog.py

  • #2697: Sort PRs by number in changelog sections before writing

New releases

  • #2694: Prepared bugfix release v0.15.2