docs/source/changelog/0.5.0-changelog.rst
v0.5.0
:Date: April 02, 2021
A total of 35 people contributed to this release. People with a '+' by their names authored a patch for the first time.
The patches included in this release have been reviewed by the following contributors.
A total of 64 pull requests were merged for this release.
1075: Add OpenGL Renderer
Adds an OpenGLRenderer, OpenGLCamera, OpenGL-enabled Mobjects, and a --use_opengl_renderer flag. When this flag is passed, you can pass the -p flag to preview animations, the -w flag to generate video, and the -q flag to specify render quality. If you don't pass either the -p or the -w flag, nothing will happen. Scenes rendered with the OpenGL renderer must only use OpenGL-enabled Mobjects.:pr:1124: Deprecated :class:ShowCreation in favor of :class:Create
ShowCreation in favor of :class:Create across the library with the exception of the show_creation boolean variable vector_space_scene.pyShowCreation class.:pr:1110: Deprecated SmallDot + OpenGLSmallDot
SmallDot isn't necessary and a deprecation warning will be raised. This will be removed in a future release.
:pr:1037: Added new fade and transform animations (:class:~.TransformMatchingShapes, :class:~.TransformMatchingTex, :class:~.FadeTransform) from 3b1b/manim
Added new Fade animation: :class:~FadeOutToPoint
Added :class:~FadeTransform and :class:~FadeTransformPieces for transforming mobjects and submobjects with a fade
Added :class:~TransformMatchingShapes and :class:~TransformMatchingTex for transforming mobjects and tex that have matching parts
:pr:1097: Added 3D Mobject :class:~.Dot3D
:pr:1074: Added jupyter media_width option to the config
:pr:1107: Added :class:~.Unwrite animation class to complement :class:~.Write
Added :class:Unwrite which inherits from :class:~.Write. It automatically reverses the animation of :class:~.Write by passing the reversed rate function, but it also takes an additional boolean parameter reverse which, if False, renders the animation from left to right (assuming text oriented in the usual way), but if True, it renders right to left.
:pr:1085: Added :class:~.Angle and :class:~.RightAngle for intersecting lines
:class:~.Angle and :class:~.RightAngle both take two lines as input. If they intersect, or share a common vertex, an angle is drawn between them. Users can customize the look of the angle and also use a dotted right angle.
:pr:1144: Improved quality of GIFs
:pr:1157: Refresh triangulation on call to :meth:~.OpenGLVMobject.apply_points_function
Rotate called apply_points_function, which was previous not subclassed by OpenGLMobject - now it is. Then, the vertex normals can be updated too.
Additionally, the old_points matrix would change after rotating, making the old points / new points test irrelevant. This is addressed with a .copy call.
:pr:1151: Added parametric function support to :class:OpenGLSurface
:pr:1139: In-Code config["preview"] Support
:pr:1123: Added caching, skipping, and user-specified background colors to the OpenGL renderer
OpenGL play logic has been improved to support caching and skipping with -n argument ( it is now similar to Cairo play logic). A random bug was fixed in OpenGLSurface and OpenGL background color can now be changed via background_color argument.
:pr:1118: Allow passing animation arguments with .animate syntax
Users will now be able to do things like obj.animate(run_time=2).method(arg) if they want to specify animation arguments for an individual .animate call, and can still not specify any arguments like obj.animate.method(arg).
Passing animation arguments is only allowed directly after .animate is accessed, if passed elsewhere then a ValueError is raised.
:pr:718: Rotating the numbers in y axis
In Axes, the y axis will be rotated 90deg but the numbers are
also rotated and shouldn't be. Fixes this issue.
:pr:1070: Raise FileNotFoundError when unable to locate the .cfg file specified via --config_file
Raising the error will stop script execution and let the user know that there are problems with the --config_file location instead of reverting back to the default configuration.
:pr:1224: Fixed :class:~.ShowIncreasingSubsets, :class:~.ShowSubmobjectsOneByOne, and :class:~.AddTextLetterByLetter
:pr:1201: Prevent crash on :meth:~.Scene.embed for empty scenes
:pr:1192: Fixed issue when an animation is cached, manim can't merge the partial movie files.
:pr:1193: Fixed using :class:~.Animation without a child :class:~.Mobject in :class:~.AnimationGroup
AnimationGroup may now take Animation objects which do not have a child Mobject, such as Wait.
:pr:1170: Fixed minor SVG parsing bugs
:pr:1159: Added support for multiple transforms in the same SVG element
:pr:1156: Fixed :class:~.DrawBorderThenFill to support OpenGL and improved type hints for some functions
Fixed a bug in :class:~.DrawBorderThenFill that prevented :class:~.Write animations from working with :class:~.OpenGLVMobjects and slightly improved type hints for some animation functions to include :class:~.OpenGLVMobject.
:pr:1134: Fixed the -a flag.
The -a / --write-all flag was broken. When used, it would cause Manim to crash just after beginning to render the second scene.
:pr:1115: Fixed bugs in :class:~.OpenGLMobject and added :class:ApplyMethod support
Fixed undefined variables and converted :class:Mobject to :class:OpenGLMobject. Also, fixed assert statement in :class:ApplyMethod.
:pr:1092: Refactored coordinate_systems.py, fixed bugs, added :class:~.NumberPlane test
The default behavior of :meth:~.Mobject.rotate is to rotate about the center of :class:~.Mobject. :class:~.NumberLine is symmetric about the point at the number 0 only when |x_min| == |x_max|. Ideally, the rotation should coincide with
the point at number 0 on the line.
Added a regression test and additionally fixed some bugs introduced in :pr:718.
:pr:1078: Removed stray print statements from __main__.py
Uses rich's print traceback instead and fixes an issue in printing the version twice when manim --version is called.
:pr:1086: Fixed broken line spacing in :class:~.Text
The line_spacing kwarg was missing when creating :class:Text Mobjects; this adds it.
:pr:1083: Corrected the shape of :class:~.Torus
:class:Torus draws a surface with an elliptical cross-section when minor_radius is different from 1. This PR ensures the cross-section is always a circle.
:pr:1217: Copyedited the document on testing in our documentation
:pr:1206: Added Docstrings to :class:~.Mobject
:pr:1218: Removed BezierSpline from the example gallery
:pr:1219: Updated Dockerfile (include dependencies for building documentation), moved documentation to main README
:pr:1209: Added :ref_methods: to the manim directive
This allows class methods to be linked in the documentation. Checkout the example references <https://docs.manim.community/en/latest/examples.html#movingaround>_ below the code to see how this is used!
:pr:1204: Added rotation example to example gallery
:pr:1137: Added GitHub Wiki pages on adding testing/documentation to Sphinx Docs
:pr:1114: Added examples for :class:~.Ellipse, :class:~.Polygon, :class:~.RegularPolygon, :class:~.Triangle and :class:~.RoundedRectangle
:pr:1195: Removed SmallDot from example
:pr:1130: Added pre-commit to run black and flake8, updated contributing documentation accordingly
:pr:1138: Moved previous version changelogs to separate files; Added a Script to generate future changelogs
This script quickly generates a changelog for whoever is making the release.
:pr:1190: Added note in contributing guide to read the latest version of the documentation
:pr:1188: Added sounds example to docs
:pr:1165: Added documentation for installing Manim on Colab
:pr:1128: Added examples for :class:~.DashedLine, :class:~.TangentLine, :class:~.Elbow, :class:~.Arrow, :class:~.Vector, :class:~.DoubleArrow
:pr:1177: Replace links to the latest version of the documentation to the stable version
:pr:1077: Added details to :func:~.Mobject.get_critical_point
:pr:1154: Fixed some typing hints. (ints to floats)
:pr:1036: Added :class:~.SurroundingRectangle to the example gallery
:pr:1103: Added documentation and examples for Square, Dot, Circle and Rectangle
:pr:1101: Added documentation to :class:~.Mobject
:pr:1088: Added new svg files to documentation and imports
In particular, SVGPathMobject, VMobjectFromPathstring, and the style_utils functions to manim's namespace.
:pr:1076: Improve documentation for GraphScene
Updated coords_to_point and point_to_coords under manim/scene/graph_scene.py as the dosctring of each function confusingly described the opposite of what it is supposed to do.
:pr:1160: Enable CI testing for OpenGL
:pr:1100: Rewrote test cases to use sys.executable in the command instead of "python"
Tests would fail due to capture() not spawning a subshell in the correct environment, so when python was called, the test would be unable to find necessary packages.
:pr:1079: Removed the hardcoded value, manim, in test_version.py
:pr:1213: Updated TinyTex dependencies
:pr:1187: Add CodeCov to Github Workflow
:pr:1166: CI: Use poetry's cache dir rather than pip
:pr:1071: Enable pytest-cov based code coverage
ci.yml) to create and upload test coverage.:pr:1073: Removed "one line summary" from PULL_REQUEST_TEMPLATE.md
:pr:1167: Merge :class:~.OpenGLMobject and :class:~.Mobject
:pr:1164: Fixed single PEP8 style in cairo_renderer.py
:pr:1140: Flake8 Compat & Code Cleanup
:pr:1019: Refactored :meth:~.Scene.play
~.Scene.play, in particular: caching logic and file writer logic are now included within :meth:~.Scene.play (it wasn't possible before, because scene.wait and scene.play were two different things).is_static_wait attributes to Wait. (<=> if wait is a frozen frame).scene.add_static_frame to renderer.freeze_current_frame.ValueError instead of just a warning.874 by modifying renderer.update_skipping_statusrenderer starts the animation with scene.begin_animations (scene.compile_animation_data used to do this)scene.play_internal although it'd make more sense that renderer processes it later.scene.render