v0.6.0¶
- Date:
May 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.
Abel Aebker
Abhijith Muthyala
Adam Ryczkowski +
Alex Lembcke +
Anton Ballmaier
Aron
Benjamin Hackl
Darylgolden
Deniz Hasler +
Devin Neal
Elisha Hollander +
Erik Tastepe +
Jan-Hendrik Müller
Jason Villanueva
Laith Bahodi
Mark Miller
Mohammad Al-Fetyani
Naveen M K
Newell Jensen +
Nidhal Baccouri +
Nikhil Garuda +
Peilonrayz +
Raghav Goel
Ricky Chon +
friedkeenan
kamilczerwinski22 +
sparshg
The patches included in this release have been reviewed by the following contributors.
Aathish Sivasubrahmanian
Abel Aebker
Abhijith Muthyala
Adam Ryczkowski
Alex Lembcke
Anton Ballmaier
Aron
Benjamin Hackl
Darylgolden
Deniz Hasler
Devin Neal
Elisha Hollander
GameDungeon
Hugues Devimeux
Jan-Hendrik Müller
Jason Villanueva
KingWampy
Laith Bahodi
Mark Miller
Mohammad Al-Fetyani
Naveen M K
Nidhal Baccouri
Nikhil Garuda
Oliver
Philipp Imhof
Raghav Goel
Ricky Chon
friedkeenan
sparshg
Pull requests merged¶
A total of 112 pull requests were merged for this release.
Breaking changes¶
- PR #1347: Restructure vector_field module and add documentation
:class`~.VectorField` is renamed to
ArrowVectorFieldand a new classVectorFieldis added as a superclass forArrowVectorFieldandStreamLines.AnimatedStreamLinesis removed. It’s functionality is moved toStreamLines. Added a lot of new options when working with vector fields.ShowPassingFlashWithThinningStrokeWidthwas moved to the indication module.
- PR #1161: Upgrades to CoordinateSystem and graphing.
Breaking changes were introduced to
Axes,ThreeDAxes,NumberPlaneandNumberLineAll the above now use lists to construct their ranges as opposed to explicitly defining these values. x_range has replaced x_min, x_max and defining the step is much easier with x_step –>x_range:[x_min, x_max, x_step]. There were also many upgrades to these classes which improve their functionality and appearance.NumberLineOldwas introduced to continue support forGraphScene, although we are moving away from GraphScene and intend to deprecate it in a future release.
- PR #1013: Refactored the Command Line Interface to use Click instead of Argparse
This change breaks the CLI API to organize the structure of Manim Community’s commands, options, and arguments.
To be more in line with POSIX compliant CLI conventions, options for commands are given BEFORE their arguments. In Argparse:
manim basic.py -p -qlWith Click:manim -p -ql basic.pyAlthough this is primarily a refactor and most of the common options are still there, some options have been added/removed. Use the
manimcommand’s--helpoption, or simply run the command without providing options/arguments to view the help page with the full list of subcommands/options/arguments.Added a
--fps/--frame_rateoption which allows for custom fps that don’t have to be integer (i.e. 29.97, 23.98, etc.). Users no longer have to specify the FPS from within a config file. Additionally, the--webgl_renderer_fpsoption has been removed. Use--fpsor--frame_rateinstead.Added a
--rendereroption which you can use to select your choice of renderer (e.g.--renderer=opengl). There are currently THREE renderers to choose from!Removed the
--background_coloroption. Reassigned the--background_coloroption’s shorthand-cto--config_file.Removed the
--leave_progress_barsoption. Use--progress_bars=leaveinstead.Removed the deprecated render quality flags, in particular:
-l,-m,-h,-k.Removed the
--soundoption. It lost support long ago with the removal of SoX.
Deprecated classes and functions¶
- PR #1431: Fix CLI bugs
Fixed conflict with
-fwhich was previously assigned to both--show_in_file_browserand--formatby removing-ffrom--format. A warning is issued that-fwill soon move to--format.Added back in flags to render the files as gif/last frame. Deprecated them in favor of
--format.Fixed the broken
--output_file/-ooption.Fixed an issue where the
-qhquality option was interpreted as-q-h, prompting the help page.
PR #1354: Refactored a few functions in space_ops.py, deprecated
angle_between()- PR #1370: Remove TexMobject and TextMobject
TexMobject and TextMobject have been deprecated for a while, they are now fully removed. Use Tex or MathTex instead.
PR #1349: Removed the deprecated
SmallDotmobjectPR #1259: Removed deprecated CairoText class
New features¶
PR #1386: Implement utility methods for adding/removing vertices and edges of graphs; allow custom mobjects as vertices
- PR #1385: Added
get_line_graph()for plotting a line graph Added
get_line_graph()that returns a line graph from lists of points along x, y and z (optional) axes.
- PR #1385: Added
- PR #1381: Hot reloading for the OpenGL renderer
Rerun scene when the input file is modified
- PR #1383: Overhaul of the
indicationmodule interfaces Added class Circumscribe combining functionality of CircleIndicate, AnimationOnSurroundingRectangle, ShowPassingFlashAround, ShowCreationThenDestructionAround, ShowCreationThenFadeAround, which have all been deprecated.
Changes to Flash: flash_radius parameter now defines inner radius of the animation. Added new parameter time_width.
ShowCreationThenDestruction has been deprecated in favor of ShowPassingFlash
Changes to ApplyWave: New implementation giving more flexibility with new parameters wave_func, time_width and`ripples`
Renamed WiggleOutThenIn to Wiggle (WiggleOutThenIn has been deprecated)
Added documentation and examples to all the above
Other minor enhancements and bug-fixes
- PR #1383: Overhaul of the
PR #1348: Added
Polyhedron, and platonic solidsTetrahedron,Octahedron,IcosahedronandDodecahedron- PR #1285: Add
interactive_embed()for OpenGL rendering interactive_embed()allows interaction with Scene via mouse and keyboard as well as dynamic commands via an iPython terminal.
- PR #1285: Add
- PR #1261: Render image automatically if no animation is played in a scene
If no animations in scene and asked to preview/render a video, preview/render an image instead of raising a confusing error.
- PR #1200: Add text and SVG mobjects to OpenGL
Added OpenGL-compatible text and SVG mobjects
Enhancements¶
- PR #1398: Fix and enhance Mobject.arrange_in_grid
arrange_in_grid now actually arranges submobjects in a grid. Added new parameters buff, cell_alignment, row_alignments, col_alignments, row_heights, col_widths, flow_order.
PR #1407: Fix bug and rename
vector_coordinate_label()tocoordinate_label()and move it togeometry.pyPR #1380: Allow image objects as background images
- PR #1364: Added
match_points() Added
match_points(), which transforms the points, positions and submobjects of a Mobject to match that of the other while keeping style unchanged.
- PR #1364: Added
PR #1363: Change of TeX compiler and output file format
- PR #1359: Make FILE a required argument
Make FILE a required argument, manim/cli/render/commands.py:L30
PR #1304: Improve Tex string splitting at double braces: only split for double brace groups
- PR #1340: Add OpenGL support to the new transform animations
Made FadeTransform, FadeTransformPieces, TransformMatchingShapes and TransformMatchingTex compatible with OpenGL rendering.
- PR #1343: Make TexTemplate() simple, but keep Tex()’s default template
TexTemplate() now returns a simple tex template.
PR #1321: Add OpenGL support to
AnimationGroup- PR #1302: Raise appropriate errors in
point_from_proportion() Raise an error if the
alphaargument is not between 0 and 1.Raise an error if the
VMobjecthas no points.
- PR #1302: Raise appropriate errors in
PR #1315: Fix performance issues with
get_arc_length(), stemming from PR #1274PR #1320: Add jpeg extension to the default image extensions
- PR #1234: Added new method
get_midpoint() Implemented
get_midpoint()to return the point that is the middle of the stroke line of an mobject.
- PR #1234: Added new method
PR #1237: Notify user if they are using an outdated version of Manim
PR #1308: Improved
ManimBanneranimationsPR #1275: Add SVG <line> element support to
SVGMobjectPR #1260: Change Brace from Tex to SVG (#1258)
PR #1122: Support for specifying the interpolation algorithms for individual ImageMobjects
PR #1283: Set default value of keyword
random_seedinScenetoNone(was 0 and fixed before)- PR #1220: Added sanity checks to
add_to_back()for Mobjects Add Mobject add_to_back sanity checks: - Raises ValueError when Mobject tries to add itself - Raises TypeError when a non-Mobject is added - Filters out incoming duplicate submobjects if at least one instance of that submobject exists in the list
- PR #1220: Added sanity checks to
PR #1248: Add Copy function to TexTemplate
Fixed bugs¶
PR #1368: Added a check to ensure checking for the latest version was successful
- PR #1413: Prevent duplication of the same mobject when adding to submobjects via
add_to_back() Fixes #1412
- PR #1413: Prevent duplication of the same mobject when adding to submobjects via
PR #1395: SVG transforms now handle exponent notation (6.02e23)
PR #1355: Rewrite put_start_and_end_on to work in 3D
PR #1305: Automatically remove long tick marks not within the range of the
NumberLinePR #1296: Fix random pipeline TeX failures
- PR #1274: Fix
point_from_proportion()to account for the length of curves. Add
get_nth_curve_function_with_length()and associated functions.Change
point_from_proportion()to use these functions to account for curve length.
- PR #1274: Fix
Changes concerning the testing system¶
PR #1299: Red pixels (different value) now appear over green pixels (same value) in GraphicalUnitTest
Changes to our development infrastructure¶
- PR #1436: Cache poetry venv with pyproject.toml hash in key
Cache poetry venv with pyproject.toml hash in key
- PR #1435: CI: Update poetry cache when new version is released
Fix test_version failure in CI when using cached poetry venv
PR #1427: Add URL’s to pyproject.toml
PR #1421: Updated changelog generator’s labels and removed pre-commit bot from changelog
PR #1339: CI: Fix macOS installation error from creating file in read-only file system
- PR #1257: CI: Caching ffmpeg, tinytex dependencies and poetry venv
CI: Caching ffmpeg, tinytex dependencies and poetry venv
PR #1294: Added mixed-line-ending to .pre-commit-config.yaml
PR #1278: Fixed flake8 errors and removed linter/formatter workflows
PR #1270: Added isort to pre_commit file
- PR #1263: CI: Turn off experimental installer for poetry to fix installation errors
Turn off experimental installer for poetry to prevent manim installation errors for packages.
Downgrade py39 to py38 for flake checks as pip does not enjoy py39, along with poetry.
- PR #1255: CI: Fix macOS pipeline failure
Update ci.yml to update and upgrade brew if necessary before installing dependencies, and remove the unsupported dvisvgm.86_64-darwin package.
PR #1254: Removed the comment warning that GitHub doesn’t allow uploading video in the issue templates.
PR #1216: Use actions/checkout for cloning repository; black-checks
PR #1235: Fixed version of decorator at <5.0.0
Code quality improvements and similar refactors¶
PR #1411: Change Union[float, int] to just float according to PEP 484
PR #1241: Type Annotations: Fixing errors showing up in static type checking tool mypy
- PR #1319: Fix mean/meant typo
Fix typo in docs
PR #1313: Singular typo fix on the Quickstart page in documentation
- PR #1292: Remove unnecessary imports from files
Imports reduced in a bunch of files
PR #1295: Fix grammar and typos in the CODE OF CONDUCT
- PR #1293: Minor fixes - reduce lines
Remove unnecessary lines
PR #1281: Remove all Carriage Return characters in our files
PR #1178: Format Imports using Isort
PR #1233: Fix deprecation warning for
--use_opengl_rendererand--use_webgl_rendererPR #1282: Fix typing hints in vectorized_mobject.py based on mypy
New releases¶
PR #1434: Prepare v0.6.0