TBD
This is the first release of manimce after forking from 3b1b/manim. As such, developers have focused on cleaning up and refactoring the codebase while still maintaining backwards compatibility wherever possible.
Add 4k rendering option with the -k
option
High quality rendering has gotten its own short argument (-e
)
Output of ‘manim –help’ has been improved
Implement logging with the rich
library and a logger
object instead of plain ol` prints
Added a flag --dry_run
, which doesn’t write any media
Allow for running manim with python3 -m manim
Refactored Tex Template management. You can now use custom templates with command line args using --tex_template
!
Re-add --save_frames
flag, which will save each frame as a png
Re-introduce manim feature that allows you to type manim code in stdin
if you pass a minus sign (-)
as filename
Added the --custom_folders
flag which yields a simpler output folder structure
Re-implement GIF export with the -i
flag (using this flag outputs ONLY a .gif file, and no .mp4 file)
Added a --verbose
flag
You can save the logs to a file by using --log_to_file
Implement a manim.cfg
config file system, that consolidates the global configuration, the command line argument parsing, and some of the constants defined in constants.py
Added utilities for manipulating Manim’s .cfg
files.
Added a subcommand structure for easier use of utilities managing .cfg
files
Add customizable left and right bracket for Matrix
mobject and set_row_colors
method for matrix mobject
Add AddTeXLetterByLetter
animation
You can now add arrow tips to axes
extend axes a bit at the start and/or end
have invisible axes
highlight the area between two curves
ThreeDScene now supports 3dillusion_camera_rotation
Add z_index
for manipulating depth of Objects on scene.
Add a VDict
class: a VDict
is to a VGroup
what a dict
is to a list
Added Scene-caching feature. Now, if a partial movie file is unchanged in your code, it isn’t rendered again! [HIGHLY UNSTABLE We’re working on it ;)]
Most get_
and set_
methods have been removed in favor of instance attributes and properties
The Container
class has been made into an AbstractBaseClass, i.e. in cannot be instantiated. Instead, use one of its children classes
The TextMobject
and TexMobject
objects have been deprecated, due to their confusing names, in favour of Tex
and MathTex
. You can still, however, continue to use TextMobject
and TexMobject
, albeit with Deprecation Warnings constantly reminding you to switch.
Add a Variable
class for displaying text that continuously updates to reflect the value of a python variable.
Added clearer installation instructions, tutorials, examples, and API reference [WIP]
Initialization of directories has been moved to config.py
, and a bunch of bugs associated to file structure generation have been fixed
Nonfunctional file media_dir.txt
has been removed
Nonfunctional if
statements in scene_file_writer.py
have been removed
Fix a bug where trying to render the example scenes without specifying the scene would show all scene objects in the library
Many Exceptions
have been replaced for more specific exception subclasses
Fixed a couple of subtle bugs in ArcBetweenPoints
Python code formatting is now enforced by using the black
tool
PRs now require two approving code reviews from community devs before they can be merged
Added tests to ensure stuff doesn’t break between commits (For developers) [Uses Github CI, and Pytest]
Add contribution guidelines (for developers)
Added autogenerated documentation with sphinx and autodoc/autosummary [WIP]
Made manim internally use relative imports
Since the introduction of the TexTemplate
class, the files tex_template.tex
and ctex_template.tex
have been removed
Cleanup 3b1b Specific Files
Rename package from manimlib to manim
Move all imports to __init__
, so from manim import *
replaces from manimlib.imports import *
Global dir variable handling has been removed. Instead initialize_directories
, if needed, overrides the values from the cfg files at runtime.