Changelog¶
Unreleased¶
Breaking Changes¶
-
Added
InteractiveScene(#1794 )
Fixed bugs¶
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_mobjectandScene.ids_to_group(#1794 ) -
Added
Scene.save_mobjectandScene.load_mobjectto 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
crosshairtoInteractiveScene(#1821 ) -
Added
SceneState(#1821 ) -
Added
time_spanoption toAnimation(#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_movableandMobject.set_animating_statusto recurse over family (#1794 ) -
Refactored
AnimationGroup(#1794 ) -
Refactored
Scene.save_stateandScene.restore(#1794 ) -
Added
MANIM_COLORS(#1794 ) -
Changed default transparent background codec to be prores (#1794 )
-
Simplified
Mobject.copy(#1794 ) -
Refactored
StringMobjectand relevant classes (#1795 ) -
Updates to copying based on pickle serializing (#1796 <https://github.com/3b1b/manim/commit/fe3e10acd29a3dd6f8b485c0e36ead819f2d937b > )
-
Removed
refresh_shader_wrapper_idfromMobject.become(#1796 ) -
Refactored
Scene.embedto play nicely with gui interactions (#1796 ) -
Made
BlankSceneinherit fromInteractiveScene(#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_movabletoMobject.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_animatingfor 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.removefunction (#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_redundanciesandlist_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_highlightrefresh with an updater (#1821 ) -
Refactored
anims_from_play_argstoprepare_animationswhich deprecating old styleself.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¶
Refactor¶
v1.6.0¶
Breaking changes¶
-
Python 3.6 is no longer supported (#1736 )
Fixed bugs¶
New features¶
-
Added more functions to
Text(details: #1751 ) -
Allowed
interpolateto work on an array of alpha values (#1764 ) -
Allowed
Numberline.number_to_pointandCoordinateSystem.coords_to_pointto work on an array of inputs (#1764 ) -
Added a basic
Prismifyto turn a flatVMobjectinto something with depth (#1764 ) -
Added
GlowDots, analogous toGlowDot(#1764 ) -
Added
TransformMatchingStringswhich is compatible withTextandMTex(#1772 ) -
Added support for
substringandcase_sensitiveparameters forLabelledString.get_parts_by_string(#1780 )
Refactor¶
-
Added type hints (#1736 )
-
Specifid UTF-8 encoding for tex files (#1748 )
-
Refactored
Textwith the latest manimpango (#1751 ) -
Reorganized getters for
ParametricCurve(#1757 ) -
Refactored
CameraFrameto usescipy.spatial.transform.Rotation(#1764 ) -
Refactored rotation methods to use
scipy.spatial.transform.Rotation(#1764 ) -
Used
stroke_colorto initArrow(#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_viewforCameraFrame(#1770 ) -
Renamed
focal_distancetofocal_dist_to_heightand added getter/setter (#1770 ) -
Added getter and setter for
VMobject.joint_type(#1770 ) -
Refactored
VCube(#1770 ) -
Refactored
Prismto receivewidth height depthinstead ofdimensions(#1770 ) -
Refactored
Text,MarkupTextandMTexbased onLabelledString(#1772 ) -
Refactored
LabelledStringand relevant classes (#1779 )
v1.5.0¶
Fixed bugs¶
-
Bug fix for the case of calling
Writeon a null object (#1740 )
New features¶
-
Added
TransformMatchingMTex(#1725 ) -
Added
ImplicitFunction(#1727 ) -
Added
Polyline(#1731 ) -
Allowed
Mobject.set_pointsto take in an empty list, and addedMobject.add_point(#1739 ) -
Added
Scene.refresh_locked_data(#1739 ) -
Added presenter mode to scenes with
-poption (#1739 and #1742 ) -
Allowed for an embed by hitting
ctrl+shift+eduring interaction (#1739 and #1746 ) -
Added
Mobject.set_min_width/height/depth(#1739 ) -
Allowed
Mobject.match_coord/x/y/zto take in a point (#1739 ) -
Added
text_configtoDecimalNumber(#1744 )
Refactor¶
Dependencies¶
v1.4.1¶
Fixed bugs¶
v1.4.0¶
Fixed bugs¶
New features¶
-
Added option to add ticks on x-axis in
BarChart(#1694 ) -
Added
lable_buffconfig parameter forBrace(#1704 ) -
Added support for
rotate skewX skewYtransform in SVG (#1712 ) -
Added style support to
SVGMobject(#1717 ) -
Added parser to <style >element of SVG (#1719 )
-
Added support for <line >element in
SVGMobject(#1719 )
Refactor¶
-
Used
FFMPEG_BINinstead of"ffmpeg"for sound incorporation (5aa8d15 ) -
Decorated
CoordinateSystem.get_axesand.get_all_rangesas abstract method (#1709 ) -
Refactored SVG path string parser (#1712 )
-
Allowed
Mobject.scaleto receive iterablescale_factor(#1712 ) -
Refactored
MTex(#1716 ) -
Improved config helper (
manimgl --config) (#1721 ) -
Refactored
MTex(#1723 )
Dependencies¶
-
Added dependency on python package cssselect2 (#1719 )
v1.3.0¶
Fixed bugs¶
-
Fixed
Mobject.stretch_to_fit_depth(#1653 ) -
Fixed the bug of rotating camera (#1655 )
-
Fixed
SurfaceMeshto be evenly spaced (c73d507 ) -
Fixed
angle_between_vectorsaddrotation_between_vectors(82bd02d ) -
Fixed
VMobject.fade(a717314 ) -
Fixed
angle_between_vectors(fbc329d ) -
Fixed bug in
ShowSubmobjectsOneByOne(bcd0990 ) -
Fixed bug in
TransformMatchingParts(7023548 )
New features¶
-
Added CLI flag
--log-levelto specify log level (e10f850 ) -
Added operations (
+and*) forMobject(#1667 ) -
Added 4 boolean operations for
VMobjectinmanimlib/mobject/boolean_ops.py(#1675 )-
Union(*vmobjects, **kwargs) -
Difference(subject, clip, **kwargs) -
Intersection(*vmobjects, **kwargs) -
Exclusion(*vmobjects, **kwargs)
-
-
Added reflectiveness (81c3ae3 )
-
Enabled
glow_factoronDotCloud(2c7689e ) -
Added option
-eto insert embed line from the command line (d065e19 ) -
Improved
point_from_proportionto account for arc length (0e78027 ) -
Added shortcut
set_backstrokefor setting black background stroke (781a993 ) -
Added
Suface.always_sort_to_camera(0b898a5 ) -
Added getter methods for specific euler angles (e899604 )
-
Hade
rotation_between_vectorshandle identical/similar vectors (407c53f ) -
Added
Mobject.insert_submobjectmethod (49743da ) -
Created single progress display for full scene render (9dd1f47 )
-
Added
Circle.get_radius(264f7b1 ) -
Added
Dodecahedron(83841ae ) -
Added
GlowDot(a1d5147 )
Refactor¶
-
Refactored support for command
Ain path of SVG (#1662 ) -
Refactored
SingleStringTex.balance_braces(#1662 ) -
Slight tweaks to how saturation_factor works on newton-fractal (8b454fb )
-
Made it possible to set full screen preview as a default (317a5d6 )
-
Used
quick_point_from_proportionfor graph points (e764da3 ) -
Made sure
Line.set_lengthreturns self (d2182b9 ) -
Better align
SurfaceMeshto the corresponding surface polygons (eea3c6b ) -
Match
fix_in_framestatus forFlashAroundmobject (ee1594a ) -
Made sure
Mobject.is_fixed_in_framestays updated with uniforms (ba23fbe ) -
Made sure
skip_animationsandstart_at_animation_numberplay well together (98b0d26 ) -
Updated progress display for full scene render (f8e6e7d )
-
VectorizedPointshould call__init__for both super classes (8f1dfab ) -
Used array copy when checking need for refreshing triangulation (758f329 )
Dependencies¶
-
Added dependency on python package skia-pathops (#1675 )
v1.2.0¶
Fixed bugs¶
-
Fixed
put_start_and_end_onin 3D (#1592 ) -
Fixed
DecimalNumber’s scaling issue (#1601 ) -
Fixed bug with common range array used for all coordinate systems (56df154 )
-
Fixed
CoordinateSysteminit bug (8645894 ) -
Fixed bug for single-valued
ValueTracker(0dc096b ) -
Fixed bug with SVG rectangles (54ad355 )
-
Fixed
DotCloud.set_radii(d45ea28 ) -
Temporarily fixed bug for
PMobjectarray resizing (b543cc0 ) -
Fixed
match_style(5f878a2 ) -
Fixed negative
path_arccase (719c81d ) -
Fixed bug with
CoordinateSystem.get_lines_parallel_to_axis(c726eb7 ) -
Fixed
ComplexPlane-i display bug (7732d2f )
New features¶
-
Supported the elliptical arc command
AforSVGMobject(#1598 ) -
Added
FlashyFadeIn(#1607 ) -
Save triangulation (#1607 )
-
Added new
Codemobject (#1625 ) -
Add warnings and use rich to display log (#1637 )
-
Added
VCube(bd356da ) -
Supported
ValueTrackerto track vectors (6d72893 ) -
Added
set_max_width,set_max_height,set_max_depthtoMobject(3bb8f3f ) -
Added
TracgTail(a35dd5a ) -
Added
Scene.point_to_mobject(acba13f ) -
Added poly_fractal shader (f84b8a6 )
-
Added kwargs to
TipableVMobject.set_length(b24ba19 ) -
Added
Mobject.replicate(17c2772 ) -
Added mandelbrot_fractal shader (33fa76d )
-
Saved state before each embed (f22a341 )
-
Allowed releasing of Textures (e10a752 )
-
Consolidated and renamed newton_fractal shader (14fbed7 )
-
Hade
ImageMojectremember the filepath to the Image (6cdbe0d )
Refactor¶
-
Changed back to simpler
Mobject.scaleimplementation (#1601 ) -
Simplified
Square(b667db2 ) -
Removed unused parameter
triangulation_locked(40290ad ) -
Reimplemented
Arrow(8647a64 ) -
Used
make_approximately_smoothforset_points_smoothlyby default (d8378d8 ) -
Refactored to call
_handle_scale_side_effectsafter scaling takes place (7b4199c ) -
Refactored to only call
throw_error_if_no_pointsonce forget_start_and_end(7356a36 ) -
Made sure framerate is 30 for previewed scenes (0787c4f )
-
Pushed
pixel_coords_to_space_coordstoWindow(c635f19 ) -
Refactored to pass tuples and not arrays to uniforms (d5a88d0 )
-
Refactored to copy uniform arrays in
Mobject.copy(9483f26 ) -
Added
bounding_boxas exceptional key to point_cloud mobject (ed1fc4d ) -
Made sure stroke width is always a float (329d2c6 )
v1.1.0¶
Fixed bugs¶
-
Fixed the bug of
resize_with_interpolation()in the case oflength=0 -
Fixed the bug of
__init__inElbow -
If chosen monitor is not available, choose one that does exist
-
Make sure mobject data gets unlocked after animations
-
Fixed a bug for off-center vector fields
-
Had
Mobject.match_pointsreturn self -
Fixed chaining animation in example scenes
-
Fixed the default color of tip
-
Fixed a typo in
ShowPassingFlashWithThinningStrokeWidth -
Fixed the default size of
Text -
Fixed a missing import line in
mobject.py -
Fixed the bug in ControlsExample
-
Make sure frame is added to the scene when initialization
-
Fixed zooming directions
-
Rewrote
earclip_triangulationto fix triangulation -
Allowed sound_file_name to be taken in without extensions
New features¶
-
Added
VShowPassingFlash -
Added
COLORMAP_3B1B -
Added some methods to coordinate system to access all axes ranges
-
get_origin() -
get_all_ranges()
-
-
Added
set_color_by_rgba_func() -
Updated
VectorFieldandStreamLines -
Allow
3b1b_colormapas an option forget_colormap_list() -
Return
stroke_widthas 1d array -
Added
get_parts_by_text() -
Use Text not TexText for Brace
-
Update to Cross to make it default to variable stroke width
-
Added
FlashAroundandFlashUnder -
Allowed configuration in
Brace.get_text -
Added
reorient()for quicker changes to frame angle -
Added
unitstoset_euler_angles() -
Allowed any
VMobjectto be passed intoTransformMatchingTex -
Removed double brace convention in
TexandTexText -
Added support for debugger launch
-
Added CLI flag
--config_fileto load configuration file manually -
Added
tip_styletotip_config -
Added
MarkupText -
Take in
u_rangeandv_rangeas arguments toParametricSurface -
Added
TrueDot