August 02, 2021


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

  • Alex Lembcke

  • Benjamin Hackl

  • Darylgolden

  • Devin Neal

  • Harivinay +

  • Hugues Devimeux

  • Jared Hughes +

  • Jason Villanueva

  • Kadatatlu Kishore +

  • KingWampy

  • LED Me Explain +

  • Laith Bahodi

  • Mohammad Al-Fetyani

  • Noam Zaks

  • Oliver

  • PaulCMurdoch

  • Raghav Prabhakar +

  • Ryan McCauley

  • Suhail Sherif +

  • Taektiek +

  • Udeshya Dhungana +

  • UraniumCronorum +

  • Vinh H. Pham (Vincent) +

  • ccn +

  • icedcoffeeee +

  • sahilmakhijani +

  • sparshg

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

  • Abhijith Muthyala

  • Alex Lembcke

  • Benjamin Hackl

  • Darylgolden

  • Devin Neal

  • Harivinay

  • Hugues Devimeux

  • Jan-Hendrik Müller

  • Jason Villanueva

  • KingWampy

  • Laith Bahodi

  • Lino

  • Mohammad Al-Fetyani

  • Oliver

  • Raghav Goel

  • Suhail Sherif

  • icedcoffeeee

  • sahilmakhijani

  • sparshg

Pull requests merged#

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


Deprecated classes and functions#

  • #1848: Deprecated parameters for DashedLine and DashedVMobject
    • dash_spacing is an unused parameter

    • positive_space_ratio has been replaced with the shorter name dashed_ratio

  • #1773: Remove all classes and functions that were deprecated until v0.7.0 and v0.8.0

    The classes FadeInFrom, FadeOutAndShift, FadeOutToPoint, FadeInFromPoint, FadeInFromLarge, VFadeIn, VFadeOut, VFadeInThenOut have been removed, use FadeIn or FadeOut with appropriate keyword arguments instead.

    The classes CircleIndicate, ShowCreationThenDestruction, AnimationOnSurroundingRectangle, ShowPassingFlashAround, ShowCreationThenDestructionAround, ShowCreationThenFadeAround, WiggleOutThenIn, TurnInsideOut have been removed. Use Circumscribe, ShowPassingFlash, or Wiggle instead.

    The classes OpenGLTexMobject and OpenGLTextMobject have been removed, use MathTex and Tex instead. Also, VMobjectFromSVGPathstring has been removed, use SVGPathMobject instead.

    Finally, the utility functions get_norm and cross have been removed (use the corresponding Numpy methods instead), and the function angle_between has been replaced with angle_between_vectors.

  • #1731: Deprecated ParametricSurface parameters
    • u_min and u_max have been replaced by u_range.

    • v_min and v_max have been replaced by v_range.

New features#


  • #1833: Added OpenGL compatibility for VDict, get_line_graph() and FocusOn

  • #1760: Added window_size flag to manually adjust the size of the OpenGL window

    Accepts a tuple in the form: x,y.

  • #1823: Reworked DashedVMobject

    Rewritten the logic to generate dashes

  • #1808: OpenGL renderer updates
    • Adds model matrices to all OpenGLVMobjects

    • Improved performance on vectorized mobject shaders

    • Added updaters that are part of the scene rather than a mobject

  • #1787: Made DecimalNumber apply color to the ellipsis

    Made color apply to the dots when show_ellipsis is set to true in DecimalNumber

  • #1775: Let Create work on OpenGLSurface

  • #1757: Added warning when there is a large number of items to hash.

  • #1774: Add the reverse parameter to Write

Fixed bugs#

  • #1722: Fixed remover=True for AnimationGroup

  • #1727: Fixed some hot reload issues and compatibility with IDEs
    • Fixed interactive embed issue where it would fail when running on non-tty terminals

    • Fixed issue where file observer would error after the second run as the first observer was not closed

  • #1844: Fixed the oversized Code window with the OpenGL renderer

  • #1821: Fixed issues concerning frame_center in ThreeDScene
    • Changing frame_center in a ThreeDScene now actually changes the camera position.

    • An animation with only frame_center animated will now be rendered properly.

    • A black dot is not created at the origin once frame_center is animated.

  • #1826: Fixed scaling issue with BarChart.change_bar_values()

  • #1839: Allow passing arguments to .animate with the OpenGL renderer

  • #1791: set_z_index() now sets all submobjects’ z_index value

  • #1792: Fixed bug that caused dry runs to fail when using the PNG format

  • #1790: Fixed an import from manimlib

  • #1782: Fixed Tex not working properly with the OpenGL renderer

  • #1783: Fixed shuffle() function and added invert() to OpenGL

  • #1786: Fixed DecimalNumber not working properly when the number of digits changes

  • #1763: Fixed not being able to set some CLI flags in the configuration file

  • #1776: CoordinateSystem.get_riemann_rectangles() now uses the graph’s range instead of the axes range

    If no range specified, get_riemann_rectangles generates the rectangles only where the area is correctly bounded

  • #1770: Rewrote OpenGLMobject.put_start_and_end_on() to work correctly in 3D

  • #1736: Fixed LinearTransformationScene crashing on multiple animations

Changes concerning the testing system#

  • #1836: Converted all the graphical tests to the new syntax

  • #1802: Refactored graphical unit testing system, and implemented multi frames tests

    This PR introduces a new @frames_comparison decorator which allows writing simple construct-like functions as tests. Control data for new tests can be easily generated by calling pytest --set_test.

Changes to our development infrastructure#

  • #1830: Be more concise about the documentation URL in the PR template

Code quality improvements and similar refactors#

  • #1851: Renamed Tabular to Table

  • #1817: Remove pillow version requirement

  • #1806: Fixed spelling mistake

  • #1745: Updated the BibTeX template in the README to Manim v0.9.0

New releases#

  • #1850: Bump version number to v0.9.0 and generate changelog