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_mobject
andScene.ids_to_group
(#1794 ) -
Added
Scene.save_mobject
andScene.load_mobject
to 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
crosshair
toInteractiveScene
(#1821 ) -
Added
SceneState
(#1821 ) -
Added
time_span
option 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_movable
andMobject.set_animating_status
to recurse over family (#1794 ) -
Refactored
AnimationGroup
(#1794 ) -
Refactored
Scene.save_state
andScene.restore
(#1794 ) -
Added
MANIM_COLORS
(#1794 ) -
Changed default transparent background codec to be prores (#1794 )
-
Simplified
Mobject.copy
(#1794 ) -
Refactored
StringMobject
and relevant classes (#1795 ) -
Updates to copying based on pickle serializing (#1796 <https://github.com/3b1b/manim/commit/fe3e10acd29a3dd6f8b485c0e36ead819f2d937b > )
-
Removed
refresh_shader_wrapper_id
fromMobject.become
(#1796 ) -
Refactored
Scene.embed
to play nicely with gui interactions (#1796 ) -
Made
BlankScene
inherit 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_movable
toMobject.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_animating
for 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.remove
function (#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_redundancies
andlist_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_highlight
refresh with an updater (#1821 ) -
Refactored
anims_from_play_args
toprepare_animations
which 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
interpolate
to work on an array of alpha values (#1764 ) -
Allowed
Numberline.number_to_point
andCoordinateSystem.coords_to_point
to work on an array of inputs (#1764 ) -
Added a basic
Prismify
to turn a flatVMobject
into something with depth (#1764 ) -
Added
GlowDots
, analogous toGlowDot
(#1764 ) -
Added
TransformMatchingStrings
which is compatible withText
andMTex
(#1772 ) -
Added support for
substring
andcase_sensitive
parameters forLabelledString.get_parts_by_string
(#1780 )
Refactor¶
-
Added type hints (#1736 )
-
Specifid UTF-8 encoding for tex files (#1748 )
-
Refactored
Text
with the latest manimpango (#1751 ) -
Reorganized getters for
ParametricCurve
(#1757 ) -
Refactored
CameraFrame
to usescipy.spatial.transform.Rotation
(#1764 ) -
Refactored rotation methods to use
scipy.spatial.transform.Rotation
(#1764 ) -
Used
stroke_color
to 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_view
forCameraFrame
(#1770 ) -
Renamed
focal_distance
tofocal_dist_to_height
and added getter/setter (#1770 ) -
Added getter and setter for
VMobject.joint_type
(#1770 ) -
Refactored
VCube
(#1770 ) -
Refactored
Prism
to receivewidth height depth
instead ofdimensions
(#1770 ) -
Refactored
Text
,MarkupText
andMTex
based onLabelledString
(#1772 ) -
Refactored
LabelledString
and relevant classes (#1779 )
v1.5.0¶
Fixed bugs¶
-
Bug fix for the case of calling
Write
on a null object (#1740 )
New features¶
-
Added
TransformMatchingMTex
(#1725 ) -
Added
ImplicitFunction
(#1727 ) -
Added
Polyline
(#1731 ) -
Allowed
Mobject.set_points
to take in an empty list, and addedMobject.add_point
(#1739 ) -
Added
Scene.refresh_locked_data
(#1739 ) -
Added presenter mode to scenes with
-p
option (#1739 and #1742 ) -
Allowed for an embed by hitting
ctrl+shift+e
during interaction (#1739 and #1746 ) -
Added
Mobject.set_min_width/height/depth
(#1739 ) -
Allowed
Mobject.match_coord/x/y/z
to take in a point (#1739 ) -
Added
text_config
toDecimalNumber
(#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_buff
config parameter forBrace
(#1704 ) -
Added support for
rotate skewX skewY
transform 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_BIN
instead of"ffmpeg"
for sound incorporation (5aa8d15 ) -
Decorated
CoordinateSystem.get_axes
and.get_all_ranges
as abstract method (#1709 ) -
Refactored SVG path string parser (#1712 )
-
Allowed
Mobject.scale
to 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
SurfaceMesh
to be evenly spaced (c73d507 ) -
Fixed
angle_between_vectors
addrotation_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-level
to specify log level (e10f850 ) -
Added operations (
+
and*
) forMobject
(#1667 ) -
Added 4 boolean operations for
VMobject
inmanimlib/mobject/boolean_ops.py
(#1675 )-
Union(*vmobjects, **kwargs)
-
Difference(subject, clip, **kwargs)
-
Intersection(*vmobjects, **kwargs)
-
Exclusion(*vmobjects, **kwargs)
-
-
Added reflectiveness (81c3ae3 )
-
Enabled
glow_factor
onDotCloud
(2c7689e ) -
Added option
-e
to insert embed line from the command line (d065e19 ) -
Improved
point_from_proportion
to account for arc length (0e78027 ) -
Added shortcut
set_backstroke
for setting black background stroke (781a993 ) -
Added
Suface.always_sort_to_camera
(0b898a5 ) -
Added getter methods for specific euler angles (e899604 )
-
Hade
rotation_between_vectors
handle identical/similar vectors (407c53f ) -
Added
Mobject.insert_submobject
method (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
A
in 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_proportion
for graph points (e764da3 ) -
Made sure
Line.set_length
returns self (d2182b9 ) -
Better align
SurfaceMesh
to the corresponding surface polygons (eea3c6b ) -
Match
fix_in_frame
status forFlashAround
mobject (ee1594a ) -
Made sure
Mobject.is_fixed_in_frame
stays updated with uniforms (ba23fbe ) -
Made sure
skip_animations
andstart_at_animation_number
play well together (98b0d26 ) -
Updated progress display for full scene render (f8e6e7d )
-
VectorizedPoint
should 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_on
in 3D (#1592 ) -
Fixed
DecimalNumber
’s scaling issue (#1601 ) -
Fixed bug with common range array used for all coordinate systems (56df154 )
-
Fixed
CoordinateSystem
init bug (8645894 ) -
Fixed bug for single-valued
ValueTracker
(0dc096b ) -
Fixed bug with SVG rectangles (54ad355 )
-
Fixed
DotCloud.set_radii
(d45ea28 ) -
Temporarily fixed bug for
PMobject
array resizing (b543cc0 ) -
Fixed
match_style
(5f878a2 ) -
Fixed negative
path_arc
case (719c81d ) -
Fixed bug with
CoordinateSystem.get_lines_parallel_to_axis
(c726eb7 ) -
Fixed
ComplexPlane
-i display bug (7732d2f )
New features¶
-
Supported the elliptical arc command
A
forSVGMobject
(#1598 ) -
Added
FlashyFadeIn
(#1607 ) -
Save triangulation (#1607 )
-
Added new
Code
mobject (#1625 ) -
Add warnings and use rich to display log (#1637 )
-
Added
VCube
(bd356da ) -
Supported
ValueTracker
to track vectors (6d72893 ) -
Added
set_max_width
,set_max_height
,set_max_depth
toMobject
(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
ImageMoject
remember the filepath to the Image (6cdbe0d )
Refactor¶
-
Changed back to simpler
Mobject.scale
implementation (#1601 ) -
Simplified
Square
(b667db2 ) -
Removed unused parameter
triangulation_locked
(40290ad ) -
Reimplemented
Arrow
(8647a64 ) -
Used
make_approximately_smooth
forset_points_smoothly
by default (d8378d8 ) -
Refactored to call
_handle_scale_side_effects
after scaling takes place (7b4199c ) -
Refactored to only call
throw_error_if_no_points
once forget_start_and_end
(7356a36 ) -
Made sure framerate is 30 for previewed scenes (0787c4f )
-
Pushed
pixel_coords_to_space_coords
toWindow
(c635f19 ) -
Refactored to pass tuples and not arrays to uniforms (d5a88d0 )
-
Refactored to copy uniform arrays in
Mobject.copy
(9483f26 ) -
Added
bounding_box
as 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_points
return 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_triangulation
to 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
VectorField
andStreamLines
-
Allow
3b1b_colormap
as an option forget_colormap_list()
-
Return
stroke_width
as 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
FlashAround
andFlashUnder
-
Allowed configuration in
Brace.get_text
-
Added
reorient()
for quicker changes to frame angle -
Added
units
toset_euler_angles()
-
Allowed any
VMobject
to be passed intoTransformMatchingTex
-
Removed double brace convention in
Tex
andTexText
-
Added support for debugger launch
-
Added CLI flag
--config_file
to load configuration file manually -
Added
tip_style
totip_config
-
Added
MarkupText
-
Take in
u_range
andv_range
as arguments toParametricSurface
-
Added
TrueDot