****** v0.7.0 ****** :Date: June 01, 2021 Contributors ============ A total of 45 people contributed to this release. People with a '+' by their names authored a patch for the first time. * André + * Anton Ballmaier * Benjamin Hackl * Clar Fon * Darylgolden * Devin Neal * Hugues Devimeux * Iced-Tea3 + * Jan-Hendrik Müller * Jason Villanueva * Jerónimo Squartini + * KingWampy * Laith Bahodi * Max Stoumen + * Mohammad Al-Fetyani * Naveen M K * NeoPlato * Newell Jensen * Nikhil Garuda * Nikhil Sharma + * PaulCMurdoch + * Philipp Imhof * Raghav Goel * Robert West + * Ryan McCauley + * Skaft + * SwiddisZwei + * e4coder + * friedkeenan * malte-v + * ralphieraccoon * sparshg The patches included in this release have been reviewed by the following contributors. * Aathish Sivasubrahmanian * Abhijith Muthyala * Anton Ballmaier * Aron * Benjamin Hackl * Darylgolden * Devin Neal * GameDungeon * Hugues Devimeux * Iced-Tea3 * Jan-Hendrik Müller * Jason Villanueva * Jerónimo Squartini * KingWampy * Laith Bahodi * Mark Miller * Mohammad Al-Fetyani * Naveen M K * Nikhil Garuda * Oliver * Philipp Imhof * Raghav Goel * Ricky Chon * Ryan McCauley * Skaft * SwiddisZwei * e4coder * friedkeenan * ralphieraccoon * sparshg Pull requests merged ==================== A total of 87 pull requests were merged for this release. Breaking changes ---------------- * :pr:`1521`: Improve :class:`~.Animation` docs - Improve documentation of the :class:`~.Animation` class. - Unify the signature of ``get_all_mobjects``. Now it always returns a sequence of :class:`Mobjects <.Mobject>`. This breaks using ``FadeTransform.get_all_mobjects`` as ``Group``. * :pr:`1470`: Drop support for Python 3.6 Manim won't work on Python 3.6 anymore. Highlights ---------- * :pr:`1447`: Added :class:`~.PolarPlane` for polar coordinates. * :pr:`1490`: Added :class:`~.Polygram`, rework the polygon inheritance tree, and add :class:`~.Star` - Add :class:`~.Polygram`, a generalized :class:`~.Polygon` that allows for disconnected sets of edges. - Make :class:`~.Polygon` inherit from :class:`~.Polygram`. - Add :func:`~.regular_vertices` - Add :class:`~.RegularPolygram`. - Make :class:`~.RegularPolygon` inherit from :class:`~.RegularPolygram`. - Add :class:`~.Star`. * :pr:`1462`: OpenGL: Added :class:`~.Shader`, :class:`~.Mesh`, and :class:`~.FullScreenQuad` Add Shader and Mesh objects * :pr:`1418`: Added project management commands - ``manim init`` - quickly sets up default files for a manim project. - ``manim new project`` - lets the user set project settings. It also creates the project inside a new folder of name - ``manim new scene`` - used to quickly insert new scenes into files. If ``file name`` is not provided ``main.py`` is used as default. Deprecated classes and functions -------------------------------- * :pr:`1598`: Update examples to use :class:`~.Axes` and deprecate :class:`~.GraphScene` :class:`~.GraphScene` has been deprecated and its functionality has been shifted to :class:`~.Axes`. See the updated example gallery for sample usage. * :pr:`1454`: Fading module enhancements Moved functionality of all Fading classes to :class:`~.FadeIn` and :class:`~.FadeOut`. All other fading classes have been deprecated. * :pr:`1375`: Deleted the deprecated ``ShowCreation`` in favor of :class:`~.Create` New features ------------ * :pr:`1566`: Added the ability to add gridlines to a :class:`~.Rectangle` * :pr:`1548`: Added :class:`~.ArcBrace`, a subclass of :class:`~.Brace`. * :pr:`1559`: Update VGroup to support item assignment (#1530) Support indexed item-assignment for VGroup * :pr:`1518`: Allow fading multiple Mobjects in one Animation * :pr:`1422`: Added :func:`~.override_animation` decorator * :pr:`1504`: Color module enhancements - Replaced ``BLUE_E`` with what was previously ``DARK_BLUE`` and removed ``DARK_BLUE`` - Added alias ``LIGHTER_GRAY`` for ``GRAY_A`` - Added ``PURE_RED``, ``PURE_BLUE`` and renamed ``GREEN_SCREEN`` to ``PURE_GREEN`` - All gray colors are now also available using British spelling (including ``GREY_BROWN``) - Replaced color example in the docs. It can now be used as a quick reference for all color names. * :pr:`1272`: Implement metaclass approach in geometry module to make mobjects compatible with cairo and opengl rendering * :pr:`1404`: Added two deprecation decorators Added two function decorators ``deprecated`` and ``deprecated_params`` as a consistent way of deprecating code. Enhancements ------------ * :pr:`1572`: OpenGL compatibility via metaclass: :class:`~.TracedPath`, :class:`~.ParametricFunction`, :class:`~.Brace`, :class:`~.VGroup` * :pr:`1472`: Porting methods from :class:`~.GraphScene` to :class:`~.CoordinateSystem` * :pr:`1589`: OpenGL compatibility via metaclass: :class:`~.ValueTracker` * :pr:`1564`: Add extra notes for TeX compilation errors Add hint to use custom ``TexTemplate`` on TeX compilation errors * :pr:`1584`: Added a check for ``0`` in :meth:`~.round_corners` * :pr:`1586`: Add OpenGLMobject support to all ``isinstance`` occurrences This PR increases the support for OpenGL in the remaining animation classes and in other places where appropriate. * :pr:`1577`: Added new metaclass ConvertToOpenGL (replacing MetaVMobject), restore IntelliSense * :pr:`1562`: Improved VectorField's Nudge Accuracy Per Step Implemented the Runge-Kutta algorithm in VectorField's nudge function. This increases the accuracy as an object moves along a vector field. This also increases efficiency as the nudge function requires less loops to achieve accuracy than the previous implementation. * :pr:`1480`: Add logging info to tex errors * :pr:`1567`: Compatibility Fixes with ManimPango v0.3.0 - ManimPango v0.3.0+ is required for Manim now. - Show errors from Pango when Markup isn't correct * :pr:`1512`: OpenGL compatibility via metaclass: graph * :pr:`1511`: OpenGL compatibility via metaclass: svg_mobject, text_mobject, tex_mobject * :pr:`1502`: Added ``center`` parameter to :class:`~.Sphere` and ``point`` parameter to :class:`~.Dot3D` * :pr:`1486`: Update of ``rate_functions`` Changed the picture for the non standard rate functions. * :pr:`1495`: Ported value_tracker to OpenGL * :pr:`1382`: Expand documentation, testing, and functionality of ValueTrackers; remove ExponentialValueTracker Added more documentation and inline operators to ValueTracker and ComplexValueTracker. Brought coverage for value_tracker.py to 100%. Removed ExponentialValueTracker. * :pr:`1475`: Add SVG elliptical arc support Fixed bugs ---------- * :pr:`1574`: Fixed error when processing SVG with omitted elliptical arc command * :pr:`1596`: Fix indexing for non-whitespace tex arg separator Fixes #1568 Fix issue when setting the arg_separator of a Tex object as a non-whitespace character(s). The method `break_up_by_substrings(self)` was not accounting for the separator when setting the index. * :pr:`1588`: Fixed multiple animations being saved in the same file * :pr:`1571`: Fix tests after introducing parallelization * :pr:`1545`: Fix outdated parameters for :class:`LinearTransformationScene` and add an example + typing. * :pr:`1513`: Fixed rotation of gradients while rotating a VMobject - Fixed the direction of gradient which remained the same while rotating VMobjects - Added ``rotate_sheen_direction()`` method in VMobject * :pr:`1570`: Output errors to stderr * :pr:`1560`: Declare ``*.npz`` ``*.wav`` ``*.png`` as binary in ``.gitattributes`` * :pr:`1211`: Refactored scene caching and fixed issue when a different hash was produced when copying a mobject in the scene Refactored internal scene-caching mechanism and fixed bug when an inconsistent hash was produced when copying a mobject. * :pr:`1527`: Improved handling of substring isolation within sqrt, and fixed a bug with transform_mismatch for the matching shape transforms * :pr:`1526`: Fix fading * :pr:`1523`: Fix multiple FadeIn / Out only working on VMobjects Documentation-related changes ----------------------------- * :pr:`1599`: Added example for :class:`~.Annulus` * :pr:`1415`: New example for gallery and some docs refinements * :pr:`1509`: Copyedited Documentation Added a link to Manim Community GitHub page in ``for_dev.rst``. Fixed :meth:`~.Mobject.get_start` and added ``roll`` link in ``building_blocks-rst`` Added language to code blocks in ``configuration.rst`` * :pr:`1384`: Added typings to space_ops.py Added Typehints to most of the functions * :pr:`1500`: Example for :meth:`~.apply_complex_function` * :pr:`1551`: Fixed the typo for Admonitions * :pr:`1550`: Restructuring of Contribution Section * :pr:`1541`: Fixing broken links and other minor doc things * :pr:`1516`: Update docs to use ``t_range`` instead of ``t_min`` and ``t_max`` in :class:`~.ParametricFunction` * :pr:`1508`: Update troubleshooting docs * :pr:`1485`: Added :class:`~.Title` example for the docs * :pr:`1439`: Cleaning ``Sequence`` typehints * :pr:`1440`: Added Scoop installation docs (Windows) * :pr:`1452`: Refine typehints at :class:`~.Angle` * :pr:`1458`: Refine docs of :class:`~.Text` ( add ``disable_ligatures=True`` for t2c) * :pr:`1449`: Added :class:`~.PointCloudDot` example * :pr:`1473`: Added easy example for :meth:`~.arrange_in_grid` * :pr:`1402`: Added typestring parser checker * :pr:`1451`: Reduce complexity of AngleExample * :pr:`1441`: Add inheritance diagrams to reference page Added inheritance diagrams to the reference page as a quick navigation method. * :pr:`1457`: Fixing broken doc links * :pr:`1445`: Remove $ from tutorial commands Changes concerning the testing system ------------------------------------- * :pr:`1556`: Try pytest-xdist for parallelization in tests Changes to our development infrastructure ----------------------------------------- * :pr:`1505`: Add docs reference to PR template Added documentation link to the Pull Request Template. * :pr:`1499`: Updated Discord links in the docs to point towards a standardized redirect * :pr:`1461`: Build the docs - Logging * :pr:`1481`: pyproject.toml: poetry_core -> poetry-core * :pr:`1477`: Update RDT sphinx package to version 3.5.3 * :pr:`1460`: Create CONTRIBUTING.md * :pr:`1453`: manim_directive: fix image links in docs - Windows Use POSIX path on Windows to link images so documentation can build locally. Code quality improvements and similar refactors ----------------------------------------------- * :pr:`1465`: Added typings and description to some functions in :mod:`~.coordinate_systems`. * :pr:`1552`: Removed unwanted parameters in geometry Removed ``anchors_span_full_range``, ``close_new_points``, ``anchors_span_full_range``, ``preserve_tip_size_when_scaling``, ``mark_paths_closed`` and ``close_new_points`` * :pr:`1597`: Removed hilite_me and insert_line_numbers_in_html from global name space * :pr:`1535`: Update dependencies and fix tests * :pr:`1544`: Adding spell checker as a pre-commit hook * :pr:`1542`: Swapping a pango markup link in docs * :pr:`1531`: Don't use deprecated methods in deprecation.py * :pr:`1492`: Remove stray print statements introduced in #1404 * :pr:`1471`: Fix Some Warnings from lgtm Changes that needed to be reverted again ---------------------------------------- * :pr:`1606`: Bring back ``DARK_BLUE`` New releases ------------ * :pr:`1601`: Preparation for v0.7.0: added changelog and bumped version number