A deeper look¶
This document will focus on understanding manim’s output files and some of the main command-line flags available.
This tutorial picks up where Quickstart left off, so please read that document before starting this one.
Manim output folders¶
At this point, you have just executed the following command.
manim -pql scene.py SquareToCircle
Let’s dissect what just happened step by step. First, this command executes
manim on the file
scene.py, which contains our animation code. Further,
this command tells manim exactly which
Scene is to be rendered, in this case,
SquareToCircle. This is necessary because a single scene file may
contain more than one scene. Next, the flag -p tells manim to play the scene
once it’s rendered, and the -ql flag tells manim to render the scene in low
After the video is rendered, you will see that manim has generated some new files and the project folder will look as follows.
project/ ├─scene.py └─media ├─videos | └─scene | └─480p15 | ├─SquareToCircle.mp4 | └─partial_movie_files ├─text └─Tex
There are quite a few new files. The main output is in
media/videos/scene/480p15/SquareToCircle.mp4. By default, the
folder will contain all of manim’s output files. The
subfolder contains the rendered videos. Inside of it, you will find one folder
for each different video quality. In our case, since we used the
the video was generated at 480 resolution at 15 frames per second from the
scene.py file. Therefore, the output can be found inside
media/videos/scene/480p15. The additional folders
media/videos/scene/480p15/partial_movie_files as well as
media/Tex contain files that are used by manim internally.
You can see how manim makes use of the generated folder structure by executing the following command,
manim -pqh scene.py SquareToCircle
-ql flag (for low quality) has been replaced by the
-qh flag, for
high quality. Manim will take considerably longer to render this file, and it
will play it once it’s done since we are using the
-p flag. The output
should look like this:
And the folder structure should look as follows.
project/ ├─scene.py └─media ├─videos | └─scene | ├─480p15 | | ├─SquareToCircle.mp4 | | └─partial_movie_files | └─1080p60 | ├─SquareToCircle.mp4 | └─partial_movie_files ├─text └─Tex
Manim has created a new folder
media/videos/1080p60, which corresponds to
the high resolution and the 60 frames per second. Inside of it, you can find
SquareToCircle.mp4, as well as the corresponding
When working on a project with multiple scenes, and trying out multiple resolutions, the structure of the output directories will keep all your videos organized.
Further, manim has the option to output the last frame of a scene, when adding
-s. This is the fastest option to quickly get a preview of a scene.
The corresponding folder structure looks like this:
project/ ├─scene.py └─media ├─images | └─scene | ├─SquareToCircle.png ├─videos | └─scene | ├─480p15 | | ├─SquareToCircle.mp4 | | └─partial_movie_files | └─1080p60 | ├─SquareToCircle.mp4 | └─partial_movie_files ├─text └─Tex
Saving the last frame with
-s can be combined with the flags for different
Some command line flags¶
When executing the command
manim -pql scene.py SquareToCircle
it was necessary to specify which
Scene class to render. This is because a
single file can contain more than one
Scene class. If your file contains
Scene classes, and you want to render them all, you can use the
As discussed previously, the
-ql specifies low render quality. This does
not look very good, but is very useful for rapid prototyping and testing. The
other options that specify render quality are
medium, high, and 4k quality, respectively.
-p flag plays the animation once it is rendered. If you want to open
the file browser at the location of the animation instead of playing it, you
can use the
-f flag. You can also omit these two flags.
Finally, by default manim will output .mp4 files. If you want your animations
in .gif format instead, use the
-i flag. The output files will be in the
same folder as the .mp4 files, and with the same name, but a different file
This was a quick review of some of the most frequent command-line flags. For a thorough review of all flags available, see Configuration.