v0.8.0

Date

July 02, 2021

Contributors

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

  • Benjamin Hackl

  • Bill Shillito +

  • Darigov Research +

  • Darylgolden

  • Devin Neal

  • Iced-Tea3

  • Jan-Hendrik Müller

  • Jason Villanueva

  • KingWampy

  • Laith Bahodi

  • MathInvariance +

  • Max Stoumen

  • Mehmet Ali Özer +

  • Michael Pilosov +

  • Mohammad Al-Fetyani

  • Naveen M K

  • Nikhil Garuda

  • Oliver

  • PaulCMurdoch

  • Philipp Imhof

  • PipedQuintes +

  • Raghav Goel

  • Ryan McCauley

  • Ujjayanta +

  • Vagrid +

  • andrehisatsuga +

  • friedkeenan

  • peaceheis +

  • yit6 +

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

  • Abhijith Muthyala

  • Anton Ballmaier

  • Aron

  • Benjamin Hackl

  • Clar Fon

  • Darylgolden

  • Devin Neal

  • Jan-Hendrik Müller

  • Jason Villanueva

  • KingWampy

  • Laith Bahodi

  • Mark Miller

  • MathInvariance

  • Mohammad Al-Fetyani

  • Naveen M K

  • Nikhil Garuda

  • Oliver

  • Philipp Imhof

  • Raghav Goel

  • Ryan McCauley

  • Ujjayanta

  • Vagrid

  • friedkeenan

Pull requests merged

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

Deprecated classes and functions

  • #1616: Remove all functions and classes that were deprecated until v0.6.0

New features

  • #1716: Rewrite stroke and fill shaders

    Rewrite vectorized mobject shaders to be compatible with transformation matrices.

  • #1695: Add option to justify text with MarkupText

    A new parameter justify is added to MarkupText. It can be used to justify a paragraph of text.

  • #1660: Added support for .webm and transparency of videos in Jupyter notebooks
    • Added support for generating webm videos via the command line flag --format=webm

    • Added transparency support for Jupyter notebooks

  • #1553: Add dearpygui integration

Enhancements

  • #1728: Improved positioning and size of the OpenGL window; added some configuration options

  • #1733: Let OpenGLMobject.copy return a deep copy by default

  • #1735: Metaclass compatibility for coordinate_system.py, Code and ParametricSurface

  • #1585: OpenGL compatibility via metaclass for Matrix, DecimalNumber, Variable

  • #1713: Exit the command line interface gracefully if no scene was chosen

  • #1652: Refactored Mobject and Scene to no longer inherit from the abstract base class Container
    • Moved tests in test_container.py for Container that test Scene and Mobject to their own files.

    • Corrected various instances of incorrectly passed keyword arguments, or unused keyword arguments.

  • #1693: Made the default arrowhead size for Arrow3D smaller

  • #1678: Allow some rate functions to assume values outside of [0, 1]; introduce clamping decorators
    • Fixed animations so that certain rate functions (running_start, wiggle, ease_in_back, ease_out_back, ease_in_out_back, ease_in_elastic, ease_out_elastic, and ease_out_elastic) can go outside the range from 0 to 1.

    • Fixed lag ratios so that they’re spaced out evenly within the time interval and the rate functions are applied to each animation individually, rather than having the rate function determine when the animation starts.

    • Fixed faulty code for ease_in_out_expo, ease_in_bounce, ease_out_bounce, and ease_in_out_bounce.

  • #1649: Made video file names in Jupyter notebook more readable

  • #1667: Determine the default number of decimal places for NumberLine labels automatically from the step size

    As an example: If the step size is set to 0.5, labels will now show at least one decimal place.

  • #1608: Color file paths in terminal; remove curly braces surrounding the file path in “Partial movie file written in…” messages

  • #1632: OpenGL compatibility via metaclass: Group

Fixed bugs

  • #1740: Fix pillow to <8.3.0

  • #1729: Fix bug when using Text with the OpenGL renderer

  • #1675: Fixed ignored fill and stroke colors for SVGMobject

  • #1664: Fixed accidental displacement in Axes caused by include_numbers / numbers_to_include

  • #1670: Fixed missing numpy import in OpenGL shader example

  • #1636: Fixed bugs and added examples to methods and classes in manim.mobject.matrix

  • #1614: Fix tick issues and improve tick placement for NumberLine

  • #1593: Un-flip output of get_frame() when using the OpenGL renderer

  • #1619: Fix output of automatically detected LaTeX errors

  • #1595: Fixed a few CLI and rendering bugs
    • Corrected issue where gifs were being logged with an incorrect extension

    • Fixed issue where videos were output when format was set to png

    • Added logging for png output

    • Added precedence handling when the write_to_movie flag would conflict with --format

    • Fixed issue that caused png image output to be ignored when caching was enabled

  • #1635: Added missing numpy import for manim.mobject.probability

  • #1634: Fixed OpenGL examples for MacOS

    Renamed deprecated gl_FragColor to fragColor.

Changes to our development infrastructure

  • #1623: CI: branch rename: master -> main

  • #1621: Revert default template and add new templates

  • #1573: PR template for the manim hackathon

Code quality improvements and similar refactors

  • #1720: Renamed incorrect references of master to main

  • #1692: Removed redundant warning in CLI parsing

  • #1651: Small code cleanup for Polygram

  • #1610: Changed one image extension to lowercase letters

New releases

  • #1738: Preparation for v0.8.0: added changelog and bumped version number