******* v0.12.0 ******* :Date: November 02, 2021 Contributors ============ A total of 40 people contributed to this release. People with a '+' by their names authored a patch for the first time. * Anima. + * Arcstur + * Benjamin Hackl * Christopher Besch * Darylgolden * David Yang + * Dhananjay Goratela + * Ethan Rooke + * Eugene Chung + * GameDungeon * Gustav-Rixon + * Jan-Hendrik Müller * Josiah Winslow + * Laith Bahodi * Martmists + * Michael Hill + * Naveen M K * Nick + * NotWearingPants + * Peeter Joot + * Ryan McCauley * Viicos + * heitor + * icedcoffeeee * kieran-pringle + * Виктор Виктор + The patches included in this release have been reviewed by the following contributors. * Alex Lembcke * Anima. * Benjamin Hackl * Christopher Besch * Darylgolden * David Yang * Dhananjay Goratela * Ethan Rooke * Eugene Chung * Gustav-Rixon * Hugues Devimeux * Jan-Hendrik Müller * Jason Villanueva * Laith Bahodi * Mysaa * Naveen M K * Nick * Oliver * Ryan McCauley * Viicos * icedcoffeeee * kieran-pringle Pull requests merged ==================== A total of 52 pull requests were merged for this release. Highlights ---------- * :pr:`1812`: Implemented logarithmic scaling for :class:`~.NumberLine` / :class:`~.Axes` This implements scaling bases that can be passed to the ``scaling`` keyword argument of :class:`.NumberLine`. See :class:`.LogBase` (for a logarithmic scale) and :class:`.LinearBase` (for the default scale) for more details and examples. * :pr:`2152`: Introduced API for scene sections via :meth:`.Scene.next_section` Sections divide a scene into multiple parts, resulting in multiple output videos (when using the ``--save_sections`` flag). The cuts between two sections are defined by the user in the :meth:`~.Scene.construct` method. Each section has an optional name and type, which can be used by a plugin (`see an example `__). You can skip rendering specific sections with the ``skip_animations`` keyword argument. Deprecated classes and functions -------------------------------- * :pr:`1926`: OpenGL: changed ``submobjects`` to be a property * :pr:`2245`: Removed deprecated method ``get_center_point`` and parameters ``azimuth_label_scale``, ``number_scale_value``, ``label_scale``, ``scale_factor``, ``size``, ``x_min``, ``x_max``, ``delta_x``, ``y_min``, ``y_max``, ``delta_y`` * :pr:`2187`: Renamed ``get_graph`` and its variants to :meth:`~.CoordinateSystem.plot` * :pr:`2065`: Deprecated :class:`~.FullScreenFadeRectangle` and :class:`~.PictureInPictureFrame` New features ------------ * :pr:`2025`: Implemented :meth:`.CoordinateSystem.input_to_graph_coords` and fixed :meth:`.CoordinateSystem.angle_of_tangent` * :pr:`2151`: Added option to set the input file from a config file * :pr:`2128`: Added keyword arguments ``match_center``, ``match_width`` etc. to :meth:`.Mobject.become` * :pr:`2162`: Implemented :meth:`.MovingCamera.auto_zoom` for automatically zooming onto specified mobjects * :pr:`2236`: Added ``skip_animations`` argument to :meth:`.Scene.next_section` * :pr:`2196`: Implemented :meth:`.Line3D.parallel_to` and :meth:`.Line3D.perpendicular_to` Enhancements ------------ * :pr:`2138`: Fixed example for :meth:`~.Vector.coordinate_label` and added more customization for :class:`~.Matrix` - Additional keyword arguments for :meth:`~.Vector.coordinate_label` are passed to the constructed matrix. - :class:`~.Matrix` now accepts a ``bracket_config`` keyword argument. * :pr:`2139`: Changed the color of :class:`~.NumberLine` from ``LIGHT_GREY`` to ``WHITE`` * :pr:`2157`: Added :meth:`.CoordinateSystem.plot_polar_graph` * :pr:`2243`: Fixed wasteful recursion in :meth:`.Mobject.get_merged_array` * :pr:`2205`: Improved last frame output handling for the OpenGL renderer * :pr:`2172`: Added ``should_render`` attribute to disable rendering mobjects * :pr:`2182`: Changed the default width of videos in Jupyter notebooks to 60% Fixed bugs ---------- * :pr:`2244`: Fixed :meth:`.CoordinateSystem.get_area` when using few plot points and a boundary graph * :pr:`2232`: Fixed :class:`.Graph` stopping to update after animating additions/deletions of vertices or edges * :pr:`2142`: Fixed issue with duplicates in OpenGL family and added tests * :pr:`2168`: Fixed order of return values of :func:`.space_ops.cartesian_to_spherical` * :pr:`2160`: Made projection shaders compatible with :class:`.StreamLines` * :pr:`2140`: Fixed passing color lists to :meth:`.Mobject.set_color` for the OpenGL renderer * :pr:`2211`: Fixed animations not respecting the specified rate function * :pr:`2161`: Fixed ``IndexOutOfBoundsError`` in TeX logging * :pr:`2148`: Fixed :class:`~.Arrow` tip disorientation with :meth:`.Line.put_start_and_end_on` * :pr:`2192`: Fixed :func:`.svg_path.string_to_numbers` sometimes returning strings * :pr:`2185`: Fixed type mismatch for height and width parameters of :class:`~.Text` Documentation-related changes ----------------------------- * :pr:`2228`: Added a new boolean operation example to the gallery * :pr:`2239`: Removed erroneous raw string from text tutorial * :pr:`2184`: Moved comments in :class:`~.VMobject` to documentation * :pr:`2217`: Removed superfluous dots in documentation of :class:`.Section` * :pr:`2215`: Fixed typo in docstring of :meth:`.ThreeDAxes.get_z_axis_label` * :pr:`2212`: Fixed Documentation for Sections * :pr:`2201`: Fixed a typo in the documentation * :pr:`2165`: Added Crowdin configuration and changed source files to ``.pot`` format * :pr:`2130`: Transferred troubleshooting installation related snippets from Discord to the documentation * :pr:`2176`: Modified :meth:`.Mobject.set_default` example to prevent leaking across the docs Changes concerning the testing system ------------------------------------- * :pr:`2197`: Added tests for resolution flag * :pr:`2146`: Increased test coverage for OpenGL renderer Changes to our development infrastructure ----------------------------------------- * :pr:`2191`: Removed ``add-trailing-comma`` pre-commit hook Code quality improvements and similar refactors ----------------------------------------------- * :pr:`2136`: Added type hints to all colors * :pr:`2220`: Cleanup: let ``Scene.renderer.time`` return something that makes sense * :pr:`2222`: Updated Classifiers in ``pyproject.toml``: removed Python 3.6, added Python 3.9 * :pr:`2213`: Removed redundant ``partial_movie_files`` parameter in :meth:`.SceneFileWriter.combine_to_movie` * :pr:`2200`: Addressed some maintenance TODOs - Changed an `Exception` to `ValueError` - Fixed :meth:`.MappingCamera.points_to_pixel_coords` by adding the ``mobject`` argument of the parent - Rounded up width in :class:`.SplitScreenCamera` - Added docstring to :meth:`.Camera.capture_mobject` * :pr:`2194`: Added type hints to :mod:`.utils.images` * :pr:`2171`: Added type hints to :mod:`.utils.ipython_magic` * :pr:`2164`: Improved readability of regular expression New releases ------------ * :pr:`2247`: Prepared new release ``v0.12.0``