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_mobjectand- Scene.ids_to_group(#1794)
- Added - Scene.save_mobjectand- Scene.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 - crosshairto- InteractiveScene(#1821)
- Added - SceneState(#1821)
- Added - time_spanoption 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_movableand- Mobject.set_animating_statusto recurse over family (#1794)
- Refactored - AnimationGroup(#1794)
- Refactored - Scene.save_stateand- Scene.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_idfrom- Mobject.become(#1796)
- Refactored - Scene.embedto play nicely with gui interactions (#1796)
- Made - BlankSceneinherit 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_movableto- 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_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_redundanciesand- 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_highlightrefresh with an updater (#1821)
- Refactored - anims_from_play_argsto- prepare_animationswhich 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¶
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_pointand- CoordinateSystem.coords_to_pointto work on an array of inputs (#1764)
- Added a basic - Prismifyto turn a flat- VMobjectinto something with depth (#1764)
- Added - GlowDots, analogous to- GlowDot(#1764)
- Added - TransformMatchingStringswhich is compatible with- Textand- MTex(#1772)
- Added support for - substringand- case_sensitiveparameters for- LabelledString.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 use- scipy.spatial.transform.Rotation(#1764)
- Refactored rotation methods to use - scipy.spatial.transform.Rotation(#1764)
- Used - stroke_colorto 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_viewfor- CameraFrame(#1770)
- Renamed - focal_distanceto- focal_dist_to_heightand added getter/setter (#1770)
- Added getter and setter for - VMobject.joint_type(#1770)
- Refactored - VCube(#1770)
- Refactored - Prismto receive- width height depthinstead of- dimensions(#1770)
- Refactored - Text,- MarkupTextand- MTexbased on- LabelledString(#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 added- Mobject.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_configto- DecimalNumber(#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 for- Brace(#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 iterable- scale_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_vectorsadd- rotation_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- *) for- Mobject(#1667)
- Added 4 boolean operations for - VMobjectin- manimlib/mobject/boolean_ops.py(#1675)- Union(*vmobjects, **kwargs)
- Difference(subject, clip, **kwargs)
- Intersection(*vmobjects, **kwargs)
- Exclusion(*vmobjects, **kwargs)
 
- Added reflectiveness (81c3ae3) 
- Enabled - glow_factoron- DotCloud(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 for- FlashAroundmobject (ee1594a)
- Made sure - Mobject.is_fixed_in_framestays updated with uniforms (ba23fbe)
- Made sure - skip_animationsand- start_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 - Afor- SVGMobject(#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_depthto- Mobject(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_smoothfor- set_points_smoothlyby default (d8378d8)
- Refactored to call - _handle_scale_side_effectsafter scaling takes place (7b4199c)
- Refactored to only call - throw_error_if_no_pointsonce for- get_start_and_end(7356a36)
- Made sure framerate is 30 for previewed scenes (0787c4f) 
- Pushed - pixel_coords_to_space_coordsto- Window(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 of- length=0
- Fixed the bug of - __init__in- Elbow
- 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 - VectorFieldand- StreamLines
- Allow - 3b1b_colormapas an option for- get_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 - FlashAroundand- FlashUnder
- Allowed configuration in - Brace.get_text
- Added - reorient()for quicker changes to frame angle
- Added - unitsto- set_euler_angles()
- Allowed any - VMobjectto be passed into- TransformMatchingTex
- Removed double brace convention in - Texand- TexText
- Added support for debugger launch 
- Added CLI flag - --config_fileto load configuration file manually
- Added - tip_styleto- tip_config
- Added - MarkupText
- Take in - u_rangeand- v_rangeas arguments to- ParametricSurface
- Added - TrueDot