|
| 1 | +Differences between Manim Versions |
| 2 | +================================== |
| 3 | + |
| 4 | +While originally a single library, there are now three main versions of manim, |
| 5 | +each with their own advantages, disadvantages and ideal use cases. |
| 6 | +It is important to understand these differences in order to select the best version |
| 7 | +for your use case and avoid confusion arising from version mismatches. |
| 8 | + |
| 9 | +A brief history of Manim |
| 10 | +************************ |
| 11 | + |
| 12 | +Manim was originally created by Grant Sanderson as a personal project and |
| 13 | +for use in his YouTube channel, `3Blue1Brown <https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw>`_. As his channel gained popularity, |
| 14 | +many grew to like the style of his animations and wanted to use manim for their own projects. |
| 15 | +However, as manim was only intended for personal use, |
| 16 | +it was very difficult for other users to install and use it. |
| 17 | + |
| 18 | +In late 2019, Grant started working on faster OpenGL rendering in a new branch, |
| 19 | +known as the shaders branch. In mid 2020, a group of developers forked it into what is now the community edition; |
| 20 | +this is the version which is documented by this website. |
| 21 | +In early 2021, Grant merged the shaders branch back into master, making it the default branch in his repository. |
| 22 | +The old version is still available as the branch ``cairo-backend``. |
| 23 | + |
| 24 | +The three versions of Manim |
| 25 | +**************************** |
| 26 | + |
| 27 | +There are currently three main versions of manim. They are as follows: |
| 28 | + |
| 29 | +- **ManimCE**: The community edition of manim. This is the version documented by this website, and is named `manim <https://pypi.org/project/manim/https://pypi.org/project/manim/>`_ on pip. |
| 30 | +- `ManimGL <https://github.com/3b1b/manim>`_: The current version of manim that is used by 3blue1brown. It supports OpenGL rendering and interactivity, and is named ``manimgl`` on pip. You can find documentation for it `here <https://3b1b.github.io/manim/index.html>`_. |
| 31 | +- `ManimCairo <https://github.com/3b1b/manim/tree/cairo-backend>`_: The old version of manim originally used by 3blue1brown. It is not available on pip. |
| 32 | + |
| 33 | +Which version to use |
| 34 | +******************** |
| 35 | +We recommend using the community edition for most purposes, as it has been developed to be more stable, |
| 36 | +better tested, quicker to respond to community contributions, and easier for beginners to use. |
| 37 | +It also has partial experimental OpenGL support, and should have full support shortly (as of April, 2021). |
| 38 | + |
| 39 | +If you would like to use a version with full OpenGL support or render recent 3Blue1Brown videos (2020 onwards), you should use ManimGL. |
| 40 | + |
| 41 | +If you would like to render old 3Blue1Brown projects (2019 and before), you should use ManimCairo. |
| 42 | + |
| 43 | +Notes on installation, documentation and use |
| 44 | +******************************************** |
| 45 | +If you are a beginner, it is very important that you only use the documentation for your desired version. |
| 46 | +Trying to install or learn manim using documentation or guides made for different versions will likely fail and only lead to more confusion. |
| 47 | +As many tutorials and guides on the internet are outdated, we do not recommend you follow them. |
| 48 | +You should only read tutorials and documentation for other versions once you are aware of the differences between them |
| 49 | +and know how to adapt code for your desired version. |
0 commit comments