v0.15.0

Date:

February 26, 2022

Contributors

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

  • Alex Lembcke

  • AnonymoZ +

  • Benjamin Hackl

  • Darylgolden

  • Eshaan Naga Venkata +

  • Faruk D. +

  • GameDungeon

  • Kevin Cen +

  • Laith Bahodi

  • Leo Xu

  • Lucas Ricci

  • Marcin Serwin

  • Michael McNeil Forbes +

  • Mysaa

  • Naveen M K

  • Pierre Couy +

  • Simon Ellmann +

  • Tommy Chu +

  • Viicos

  • ad_chaos

  • betafcc +

  • friedkeenan

  • icedcoffeeee

  • vmoros +

  • 鹤翔万里

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

  • Benjamin Hackl

  • Christopher Besch

  • Darylgolden

  • Eshaan Naga Venkata

  • GameDungeon

  • Jan-Hendrik Müller

  • Laith Bahodi

  • Marcin Kurczewski

  • Marcin Serwin

  • Naveen M K

  • Raghav Goel

  • RomainJMend

  • Ryan McCauley

  • Tommy Chu

  • ad_chaos

  • betafcc

  • icedcoffeeee

Pull requests merged

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

Breaking changes

  • #2476: Improved structure of the mobject module

    Arrow tips now have to be imported from manim.mobject.geometry.tips instead of manim.mobject.geometry.

  • #2387: Refactored BarChart and made it inherit from Axes

Deprecated classes and functions

  • #2568: Removed Deprecated Methods

    Removed methods and classes that were deprecated since v0.10.0 and v0.11.0

  • #2457: Deprecated ShowCreationThenFadeOut

New features

  • #2442: Added media_embed config option to control whether media in Jupyter notebooks is embedded

  • #2504: Added finer control over Scene.wait() being static (i.e., no updaters) or not
    • Added keyword argument frozen_frame to Wait and Scene.wait()

    • New convenience method: Scene.pause() (alias for Scene.wait(frozen_frame=True))

    • Changed default behavior for OpenGL updaters: updater functions are now not called by default when they are added

    • Changed default behavior of Scene.should_mobjects_update(): made it respect the set value of Wait.frozen_frame, changed automatic determination of frozen frame state to also consider Scene updaters

Enhancements

Fixed bugs

Changes to our development infrastructure

  • #2554: Removed Remove-Item calls for MSYS2 Python

  • #2531: Added a GitHub Action for automatic validation of citation metadata

  • #2536: Upgraded version of setup-ffmpeg CI action

  • #2484: Updated tinytex download URL

Code quality improvements and similar refactors

  • #2573: Moved value_tracker back inside mobject

  • #2566: Removed unused livestream-related imports and functions from scene_file_writer

  • #2524: Reworked space_ops

  • #2519: Removed outdated comment

  • #2503: Removed unused imports

  • #2475: Removed setuptools dependency

  • #2472: Removed unnecessary comment in simple_functions

  • #2429: Upgraded to future-style type annotations

  • #2464: Bump pillow from 8.4.0 to 9.0.0

  • #2376: Updated dependencies for Python 3.10

  • #2437: Cleaned up simple_functions
    • Removed fdiv as in all cases where it was used, it was just doing the same thing as numpy array division.

    • Replaced old implementation of the choose function with scipy’s implementation

    • Use lru_cache (least recently used cache) for caching the choose function. Since it’s only used for beziers, only 2 choose k and 3 choose k will be used, hence a size of 10 should be enough.

    • Removed clip_in_place in favor of np.clip

    • Removed one use of clip_in_place that wasn’t actually doing anything

  • #2439: Removed twitter template from scripts

New releases

  • #2547: Prepared new release, v0.15.0