Experimental Progress Tracker #3817
Labels
breaking changes
This PR introduces breaking changes
help wanted
We would appreciate help on this issue/PR
opengl
Concerning the OpenGL renderer.
refactor
Refactor or redesign of existing code
tracking
Milestone
Experimental Progress Tracking
Tracker issue for rewriting the core of Manim
Before merging into Main
Essentially, what needs to be done in #3112
Manager
(Rewrite Animation Loop #3785)main
intoexperimental
(Merge with main #3815)FileWriter
(Bring in main's FileWriter into experimental #3821)Animation
sScene
subclassesThreeDScene
Camera
ImageMobject
PMobject
(is this even used?)Nice to have
The following would be nice to have, but could also be implemented in follow-up PRs to reduce the diff.
Scene
andManager
Follow-Ups
Timeline Goals
v0.20.0
: Experimental should have most tests passingv0.21.0
: Experimental should be released, and the follow-ups should be in the process of being implemented.But... Why?
Motivation
The current Manim codebase is very entangled.
Additionally, the current implementation of renderers (OpenGL mainly, but Cairo as well) in Manim is unmaintainable. The
OpenGLMobject
contains shaders inside itself! This means in the future if we ever want to allow more types of renderers (e.g.Metal
for MacBooks), we'd have to create a third base Mobject, and a newCamera
, which is just stupid. Instead,*Mobject
s should be renderer independent, and all the renderer specific stuff should be inside a class implementing theRendererProtocol
.New Structure
Here you can see every class has its own responsibilities. The
Camera
is responsible for theFOV
, theScene
for orchestrating animations,Mobject
s have no dependency with the renderer, and theRenderer
only cares about aSceneState
, not the actualScene
.The text was updated successfully, but these errors were encountered: