Changelog ========= Unreleased ---------- Breaking Changes ^^^^^^^^^^^^^^^^ - Added ``InteractiveScene`` (`#1794 `__) Fixed bugs ^^^^^^^^^^ - Fixed ``ImageMobject`` by overriding ``set_color`` method (`#1791 `__) - Fixed bug with trying to close window during embed (`#1796 `__) - Fixed animating ``Mobject.restore`` bug (`#1796 `__) - Fixed ``InteractiveScene.refresh_selection_highlight`` (`#1802 `__) - Fixed ``VMobject.match_style`` (`#1821 `__) New Features ^^^^^^^^^^^^ - Added specific euler angle getters (`#1794 `__) - Added start angle option to ``Circle`` (`#1794 `__) - Added ``Mobject.is_touching`` (`#1794 `__) - Added ``Mobject.get_highlight`` (`#1794 `__) - Allowed for saving and loading mobjects from file (`#1794 `__) - Added ``Mobject.get_all_corners`` (`#1794 `__) - Added ``Scene.id_to_mobject`` and ``Scene.ids_to_group`` (`#1794 `__) - Added ``Scene.save_mobject`` and ``Scene.load_mobject`` to allow for saving and loading mobjects from file at the Scene level (`#1794 `__) - Added ``InteractiveScene`` (`#1794 `__) - Added ``VHighlight`` (`#1794 `__) - Allowed for sweeping selection (`#1796 `__) - Allowed stretched-resizing (`#1796 `__) - Added cursor location label (`#1796 `__) - Added ``Mobject.deserialize`` (`#1796 `__) - Added undo and redo stacks for scene (`#1796 `__) - Added ``Mobject.looks_identical`` (`#1802 `__) - Added equality for ``ShaderWrapper`` (`#1802 `__) - Added ``Mobject.get_ancestors`` (`#1802 `__) - Added smarter default radius to ``Polygon.round_corners`` (`#1802 `__) - Added checkpoints to ``Scene`` (`#1821 `__) - Added ``crosshair`` to ``InteractiveScene`` (`#1821 `__) - Added ``SceneState`` (`#1821 `__) - Added ``time_span`` option to ``Animation`` (`#1821 `__) - Added ``Mobject.arrange_to_fit_dim`` (`#1821 `__) - Added ``DecimalNumber.get_tex`` (`#1821 `__) Refactor ^^^^^^^^ - Updated parent updater status when adding updaters (`#1794 `__) - Added case for zero vectors on ``angle_between_vectors`` (`#1794 `__) - Refactored ``Mobject.clear_updaters`` (`#1794 `__) - Changed the way changing-vs-static mobjects are tracked (more details see `#1794 `__) - Refactored ``Mobject.is_point_touching`` (`#1794 `__) - Refactored ``Mobject.make_movable`` and ``Mobject.set_animating_status`` to recurse over family (`#1794 `__) - Refactored ``AnimationGroup`` (`#1794 `__) - Refactored ``Scene.save_state`` and ``Scene.restore`` (`#1794 `__) - Added ``MANIM_COLORS`` (`#1794 `__) - Changed default transparent background codec to be prores (`#1794 `__) - Simplified ``Mobject.copy`` (`#1794 `__) - Refactored ``StringMobject`` and relevant classes (`#1795 `__) - Updates to copying based on pickle serializing (`#1796 `) - Removed ``refresh_shader_wrapper_id`` from ``Mobject.become`` (`#1796 `__) - Refactored ``Scene.embed`` to play nicely with gui interactions (`#1796 `__) - Made ``BlankScene`` inherit from ``InteractiveScene`` (`#1796 `__) - Updated behavior of -e flag to take in (optional) strings as inputs (`#1796 `__) - Refactor -e flag (`#1796 `__) - Reverted to original copying scheme (`#1796 `__) - Renamed ``Mobject.is_movable`` to ``Mobject.interaction_allowed`` (`#1796 `__) - Refreshed static mobjects on undo's and redo's (`#1796 `__) - Factored out event handling (`#1796 `__) - Removed ``Mobject.interaction_allowed``, in favor of using ``_is_animating`` for multiple purposes (`#1796 `__) - Moved Command + z and Command + shift + z behavior to Scene (`#1797 `__) - Slight copy refactor (`#1797 `__) - When scene saves state, have it only copy mobjects which have changed (`#1802 `__) - Cleaned up ``Scene.remove`` function (`#1802 `__) - Speed-ups to ``Mobject.copy`` (`#1802 `__) - Slight speed-up to ``InteractiveScene.gather_selection`` (`#1802 `__) - Only leave wait notes in presenter mode (`#1802 `__) - Refactored ``remove_list_redundancies`` and ``list_update`` (`#1821 `__) - Match updaters in ``Mobject.become`` (`#1821 `__) - Don't show animation progress bar by default (`#1821 `__) - Handle quitting during scene more gracefully (`#1821 `__) - Made ``selection_highlight`` refresh with an updater (`#1821 `__) - Refactored ``anims_from_play_args`` to ``prepare_animations`` which deprecating old style ``self.play(mob.method, ...)`` (`#1821 `__) - Made presenter mode hold before first play call (`#1821 `__) - Update frame on all play calls when skipping animations, so as to provide a rapid preview during scene loading (`#1821 `__) - Renamed frame_rate to fps (`#1821 `__) - Let default text alignment be decided in default_config (`#1821 `__) Dependencies ^^^^^^^^^^^^ - Added dependency on ``pyperclip`` (`#1794 `__) v1.6.1 ------ Fixed bugs ^^^^^^^^^^ - Fixed the bug of ``MTex`` with multi-line tex string (`#1785 `__) - Fixed ``interpolate`` (`#1788 `__) - Fixed ``ImageMobject`` (`#1791 `__) Refactor ^^^^^^^^ - Added ``\overset`` as a special string in ``Tex`` (`#1783 `__) - Added ``outer_interpolate`` to perform interpolation using ``np.outer`` on arrays (`#1788 `__) v1.6.0 ------ Breaking changes ^^^^^^^^^^^^^^^^ - **Python 3.6 is no longer supported** (`#1736 `__) Fixed bugs ^^^^^^^^^^ - Fixed the width of riemann rectangles (`#1762 `__) - Bug fixed in cases where empty array is passed to shader (`#1764 `__) - Fixed ``AddTextWordByWord`` (`#1772 `__) - Fixed ``ControlsExample`` (`#1781 `__) New features ^^^^^^^^^^^^ - Added more functions to ``Text`` (details: `#1751 `__) - Allowed ``interpolate`` to work on an array of alpha values (`#1764 `__) - Allowed ``Numberline.number_to_point`` and ``CoordinateSystem.coords_to_point`` to work on an array of inputs (`#1764 `__) - Added a basic ``Prismify`` to turn a flat ``VMobject`` into something with depth (`#1764 `__) - Added ``GlowDots``, analogous to ``GlowDot`` (`#1764 `__) - Added ``TransformMatchingStrings`` which is compatible with ``Text`` and ``MTex`` (`#1772 `__) - Added support for ``substring`` and ``case_sensitive`` parameters for ``LabelledString.get_parts_by_string`` (`#1780 `__) Refactor ^^^^^^^^ - Added type hints (`#1736 `__) - Specifid UTF-8 encoding for tex files (`#1748 `__) - Refactored ``Text`` with the latest manimpango (`#1751 `__) - Reorganized getters for ``ParametricCurve`` (`#1757 `__) - Refactored ``CameraFrame`` to use ``scipy.spatial.transform.Rotation`` (`#1764 `__) - Refactored rotation methods to use ``scipy.spatial.transform.Rotation`` (`#1764 `__) - Used ``stroke_color`` to init ``Arrow`` (`#1764 `__) - Refactored ``Mobject.set_rgba_array_by_color`` (`#1764 `__) - Made panning more sensitive to mouse movements (`#1764 `__) - Added loading progress for large SVGs (`#1766 `__) - Added getter/setter of ``field_of_view`` for ``CameraFrame`` (`#1770 `__) - Renamed ``focal_distance`` to ``focal_dist_to_height`` and added getter/setter (`#1770 `__) - Added getter and setter for ``VMobject.joint_type`` (`#1770 `__) - Refactored ``VCube`` (`#1770 `__) - Refactored ``Prism`` to receive ``width height depth`` instead of ``dimensions`` (`#1770 `__) - Refactored ``Text``, ``MarkupText`` and ``MTex`` based on ``LabelledString`` (`#1772 `__) - Refactored ``LabelledString`` and relevant classes (`#1779 `__) v1.5.0 ------ Fixed bugs ^^^^^^^^^^ - Bug fix for the case of calling ``Write`` on a null object (`#1740 `__) New features ^^^^^^^^^^^^ - Added ``TransformMatchingMTex`` (`#1725 `__) - Added ``ImplicitFunction`` (`#1727 `__) - Added ``Polyline`` (`#1731 `__) - Allowed ``Mobject.set_points`` to take in an empty list, and added ``Mobject.add_point`` (`#1739 `__) - Added ``Scene.refresh_locked_data`` (`#1739 `__) - Added presenter mode to scenes with ``-p`` option (`#1739 `__ and `#1742 `__) - Allowed for an embed by hitting ``ctrl+shift+e`` during interaction (`#1739 `__ and `#1746 `__) - Added ``Mobject.set_min_width/height/depth`` (`#1739 `__) - Allowed ``Mobject.match_coord/x/y/z`` to take in a point (`#1739 `__) - Added ``text_config`` to ``DecimalNumber`` (`#1744 `__) Refactor ^^^^^^^^ - Refactored ``MTex`` (`#1725 `__) - Refactored ``SVGMobject`` with svgelements (`#1731 `__) - Made sure ``ParametricCurve`` has at least one point (`#1739 `__) - Set default to no tips on ``Axes`` (`#1739 `__) - Stopped displaying when writing tex string is happening (`#1739 `__) - Reorganize inheriting order and refactor SVGMobject (`#1745 `__) Dependencies ^^^^^^^^^^^^ - Added dependency on ``isosurfaces`` (`#1727 `__) - Removed dependency on ``argparse`` since it's a built-in module (`#1728 `__) - Removed dependency on ``pyreadline`` (`#1728 `__) - Removed dependency on ``cssselect2`` (`#1731 `__) - Added dependency on ``svgelements`` (`#1731 `__) v1.4.1 ------ Fixed bugs ^^^^^^^^^^ - Temporarily fixed boolean operations' bug (`#1724 `__) - Import ``Iterable`` from ``collections.abc`` instead of ``collections`` which is deprecated since python 3.9 (`d2e0811 `__) v1.4.0 ------ Fixed bugs ^^^^^^^^^^ - Temporarily fixed ``Lightbulb`` (`f1996f8 `__) - Fixed some bugs of ``SVGMobject`` (`#1712 `__) - Fixed some bugs of SVG path string parser (`#1717 `__) - Fixed some bugs of ``MTex`` (`#1720 `__) New features ^^^^^^^^^^^^ - Added option to add ticks on x-axis in ``BarChart`` (`#1694 `__) - Added ``lable_buff`` config parameter for ``Brace`` (`#1704 `__) - Added support for ``rotate skewX skewY`` transform in SVG (`#1712 `__) - Added style support to ``SVGMobject`` (`#1717 `__) - Added parser to