diff --git a/CITATION.cff b/CITATION.cff
index faf8ea68d8..4009ab7ce8 100644
--- a/CITATION.cff
+++ b/CITATION.cff
@@ -4,10 +4,10 @@ authors:
-
name: "The Manim Community Developers"
cff-version: "1.2.0"
-date-released: 2022-04-25
+date-released: 2022-07-13
license: MIT
message: "We acknowledge the importance of good software to support research, and we note that research becomes more valuable when it is communicated effectively. To demonstrate the value of Manim, we ask that you cite Manim in your work."
title: Manim – Mathematical Animation Framework
url: "https://www.manim.community/"
-version: "v0.15.2"
+version: "v0.16.0"
...
diff --git a/docs/i18n/gettext/changelog/0.14.0-changelog.pot b/docs/i18n/gettext/changelog/0.14.0-changelog.pot
index a6c4cb0ae3..d21eb867fd 100644
--- a/docs/i18n/gettext/changelog/0.14.0-changelog.pot
+++ b/docs/i18n/gettext/changelog/0.14.0-changelog.pot
@@ -255,7 +255,7 @@ msgid ":pr:`2415`: Removed instructions on using and installing Docker in README
msgstr ""
#: ../../source/changelog/0.14.0-changelog.rst:114
-msgid ":pr:`2414`: Made improvements to the :doc:`configuration` tutorial"
+msgid ":pr:`2414`: Made improvements to the :doc:`/guides/configuration` tutorial"
msgstr ""
#: ../../source/changelog/0.14.0-changelog.rst:117
diff --git a/docs/i18n/gettext/changelog/0.15.2-changelog.pot b/docs/i18n/gettext/changelog/0.15.2-changelog.pot
new file mode 100644
index 0000000000..404506e0ab
--- /dev/null
+++ b/docs/i18n/gettext/changelog/0.15.2-changelog.pot
@@ -0,0 +1,426 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/changelog/0.15.2-changelog.rst:3
+msgid "v0.15.2"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:0
+msgid "Date"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:5
+msgid "April 25, 2022"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:8
+msgid "Contributors"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:10
+msgid "A total of 33 people contributed to this release. People with a '+' by their names authored a patch for the first time."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:14
+msgid "Bailey Powers +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:15
+#: ../../source/changelog/0.15.2-changelog.rst:44
+msgid "Benjamin Hackl"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:16
+msgid "Dan Walsh +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:17
+msgid "Darigov Research"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:18
+#: ../../source/changelog/0.15.2-changelog.rst:46
+msgid "Darylgolden"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:19
+msgid "David Millard +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:20
+msgid "Hamidreza Hashemi +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:21
+#: ../../source/changelog/0.15.2-changelog.rst:49
+msgid "Jan-Hendrik Müller"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:22
+#: ../../source/changelog/0.15.2-changelog.rst:50
+msgid "Jason Villanueva"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:23
+msgid "Jonathan Alpert +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:24
+msgid "Joy Bhalla"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:25
+msgid "Kian Cross +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:26
+msgid "Luca +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:27
+msgid "Mohsin Shaikh +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:28
+#: ../../source/changelog/0.15.2-changelog.rst:53
+msgid "Naveen M K"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:29
+msgid "Prismo +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:30
+#: ../../source/changelog/0.15.2-changelog.rst:55
+msgid "Ryan McCauley"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:31
+msgid "WillSoltas +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:32
+#: ../../source/changelog/0.15.2-changelog.rst:56
+msgid "ad_chaos"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:33
+msgid "darkways +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:34
+msgid "dawn*squirryl +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:35
+#: ../../source/changelog/0.15.2-changelog.rst:59
+msgid "icedcoffeeee"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:36
+#: ../../source/changelog/0.15.2-changelog.rst:60
+msgid "peaceheis"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:37
+msgid "sparshg"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:38
+msgid "trickypr +"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:41
+msgid "The patches included in this release have been reviewed by the following contributors."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:45
+msgid "Dan Walsh"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:47
+msgid "GameDungeon"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:48
+msgid "Hugues Devimeux"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:51
+msgid "Jonathan Alpert"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:52
+msgid "Luca"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:54
+msgid "Prismo"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:57
+msgid "darkways"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:58
+msgid "hickmott99"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:63
+msgid "Pull requests merged"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:65
+msgid "A total of 39 pull requests were merged for this release."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:68
+msgid "New features"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:74
+msgid ":pr:`1975`: Improved CLI help page styling"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:71
+msgid "Updates dependencies on Click and Cloup libraries for CLI help page styling."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:72
+msgid "Removed the dependency on click-default-group."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:73
+msgid "Added ``no_args_is_help`` parameter for ``manim render`` to allow easy access to help page."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:74
+msgid "Added note to ``manim`` help page epilog on how to access other command help pages."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:77
+msgid ":pr:`2404`: Add :class:`.SpiralIn` Animation"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:77
+msgid "Make :class:`.ManimBanner` to use :class:`.SpiralIn`."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:79
+msgid ":pr:`2534`: Implement :class:`~.OpenGLImageMobject`"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:82
+msgid ":pr:`2684`: Created a more accessible way to create Angles with line.py angle function - :meth:`.Angle.from_three_points`"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:86
+msgid "Enhancements"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:88
+msgid ":pr:`2062`: Reuse shader wrappers and shader data"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:92
+msgid ":pr:`2642`: Migrated ``file_ops.py`` and ``scene_file_writer.py`` from os.path to Pathlib"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:92
+msgid "In ``file_ops.py`` and ``scene_file_writer.py``: Uses of str type file names have been mostly (see further information) converted to pathlib's Path objects. Uses of ``os.path`` methods have been converted to equivalent pathlib methods."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:94
+msgid ":pr:`2655`: Fix :func:`.assert_is_mobject_method` when using OpenGL"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:97
+msgid ":pr:`2665`: Improved handling of attributes when using the ``.animate`` syntax"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:102
+msgid ":pr:`2674`: Document and type ``simple_functions.py``"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:101
+msgid "Add documentation for ``simple_functions.py``."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:102
+msgid "Small additions with some extra clarity for these functions."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:105
+msgid ":pr:`2693`: Allow using :meth:`.MovingCamera.auto_zoom` without animation"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:105
+msgid "Allows auto zooming camera without having to play an animation by passing an ``animation=False`` argument"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:108
+msgid "Fixed bugs"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:110
+msgid ":pr:`2546`: Fixed a file logging bug and some maintenance"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:116
+msgid ":pr:`2597`: Fix Bug in :class:`.Uncreate` with ``rate_func`` via introducing new parameter ``reversed`` to :class:`.Animation`"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:114
+msgid "Refractor the :class:`.Uncreate`. The new implementation uses a flag member ``reversed``. Set it to ``True`` and its superclass handles the reverse."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:115
+msgid "Introduce a bool parameter ``reversed`` to :class:`.Animation`. It decides whether the animation needs to be played backwards. Default to be False."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:116
+msgid "Add conditional branches in :meth:`.Animation.get_sub_alpha`. If the parameter ``reversed`` is True, it would set ``rate_func(t)`` to ``rate_func(1 - t)``."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:118
+msgid ":pr:`2613`: Fixed bug in :meth:`.Circle.point_at_angle` when the angle is not in the interval :math:`[0, 2\\pi]`"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:121
+msgid ":pr:`2634`: Fix background lines drawn twice in :class:`.NumberPlane`"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:124
+msgid ":pr:`2648`: Handle user-defined centers for Wiggle animation"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:128
+msgid ":pr:`2658`: Fix arguments of overridden ``set_style`` for :class:`.BackgroundRectangle`"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:128
+msgid "Using :class:`.Write` animation on a :class:`.Text` object with ``.add_background_rectangle()`` applied no longer generates a ``TypeError``."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:130
+msgid ":pr:`2668`: (Re)set background color of :class:`.OpenGLRenderer` when initializing scene"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:133
+msgid ":pr:`2676`: Fixed propagation of custom attributes in animations for the OpenGL renderer"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:136
+msgid ":pr:`2688`: Fixed two minor issues of :class:`.SpiralIn` and :class:`.ManimBanner`"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:140
+msgid "Documentation-related changes"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:142
+msgid ":pr:`2609`: Copyedit troubleshooting.rst"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:145
+msgid ":pr:`2610`: Add example PolygonOnAxes"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:148
+msgid ":pr:`2617`: Re-added :mod:`.value_tracker` documentation"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:151
+msgid ":pr:`2619`: Improve Example for arrange_in_grid"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:154
+msgid ":pr:`2620`: Fixed typo in :meth:`.Animation.is_introducer`"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:158
+msgid ":pr:`2640`: Copyedited Documentation"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:158
+msgid "Reviewed ``tutorials/configurations.rst``. Edited simple mistakes such as Manim not being capitalized and commas."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:160
+msgid ":pr:`2649`: Document and type utils/iterables.py"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:163
+msgid ":pr:`2651`: Update copyright year in documentation to 2020-2022"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:165
+msgid ":pr:`2663`: Added documentation for scene updater functions"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:168
+msgid ":pr:`2686`: Add instructions to install extra dependencies with poetry"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:172
+msgid "Changes to our development infrastructure"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:174
+msgid ":pr:`2561`: Run tests on Linux-aarch64"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:177
+msgid ":pr:`2656`: Fixed incompatibility with black version"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:181
+msgid "Code quality improvements and similar refactors"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:184
+msgid ":pr:`2630`: Remove WebGL renderer"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:184
+msgid "The WebGL renderer is broken and unmaintained. The support for it in Manim is removed."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:186
+msgid ":pr:`2652`: Update ``cloup`` version to 0.13.0 from 0.7.0"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:189
+msgid ":pr:`2678`: Require ``backports-cached-property`` only for Python < 3.8"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:193
+msgid ":pr:`2685`: Migrate from ``os.path`` to ``pathlib`` in testing scripts"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:193
+msgid "This pull request changes a number of instances of ``os.path`` to Pathlib objects and functions. In addition, this PR modifies the SVGMobject constructor to accept both a Pathlib object or a string variable pathname its constructor."
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:195
+msgid ":pr:`2691`: Removed :class:`CameraFrame`"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:198
+msgid ":pr:`2696`: Made changelog generation run in parallel plus further improvements to ``scripts/dev_changelog.py``"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:201
+msgid ":pr:`2697`: Sort PRs by number in changelog sections before writing"
+msgstr ""
+
+#: ../../source/changelog/0.15.2-changelog.rst:205
+msgid "New releases"
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/changelog/0.16.0-changelog.pot b/docs/i18n/gettext/changelog/0.16.0-changelog.pot
new file mode 100644
index 0000000000..342965b5ef
--- /dev/null
+++ b/docs/i18n/gettext/changelog/0.16.0-changelog.pot
@@ -0,0 +1,501 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/changelog/0.16.0-changelog.rst:3
+msgid "v0.16.0"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:0
+msgid "Date"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:5
+msgid "July 13, 2022"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:8
+msgid "Contributors"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:10
+msgid "A total of 44 people contributed to this release. People with a '+' by their names authored a patch for the first time."
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:14
+#: ../../source/changelog/0.16.0-changelog.rst:51
+msgid "Alex Lembcke"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:15
+msgid "Baroudi Aymen +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:16
+#: ../../source/changelog/0.16.0-changelog.rst:52
+msgid "Benjamin Hackl"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:17
+msgid "Charalampos Georgiou +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:18
+msgid "Cindy Park +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:19
+msgid "Ejar +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:20
+msgid "Francesco Frassinelli +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:21
+msgid "Francisco Manríquez Novoa +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:22
+msgid "Jacob Evan Shreve +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:23
+msgid "Jaime Santos +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:24
+#: ../../source/changelog/0.16.0-changelog.rst:58
+msgid "Jonathan Alpert"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:25
+msgid "Joshua Mankelow +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:26
+msgid "Kevin Lubick +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:27
+#: ../../source/changelog/0.16.0-changelog.rst:60
+msgid "Laith Bahodi"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:28
+msgid "Lingren Kong +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:29
+msgid "Logen +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:30
+#: ../../source/changelog/0.16.0-changelog.rst:61
+msgid "Naveen M K"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:31
+msgid "Noam Zaks"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:32
+msgid "Pedro Lamkowski +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:33
+#: ../../source/changelog/0.16.0-changelog.rst:64
+msgid "Raghav Goel"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:34
+msgid "Simeon Widdis"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:35
+#: ../../source/changelog/0.16.0-changelog.rst:66
+msgid "Sparsh Goenka"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:36
+msgid "TornaxO7 +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:37
+msgid "Tristan Schulz +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:38
+msgid "WillSoltas"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:39
+#: ../../source/changelog/0.16.0-changelog.rst:69
+msgid "ad_chaos"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:40
+msgid "conor-oneill-2 +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:41
+msgid "fcrozatier +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:42
+msgid "mooncaker816 +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:43
+msgid "niklebedenko +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:44
+msgid "nyabkun +"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:45
+msgid "quark67"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:48
+msgid "The patches included in this release have been reviewed by the following contributors."
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:53
+msgid "Darylgolden"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:54
+msgid "Francesco Frassinelli"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:55
+msgid "Francisco Manríquez Novoa"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:56
+msgid "Gianluca Gippetto"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:57
+msgid "Jan-Hendrik Müller"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:59
+msgid "Kevin Lubick"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:62
+msgid "Pedro Lamkowski"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:63
+msgid "Philipp Imhof"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:65
+msgid "Ryan McCauley"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:67
+msgid "TornaxO7"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:68
+msgid "Tristan Schulz"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:70
+msgid "hickmott99"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:73
+msgid "Pull requests merged"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:75
+msgid "A total of 56 pull requests were merged for this release."
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:78
+msgid "Highlights"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:82
+msgid ":pr:`2550`: New thematic guide: a deep dive into the internals of the library"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:81
+msgid "This new :doc:`thematic guide ` aims to be a comprehensive walkthrough describing all the things that Manim does when you run it to produce a video."
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:84
+msgid ":pr:`2732`: Improved overall structure of deployed documentation; added a dedicated :doc:`FAQ section `"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:90
+msgid ":pr:`2749`: Added :class:`.ChangeSpeed`, an animation wrapper that allows to smoothly change the speed at which an animation is played"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:88
+msgid "The speed of any animation can be changed by wrapping the animation with :class:`.ChangeSpeed` and passing a dictionary as ``speedinfo`` whose keys are the relative animation run time stamps and whose values are the absolute speed factors; e.g., ``{0.5: 2, 0.75: 0.25}`` smoothly speeds up the animation by a factor of 2 once it has been completed to 50%, and then it is smoothly slowed down to 1/4 of the default run speed after 75% of the animation are completed. The ``run_time`` of the animation will be adjusted to match the changed play speed."
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:90
+msgid "It is also possible to add time-based updaters that respect the change in speed, use the auxiliary :meth:`.ChangeSpeed.add_updater` method to do so."
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:93
+msgid "New features"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:95
+msgid ":pr:`2667`: Made FFmpeg executable path configurable"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:98
+msgid ":pr:`2739`: Added vectorized plotting functionality via keyword argument ``use_vectorized`` to improve performance"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:102
+msgid "Enhancements"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:104
+msgid ":pr:`2186`: Enabled filling color by value for :class:`.OpenGLSurface`, replaced ``colors`` keyword argument of :meth:`.Surface.set_fill_by_value` with ``colorscale``"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:107
+msgid ":pr:`2288`: Added warning when attempting to add same mobject as child twice"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:112
+msgid ":pr:`2707`: Fixed missing ``get_nth_curve_length_pieces`` method of :class:`.OpenGLVMobject`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:111
+msgid "Removed duplicate definition of ``get_curve_functions_with_lengths`` in ``OpenGLVMobject``"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:112
+msgid "Added definition of ``get_nth_curve_length_pieces`` to ``OpenGLVMobject``"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:114
+msgid ":pr:`2709`: Improved the look of the brackets of :class:`.Matrix`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:117
+msgid ":pr:`2714`: Fixed :meth:`.OpenGLVMobject.pointwise_become_partial` to improve stroke rendering"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:120
+msgid ":pr:`2727`: Slight performance improvement for :class:`.ArrowVectorField` and Bézier curve computation"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:123
+msgid ":pr:`2728`: Added :meth:`.VectorField.fit_to_coordinate_system` to fit a vector field to a given coordinate system"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:126
+msgid ":pr:`2730`: Added note to let users find documentation of default CLI subcommand easier"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:129
+msgid ":pr:`2746`: Installed ghostscript in the docker image"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:132
+msgid ":pr:`2841`: Added :func:`.split_quadratic_bezier` and :func:`.subdivide_quadratic_bezier`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:135
+msgid ":pr:`2842`: CLI: Moved functionality from ``manim new`` to ``manim init`` and added deprecation warning for ``manim new``"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:138
+msgid ":pr:`2866`: Reorganize test files to match library module structure"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:142
+msgid "Fixed bugs"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:144
+msgid ":pr:`2567`: Use tempconfig for every scene render"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:147
+msgid ":pr:`2638`: Fixed :meth:`BarChart.change_bar_values` not updating when height is 0"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:150
+msgid ":pr:`2661`: Fixed tip resize functionality for :class:`.Axes` to match documentation"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:153
+msgid ":pr:`2703`: Default to utf-8 when reading files in :class:`.Code`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:156
+msgid ":pr:`2721`: Fixed bad text slicing for lines in :class:`.Paragraph`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:159
+msgid ":pr:`2725`: Fixed wrong indentation in :class:`.Code`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:162
+msgid ":pr:`2734`: Fixed OpenGL segfaults when running :meth:`.Scene.play` or :meth:`.Scene.wait` in interactive mode"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:165
+msgid ":pr:`2753`: Fixed multiplatform builds for docker images in pipeline"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:168
+msgid ":pr:`2757`: Added missing ``__init__.py`` file in :mod:`.docbuild` module"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:171
+msgid ":pr:`2770`: Fixed bug in :meth:`.VMobject.proportion_from_point` that caused proportions greater than 1 to be returned"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:174
+msgid ":pr:`2826`: Fixed leaked mobjects coming from :class:`.TransformMatchingAbstractBase`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:177
+msgid ":pr:`2870`: Fixed issue with ``manim init scene SCENE_NAME filename.py`` and removed necessity of ``main.py`` to be present in working directory"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:181
+msgid "Documentation-related changes"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:183
+msgid ":pr:`2704`: Updated URL to Pango Markup formatting page"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:186
+msgid ":pr:`2716`: Improved the order of the reference manuals"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:189
+msgid ":pr:`2720`: Fixed typo in docstring of :class:`.Angle`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:192
+msgid ":pr:`2722`: Fixed typos in docstrings of classes in :mod:`.mobject.table`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:195
+msgid ":pr:`2726`: Edited note on :class:`.NumberPlane` length and added another example"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:198
+msgid ":pr:`2740`: Fixed documentation of :meth:`.Cylinder.get_direction`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:201
+msgid ":pr:`2755`: Fixed docstring of :meth:`.VMobject.get_end_anchors`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:204
+msgid ":pr:`2760`: Removed ``cmake`` from the MacOS installation section"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:207
+msgid ":pr:`2767`: Added more questions and answers to FAQ section, new :doc:`OpenGL FAQ `"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:210
+msgid ":pr:`2771`: Added documentation and testing for ``path_func`` keyword argument of :class:`.Transform`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:213
+msgid ":pr:`2828`: Removed suggestion issue template, added FAQ answer regarding proposing new features"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:216
+msgid ":pr:`2849`: Added example for ``path_arc`` keyword argument of :class:`.Transform`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:219
+msgid ":pr:`2851`: Added an example on constructing a (neural) network using a partite :class:`.Graph`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:222
+msgid ":pr:`2855`: Added implicit ``docker.io/`` URL base in reference to docker images"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:225
+msgid ":pr:`2861`: Added docstring for :meth:`.CoordinateSystem.plot_parametric_curve`"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:229
+msgid "Changes concerning the testing system"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:231
+msgid ":pr:`2743`: Replaced ``assert`` statements with with assertion functions from ``np.testing``"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:235
+msgid "Changes to our development infrastructure"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:237
+msgid ":pr:`2700`: CI: updated Python versions"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:240
+msgid ":pr:`2701`: CI: added a workflow to publish docker image after releases and commits to main branch"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:244
+msgid "Code quality improvements and similar refactors"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:246
+msgid ":pr:`2680`: Increased minimum required version of ``numpy`` to 1.19"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:249
+msgid ":pr:`2687`: Migrated from ``os.path`` to ``pathlib`` in :class:`.SVGMobject` and other locations"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:252
+msgid ":pr:`2715`: Updated deprecated ``pillow`` constants"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:255
+msgid ":pr:`2735`: Bump pyjwt from 2.3.0 to 2.4.0"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:258
+msgid ":pr:`2748`: Bump pillow from 9.1.0 to 9.1.1"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:261
+msgid ":pr:`2751`: Fixed flake C417 and improved a comment"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:264
+msgid ":pr:`2825`: Bump notebook from 6.4.11 to 6.4.12"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:267
+msgid ":pr:`2864`: Updated lockfile"
+msgstr ""
+
+#: ../../source/changelog/0.16.0-changelog.rst:271
+msgid "New releases"
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/conduct.pot b/docs/i18n/gettext/conduct.pot
index 924b2161e7..82654e3b00 100644
--- a/docs/i18n/gettext/conduct.pot
+++ b/docs/i18n/gettext/conduct.pot
@@ -11,7 +11,7 @@ msgid "Code of Conduct"
msgstr ""
#: ../../source/conduct.md:7
-msgid "TL;DR Be excellent to each other; we're a community after all. If you run into issues with others in our community, please contact a Manim Community Dev, or Moderator."
+msgid "TL;DR Be excellent to each other; we're a community after all. If you run into issues with others in our community, please [contact](https://www.manim.community/discord/) a Manim Community Dev, or Moderator."
msgstr ""
#: ../../source/conduct.md:9
@@ -31,31 +31,31 @@ msgid "Members of Manim Community are respectful, open, and considerate. Behavio
msgstr ""
#: ../../source/conduct.md:19
-msgid "Being respectful. Respectful of others, their positions, experiences, viewpoints, skills, commitments, time, and efforts."
+msgid "**Being respectful.** Respectful of others, their positions, experiences, viewpoints, skills, commitments, time, and efforts."
msgstr ""
#: ../../source/conduct.md:21
-msgid "Being open. Open to collaboration, whether it's on problems, Pull Requests, issues, or otherwise."
+msgid "**Being open.** Open to collaboration, whether it's on problems, Pull Requests, issues, or otherwise."
msgstr ""
#: ../../source/conduct.md:23
-msgid "Being considerate. Considerate of their peers -- other Manim users and developers."
+msgid "**Being considerate.** Considerate of their peers -- other Manim users and developers."
msgstr ""
#: ../../source/conduct.md:25
-msgid "Focusing on what is best for the community. We're respectful of the processes set forth in the community, and we work within them."
+msgid "**Focusing on what is best for the community.** We're respectful of the processes set forth in the community, and we work within them."
msgstr ""
#: ../../source/conduct.md:27
-msgid "Showing empathy towards other community members. We're attentive in our communications, whether in person or online, and we're tactful when approaching differing views."
+msgid "**Showing empathy towards other community members.** We're attentive in our communications, whether in person or online, and we're tactful when approaching differing views."
msgstr ""
#: ../../source/conduct.md:29
-msgid "Gracefully accepting constructive criticism. When we disagree, we are courteous in raising our issues."
+msgid "**Gracefully accepting constructive criticism.** When we disagree, we are courteous in raising our issues."
msgstr ""
#: ../../source/conduct.md:31
-msgid "Using welcoming and inclusive language. We're accepting of all who wish to take part in our activities, fostering an environment where anyone can participate and everyone can make a difference."
+msgid "**Using welcoming and inclusive language.** We're accepting of all who wish to take part in our activities, fostering an environment where anyone can participate and everyone can make a difference."
msgstr ""
#: ../../source/conduct.md:35
@@ -147,19 +147,19 @@ msgid "This Code of Conduct applies to the following online spaces:"
msgstr ""
#: ../../source/conduct.md:69
-msgid "The ManimCommunity GitHub Organization and all of its repositories"
+msgid "The [ManimCommunity GitHub Organization](https://github.com/ManimCommunity) and all of its repositories"
msgstr ""
#: ../../source/conduct.md:71
-msgid "The Manim Discord"
+msgid "The Manim [Discord](https://www.manim.community/discord/)"
msgstr ""
#: ../../source/conduct.md:73
-msgid "The Manim Reddit"
+msgid "The Manim [Reddit](https://www.reddit.com/r/manim/)"
msgstr ""
#: ../../source/conduct.md:75
-msgid "The Manim Twitter"
+msgid "The Manim [Twitter](https://twitter.com/manim\\_community/)"
msgstr ""
#: ../../source/conduct.md:77
@@ -211,7 +211,7 @@ msgid "Contact Information"
msgstr ""
#: ../../source/conduct.md:107
-msgid "If you believe someone is violating the code of conduct, or have any other concerns, please contact a Manim Community Dev, or Moderator immediately. They can be reached on Manim's Community Discord."
+msgid "If you believe someone is violating the code of conduct, or have any other concerns, please contact a Manim Community Dev, or Moderator immediately. They can be reached on Manim's Community [Discord](https://www.manim.community/discord/)."
msgstr ""
#: ../../source/conduct.md:117
@@ -323,11 +323,11 @@ msgid "Jurisdiction"
msgstr ""
#: ../../source/conduct.md:165
-msgid "Is this a Code of Conduct violation? Is this behavior on our list of inappropriate behavior? Is it borderline inappropriate behavior? Does it violate our community norms?"
+msgid "*Is this a Code of Conduct violation?* Is this behavior on our list of inappropriate behavior? Is it borderline inappropriate behavior? Does it violate our community norms?"
msgstr ""
#: ../../source/conduct.md:166
-msgid "Did this occur in a space that is within our Code of Conduct's scope? If the incident occurred outside the community, but a community member's mental health or physical safety may be negatively impacted if no action is taken, the incident may be in scope. Private conversations in community spaces are also in scope."
+msgid "*Did this occur in a space that is within our Code of Conduct's scope?* If the incident occurred outside the community, but a community member's mental health or physical safety may be negatively impacted if no action is taken, the incident may be in scope. Private conversations in community spaces are also in scope."
msgstr ""
#: ../../source/conduct.md:167
@@ -335,15 +335,15 @@ msgid "Impact"
msgstr ""
#: ../../source/conduct.md:169
-msgid "Did this incident occur in a private conversation or a public space? Incidents that all community members can see will have a more negative impact."
+msgid "*Did this incident occur in a private conversation or a public space?* Incidents that all community members can see will have a more negative impact."
msgstr ""
#: ../../source/conduct.md:170
-msgid "Does this behavior negatively impact a marginalized group in our community? Is the reporter a person from a marginalized group in our community? How is the reporter being negatively impacted by the reported person's behavior? Are members of the marginalized group likely to disengage with the community if no action was taken on this report?"
+msgid "*Does this behavior negatively impact a marginalized group in our community?* Is the reporter a person from a marginalized group in our community? How is the reporter being negatively impacted by the reported person's behavior? Are members of the marginalized group likely to disengage with the community if no action was taken on this report?"
msgstr ""
#: ../../source/conduct.md:171
-msgid "Does this incident involve a community leader? Community members often look up to community leaders to set the standard of acceptable behavior"
+msgid "*Does this incident involve a community leader?* Community members often look up to community leaders to set the standard of acceptable behavior"
msgstr ""
#: ../../source/conduct.md:172
@@ -351,15 +351,15 @@ msgid "Risk"
msgstr ""
#: ../../source/conduct.md:174
-msgid "Does this incident include sexual harassment?"
+msgid "*Does this incident include sexual harassment?*"
msgstr ""
#: ../../source/conduct.md:175
-msgid "Does this pose a safety risk? Does the behavior put a person's physical safety at risk? Will this incident severely negatively impact someone's mental health?"
+msgid "*Does this pose a safety risk?* Does the behavior put a person's physical safety at risk? Will this incident severely negatively impact someone's mental health?"
msgstr ""
#: ../../source/conduct.md:176
-msgid "Is there a risk of this behavior being repeated? Does the reported person understand why their behavior was inappropriate? Is there an established pattern of behavior from past reports?"
+msgid "*Is there a risk of this behavior being repeated?* Does the reported person understand why their behavior was inappropriate? Is there an established pattern of behavior from past reports?"
msgstr ""
#: ../../source/conduct.md:179
@@ -479,15 +479,15 @@ msgid "When discussing a change to the Manim Community code of conduct or enforc
msgstr ""
#: ../../source/conduct.md:241
-msgid "Brainstorm options. Team members should discuss any relevant context and brainstorm a set of possible options. It is important to provide constructive feedback without getting side-tracked from the main question."
+msgid "**Brainstorm options.** Team members should discuss any relevant context and brainstorm a set of possible options. It is important to provide constructive feedback without getting side-tracked from the main question."
msgstr ""
#: ../../source/conduct.md:242
-msgid "Vote. Proposed changes to the code of conduct will be decided by a two-thirds majority of all voting members of the Code of Conduct team. Team members are listed in the charter. Currently active voting members are listed in the following section."
+msgid "**Vote.** Proposed changes to the code of conduct will be decided by a two-thirds majority of all voting members of the Code of Conduct team. Team members are listed in the charter. Currently active voting members are listed in the following section."
msgstr ""
#: ../../source/conduct.md:243
-msgid "Board Vote. Once a working draft is in place for the Code of Conduct and procedures, the Code of Conduct team shall provide the Manim Community Moderators with a draft of the changes. The Manim Community Moderators will vote on the changes at a board meeting."
+msgid "**Board Vote.** Once a working draft is in place for the Code of Conduct and procedures, the Code of Conduct team shall provide the Manim Community Moderators with a draft of the changes. The Manim Community Moderators will vote on the changes at a board meeting."
msgstr ""
#: ../../source/conduct.md:246
@@ -503,7 +503,7 @@ msgid "License"
msgstr ""
#: ../../source/conduct.md:254
-msgid "This Code of Conduct is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License."
+msgid "This Code of Conduct is licensed under the [Creative Commons Attribution-ShareAlike 3.0 Unported License](https://creativecommons.org/licenses/by-sa/3.0/)."
msgstr ""
#: ../../source/conduct.md:258
diff --git a/docs/i18n/gettext/contributing.pot b/docs/i18n/gettext/contributing.pot
index 4f7b8a936a..b26b14ef44 100644
--- a/docs/i18n/gettext/contributing.pot
+++ b/docs/i18n/gettext/contributing.pot
@@ -11,7 +11,7 @@ msgid "Contributing"
msgstr ""
#: ../../source/contributing.rst:5
-msgid "Manim is currently undergoing a major refactor. In general, contributions implementing new features will not be accepted in this period. Other contributions unrelated to cleaning up the codebase may also take a longer period of time to be reviewed. This guide may quickly become outdated quickly; we highly recommend joining our `Discord server `_ to discuss any potential contributions and keep up to date with the latest developments."
+msgid "Manim is currently undergoing a major refactor. In general, contributions implementing new features will not be accepted in this period. Other contributions unrelated to cleaning up the codebase may also take a longer period of time to be reviewed. This guide may quickly become outdated quickly; we highly recommend joining our `Discord server `__ to discuss any potential contributions and keep up to date with the latest developments."
msgstr ""
#: ../../source/contributing.rst:12
@@ -50,7 +50,11 @@ msgstr ""
msgid "Translating documentation and docstrings"
msgstr ""
-#: ../../source/contributing.rst:31
+#: ../../source/contributing.rst:30
+msgid "To get an overview of what our community is currently working on, check out `our development project board `__."
+msgstr ""
+
+#: ../../source/contributing.rst:34
msgid "Please ensure that you are reading the latest version of this guide by ensuring that \"latest\" is selected in the version switcher."
msgstr ""
diff --git a/docs/i18n/gettext/contributing/development.pot b/docs/i18n/gettext/contributing/development.pot
index c624d1807e..2ee98c893c 100644
--- a/docs/i18n/gettext/contributing/development.pot
+++ b/docs/i18n/gettext/contributing/development.pot
@@ -75,202 +75,202 @@ msgid "If you choose to use Poetry as well, follow `Poetry's installation guidel
msgstr ""
#: ../../source/contributing/development.rst:69
+msgid "In case you want to install extra dependencies that are defined in the ``[tool.poetry.extras]`` section of ``pyproject.toml``, this can be done by passing the ``-E`` flag, for example ``poetry install -E jupyterlab -E gui``."
+msgstr ""
+
+#: ../../source/contributing/development.rst:73
msgid "In case you decided against Poetry, you can install Manim via pip by running ``python3 -m pip install .``. Note that due to our development infrastructure being based on Poetry, we currently do not support editable installs via ``pip``, so you will have to re-run this command every time you make changes to the source code."
msgstr ""
-#: ../../source/contributing/development.rst:78
+#: ../../source/contributing/development.rst:82
msgid "The following steps assume that you chose to install and work with Poetry."
msgstr ""
-#: ../../source/contributing/development.rst:81
+#: ../../source/contributing/development.rst:85
msgid "Install Pre-Commit:"
msgstr ""
-#: ../../source/contributing/development.rst:87
+#: ../../source/contributing/development.rst:91
msgid "This will ensure during development that each of your commits is properly formatted against our linter and formatters, ``black``, ``flake8``, ``isort`` and ``codespell``."
msgstr ""
-#: ../../source/contributing/development.rst:91
+#: ../../source/contributing/development.rst:95
msgid "You are now ready to work on manim!"
msgstr ""
-#: ../../source/contributing/development.rst:94
+#: ../../source/contributing/development.rst:98
msgid "Develop your contribution"
msgstr ""
-#: ../../source/contributing/development.rst:96
+#: ../../source/contributing/development.rst:100
msgid "Checkout your local repository's main branch and pull the latest changes from ManimCommunity, ``upstream``, into your local repository:"
msgstr ""
-#: ../../source/contributing/development.rst:104
+#: ../../source/contributing/development.rst:108
msgid "Create a branch for the changes you want to work on rather than working off of your local main branch:"
msgstr ""
-#: ../../source/contributing/development.rst:111
+#: ../../source/contributing/development.rst:115
msgid "This ensures you can easily update your local repository's main with the first step and switch branches to work on multiple features."
msgstr ""
-#: ../../source/contributing/development.rst:114
+#: ../../source/contributing/development.rst:118
msgid "Write some awesome code!"
msgstr ""
-#: ../../source/contributing/development.rst:116
+#: ../../source/contributing/development.rst:120
msgid "You're ready to make changes in your local repository's branch. You can add local files you've changed within the current directory with ``git add .``, or add specific files with"
msgstr ""
-#: ../../source/contributing/development.rst:124
+#: ../../source/contributing/development.rst:128
msgid "and commit these changes to your local history with ``git commit``. If you have installed pre-commit, your commit will succeed only if none of the hooks fail."
msgstr ""
-#: ../../source/contributing/development.rst:130
+#: ../../source/contributing/development.rst:134
msgid "When crafting commit messages, it is highly recommended that you adhere to `these guidelines `_."
msgstr ""
-#: ../../source/contributing/development.rst:133
+#: ../../source/contributing/development.rst:137
msgid "Add new or update existing tests."
msgstr ""
-#: ../../source/contributing/development.rst:135
+#: ../../source/contributing/development.rst:139
msgid "Depending on your changes, you may need to update or add new tests. For new features, it is required that you include tests with your PR. Details of our testing system are explained in the :doc:`testing guide `."
msgstr ""
-#: ../../source/contributing/development.rst:140
+#: ../../source/contributing/development.rst:144
msgid "Update docstrings and documentation:"
msgstr ""
-#: ../../source/contributing/development.rst:142
+#: ../../source/contributing/development.rst:146
msgid "Update the docstrings (the text in triple quotation marks) of any functions or classes you change and include them with any new functions you add. See the :doc:`documentation guide ` for more information about how we prefer our code to be documented. The content of the docstrings will be rendered in the :doc:`reference manual <../reference>`."
msgstr ""
-#: ../../source/contributing/development.rst:150
+#: ../../source/contributing/development.rst:154
msgid "Use the :mod:`manim directive for Sphinx ` to add examples to the documentation!"
msgstr ""
-#: ../../source/contributing/development.rst:156::1
-msgid "A directive for including Manim videos in a Sphinx document"
-msgstr ""
-
-#: ../../source/contributing/development.rst:158
+#: ../../source/contributing/development.rst:157
msgid "As far as development on your local machine goes, these are the main steps you should follow."
msgstr ""
-#: ../../source/contributing/development.rst:162
+#: ../../source/contributing/development.rst:161
msgid "Polishing Changes and Submitting a Pull Request"
msgstr ""
-#: ../../source/contributing/development.rst:164
+#: ../../source/contributing/development.rst:163
msgid "As soon as you are ready to share your local changes with the community so that they can be discussed, go through the following steps to open a pull request. A pull request signifies to the ManimCommunity organization, \"Here are some changes I wrote; I think it's worthwhile for you to maintain them.\""
msgstr ""
-#: ../../source/contributing/development.rst:172
+#: ../../source/contributing/development.rst:171
msgid "You do not need to have everything (code/documentation/tests) complete to open a pull request (PR). If the PR is still under development, please mark it as a draft. Community developers will still be able to review the changes, discuss yet-to-be-implemented changes, and offer advice; however, the more complete your PR, the quicker it will be merged."
msgstr ""
-#: ../../source/contributing/development.rst:178
+#: ../../source/contributing/development.rst:177
msgid "Update your fork on GitHub to reflect your local changes:"
msgstr ""
-#: ../../source/contributing/development.rst:184
+#: ../../source/contributing/development.rst:183
msgid "Doing so creates a new branch on your remote fork, ``origin``, with the contents of your local repository on GitHub. In subsequent pushes, this local branch will track the branch ``origin`` and ``git push`` is enough."
msgstr ""
-#: ../../source/contributing/development.rst:189
+#: ../../source/contributing/development.rst:188
msgid "Make a pull request (PR) on GitHub."
msgstr ""
-#: ../../source/contributing/development.rst:191
+#: ../../source/contributing/development.rst:190
msgid "In order to make the ManimCommunity development team aware of your changes, you can make a PR to the ManimCommunity repository from your fork."
msgstr ""
-#: ../../source/contributing/development.rst:196
+#: ../../source/contributing/development.rst:195
msgid "Make sure to select ``ManimCommunity/manim`` instead of ``3b1b/manim`` as the base repository!"
msgstr ""
-#: ../../source/contributing/development.rst:199
+#: ../../source/contributing/development.rst:198
msgid "Choose the branch from your fork as the head repository - see the screenshot below."
msgstr ""
-#: ../../source/contributing/development.rst:205
+#: ../../source/contributing/development.rst:204
msgid "Please make sure you follow the template (this is the default text you are shown when first opening the 'New Pull Request' page)."
msgstr ""
-#: ../../source/contributing/development.rst:209
+#: ../../source/contributing/development.rst:208
msgid "Your changes are eligible to be merged if:"
msgstr ""
-#: ../../source/contributing/development.rst:211
+#: ../../source/contributing/development.rst:210
msgid "there are no merge conflicts"
msgstr ""
-#: ../../source/contributing/development.rst:212
+#: ../../source/contributing/development.rst:211
msgid "the tests in our pipeline pass"
msgstr ""
-#: ../../source/contributing/development.rst:213
+#: ../../source/contributing/development.rst:212
msgid "at least one (two for more complex changes) Community Developer approves the changes"
msgstr ""
-#: ../../source/contributing/development.rst:215
+#: ../../source/contributing/development.rst:214
msgid "You can check for merge conflicts between the current upstream/main and your branch by executing ``git pull upstream main`` locally. If this generates any merge conflicts, you need to resolve them and push an updated version of the branch to your fork of the repository."
msgstr ""
-#: ../../source/contributing/development.rst:220
+#: ../../source/contributing/development.rst:219
msgid "Our pipeline consists of a series of different tests that ensure that manim still works as intended and that the code you added sticks to our coding conventions."
msgstr ""
-#: ../../source/contributing/development.rst:224
+#: ../../source/contributing/development.rst:223
msgid "**Code style**: We use the code style imposed by `Black `_, `isort `_ and `flake8 `_. The GitHub pipeline makes sure that the (Python) files changed in your pull request also adhere to this code style. If this step of the pipeline fails, fix your code formatting automatically by running ``black `` and ``isort ``. To fix code style problems, run ``flake8 `` for a style report, and then fix the problems manually that were detected by ``flake8``."
msgstr ""
-#: ../../source/contributing/development.rst:233
+#: ../../source/contributing/development.rst:232
msgid "**Tests**: The pipeline runs manim's test suite on different operating systems (the latest versions of Ubuntu, MacOS, and Windows) for different versions of Python. The test suite consists of two different kinds of tests: integration tests and doctests. You can run them locally by executing ``poetry run pytest`` and ``poetry run pytest --doctest-modules manim``, respectively, from the root directory of your cloned fork."
msgstr ""
-#: ../../source/contributing/development.rst:240
+#: ../../source/contributing/development.rst:239
msgid "**Documentation**: We also build a version of the documentation corresponding to your pull request. Make sure not to introduce any Sphinx errors, and have a look at the built HTML files to see whether the formatting of the documentation you added looks as you intended. You can build the documentation locally by running ``make html`` from the ``docs`` directory. Since the inheritance diagrams require you to have `Graphviz `_ installed locally."
msgstr ""
-#: ../../source/contributing/development.rst:247
+#: ../../source/contributing/development.rst:246
msgid "Finally, if the pipeline passes and you are satisfied with your changes: wait for feedback and iterate over any requested changes. You will likely be asked to edit or modify your PR in one way or another during this process. This is not an indictment of your work, but rather a strong signal that the community wants to merge your changes! Once approved, your changes may be merged!"
msgstr ""
-#: ../../source/contributing/development.rst:254
+#: ../../source/contributing/development.rst:253
msgid "Further useful guidelines"
msgstr ""
-#: ../../source/contributing/development.rst:256
+#: ../../source/contributing/development.rst:255
msgid "When submitting a PR, please mention explicitly if it includes breaking changes."
msgstr ""
-#: ../../source/contributing/development.rst:258
+#: ../../source/contributing/development.rst:257
msgid "When submitting a PR, make sure that your proposed changes are as general as possible, and ready to be taken advantage of by all of manim's users. In particular, leave out any machine-specific configurations, or any personal information it may contain."
msgstr ""
-#: ../../source/contributing/development.rst:263
+#: ../../source/contributing/development.rst:262
msgid "If you are a maintainer, please label issues and PRs appropriately and frequently."
msgstr ""
-#: ../../source/contributing/development.rst:266
+#: ../../source/contributing/development.rst:265
msgid "When opening a new issue, if there are old issues that are related, add a link to them in your new issue (even if the old ones are closed)."
msgstr ""
-#: ../../source/contributing/development.rst:269
+#: ../../source/contributing/development.rst:268
msgid "When submitting a code review, it is highly recommended that you adhere to `these general guidelines `_."
msgstr ""
-#: ../../source/contributing/development.rst:272
+#: ../../source/contributing/development.rst:271
msgid "If you find stale or inactive issues that seem to be irrelevant, please post a comment saying 'This issue should be closed', and a community developer will take a look."
msgstr ""
-#: ../../source/contributing/development.rst:276
+#: ../../source/contributing/development.rst:275
msgid "Please do as much as possible to keep issues, PRs, and development in general as tidy as possible."
msgstr ""
-#: ../../source/contributing/development.rst:280
-msgid "You can find examples for the ``docs`` in several places: the :doc:`Example Gallery <../examples>`, :doc:`Tutorials <../tutorials>`, and :doc:`Reference Classes <../reference>`."
+#: ../../source/contributing/development.rst:279
+msgid "You can find examples for the ``docs`` in several places: the :doc:`Example Gallery <../examples>`, :doc:`Tutorials <../tutorials/index>`, and :doc:`Reference Classes <../reference>`."
msgstr ""
-#: ../../source/contributing/development.rst:284
+#: ../../source/contributing/development.rst:283
msgid "In case you are contributing, please have a look at this flowchart:"
msgstr ""
diff --git a/docs/i18n/gettext/examples.pot b/docs/i18n/gettext/examples.pot
index d15e7cabdc..d9a94edd27 100644
--- a/docs/i18n/gettext/examples.pot
+++ b/docs/i18n/gettext/examples.pot
@@ -42,7 +42,7 @@ msgstr ""
msgid "Plotting with Manim"
msgstr ""
-#: ../../source/examples.rst:438
+#: ../../source/examples.rst:496
msgid "Special Camera Settings"
msgstr ""
diff --git a/docs/i18n/gettext/faq/general.pot b/docs/i18n/gettext/faq/general.pot
new file mode 100644
index 0000000000..27a612bd64
--- /dev/null
+++ b/docs/i18n/gettext/faq/general.pot
@@ -0,0 +1,181 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/faq/general.md:1
+msgid "FAQ: General Usage"
+msgstr ""
+
+#: ../../source/faq/general.md:3
+msgid "Why does Manim say that \"there are no scenes inside that module\"?"
+msgstr ""
+
+#: ../../source/faq/general.md:5
+msgid "There are two main reasons why this error appears: if you have edited the file containing your `Scene` class and forgot to save it, or if you have accidentally passed the name of a wrong file to `manim`, this is a likely outcome. Check that you have spelled everything correctly."
+msgstr ""
+
+#: ../../source/faq/general.md:10
+msgid "Otherwise you are likely mixing up Manim versions. See {ref}`this FAQ answer ` for an explanation regarding why there are different versions. Under the assumption that you are trying to use the `manim` executable from the terminal to run a scene that has been written for the community version (i.e., there is `from manim import *`, or more specifically `from manim import Scene`)"
+msgstr ""
+
+#: ../../source/faq/general.md:18
+msgid "No matter what code I put in my file, Manim only renders a black frame! Why?"
+msgstr ""
+
+#: ../../source/faq/general.md:20
+msgid "If you are using the usual pattern to write a `Scene`, i.e.,"
+msgstr ""
+
+#: ../../source/faq/general.md:27
+msgid "then double check whether you have spelled `construct` correctly. If the method containing your code is not called `construct` (or if you are not calling a different, custom method from `construct`), Manim will not call your method and simply output a black frame."
+msgstr ""
+
+#: ../../source/faq/general.md:34
+msgid "What are the default measurements for Manim's scene?"
+msgstr ""
+
+#: ../../source/faq/general.md:36
+msgid "The scene measures 8 units in height and has a default ratio of 16:9, which means that it measures {math}`8 \\cdot 16 / 9 = 14 + 2/9` units in width. The origin is in the center of the scene, which means that, for example, the upper left corner of the scene has coordinates `[-7-1/9, 4, 0]`."
+msgstr ""
+
+#: ../../source/faq/general.md:43
+msgid "How do I find out which keyword arguments I can pass when creating a `Mobject`?"
+msgstr ""
+
+#: ../../source/faq/general.md:45
+msgid "Let us consider some specific example, like the {class}`.Circle` class. When looking at its documentation page, only two specific keyword arguments are listed (`radius`, and `color`). Besides these concrete arguments, there is also a catchall `**kwargs` argument which captures all other arguments that are passed to `Circle`, and passes them on to the base class of {class}`.Circle`, {class}`.Arc`."
+msgstr ""
+
+#: ../../source/faq/general.md:51
+msgid "The same holds for {class}`.Arc`: some arguments are explicitly documented, and there is again a catchall `**kwargs` argument that passes unprocessed arguments to the next base class -- and so on."
+msgstr ""
+
+#: ../../source/faq/general.md:55
+msgid "The most important keyword arguments relevant to styling your mobjects are the ones that are documented for the base classes {class}`.VMobject` and {class}`.Mobject`."
+msgstr ""
+
+#: ../../source/faq/general.md:61
+msgid "Can Manim render a video with transparent background?"
+msgstr ""
+
+#: ../../source/faq/general.md:63
+msgid "Yes: simply pass the CLI flag `-t` (or its long form `--transparent`). Note that the default video file format does not support transparency, which is why Manim will output a `.mov` instead of a `.mp4` when rendering with a transparent background. Other movie file formats that support transparency can be obtained by passing `--format=webm` or `--format=gif`."
+msgstr ""
+
+#: ../../source/faq/general.md:72
+msgid "I have watched a video where a creator ran command X, but it does not work for me. Why?"
+msgstr ""
+
+#: ../../source/faq/general.md:74
+msgid "The video you have been watching is likely outdated. If you want to follow along, you either need to use the same version used in the video, or modify the code (in many cases it is just a method having been renamed etc.) accordingly. Check the video description, in some cases creators point out whether changes need to be applied to the code shown in the video."
+msgstr ""
+
+#: ../../source/faq/general.md:82
+msgid "When using `Tex` or `MathTex`, some letters are missing. How can I fix this?"
+msgstr ""
+
+#: ../../source/faq/general.md:84
+msgid "It is possible that you have to (re)build some fonts used by LaTeX. For some distributions, you can do this manually by running"
+msgstr ""
+
+#: ../../source/faq/general.md:89
+msgid "We recommend consulting the documentation of your LaTeX distribution for more information."
+msgstr ""
+
+#: ../../source/faq/general.md:94
+msgid "I want to translate some code from `manimgl` to `manim`, what do I do with `CONFIG` dictionaries?"
+msgstr ""
+
+#: ../../source/faq/general.md:96
+msgid "The community maintained version has dropped the use of `CONFIG` dictionaries very early, with {doc}`version v0.2.0 ` released in January 2021."
+msgstr ""
+
+#: ../../source/faq/general.md:100
+msgid "Before that, Manim's classes basically processed `CONFIG` dictionaries by mimicking inheritance (to properly process `CONFIG` dictionaries set by parent classes) and then assigning all of the key-value-pairs in the dictionary as attributes of the corresponding object."
+msgstr ""
+
+#: ../../source/faq/general.md:105
+msgid "In situations where there is not much inheritance going on, or for any custom setting, you should set these attributes yourself. For example, for an old-style `Scene` with custom attributes like"
+msgstr ""
+
+#: ../../source/faq/general.md:114
+msgid "should be written as"
+msgstr ""
+
+#: ../../source/faq/general.md:122
+msgid "In situations where values should be properly inherited, the arguments should be added to the initialization function of the class. An old-style mobject `Thing` could look like"
+msgstr ""
+
+#: ../../source/faq/general.md:135
+msgid "where `stroke_color` and `fill_opacity` are arguments that concern the parent class of `Thing`, and `my_awesome_argument` is a custom argument that only concerns `Thing`. A version without `CONFIG` could look like this:"
+msgstr ""
+
+#: ../../source/faq/general.md:150
+msgid "My installation does not support converting PDF to SVG, help?"
+msgstr ""
+
+#: ../../source/faq/general.md:152
+msgid "This is an issue with `dvisvgm`, the tool shipped with LaTeX that transforms LaTeX output to a `.svg` file that Manim can parse."
+msgstr ""
+
+#: ../../source/faq/general.md:156
+msgid "First, make sure your ``dvisvgm`` version is at least 2.4 by checking the output of"
+msgstr ""
+
+#: ../../source/faq/general.md:163
+msgid "If you do not know how to update `dvisvgm`, please refer to your LaTeX distributions documentation (or the documentation of your operating system, if `dvisvgm` was installed as a system package)."
+msgstr ""
+
+#: ../../source/faq/general.md:167
+msgid "Second, check whether your ``dvisvgm`` supports PostScript specials. This is needed to convert from PDF to SVG. Run:"
+msgstr ""
+
+#: ../../source/faq/general.md:174
+msgid "If the output to this command does **not** contain `ps dvips PostScript specials`, this is a bad sign. In this case, run"
+msgstr ""
+
+#: ../../source/faq/general.md:181
+msgid "If the output does **not** contain `--libgs=filename`, this means your `dvisvgm` does not currently support PostScript. You must get another binary."
+msgstr ""
+
+#: ../../source/faq/general.md:184
+msgid "If, however, `--libgs=filename` appears in the help, that means that your `dvisvgm` needs the Ghostscript library to support PostScript. Search for `libgs.so` (on Linux, probably in `/usr/local/lib` or `/usr/lib`) or `gsdll32.dll` (on 32-bit Windows, probably in `C:\\windows\\system32`) or `gsdll64.dll` (on 64-bit Windows, also probably in `C:\\windows\\system32`) or `libgsl.dylib` (on MacOS, probably in `/usr/local/lib` or `/opt/local/lib`). Please look carefully, as the file might be located elsewhere, e.g. in the directory where Ghostscript is installed."
+msgstr ""
+
+#: ../../source/faq/general.md:193
+msgid "When you have found the library, try (on MacOS or Linux)"
+msgstr ""
+
+#: ../../source/faq/general.md:200
+msgid "or (on Windows)"
+msgstr ""
+
+#: ../../source/faq/general.md:207
+msgid "You should now see `ps dvips PostScript specials` in the output. Refer to your operating system's documentation to find out how you can set or export the environment variable ``LIBGS`` automatically whenever you open a shell."
+msgstr ""
+
+#: ../../source/faq/general.md:211
+msgid "As a last check, you can run"
+msgstr ""
+
+#: ../../source/faq/general.md:217
+msgid "(while still having `LIBGS` set to the correct path, of course.) If `dvisvgm` can find your Ghostscript installation, it will be shown in the output together with the version number."
+msgstr ""
+
+#: ../../source/faq/general.md:221
+msgid "If you do not have the necessary library on your system, please refer to your operating system's documentation to find out where you can get it and how you have to install it."
+msgstr ""
+
+#: ../../source/faq/general.md:225
+msgid "If you are unable to solve your problem, check out the [dvisvgm FAQ](https://dvisvgm.de/FAQ/)."
+msgstr ""
+
+#: ../../source/faq/general.md:230
+msgid "Where can I find more resources for learning Manim?"
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/faq/help.pot b/docs/i18n/gettext/faq/help.pot
new file mode 100644
index 0000000000..d488fd4b49
--- /dev/null
+++ b/docs/i18n/gettext/faq/help.pot
@@ -0,0 +1,105 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/faq/help.md:1
+msgid "FAQ: Getting Help"
+msgstr ""
+
+#: ../../source/faq/help.md:3
+msgid "How do I animate X? Why do I get error Y? Can someone help me?"
+msgstr ""
+
+#: ../../source/faq/help.md:5
+msgid "Before asking the community, please make sure that the issue you are having is not already discussed in our {doc}`FAQ section ` sufficiently well so that you can resolve the problem yourself. You can also try to use your favorite search engine, if you are lucky you might find a blog post, a question on [StackOverflow](https://stackoverflow.com/questions/tagged/manim), or a post in the [r/manim subreddit](https://reddit.com/r/manim)."
+msgstr ""
+
+#: ../../source/faq/help.md:12
+msgid "If this is not the case, please take a moment to properly prepare your question: the better you manage to explain what exactly it is you are struggling with, the more efficient people will be able to help you. Regardless of the platform you choose in the next step, StackOverflow has a good guide on [asking good questions](https://stackoverflow.com/help/how-to-ask)."
+msgstr ""
+
+#: ../../source/faq/help.md:18
+msgid "As soon as you have a good idea of what exactly you want to ask, pick one of the following communication channels:"
+msgstr ""
+
+#: ../../source/faq/help.md:21
+msgid "The community is most active [in our Discord server](https://manim.community/discord/). Click the link to join, then pick one of the `#manim-help` channels in the sidebar, and post your question there. If you are comfortable with using Discord, try to search for your problem using the search function of our server; perhaps people have been talking about it before!"
+msgstr ""
+
+#: ../../source/faq/help.md:26
+msgid "We are also monitoring questions on [StackOverflow](https://stackoverflow.com/questions/tagged/manim) that are tagged with `manim`."
+msgstr ""
+
+#: ../../source/faq/help.md:29
+msgid "Many people are also active in our [r/manim subreddit](https://reddit.com/r/manim), feel free to post there if you are an avid Redditor -- but be aware that Discord or StackOverflow might be better choices."
+msgstr ""
+
+#: ../../source/faq/help.md:32
+msgid "And finally, you can also start a new [discussion on GitHub](https://github.com/ManimCommunity/manim/discussions) if you dislike all other options."
+msgstr ""
+
+#: ../../source/faq/help.md:35
+msgid "In all of these channels, please make sure to abide by Manim's {doc}`Code of Conduct ` -- in short, be *excellent* to one another: be friendly and patient, considerate, and respectful."
+msgstr ""
+
+#: ../../source/faq/help.md:41
+msgid "What should I do if nobody answers my question?"
+msgstr ""
+
+#: ../../source/faq/help.md:43
+msgid "Try and see whether your question can be improved: did you include all relevant information (in case of errors: the full stack trace, the code that you were rendering, and the command you used to run Manim?). In case you used a very long example, is it possible to construct a more minimal version that has the same (faulty) behavior?"
+msgstr ""
+
+#: ../../source/faq/help.md:49
+msgid "If you posted in one of our help channels on Discord and your question got buried, you are allowed to ping the `@Manim Helper` role to bring it to the attention of the volunteers who are willing to take a look. Please refrain from pinging the role immediately when asking your question for the first time, this is considered impolite."
+msgstr ""
+
+#: ../../source/faq/help.md:54
+msgid "You can also try to post your question to a different channel if you feel that you are not having any success with your initial choice -- but please do not spam your question in all of our communication channels (and in particular for Discord: please don't use multiple help channels at once)."
+msgstr ""
+
+#: ../../source/faq/help.md:59
+msgid "In the end, it is as for most open-source projects: our community members are volunteers. If you do not receive a quick answer to your question, it may be because nobody knows the answer, or because your question is not clear enough, or it could be that everyone who can help you with your problem is busy doing other things."
+msgstr ""
+
+#: ../../source/faq/help.md:67
+msgid "The library does not behave as documented, or something broke in a new release. What should I do?"
+msgstr ""
+
+#: ../../source/faq/help.md:69
+msgid "Sounds like you have found a bug. One of the best ways of contributing to the development of Manim is by reporting it!"
+msgstr ""
+
+#: ../../source/faq/help.md:72
+msgid "Check our list of known issues and feature requests [in our GitHub repository](https://github.com/ManimCommunity/manim/issues). If the problem you have found is not listed there yet (use the search function; also check whether there is a corresponding closed issue, it is possible that your problem has already been resolved and will be fixed with the next release), please consider the following steps to submit a new issue."
+msgstr ""
+
+#: ../../source/faq/help.md:80
+msgid "If you are unsure whether or not you should file a new issue for some odd behavior that you found, feel free to ask the community developers, preferably in one of our `#manim-dev` channels in [our Discord](https://manim.community/discord/)."
+msgstr ""
+
+#: ../../source/faq/help.md:85
+msgid "Make sure you are running the latest released version of Manim, your problem might otherwise already be fixed in a more recent version. Check the {doc}`/changelog` for a full list of changes between Manim releases."
+msgstr ""
+
+#: ../../source/faq/help.md:89
+msgid "Choose the correct category for your report when [creating a new issue](https://github.com/ManimCommunity/manim/issues/new/choose). We have dedicated issue templates for *bug reports*, *feature requests*, and *installation issues*. If your report falls into one of these categories, read the issue template carefully! Instructions are given in the `` sections of the text field. If you want to suggest a new feature without concrete implementation details, see {ref}`the instructions given in this answer `."
+msgstr ""
+
+#: ../../source/faq/help.md:98
+msgid "For bug reports: prepare a minimal example that can be used to illustrate the issue. Examples with hundreds of lines are very inefficient and tedious to debug. Your problem needs to be reproducible for others, so please make sure to prepare a suitable example."
+msgstr ""
+
+#: ../../source/faq/help.md:103
+msgid "This is mentioned in the bug report template as well, but it is very important: if you report that some code raises an error, make sure to include the full terminal output, from the command you used to run the library up to and including the last line with the error message. Read carefully: if the message mentions that there is another relevant log file, include this other file as well!"
+msgstr ""
+
+#: ../../source/faq/help.md:112
+msgid "I have an idea for a really cool feature that should be implemented, where should I share my idea?"
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/faq/index.pot b/docs/i18n/gettext/faq/index.pot
new file mode 100644
index 0000000000..90fbbebace
--- /dev/null
+++ b/docs/i18n/gettext/faq/index.pot
@@ -0,0 +1,14 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/faq/index.rst:4
+#: ../../source/faq/index.rst:4
+msgid "Table of Contents"
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/faq/installation.pot b/docs/i18n/gettext/faq/installation.pot
new file mode 100644
index 0000000000..efb566e4cb
--- /dev/null
+++ b/docs/i18n/gettext/faq/installation.pot
@@ -0,0 +1,165 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/faq/installation.md:1
+msgid "FAQ: Installation"
+msgstr ""
+
+#: ../../source/faq/installation.md:4
+msgid "Why are there different versions of Manim?"
+msgstr ""
+
+#: ../../source/faq/installation.md:6
+msgid "Manim was originally created by Grant Sanderson as a personal project and for use in his YouTube channel, [3Blue1Brown](https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw). As his channel gained popularity, many grew to like the style of his animations and wanted to use manim for their own projects. However, as manim was only intended for personal use, it was very difficult for other users to install and use it."
+msgstr ""
+
+#: ../../source/faq/installation.md:13
+msgid "In late 2019, Grant started working on faster OpenGL rendering in a new branch, known as the `shaders` branch. In mid-2020, a group of developers forked it into what is now the community edition; this is the version documented on this website. In early 2021, Grant merged the shaders branch back into master, making it the default branch in his repository -- and this is what `manimgl` is. The old version, before merging the `shaders` branch is sometimes referred to as `ManimCairo` and is, at this point, only useful for one singular purpose: rendering Grant's old videos locally on your machine. It is still available in his GitHub repository in form of the `cairo-backend` branch."
+msgstr ""
+
+#: ../../source/faq/installation.md:22
+msgid "To summarize:"
+msgstr ""
+
+#: ../../source/faq/installation.md:23
+msgid "[**Manim**, or **ManimCE**](https://manim.community) refers to the community maintained version of the library. This is the version documented on this website; the package name on PyPI is [`manim`](https://pypi.org/project/manim/)."
+msgstr ""
+
+#: ../../source/faq/installation.md:26
+msgid "[ManimGL](https://github.com/3b1b/manim) is the latest released version of the version of the library developed by Grant \"3b1b\" Sanderson. It has more experimental features and breaking changes between versions are not documented. Check out its documentation [here](https://3b1b.github.io/manim/index.html); on PyPI the package name is [`manimgl`](https://pypi.org/project/manimgl/)."
+msgstr ""
+
+#: ../../source/faq/installation.md:31
+msgid "[ManimCairo](https://github.com/3b1b/manim/tree/cairo-backend) is the name that is sometimes used for the old, pre-OpenGL version of `manimgl`. The latest version of it is available [on PyPI as `manimlib`](https://pypi.org/project/manimgl/), but note that if you intend to use it to compile some old project of Grant, you will likely have to install the exact version from the time the project was created from source."
+msgstr ""
+
+#: ../../source/faq/installation.md:40
+msgid "Which version should I use?"
+msgstr ""
+
+#: ../../source/faq/installation.md:42
+msgid "We recommend the community maintained version especially for beginners. It has been developed to be more stable, better tested and documented (!), and quicker to respond to community contributions. It is also perfectly reasonable to start learning with the community maintained version and then switch to a different version later on."
+msgstr ""
+
+#: ../../source/faq/installation.md:47
+msgid "If you do not care so much about documentation or stability, and would like to use the exact same version that Grant is using, then use ManimGL."
+msgstr ""
+
+#: ../../source/faq/installation.md:50
+msgid "And as mentioned above, ManimCairo should only be used for (re)rendering old 3Blue1Brown projects (basically 2019 and before)."
+msgstr ""
+
+#: ../../source/faq/installation.md:55
+msgid "What are the differences between Manim, ManimGL, ManimCairo? Can I tell for which version a scene was written for?"
+msgstr ""
+
+#: ../../source/faq/installation.md:57
+msgid "You can! The thing that usually gives it away is the `import` statement at the top of the file; depending on how the code imports Manim you can tell for which version of the code it was written for:"
+msgstr ""
+
+#: ../../source/faq/installation.md:61
+msgid "If the code imports from `manim` (i.e., `from manim import *`, `import manim as mn`, etc.), then the code you are reading is supposed to be run with the community maintained version."
+msgstr ""
+
+#: ../../source/faq/installation.md:63
+msgid "If the import reads `import manimlib` (or `from manimlib import *`), you are likely reading a file to be rendered with ManimGL."
+msgstr ""
+
+#: ../../source/faq/installation.md:65
+msgid "And if the import reads `from manimlib.imports import *`, or perhaps even `from big_ol_pile_of_manim_imports import *` you are reading a snippet that is supposed to be rendered with an early, or very early version of ManimCairo, respectively."
+msgstr ""
+
+#: ../../source/faq/installation.md:71
+msgid "How do I know which version of Manim I have installed?"
+msgstr ""
+
+#: ../../source/faq/installation.md:73
+msgid "Assuming you can run `manim` in your terminal and there is some output, check the first line of the text being produced. If you are using the community maintained version, the first line of any output will be `Manim Community `. If it does not say that, you are likely using ManimGL."
+msgstr ""
+
+#: ../../source/faq/installation.md:78
+msgid "You can also check the list of packages you have installed: if typing `python` in your terminal spawns the interpreter that corresponds to the Python installation you use (might also be `py`, or `python3`, depending on your operating system), running `python -m pip list` will print a list of all installed packages. Check whether `manim` or `manimgl` appear in that list."
+msgstr ""
+
+#: ../../source/faq/installation.md:84
+msgid "Similarly, you can use `python -m pip install ` and `python -m pip uninstall ` to install and uninstall packages from that list, respectively."
+msgstr ""
+
+#: ../../source/faq/installation.md:90
+msgid "I am following the video guide X to install Manim, but some step fails. What do I do?"
+msgstr ""
+
+#: ../../source/faq/installation.md:92
+msgid "It is only natural that there are many video guides on installing Manim out there, given that Manim is a library used for creating videos. Unfortunately however, (YouTube) videos can't be updated easily (without uploading a new one, that is) when some step in the installation process changes, and so there are many **severely outdated** resources out there."
+msgstr ""
+
+#: ../../source/faq/installation.md:98
+msgid "This is why we strongly recommend following our {doc}`written installation guide ` to guide you through the process. In case you prefer using a video guide regardless, please check whether the creator whose guide you have been watching has made a more recent version available, and otherwise please contact them directly. Asking for help in the community will likely lead to being suggested to follow our written guide."
+msgstr ""
+
+#: ../../source/faq/installation.md:107
+msgid "Why does ManimPango fail to install when running `pip install manim`?"
+msgstr ""
+
+#: ../../source/faq/installation.md:109
+msgid "This most likely means that pip was not able to use our pre-built wheels of the `manimpango` dependency. Let us know (via [Discord](https://www.manim.community/discord/) or by opening a [new issue on GitHub](https://github.com/ManimCommunity/ManimPango/issues/new)) which architecture you would like to see supported, and we'll see what we can do about it."
+msgstr ""
+
+#: ../../source/faq/installation.md:116
+msgid "To fix errors when installing `manimpango`, you need to make sure you have all the necessary build requirements. Check out the detailed instructions given in [the BUILDING section](https://github.com/ManimCommunity/ManimPango#BUILDING) of [ManimPango's README](https://github.com/ManimCommunity/ManimPango)."
+msgstr ""
+
+#: ../../source/faq/installation.md:123
+msgid "I am using Windows and get the error `X is not recognized as an internal or external command, operable program or batch file`"
+msgstr ""
+
+#: ../../source/faq/installation.md:125
+msgid "Regardless of whether `X` says `python` or `manim`, this means that the executable you are trying to run is not located in one of the directories your system is looking for them (specified by the `PATH` variable). Take a look at the instructions {doc}`in the installation guide for Windows `, or [this StackExchange answer](https://superuser.com/questions/143119/how-do-i-add-python-to-the-windows-path/143121#143121) to get help with editing the `PATH` variable manually."
+msgstr ""
+
+#: ../../source/faq/installation.md:132
+msgid "If `python` is recognized but not `manim` or `pip`, you can try running commands by prepending `python -m`. That is, `manim` becomes `python -m manim`, and `pip` becomes `python -m pip`."
+msgstr ""
+
+#: ../../source/faq/installation.md:138
+msgid "I have tried using Chocolatey (`choco install manimce`) to install Manim, but it failed!"
+msgstr ""
+
+#: ../../source/faq/installation.md:140
+msgid "Make sure that you were running the command with administrator permissions, otherwise there can be problems. If this is not the issue, read Chocolatey's output carefully, it should mention a `.log` file containing information why the process failed."
+msgstr ""
+
+#: ../../source/faq/installation.md:145
+msgid "You are welcome to take this file (and any other input you feel might be relevant) and submit it to Manim's community to ask for help with your problem. See the {doc}`FAQ on getting help ` for instructions."
+msgstr ""
+
+#: ../../source/faq/installation.md:151
+msgid "On Windows, when typing `python` or `python3` the Windows store is opened, can I fix this?"
+msgstr ""
+
+#: ../../source/faq/installation.md:153
+msgid "Yes: you can remove these aliases with these steps:"
+msgstr ""
+
+#: ../../source/faq/installation.md:155
+msgid "Go to the Windows Setting."
+msgstr ""
+
+#: ../../source/faq/installation.md:156
+msgid "Under *Apps and Features* you will find application execution aliases."
+msgstr ""
+
+#: ../../source/faq/installation.md:157
+msgid "Within this menu, disable the alias(es) that are causing the issue (`python` and/or `python3`)."
+msgstr ""
+
+#: ../../source/faq/installation.md:162
+msgid "I am using Anaconda and get an `ImportError` mentioning that some Symbol is not found."
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/faq/internals.pot b/docs/i18n/gettext/faq/internals.pot
new file mode 100644
index 0000000000..abecf638d8
--- /dev/null
+++ b/docs/i18n/gettext/faq/internals.pot
@@ -0,0 +1,17 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/faq/internals.md:1
+msgid "Where can I learn more about Manim's internal structure?"
+msgstr ""
+
+#: ../../source/faq/internals.md:3
+msgid "Efforts to document the internal structure of Manim is ongoing on our [wiki](https://github.com/ManimCommunity/manim/wiki/Developer-documentation-(WIP))."
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/faq/opengl.pot b/docs/i18n/gettext/faq/opengl.pot
new file mode 100644
index 0000000000..21682a831d
--- /dev/null
+++ b/docs/i18n/gettext/faq/opengl.pot
@@ -0,0 +1,29 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/faq/opengl.md:1
+msgid "FAQ: OpenGL rendering"
+msgstr ""
+
+#: ../../source/faq/opengl.md:3
+msgid "Are there any resources on how the OpenGL renderer in the community maintained version can be used?"
+msgstr ""
+
+#: ../../source/faq/opengl.md:5
+msgid "Yes. Unfortunately, at this point, the official online documentation does not contain the relevant base classes like `OpenGLMobject` and `OpenGLVMobject` or specific OpenGL classes like `OpenGLSurface`, but documentation for some of them is available in form of docstrings [in the source code](https://github.com/ManimCommunity/manim/tree/main/manim/mobject/opengl)."
+msgstr ""
+
+#: ../../source/faq/opengl.md:11
+msgid "Furthermore, [this user guide by *aquabeam*](https://www.aquabeam.me/manim/opengl_guide/) can be helpful to get started using the OpenGL renderer."
+msgstr ""
+
+#: ../../source/faq/opengl.md:16
+msgid "I am trying to run an interactive scene with `--renderer=opengl` and `Scene.interactive_embed`, but an error (`sqlite3.ProgrammingError`) is raised. How can I fix this?"
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/guides/configuration.pot b/docs/i18n/gettext/guides/configuration.pot
new file mode 100644
index 0000000000..a7b66dda87
--- /dev/null
+++ b/docs/i18n/gettext/guides/configuration.pot
@@ -0,0 +1,313 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/guides/configuration.rst:2
+msgid "Configuration"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:4
+msgid "Manim provides an extensive configuration system that allows it to adapt to many different use cases. There are many configuration options that can be configured at different times during the scene rendering process. Each option can be configured programmatically via `the ManimConfig class`_, at the time of command invocation via `command-line arguments`_, or at the time the library is first imported via `the config files`_."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:11
+msgid "The most common, simplest, and recommended way to configure Manim is via the command-line interface (CLI), which is described directly below."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:15
+msgid "Command-line arguments"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:17
+msgid "By far the most commonly used command in the CLI is the ``render`` command, which is used to render scene(s) to an output file. It is used with the following arguments:"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:24
+msgid "However, since Manim defaults to the :code:`render` command whenever no command is specified, the following form is far more common and can be used instead:"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:31
+msgid "An example of using the above form is:"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:37
+msgid "This asks Manim to search for a Scene class called :code:`SceneOne` inside the file ``file.py`` and render it with medium quality (specified by the ``-qm`` flag)."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:40
+msgid "Another frequently used flag is ``-p`` (\"preview\"), which makes manim open the rendered video after it's done rendering."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:43
+msgid "The ``-p`` flag does not change any properties of the global ``config`` dict. The ``-p`` flag is only a command-line convenience."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:47
+msgid "Advanced examples"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:49
+msgid "To render a scene in high quality, but only output the last frame of the scene instead of the whole video, you can execute"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:56
+msgid "The following example specifies the output file name (with the :code:`-o` flag), renders only the first ten animations (:code:`-n` flag) with a white background (:code:`-c` flag), and saves the animation as a ``.gif`` instead of as a ``.mp4`` file (``--format=gif`` flag). It uses the default quality and does not try to open the file after it is rendered."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:67
+msgid "A list of all CLI flags"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:75
+msgid "The ManimConfig class"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:77
+msgid "The most direct way of configuring Manim is through the global ``config`` object, which is an instance of :class:`.ManimConfig`. Each property of this class is a config option that can be accessed either with standard attribute syntax or with dict-like syntax:"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:88
+msgid "The former is preferred; the latter is provided for backwards compatibility."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:91
+msgid "Most classes, including :class:`.Camera`, :class:`.Mobject`, and :class:`.Animation`, read some of their default configuration from the global ``config``."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:103
+msgid ":class:`.ManimConfig` is designed to keep internal consistency. For example, setting ``frame_y_radius`` will affect ``frame_height``:"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:114
+msgid "The global ``config`` object is meant to be the single source of truth for all config options. All of the other ways of setting config options ultimately change the values of the global ``config`` object."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:118
+msgid "The following example illustrates the video resolution chosen for examples rendered in our documentation with a reference frame."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:140
+msgid "The config files"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:142
+msgid "As the last example shows, executing Manim from the command line may involve using many flags simultaneously. This may become a nuisance if you must execute the same script many times in a short time period, for example, when making small incremental tweaks to your scene script. For this reason, Manim can also be configured using a configuration file. A configuration file is a file ending with the suffix ``.cfg``."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:149
+msgid "To use a local configuration file when rendering your scene, you must create a file with the name ``manim.cfg`` in the same directory as your scene code."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:152
+msgid "The config file **must** be named ``manim.cfg``. Currently, Manim does not support config files with any other name."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:155
+msgid "The config file must start with the section header ``[CLI]``. The configuration options under this header have the same name as the CLI flags and serve the same purpose. Take, for example, the following config file."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:167
+msgid "Config files are parsed with the standard python library ``configparser``. In particular, they will ignore any line that starts with a pound symbol ``#``."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:170
+msgid "Now, executing the following command"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:176
+msgid "is equivalent to executing the following command, provided that ``manim.cfg`` is in the same directory as ,"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:183
+msgid "The names of the configuration options admissible in config files are exactly the same as the **long names** of the corresponding command- line flags. For example, the ``-c`` and ``--background_color`` flags are interchangeable, but the config file only accepts :code:`background_color` as an admissible option."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:189
+msgid "Since config files are meant to replace CLI flags, all CLI flags can be set via a config file. Moreover, any config option can be set via a config file, whether or not it has an associated CLI flag. See the bottom of this document for a list of all CLI flags and config options."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:194
+msgid "Manim will look for a ``manim.cfg`` config file in the same directory as the file being rendered, and **not** in the directory of execution. For example,"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:201
+msgid "will use the config file found in ``path/to/file.py``, if any. It will **not** use the config file found in the current working directory, even if it exists. In this way, the user may keep different config files for different scenes or projects, and execute them with the right configuration from anywhere in the system."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:207
+msgid "The file described here is called the **folder-wide** config file because it affects all scene scripts found in the same folder."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:212
+msgid "The user config file"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:214
+msgid "As explained in the previous section, a :code:`manim.cfg` config file only affects the scene scripts in its same folder. However, the user may also create a special config file that will apply to all scenes rendered by that user. This is referred to as the **user-wide** config file, and it will apply regardless of where Manim is executed from, and regardless of where the scene script is stored."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:221
+msgid "The user-wide config file lives in a special folder, depending on the operating system."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:224
+msgid "Windows: :code:`UserDirectory`/AppData/Roaming/Manim/manim.cfg"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:225
+msgid "MacOS: :code:`UserDirectory`/.config/manim/manim.cfg"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:226
+msgid "Linux: :code:`UserDirectory`/.config/manim/manim.cfg"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:228
+msgid "Here, :code:`UserDirectory` is the user's home folder."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:231
+msgid "A user may have many **folder-wide** config files, one per folder, but only one **user-wide** config file. Different users in the same computer may each have their own user-wide config file."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:235
+msgid "Do not store scene scripts in the same folder as the user-wide config file. In this case, the behavior is undefined."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:238
+msgid "Whenever you use Manim from anywhere in the system, Manim will look for a user-wide config file and read its configuration."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:243
+msgid "Cascading config files"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:245
+msgid "What happens if you execute Manim and it finds both a folder-wide config file and a user-wide config file? Manim will read both files, but if they are incompatible, **the folder-wide file takes precedence**."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:249
+msgid "For example, take the following user-wide config file"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:259
+msgid "and the following folder-wide file"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:267
+msgid "Then, executing :code:`manim SceneName` will be equivalent to not using any config files and executing"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:274
+msgid "Any command-line flags have precedence over any config file. For example, using the previous two config files and executing :code:`manim -c RED SceneName` is equivalent to not using any config files and executing"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:283
+msgid "There is also a **library-wide** config file that determines Manim's default behavior and applies to every user of the library. It has the least precedence, so any config options in the user-wide and any folder-wide files will override the library-wide file. This is referred to as the *cascading* config file system."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:289
+msgid "**The user should not try to modify the library-wide file**. Contributors should receive explicit confirmation from the core developer team before modifying it."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:295
+msgid "Order of operations"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:304
+msgid "With so many different ways of configuring Manim, it can be difficult to know when each config option is being set. In fact, this will depend on how Manim is being used."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:308
+msgid "If Manim is imported from a module, then the configuration system will follow these steps:"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:311
+msgid "The library-wide config file is loaded."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:312
+msgid "The user-wide and folder-wide files are loaded if they exist."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:313
+msgid "All files found in the previous two steps are parsed in a single :class:`ConfigParser` object, called ``parser``. This is where *cascading* happens."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:316
+msgid ":class:`logging.Logger` is instantiated to create Manim's global ``logger`` object. It is configured using the \"logger\" section of the parser, i.e. ``parser['logger']``."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:319
+msgid ":class:`ManimConfig` is instantiated to create the global ``config`` object."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:320
+msgid "The ``parser`` from step 3 is fed into the ``config`` from step 5 via :meth:`ManimConfig.digest_parser`."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:322
+msgid "Both ``logger`` and ``config`` are exposed to the user."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:324
+msgid "If Manim is being invoked from the command line, all of the previous steps happen, and are complemented by:"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:327
+msgid "The CLI flags are parsed and fed into ``config`` via :meth:`~ManimConfig.digest_args`."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:329
+msgid "If the ``--config_file`` flag was used, a new :class:`ConfigParser` object is created with the contents of the library-wide file, the user-wide file if it exists, and the file passed via ``--config_file``. In this case, the folder-wide file, if it exists, is ignored."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:333
+msgid "The new parser is fed into ``config``."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:334
+msgid "The rest of the CLI flags are processed."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:336
+msgid "To summarize, the order of precedence for configuration options, from lowest to highest precedence is:"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:339
+msgid "Library-wide config file,"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:340
+msgid "user-wide config file, if it exists,"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:341
+msgid "folder-wide config file, if it exists OR custom config file, if passed via ``--config_file``,"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:343
+msgid "other CLI flags, and"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:344
+msgid "any programmatic changes made after the config system is set."
+msgstr ""
+
+#: ../../source/guides/configuration.rst:348
+msgid "A list of all config options"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:369
+msgid "Accessing CLI command options"
+msgstr ""
+
+#: ../../source/guides/configuration.rst:371
+msgid "Entering ``manim``, or ``manim --help``, will open the main help page."
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/guides/deep_dive.pot b/docs/i18n/gettext/guides/deep_dive.pot
new file mode 100644
index 0000000000..bb0c89af4d
--- /dev/null
+++ b/docs/i18n/gettext/guides/deep_dive.pot
@@ -0,0 +1,633 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/guides/deep_dive.rst:2
+msgid "A deep dive into Manim's internals"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:4
+msgid "**Author:** `Benjamin Hackl `__"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:6
+msgid "Disclaimer"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:8
+msgid "This guide reflects the state of the library as of version ``v0.16.0`` and primarily treats the Cairo renderer. The situation in the latest version of Manim might be different; in case of substantial deviations we will add a note below."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:14
+msgid "Introduction"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:16
+msgid "Manim can be a wonderful library, if it behaves the way you would like it to, and/or the way you expect it to. Unfortunately, this is not always the case (as you probably know if you have played with some manimations yourself already). To understand where things *go wrong*, digging through the library's source code is sometimes the only option -- but in order to do that, you need to know where to start digging."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:23
+msgid "This article is intended as some sort of life line through the render process. We aim to give an appropriate amount of detail describing what happens when Manim reads your scene code and produces the corresponding animation. Throughout this article, we will focus on the following toy example::"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:43
+msgid "Before we go into details or even look at the rendered output of this scene, let us first describe verbally what happens in this *manimation*. In the first three lines of the ``construct`` method, a :class:`.Square` and a :class:`.Circle` are initialized, then the square is added to the scene. The first frame of the rendered output should thus show an orange square."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:49
+msgid "Then the actual animations happen: the square first transforms into a circle, then a :class:`.Dot` is created (Where do you guess the dot is located when it is first added to the scene? Answering this already requires detailed knowledge about the render process.). The dot has an updater attached to it, and as the circle moves right, the dot moves with it. In the end, all mobjects are faded out."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:56
+msgid "Actually rendering the code yields the following video:"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:75
+msgid "For this example, the output (fortunately) coincides with our expectations."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:78
+msgid "Overview"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:80
+msgid "Because there is a lot of information in this article, here is a brief overview discussing the contents of the following chapters on a very high level."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:83
+msgid "`Preliminaries`_: In this chapter we unravel all the steps that take place to prepare a scene for rendering; right until the point where the user-overridden ``construct`` method is ran. This includes a brief discussion on using Manim's CLI versus other means of rendering (e.g., via Jupyter notebooks, or in your Python script by calling the :meth:`.Scene.render` method yourself)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:88
+msgid "`Mobject Initialization`_: For the second chapter we dive into creating and handling Mobjects, the basic elements that should be displayed in our scene. We discuss the :class:`.Mobject` base class, how there are essentially three different types of Mobjects, and then discuss the most important of them, vectorized Mobjects. In particular, we describe the internal point data structure that governs how the mechanism responsible for drawing the vectorized Mobject to the screen sets the corresponding Bézier curves. We conclude the chapter with a tour into :meth:`.Scene.add`, the bookkeeping mechanism controlling which mobjects should be rendered."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:97
+msgid "`Animations and the Render Loop`_: And finally, in the last chapter we walk through the instantiation of :class:`.Animation` objects (the blueprints that hold information on how Mobjects should be modified when the render loop runs), followed by a investigation of the infamous :meth:`.Scene.play` call. We will see that there are three relevant parts in a :meth:`.Scene.play` call; a part in which the passed animations and keyword arguments are processed and prepared, followed by the actual \"render loop\" in which the library steps through a time line and renders frame by frame. The final part does some post-processing to save a short video segment (\"partial movie file\") and cleanup for the next call to :meth:`.Scene.play`. In the end, after all of :meth:`.Scene.construct` has been run, the library combines the partial movie files to one video."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:110
+msgid "And with that, let us get *in medias res*."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:113
+msgid "Preliminaries"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:116
+msgid "Importing the library"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:118
+msgid "Independent of how exactly you are telling your system to render the scene, i.e., whether you run ``manim -qm -p file_name.py ToyExample``, or whether you are rendering the scene directly from the Python script via a snippet like"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:129
+msgid "or whether you are rendering the code in a Jupyter notebook, you are still telling your python interpreter to import the library. The usual pattern used to do this is"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:136
+msgid "which (while being a debatable strategy in general) imports a lot of classes and functions shipped with the library and makes them available in your global name space. I explicitly avoided stating that it imports **all** classes and functions of the library, because it does not do that: Manim makes use of the practice described in `Section 6.4.1 of the Python tutorial `__, and all module members that should be exposed to the user upon running the ``*``-import are explicitly declared in the ``__all__`` variable of the module."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:144
+msgid "Manim also uses this strategy internally: taking a peek at the file that is run when the import is called, ``__init__.py`` (see `here `__), you will notice that most of the code in that module is concerned with importing members from various different submodules, again using ``*``-imports."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:152
+msgid "If you would ever contribute a new submodule to Manim, the main ``__init__.py`` is where it would have to be listed in order to make its members accessible to users after importing the library."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:156
+msgid "In that file, there is one particular import at the beginning of the file however, namely::"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:161
+msgid "This initializes Manim's global configuration system, which is used in various places throughout the library. After the library runs this line, the current configuration options are set. The code in there takes care of reading the options in your ``.cfg`` files (all users have at least the global one that is shipped with the library) as well as correctly handling command line arguments (if you used the CLI to render)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:167
+msgid "You can read more about the config system in the :doc:`corresponding thematic guide `, and if you are interested in learning more about the internals of the configuration system and how it is initialized, follow the code flow starting in `the config module's init file `__."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:173
+msgid "Now that the library is imported, we can turn our attention to the next step: reading your scene code (which is not particularly exciting, Python just creates a new class ``ToyExample`` based on our code; Manim is virtually not involved in that step, with the exception that ``ToyExample`` inherits from ``Scene``)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:178
+msgid "However, with the ``ToyExample`` class created and ready to go, there is a new excellent question to answer: how is the code in our ``construct`` method actually executed?"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:183
+msgid "Scene instantiation and rendering"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:185
+msgid "The answer to this question depends on how exactly you are running the code. To make things a bit clearer, let us first consider the case that you have created a file ``toy_example.py`` which looks like this::"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:208
+msgid "With such a file, the desired scene is rendered by simply running this Python script via ``python toy_example.py``. Then, as described above, the library is imported and Python has read and defined the ``ToyExample`` class (but, read carefully: *no instance of this class has been created yet*)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:213
+msgid "At this point, the interpreter is about to enter the ``tempconfig`` context manager. Even if you have not seen Manim's ``tempconfig`` before, it's name already suggests what it does: it creates a copy of the current state of the configuration, applies the changes to the key-value pairs in the passed dictionary, and upon leaving the context the original version of the configuration is restored. TL;DR: it provides a fancy way of temporarily setting configuration options."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:221
+msgid "Inside the context manager, two things happen: an actual ``ToyExample``-scene object is instantiated, and the ``render`` method is called. Every way of using Manim ultimately does something along of these lines, the library always instantiates the scene object and then calls its ``render`` method. To illustrate that this really is the case, let us briefly look at the two most common ways of rendering scenes:"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:228
+msgid "**Command Line Interface.** When using the CLI and running the command ``manim -qm -p toy_example.py ToyExample`` in your terminal, the actual entry point is Manim's ``__main__.py`` file (located `here `__. Manim uses `Click `__ to implement the command line interface, and the corresponding code is located in Manim's ``cli`` module (https://github.com/ManimCommunity/manim/tree/main/manim/cli). The corresponding code creating the scene class and calling its render method is located `here `__."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:238
+msgid "**Jupyter notebooks.** In Jupyter notebooks, the communication with the library is handled by the ``%%manim`` magic command, which is implemented in the ``manim.utils.ipython_magic`` module. There is :meth:`some documentation <.ManimMagic.manim>` available for the magic command, and the code creating the scene class and calling its render method is located `here `__."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:246
+msgid "Now that we know that either way, a :class:`.Scene` object is created, let us investigate what Manim does when that happens. When instantiating our scene object"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:253
+msgid "the ``Scene.__init__`` method is called, given that we did not implement our own initialization method. Inspecting the corresponding code (see `here `__) reveals that ``Scene.__init__`` first sets several attributes of the scene objects that do not depend on any configuration options set in ``config``. Then the scene inspects the value of ``config.renderer``, and based on its value, either instantiates a ``CairoRenderer`` or an ``OpenGLRenderer`` object and assigns it to its ``renderer`` attribute."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:261
+msgid "The scene then asks its renderer to initialize the scene by calling"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:267
+msgid "Inspecting both the default Cairo renderer and the OpenGL renderer shows that the ``init_scene`` method effectively makes the renderer instantiate a :class:`.SceneFileWriter` object, which basically is Manim's interface to ``ffmpeg`` and actually writes the movie file. The Cairo renderer (see the implementation `here `__) does not require any further initialization. The OpenGL renderer does some additional setup to enable the realtime rendering preview window, which we do not go into detail further here."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:276
+msgid "Currently, there is a lot of interplay between a scene and its renderer. This is a flaw in Manim's current architecture, and we are working on reducing this interdependency to achieve a less convoluted code flow."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:280
+msgid "After the renderer has been instantiated and initialized its file writer, the scene populates further initial attributes (notable mention: the ``mobjects`` attribute which keeps track of the mobjects that have been added to the scene). It is then done with its instantiation and ready to be rendered."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:285
+msgid "The rest of this article is concerned with the last line in our toy example script::"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:289
+msgid "This is where the actual magic happens."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:291
+msgid "Inspecting the `implementation of the render method `__ reveals that there are several hooks that can be used for pre- or postprocessing a scene. Unsurprisingly, :meth:`.Scene.render` describes the full *render cycle* of a scene. During this life cycle, there are three custom methods whose base implementation is empty and that can be overwritten to suit your purposes. In the order they are called, these customizable methods are:"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:298
+msgid ":meth:`.Scene.setup`, which is intended for preparing and, well, *setting up* the scene for your animation (e.g., adding initial mobjects, assigning custom attributes to your scene class, etc.),"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:301
+msgid ":meth:`.Scene.construct`, which is the *script* for your screen play and contains programmatic descriptions of your animations, and"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:303
+msgid ":meth:`.Scene.tear_down`, which is intended for any operations you might want to run on the scene after the last frame has already been rendered (for example, this could run some code that generates a custom thumbnail for the video based on the state of the objects in the scene -- this hook is more relevant for situations where Manim is used within other Python scripts)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:310
+msgid "After these three methods are run, the animations have been fully rendered, and Manim calls :meth:`.CairoRenderer.scene_finished` to gracefully complete the rendering process. This checks whether any animations have been played -- and if so, it tells the :class:`.SceneFileWriter` to close the pipe to ``ffmpeg``. If not, Manim assumes that a static image should be output which it then renders using the same strategy by calling the render loop (see below) once."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:318
+msgid "**Back in our toy example,** the call to :meth:`.Scene.render` first triggers :meth:`.Scene.setup` (which only consists of ``pass``), followed by a call of :meth:`.Scene.construct`. At this point, our *animation script* is run, starting with the initialization of ``orange_square``."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:325
+msgid "Mobject Initialization"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:327
+msgid "Mobjects are, in a nutshell, the Python objects that represent all the *things* we want to display in our scene. Before we follow our debugger into the depths of mobject initialization code, it makes sense to discuss Manim's different types of Mobjects and their basic data structure."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:334
+msgid "What even is a Mobject?"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:336
+msgid ":class:`.Mobject` stands for *mathematical object* or *Manim object* (depends on who you ask 😄). The Python class :class:`.Mobject` is the base class for all objects that should be displayed on screen. Looking at the `initialization method `__ of :class:`.Mobject`, you will find that not too much happens in there:"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:343
+msgid "some initial attribute values are assigned, like ``name`` (which makes the render logs mention the name of the mobject instead of its type), ``submobjects`` (initially an empty list), ``color``, and some others."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:346
+msgid "Then, two methods related to *points* are called: ``reset_points`` followed by ``generate_points``,"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:348
+msgid "and finally, ``init_colors`` is called."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:350
+msgid "Digging deeper, you will find that :meth:`.Mobject.reset_points` simply sets the ``points`` attribute of the mobject to an empty NumPy vector, while the other two methods, :meth:`.Mobject.generate_points` and :meth:`.Mobject.init_colors` are just implemented as ``pass``."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:355
+msgid "This makes sense: :class:`.Mobject` is not supposed to be used as an *actual* object that is displayed on screen; in fact the camera (which we will discuss later in more detail; it is the class that is, for the Cairo renderer, responsible for \"taking a picture\" of the current scene) does not process \"pure\" :class:`Mobjects <.Mobject>` in any way, they *cannot* even appear in the rendered output."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:362
+msgid "This is where different types of mobjects come into play. Roughly speaking, the Cairo renderer setup knows three different types of mobjects that can be rendered:"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:366
+msgid ":class:`.ImageMobject`, which represent images that you can display in your scene,"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:368
+msgid ":class:`.PMobject`, which are very special mobjects used to represent point clouds; we will not discuss them further in this guide,"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:370
+msgid ":class:`.VMobject`, which are *vectorized mobjects*, that is, mobjects that consist of points that are connected via curves. These are pretty much everywhere, and we will discuss them in detail in the next section."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:375
+msgid "... and what are VMobjects?"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:377
+msgid "As just mentioned, :class:`VMobjects <.VMobject>` represent vectorized mobjects. To render a :class:`.VMobject`, the camera looks at the ``points`` attribute of a :class:`.VMobject` and divides it into sets of four points each. Each of these sets is then used to construct a cubic Bézier curve with the first and last entry describing the end points of the curve (\"anchors\"), and the second and third entry describing the control points in between (\"handles\")."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:386
+msgid "To learn more about Bézier curves, take a look at the excellent online textbook `A Primer on Bézier curves `__ by `Pomax `__ -- there is an playground representing cubic Bézier curves `in §1 `__, the red and yellow points are \"anchors\", and the green and blue points are \"handles\"."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:393
+msgid "In contrast to :class:`.Mobject`, :class:`.VMobject` can be displayed on screen (even though, technically, it is still considered a base class). To illustrate how points are processed, consider the following short example of a :class:`.VMobject` with 8 points (and thus made out of 8/4 = 2 cubic Bézier curves). The resulting :class:`.VMobject` is drawn in green. The handles are drawn as red dots with a line to their closest anchor."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:433
+msgid "Manually setting the points of your :class:`.VMobject` is usually discouraged; there are specialized methods that can take care of that for you -- but it might be relevant when implementing your own, custom :class:`.VMobject`."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:441
+msgid "Squares and Circles: back to our Toy Example"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:443
+msgid "With a basic understanding of different types of mobjects, and an idea of how vectorized mobjects are built we can now come back to our toy example and the execution of the :meth:`.Scene.construct` method. In the first two lines of our animation script, the ``orange_square`` and the ``blue_circle`` are initialized."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:450
+msgid "When creating the orange square by running"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:456
+msgid "the initialization method of :class:`.Square`, ``Square.__init__``, is called. `Looking at the implementation `__, we can see that the ``side_length`` attribute of the square is set, and then"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:466
+msgid "is called. This ``super`` call is the Python way of calling the initialization function of the parent class. As :class:`.Square` inherits from :class:`.Rectangle`, the next method called is ``Rectangle.__init__``. There, only the first three lines are really relevant for us::"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:476
+msgid "First, the initialization function of the parent class of :class:`.Rectangle` -- :class:`.Polygon` -- is called. The four positional arguments passed are the four corners of the polygon: ``UR`` is up right (and equal to ``UP + RIGHT``), ``UL`` is up left (and equal to ``UP + LEFT``), and so forth. Before we follow our debugger deeper, let us observe what happens with the constructed polygon: the remaining two lines stretch the polygon to fit the specified width and height such that a rectangle with the desired measurements is created."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:486
+msgid "The initialization function of :class:`.Polygon` is particularly simple, it only calls the initialization function of its parent class, :class:`.Polygram`. There, we have almost reached the end of the chain: :class:`.Polygram` inherits from :class:`.VMobject`, whose initialization function mainly sets the values of some attributes (quite similar to ``Mobject.__init__``, but more specific to the Bézier curves that make up the mobject)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:494
+msgid "After calling the initialization function of :class:`.VMobject`, the constructor of :class:`.Polygram` also does something somewhat odd: it sets the points (which, you might remember above, should actually be set in a corresponding ``generate_points`` method of :class:`.Polygram`)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:501
+msgid "In several instances, the implementation of mobjects does not really stick to all aspects of Manim's interface. This is unfortunate, and increasing consistency is something that we actively work on. Help is welcome!"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:506
+msgid "Without going too much into detail, :class:`.Polygram` sets its ``points`` attribute via :meth:`.VMobject.start_new_path`, :meth:`.VMobject.add_points_as_corners`, which take care of setting the quadruples of anchors and handles appropriately. After the points are set, Python continues to process the call stack until it reaches the method that was first called; the initialization method of :class:`.Square`. After this, the square is initialized and assigned to the ``orange_square`` variable."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:516
+msgid "The initialization of ``blue_circle`` is similar to the one of ``orange_square``, with the main difference being that the inheritance chain of :class:`.Circle` is different. Let us briefly follow the trace of the debugger:"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:521
+msgid "The implementation of :meth:`.Circle.__init__` immediately calls the initialization method of :class:`.Arc`, as a circle in Manim is simply an arc with an angle of :math:`\\tau = 2\\pi`. When initializing the arc, some basic attributes are set (like ``Arc.radius``, ``Arc.arc_center``, ``Arc.start_angle``, and ``Arc.angle``), and then the initialization method of its parent class, :class:`.TipableVMobject`, is called (which is a rather abstract base class for mobjects which a arrow tip can be attached to). Note that in contrast to :class:`.Polygram`, this class does **not** preemptively generate the points of the circle."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:532
+msgid "After that, things are less exciting: :class:`.TipableVMobject` again sets some attributes relevant for adding arrow tips, and afterwards passes to the initialization method of :class:`.VMobject`. From there, :class:`.Mobject` is initialized and :meth:`.Mobject.generate_points` is called, which actually runs the method implemented in :meth:`.Arc.generate_points`."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:539
+msgid "After both our ``orange_square`` and the ``blue_circle`` are initialized, the square is actually added to the scene. The :meth:`.Scene.add` method is actually doing a few interesting things, so it is worth to dig a bit deeper in the next section."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:546
+msgid "Adding Mobjects to the Scene"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:548
+msgid "The code in our ``construct`` method that is run next is"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:554
+msgid "From a high-level point of view, :meth:`.Scene.add` adds the ``orange_square`` to the list of mobjects that should be rendered, which is stored in the ``mobjects`` attribute of the scene. However, it does so in a very careful way to avoid the situation that a mobject is being added to the scene more than once. At a first glance, this sounds like a simple task -- the problem is that ``Scene.mobjects`` is not a \"flat\" list of mobjects, but a list of mobjects which might contain mobjects themselves, and so on."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:563
+msgid "Stepping through the code in :meth:`.Scene.add`, we see that first it is checked whether we are currently using the OpenGL renderer (which we are not) -- adding mobjects to the scene works slightly different (and actually easier!) for the OpenGL renderer. Then, the code branch for the Cairo renderer is entered and the list of so-called foreground mobjects (which are rendered on top of all other mobjects) is added to the list of passed mobjects. This is to ensure that the foreground mobjects will stay above of the other mobjects, even after adding the new ones. In our case, the list of foreground mobjects is actually empty, and nothing changes."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:574
+msgid "Next, :meth:`.Scene.restructure_mobjects` is called with the list of mobjects to be added as the ``to_remove`` argument, which might sound odd at first. Practically, this ensures that mobjects are not added twice, as mentioned above: if they were present in the scene ``Scene.mobjects`` list before (even if they were contained as a child of some other mobject), they are first removed from the list. The way :meth:`.Scene.restrucutre_mobjects` works is rather aggressive: It always operates on a given list of mobjects; in the ``add`` method two different lists occur: the default one, ``Scene.mobjects`` (no extra keyword argument is passed), and ``Scene.moving_mobjects`` (which we will discuss later in more detail). It iterates through all of the members of the list, and checks whether any of the mobjects passed in ``to_remove`` are contained as children (in any nesting level). If so, **their parent mobject is deconstructed** and their siblings are inserted directly one level higher. Consider the following example::"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:604
+msgid "Note that the group is disbanded and the circle moves into the root layer of mobjects in ``test_scene.mobjects``."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:607
+msgid "After the mobject list is \"restructured\", the mobject to be added are simply appended to ``Scene.mobjects``. In our toy example, the ``Scene.mobjects`` list is actually empty, so the ``restructure_mobjects`` method does not actually do anything. The ``orange_square`` is simply added to ``Scene.mobjects``, and as the aforementioned ``Scene.moving_mobjects`` list is, at this point, also still empty, nothing happens and :meth:`.Scene.add` returns."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:615
+msgid "We will hear more about the ``moving_mobject`` list when we discuss the render loop. Before we do that, let us look at the next line of code in our toy example, which includes the initialization of an animation class, ::"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:623
+msgid "Hence it is time to talk about :class:`.Animation`."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:627
+msgid "Animations and the Render Loop"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:630
+msgid "Initializing animations"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:632
+msgid "Before we follow the trace of the debugger, let us briefly discuss the general structure of the (abstract) base class :class:`.Animation`. An animation object holds all the information necessary for the renderer to generate the corresponding frames. Animations (in the sense of animation objects) in Manim are *always* tied to a specific mobject; even in the case of :class:`.AnimationGroup` (which you should actually think of as an animation on a group of mobjects rather than a group of animations). Moreover, except for in a particular special case, the run time of animations is also fixed and known beforehand."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:642
+msgid "The initialization of animations actually is not very exciting, :meth:`.Animation.__init__` merely sets some attributes derived from the passed keyword arguments and additionally ensures that the ``Animation.starting_mobject`` and ``Animation.mobject`` attributes are populated. Once the animation is played, the ``starting_mobject`` attribute holds an unmodified copy of the mobject the animation is attached to; during the initialization it is set to a placeholder mobject. The ``mobject`` attribute is set to the mobject the animation is attached to."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:652
+msgid "Animations have a few special methods which are called during the render loop:"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:655
+msgid ":meth:`.Animation.begin`, which is called (as hinted by its name) at the beginning of every animation, so before the first frame is rendered. In it, all the required setup for the animation happens."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:658
+msgid ":meth:`.Animation.finish` is the counterpart to the ``begin`` method which is called at the end of the life cycle of the animation (after the last frame has been rendered)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:661
+msgid ":meth:`.Animation.interpolate` is the method that updates the mobject attached to the animation to the corresponding animation completion percentage. For example, if in the render loop, ``some_animation.interpolate(0.5)`` is called, the attached mobject will be updated to the state where 50% of the animation are completed."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:667
+msgid "We will discuss details about these and some further animation methods once we walk through the actual render loop. For now, we continue with our toy example and the code that is run when initializing the :class:`.ReplacementTransform` animation."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:672
+msgid "The initialization method of :class:`.ReplacementTransform` only consists of a call to the constructor of its parent class, :class:`.Transform`, with the additional keyword argument ``replace_mobject_with_target_in_scene`` set to ``True``. :class:`.Transform` then sets attributes that control how the points of the starting mobject are deformed into the points of the target mobject, and then passes on to the initialization method of :class:`.Animation`. Other basic properties of the animation (like its ``run_time``, the ``rate_func``, etc.) are processed there -- and then the animation object is fully initialized and ready to be played."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:685
+msgid "The ``play`` call: preparing to enter Manim's render loop"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:687
+msgid "We are finally there, the render loop is in our reach. Let us walk through the code that is run when :meth:`.Scene.play` is called."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:692
+msgid "Recall that this article is specifically about the Cairo renderer. Up to here, things were more or less the same for the OpenGL renderer as well; while some base mobjects might be different, the control flow and lifecycle of mobjects is still more or less the same. There are more substantial differences when it comes to the rendering loop."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:698
+msgid "As you will see when inspecting the method, :meth:`.Scene.play` almost immediately passes over to the ``play`` method of the renderer, in our case :class:`.CairoRenderer.play`. The one thing :meth:`.Scene.play` takes care of is the management of subcaptions that you might have passed to it (see the the documentation of :meth:`.Scene.play` and :meth:`.Scene.add_subcaption` for more information)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:707
+msgid "As has been said before, the communication between scene and renderer is not in a very clean state at this point, so the following paragraphs might be confusing if you don't run a debugger and step through the code yourself a bit."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:712
+msgid "Inside :meth:`.CairoRenderer.play`, the renderer first checks whether it may skip rendering of the current play call. This might happen, for example, when ``-s`` is passed to the CLI (i.e., only the last frame should be rendered), or when the ``-n`` flag is passed and the current play call is outside of the specified render bounds. The \"skipping status\" is updated in form of the call to :meth:`.CairoRenderer.update_skipping_status`."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:719
+msgid "Next, the renderer asks the scene to process the animations in the play call so that renderer obtains all of the information it needs. To be more concrete, :meth:`.Scene.compile_animation_data` is called, which then takes care of several things:"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:724
+msgid "The method processes all animations and the keyword arguments passed to the initial :meth:`.Scene.play` call. In particular, this means that it makes sure all arguments passed to the play call are actually animations (or ``.animate`` syntax calls, which are also assembled to be actual :class:`.Animation`-objects at that point). It also propagates any animation-related keyword arguments (like ``run_time``, or ``rate_func``) passed to :class:`.Scene.play` to each individual animation. The processed animations are then stored in the ``animations`` attribute of the scene (which the renderer later reads...)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:733
+msgid "It adds all mobjects to which the animations that are played are bound to to the scene (provided the animation is not an mobject-introducing animation -- for these, the addition to the scene happens later)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:736
+msgid "In case the played animation is a :class:`.Wait` animation (this is the case in a :meth:`.Scene.wait` call), the method checks whether a static image should be rendered, or whether the render loop should be processed as usual (see :meth:`.Scene.should_update_mobjects` for the exact conditions, basically it checks whether there are any time-dependent updater functions and so on)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:742
+msgid "Finally, the method determines the total run time of the play call (which at this point is computed as the maximum of the run times of the passed animations). This is stored in the ``duration`` attribute of the scene."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:747
+msgid "After the animation data has been compiled by the scene, the renderer continues to prepare for entering the render loop. It now checks the skipping status which has been determined before. If the renderer can skip this play call, it does so: it sets the current play call hash (which we will get back to in a moment) to ``None`` and increases the time of the renderer by the determined animation run time."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:754
+msgid "Otherwise, the renderer checks whether or not Manim's caching system should be used. The idea of the caching system is simple: for every play call, a hash value is computed, which is then stored and upon re-rendering the scene, the hash is generated again and checked against the stored value. If it is the same, the cached output is reused, otherwise it is fully rerendered again. We will not go into details of the caching system here; if you would like to learn more, the :func:`.get_hash_from_play_call` function in the :mod:`.utils.hashing` module is essentially the entry point to the caching mechanism."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:764
+msgid "In the event that the animation has to be rendered, the renderer asks its :class:`.SceneFileWriter` to start a writing process. The process is started by a call to ``ffmpeg`` and opens a pipe to which rendered raw frames can be written. As long as the pipe is open, the process can be accessed via the ``writing_process`` attribute of the file writer. With the writing process in place, the renderer then asks the scene to \"begin\" the animations."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:772
+msgid "First, it literally *begins* all of the animations by calling their setup methods (:meth:`.Animation._setup_scene`, :meth:`.Animation.begin`). In doing so, the mobjects that are newly introduced by an animation (like via :class:`.Create` etc.) are added to the scene. Furthermore, the animation suspends updater functions being called on its mobject, and it sets its mobject to the state that corresponds to the first frame of the animation."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:780
+msgid "After this has happened for all animations in the current ``play`` call, the Cairo renderer determines which of the scene's mobjects can be painted statically to the background, and which ones have to be redrawn every frame. It does so by calling :meth:`.Scene.get_moving_and_static_mobjects`, and the resulting partition of mobjects is stored in the corresponding ``moving_mobjects`` and ``static_mobjects`` attributes."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:790
+msgid "The mechanism that determines static and moving mobjects is specific for the Cairo renderer, the OpenGL renderer works differently. Basically, moving mobjects are determined by checking whether they, any of their children, or any of the mobjects \"below\" them (in the sense of the order in which mobjects are processed in the scene) either have an update function attached, or whether they appear in one of the current animations. See the implementation of :meth:`.Scene.get_moving_mobjects` for more details."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:799
+msgid "Up to this very point, we did not actually render any (partial) image or movie files from the scene yet. This is, however, about to change. Before we enter the render loop, let us briefly revisit our toy example and discuss how the generic :meth:`.Scene.play` call setup looks like there."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:805
+msgid "For the call that plays the :class:`.ReplacementTransform`, there is no subcaption to be taken care of. The renderer then asks the scene to compile the animation data: the passed argument already is an animation (no additional preparations needed), there is no need for processing any keyword arguments (as we did not specify any additional ones to ``play``). The mobject bound to the animation, ``orange_square``, is already part of the scene (so again, no action taken). Finally, the run time is extracted (3 seconds long) and stored in ``Scene.duration``. The renderer then checks whether it should skip (it should not), then whether the animation is already cached (it is not). The corresponding animation hash value is determined and passed to the file writer, which then also calls ``ffmpeg`` to start the writing process which waits for rendered frames from the library."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:821
+msgid "The scene then ``begin``\\ s the animation: for the :class:`.ReplacementTransform` this means that the animation populates all of its relevant animation attributes (i.e., compatible copies of the starting and the target mobject so that it can safely interpolate between the two)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:827
+msgid "The mechanism determining static and moving mobjects considers all of the scenes mobjects (at this point only the ``orange_square``), and determines that the ``orange_square`` is bound to an animation that is currently played. As a result, the square is classified as a \"moving mobject\"."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:833
+msgid "Time to render some frames."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:837
+msgid "The render loop (for real this time)"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:839
+msgid "As mentioned above, due to the mechanism that determines static and moving mobjects in the scene, the renderer knows which mobjects it can paint statically to the background of the scene. Practically, this means that it partially renders a scene (to produce a background image), and then when iterating through the time progression of the animation only the \"moving mobjects\" are re-painted on top of the static background."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:846
+msgid "The renderer calls :meth:`.CairoRenderer.save_static_frame_data`, which first checks whether there are currently any static mobjects, and if there are, it updates the frame (only with the static mobjects; more about how exactly this works in a moment) and then saves a NumPy array representing the rendered frame in the ``static_image`` attribute. In our toy example, there are no static mobjects, and so the ``static_image`` attribute is simply set to ``None``."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:854
+msgid "Next, the renderer asks the scene whether the current animation is a \"frozen frame\" animation, which would mean that the renderer actually does not have to repaint the moving mobjects in every frame of the time progression. It can then just take the latest static frame, and display it throughout the animation."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:862
+msgid "An animation is considered a \"frozen frame\" animation if only a static :class:`.Wait` animation is played. See the description of :meth:`.Scene.compile_animation_data` above, or the implementation of :meth:`.Scene.should_update_mobjects` for more details."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:868
+msgid "If this is not the case (just as in our toy example), the renderer then calls the :meth:`.Scene.play_internal` method, which is the integral part of the render loop (in which the library steps through the time progression of the animation and renders the corresponding frames)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:874
+msgid "Within :meth:`.Scene.play_internal`, the following steps are performed:"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:876
+msgid "The scene determines the run time of the animations by calling :meth:`.Scene.get_run_time`. This method basically takes the maximum ``run_time`` attribute of all of the animations passed to the :meth:`.Scene.play` call."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:880
+msgid "Then the *time progression* is constructed via the (internal) :meth:`.Scene._get_animation_time_progression` method, which wraps the actual :meth:`.Scene.get_time_progression` method. The time progression is a ``tqdm`` `progress bar object `__ for an iterator over ``np.arange(0, run_time, 1 / config.frame_rate)``. In other words, the time progression holds the time stamps (relative to the current animations, so starting at 0 and ending at the total animation run time, with the step size determined by the render frame rate) of the timeline where a new animation frame should be rendered."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:889
+msgid "Then the scene iterates over the time progression: for each time stamp ``t``, :meth:`.Scene.update_to_time` is called, which ..."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:892
+msgid "... first computes the time passed since the last update (which might be 0, especially for the initial call) and references it as ``dt``,"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:894
+msgid "then (in the order in which the animations are passed to :meth:`.Scene.play`) calls :meth:`.Animation.update_mobjects` to trigger all updater functions that are attached to the respective animation except for the \"main mobject\" of the animation (that is, for example, for :class:`.Transform` the unmodified copies of start and target mobject -- see :meth:`.Animation.get_all_mobjects_to_update` for more details),"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:900
+msgid "then the relative time progression with respect to the current animation is computed (``alpha = t / animation.run_time``), which is then used to update the state of the animation with a call to :meth:`.Animation.interpolate`."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:903
+msgid "After all of the passed animations have been processed, the updater functions of all mobjects in the scene, all meshes, and finally those attached to the scene itself are run."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:907
+msgid "At this point, the internal (Python) state of all mobjects has been updated to match the currently processed timestamp. If rendering should not be skipped, then it is now time to *take a picture*!"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:913
+msgid "The update of the internal state (iteration over the time progression) happens *always* once :meth:`.Scene.play_internal` is entered. This ensures that even if frames do not need to be rendered (because, e.g., the ``-n`` CLI flag has been passed, something has been cached, or because we might be in a *Section* with skipped rendering), updater functions still run correctly, and the state of the first frame that *is* rendered is kept consistent."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:920
+msgid "To render an image, the scene calls the corresponding method of its renderer, :meth:`.CairoRenderer.render` and passes just the list of *moving mobjects* (remember, the *static mobjects* are assumed to have already been painted statically to the background of the scene). All of the hard work then happens when the renderer updates its current frame via a call to :meth:`.CairoRenderer.update_frame`:"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:926
+msgid "First, the renderer prepares its :class:`.Camera` by checking whether the renderer has a ``static_image`` different from ``None`` stored already. If so, it sets the image as the *background image* of the camera via :meth:`.Camera.set_frame_to_background`, and otherwise it just resets the camera via :meth:`.Camera.reset`. The camera is then asked to capture the scene with a call to :meth:`.Camera.camture_mobjects`."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:932
+msgid "Things get a bit technical here, and at some point it is more efficient to delve into the implementation -- but here is a summary of what happens once the camera is asked to capture the scene:"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:936
+msgid "First, a flat list of mobjects is created (so submobjects get extracted from their parents). This list is then processed in groups of the same type of mobjects (e.g., a batch of vectorized mobjects, followed by a batch of image mobjects, followed by more vectorized mobjects, etc. -- in many cases there will just be one batch of vectorized mobjects)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:941
+msgid "Depending on the type of the currently processed batch, the camera uses dedicated *display functions* to convert the :class:`.Mobject` Python object to a NumPy array stored in the camera's ``pixel_array`` attribute. The most important example in that context is the display function for vectorized mobjects, :meth:`.Camera.display_multiple_vectorized_mobjects`, or the more particular (in case you did not add a background image to your :class:`.VMobject`), :meth:`.Camera.display_multiple_non_background_colored_vmobjects`. This method first gets the current Cairo context, and then, for every (vectorized) mobject in the batch, calls :meth:`.Camera.display_vectorized`. There, the actual background stroke, fill, and then stroke of the mobject is drawn onto the context. See :meth:`.Camera.apply_stroke` and :meth:`.Camera.set_cairo_context_color` for more details -- but it does not get much deeper than that, in the latter method the actual Bézier curves determined by the points of the mobject are drawn; this is where the low-level interaction with Cairo happens."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:957
+msgid "After all batches have been processed, the camera has an image representation of the Scene at the current time stamp in form of a NumPy array stored in its ``pixel_array`` attribute. The renderer then takes this array and passes it to its :class:`.SceneFileWriter`. This concludes one iteration of the render loop, and once the time progression has been processed completely, a final bit of cleanup is performed before the :meth:`.Scene.play_internal` call is completed."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:964
+msgid "A TL;DR for the render loop, in the context of our toy example, reads as follows:"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:966
+msgid "The scene finds that a 3 second long animation (the :class:`.ReplacementTransform` changing the orange square to the blue circle) should be played. Given the requested medium render quality, the frame rate is 30 frames per second, and so the time progression with steps ``[0, 1/30, 2/30, ..., 89/30]`` is created."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:970
+msgid "In the internal render loop, each of these time stamps is processed: there are no updater functions, so effectively the scene updates the state of the transformation animation to the desired time stamp (for example, at time stamp ``t = 45/30``, the animation is completed to a rate of ``alpha = 0.5``)."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:975
+msgid "Then the scene asks the renderer to do its job. The renderer asks its camera to capture the scene, the only mobject that needs to be processed at this point is the main mobject attached to the transformation; the camera converts the current state of the mobject to entries in a NumPy array. The renderer passes this array to the file writer."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:980
+msgid "At the end of the loop, 90 frames have been passed to the file writer."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:983
+msgid "Completing the render loop"
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:985
+msgid "The last few steps in the :meth:`.Scene.play_internal` call are not too exciting: for every animation, the corresponding :meth:`.Animation.finish` and :meth:`.Animation.clean_up_from_scene` methods are called."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:991
+msgid "Note that as part of :meth:`.Animation.finish`, the :meth:`.Animation.interpolate` method is called with an argument of 1.0 -- you might have noticed already that the last frame of an animation can sometimes be a bit off or incomplete. This is by current design! The last frame rendered in the render loop (and displayed for a duration of ``1 / frame_rate`` seconds in the rendered video) corresponds to the state of the animation ``1 / frame_rate`` seconds before it ends. To display the final frame as well in the video, we would need to append another ``1 / frame_rate`` seconds to the video -- which would then mean that a 1 second rendered Manim video would be slightly longer than 1 second. We decided against this at some point."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:1001
+msgid "In the end, the time progression is closed (which completes the displayed progress bar) in the terminal. With the closing of the time progression, the :meth:`.Scene.play_internal` call is completed, and we return to the renderer, which now orders the :class:`.SceneFileWriter` to close the movie pipe that has been opened for this animation: a partial movie file is written."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:1007
+msgid "This pretty much concludes the walkthrough of a :class:`.Scene.play` call, and actually there is not too much more to say for our toy example either: at this point, a partial movie file that represents playing the :class:`.ReplacementTransform` has been written. The initialization of the :class:`.Dot` happens analogous to the initialization of ``blue_circle``, which has been discussed above. The :meth:`.Mobject.add_updater` call literally just attaches a function to the ``updaters`` attribute of the ``small_dot``. And the remaining :meth:`.Scene.play` and :meth:`.Scene.wait` calls follow the exact same procedure as discussed in the render loop section above; each such call produces a corresponding partial movie file."
+msgstr ""
+
+#: ../../source/guides/deep_dive.rst:1018
+msgid "Once the :meth:`.Scene.construct` method has been fully processed (and thus all of the corresponding partial movie files have been written), the scene calls its cleanup method :meth:`.Scene.tear_down`, and then asks its renderer to finish the scene. The renderer, in turn, asks its scene file writer to wrap things up by calling :meth:`.SceneFileWriter.finish`, which triggers the combination of the partial movie files into the final product."
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/guides/index.pot b/docs/i18n/gettext/guides/index.pot
new file mode 100644
index 0000000000..b163d6b4a2
--- /dev/null
+++ b/docs/i18n/gettext/guides/index.pot
@@ -0,0 +1,14 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/guides/index.rst:4
+#: ../../source/guides/index.rst:4
+msgid "Table of Contents"
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/guides/using_text.pot b/docs/i18n/gettext/guides/using_text.pot
new file mode 100644
index 0000000000..1358ff998d
--- /dev/null
+++ b/docs/i18n/gettext/guides/using_text.pot
@@ -0,0 +1,269 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/guides/using_text.rst:3
+msgid "Rendering Text and Formulas"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:5
+msgid "There are two different ways by which you can render **Text** in videos:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:7
+msgid "Using Pango (:mod:`~.text_mobject`)"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:8
+msgid "Using LaTeX (:mod:`~.tex_mobject`)"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:10
+msgid "If you want to render simple text, you should use either :class:`~.Text` or :class:`~.MarkupText`, or one of its derivatives like :class:`~.Paragraph`. See :ref:`using-text-objects` for more information."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:14
+msgid "LaTeX should be used when you need mathematical typesetting. See :ref:`rendering-with-latex` for more information."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:20
+msgid "Text Without LaTeX"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:22
+msgid "The simplest way to add text to your animations is to use the :class:`~.Text` class. It uses the `Pango library`_ to render text. With Pango, you can also render non-English alphabets like 你好 or こんにちは or 안녕하세요 or مرحبا بالعالم."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:27
+msgid "Here is a simple *Hello World* animation."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:38
+msgid "You can also use :class:`~.MarkupText` which allows the use of PangoMarkup (see the documentation of :class:`~.MarkupText` for details) to render text. For example:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:56
+msgid "Working with :class:`~.Text`"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:58
+msgid "This section explains the properties of :class:`~.Text` and how can it be used in your animations."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:62
+msgid "Using Fonts"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:64
+msgid "You can set a different font using :attr:`~.Text.font`."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:68
+msgid "The font used must be installed in your system, and Pango should know about it. You can get a list of fonts using :func:`manimpango.list_fonts`."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:85
+msgid "Setting Slant and Weight"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:86
+msgid "Slant is the style of the Text, and it can be ``NORMAL`` (the default), ``ITALIC`` or ``OBLIQUE``. Usually, for many fonts both ``ITALIC`` and ``OBLIQUE`` look similar, but ``ITALIC`` uses **Roman Style**, whereas ``OBLIQUE`` uses **Italic Style**."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:91
+msgid "Weight specifies the boldness of a font. You can see a list of weights in :class:`manimpango.Weight`."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:126
+msgid "Using Colors"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:128
+msgid "You can set the color of the text using :attr:`~.Text.color`:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:138
+msgid "You can use utilities like :attr:`~.Text.t2c` for coloring specific characters. This may be problematic if your text contains ligatures as explained in :ref:`iterating-text`."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:142
+msgid ":attr:`~Text.t2c` accepts two types of dictionaries,"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:144
+msgid "The keys can contain indices like ``[2:-1]`` or ``[4:8]``, this works similar to how `slicing `_ works in Python. The values should be the color of the Text from :class:`~.Color`."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:149
+msgid "The keys contain words or characters which should be colored separately and the values should be the color from :class:`~.Color`:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:161
+msgid "If you want to avoid problems when using colors (due to ligatures), consider using :class:`MarkupText`."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:166
+msgid "Using Gradients"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:168
+msgid "You can add a gradient using :attr:`~.Text.gradient`. The value must be an iterable of any length:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:179
+msgid "You can also use :attr:`~.Text.t2g` for gradients with specific characters of the text. It shares a similar syntax to :ref:`the interface for colors `:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:203
+msgid "Setting Line Spacing"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:205
+msgid "You can set the line spacing using :attr:`~.Text.line_spacing`:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:220
+msgid "Disabling Ligatures"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:222
+msgid "By disabling ligatures you would get a one-to-one mapping between characters and submobjects. This fixes the issues with coloring text."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:228
+msgid "Be aware that using this method with text that heavily depends on ligatures (Arabic text) may yield unexpected results."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:231
+msgid "You can disable ligatures by passing ``disable_ligatures`` to :class:`Text`. For example:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:246
+msgid "Iterating :class:`~.Text`"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:248
+msgid "Text objects behave like :class:`VGroups <.VGroup>`. Therefore, you can slice and index the text."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:251
+msgid "For example, you can set each letter to different color by iterating it."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:265
+msgid "Please note that `Ligature`_ can cause problems here. If you need a one-to-one mapping of characters to submobjects you should pass the ``disable_ligatures`` parameter to :class:`~.Text`. See :ref:`disable-ligatures`."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:273
+msgid "Working with :class:`~.MarkupText`"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:275
+msgid "MarkupText is similar to :class:`~.Text`, the only difference between them is that this accepts and processes PangoMarkup (which is similar to html), instead of just rendering plain text."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:279
+msgid "Consult the documentation of :class:`~.MarkupText` for more details and further references about PangoMarkup."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:297
+msgid "Text With LaTeX"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:299
+msgid "Just as you can use :class:`~.Text` to add text to your videos, you can use :class:`~.Tex` to insert LaTeX."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:302
+msgid "For example,"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:314
+msgid "Note that we are using a raw string (``r'...'``) instead of a regular string (``'...'``). This is because TeX code uses a lot of special characters - like ``\\`` for example - that have special meaning within a regular python string. An alternative would have been to write ``\\\\`` to escape the backslash: ``Tex('\\\\LaTeX')``."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:320
+msgid "Working with :class:`~.MathTex`"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:322
+msgid "Everything passed to :class:`~.MathTex` is in math mode by default. To be more precise, :class:`~.MathTex` is processed within an ``align*`` environment. You can achieve a similar effect with :class:`~.Tex` by enclosing your formula with ``$`` symbols: ``$\\xrightarrow{x^6y^8}$``:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:339
+msgid "LaTeX commands and keyword arguments"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:341
+msgid "We can use any standard LaTeX commands in the AMS maths packages. Such as the ``mathtt`` math-text type or the ``looparrowright`` arrow."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:352
+msgid "On the Manim side, the :class:`~.Tex` class also accepts attributes to change the appearance of the output. This is very similar to the :class:`~.Text` class. For example, the ``color`` keyword changes the color of the TeX mobject."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:366
+msgid "Extra LaTeX Packages"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:368
+msgid "Some commands require special packages to be loaded into the TeX template. For example, to use the ``mathscr`` script, we need to add the ``mathrsfs`` package. Since this package isn't loaded into Manim's tex template by default, we have to add it manually."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:388
+msgid "Substrings and parts"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:390
+msgid "The TeX mobject can accept multiple strings as arguments. Afterwards you can refer to the individual parts either by their index (like ``tex[1]``), or by selecting parts of the tex code. In this example, we set the color of the ``\\bigstar`` using :func:`~.set_color_by_tex`:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:404
+msgid "Note that :func:`~.set_color_by_tex` colors the entire substring containing the Tex, not just the specific symbol or Tex expression. Consider the following example:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:418
+msgid "As you can see, this colors the entire equation yellow, contrary to what may be expected. To color only ``x`` yellow, we have to do the following:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:433
+msgid "By setting ``substrings_to_isolate`` to ``x``, we split up the :class:`~.MathTex` into substrings automatically and isolate the ``x`` components into individual substrings. Only then can :meth:`~.set_color_by_tex` be used to achieve the desired result."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:438
+msgid "Note that Manim also supports a custom syntax that allows splitting a TeX string into substrings easily: simply enclose parts of your formula that you want to isolate with double braces. In the string ``MathTex(r\"{{ a^2 }} + {{ b^2 }} = {{ c^2 }}\")``, the rendered mobject will consist of the substrings ``a^2``, ``+``, ``b^2``, ``=``, and ``c^2``. This makes transformations between similar text fragments easy to write using :class:`~.TransformMatchingTex`."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:447
+msgid "Using ``index_labels`` to work with complicated strings"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:449
+msgid "You might sometimes be working with a very complicated :class:`~.MathTex` mobject that makes it difficult to work with its individual components. This is where the debugging function :func:`.index_labels` is very useful."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:453
+msgid "The method shows the index of a mobject's submobjects, allowing you to easily find the components of the mobject you would like to change."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:472
+msgid "LaTeX Maths Fonts - The Template Library"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:474
+msgid "Changing fonts in LaTeX when typesetting mathematical formulae is trickier than regular text. It requires changing the template that is used to compile the TeX. Manim comes with a collection of :class:`~.TexFontTemplates` ready for you to use. These templates will all work in math mode:"
+msgstr ""
+
+#: ../../source/guides/using_text.rst:491
+msgid "Manim also has a :class:`~.TexTemplateLibrary` containing the TeX templates used by 3Blue1Brown. One example is the ctex template, used for typesetting Chinese script. For this to work, the ctex LaTeX package must be installed on your system. Furthermore, if you are only typesetting Text, you probably do not need :class:`~.Tex` at all, and should use :class:`~.Text` instead."
+msgstr ""
+
+#: ../../source/guides/using_text.rst:508
+msgid "Aligning formulae"
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/index.pot b/docs/i18n/gettext/index.pot
index 378cbf0228..8c4c97230f 100644
--- a/docs/i18n/gettext/index.pot
+++ b/docs/i18n/gettext/index.pot
@@ -7,15 +7,107 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: ../../source/index.rst:7
-msgid "Manim Community Overview"
+msgid "Manim Community Edition"
msgstr ""
#: ../../source/index.rst:9
msgid "Animating technical concepts is traditionally pretty tedious since it can be difficult to make the animations precise enough to convey them accurately. Manim relies on Python's simplicity to generate animations programmatically, making it convenient to specify exactly how each one should run. Take a look at the :doc:`Example Gallery <../examples>` for some inspiration on how to create beautiful images and videos with Manim."
msgstr ""
-#: ../../source/index.rst:16
+#: ../../source/index.rst:17
+msgid "First Steps"
+msgstr ""
+
+#: ../../source/index.rst:19
+msgid "Are you new to Manim and are looking for where to get started? Then you are in the right place!"
+msgstr ""
+
+#: ../../source/index.rst:24
+msgid "Please be aware that there are different, incompatible versions of Manim available. Check our :ref:`installation FAQ ` to learn more!"
+msgstr ""
+
+#: ../../source/index.rst:28
+msgid "The :doc:`Installation ` section has the latest and up-to-date installation instructions for Windows, MacOS, and Linux. You can also find information on Manim's docker images and (online) notebook environments there."
+msgstr ""
+
+#: ../../source/index.rst:32
+msgid "Want to try the library before installing it? Take a look at our interactive online playground at https://try.manim.community in form of a Jupyter notebook."
+msgstr ""
+
+#: ../../source/index.rst:35
+msgid "In our :doc:`Tutorials ` section you will find a collection of resources that will teach you how to use Manim. In particular, the :doc:`tutorials/quickstart` tutorial teaches you Manim's basics, and in :doc:`tutorials/building_blocks` the classes used to compose your animations are described in more detail."
+msgstr ""
+
+#: ../../source/index.rst:43
+msgid "Finding Help"
+msgstr ""
+
+#: ../../source/index.rst:45
+msgid "Are you struggling with installing or using Manim? Don't worry, we've all been there. Here are some good resources to help you out:"
+msgstr ""
+
+#: ../../source/index.rst:48
+msgid "Perhaps your problem is one that occurs frequently, then chances are it is addressed in our :doc:`collection of FAQs `."
+msgstr ""
+
+#: ../../source/index.rst:50
+msgid "If you are looking for information on some specific class, look for it in the :doc:`reference manual ` and/or use the search feature of the documentation."
+msgstr ""
+
+#: ../../source/index.rst:53
+msgid "Still no luck? Then you are welcome to ask the community for help, together we usually manage to find a solution for your problem! Consult the :doc:`FAQ page on getting help ` for instructions."
+msgstr ""
+
+#: ../../source/index.rst:59
+msgid "Navigating the Documentation"
+msgstr ""
+
+#: ../../source/index.rst:61
+msgid "Here are some short summaries for all of the sections in this documentation:"
+msgstr ""
+
+#: ../../source/index.rst:63
+msgid "The :doc:`Example Gallery ` is a collection of examples (rendered videos and images together with the code they were generated from) that show a few different, simple things that you can do with Manim."
+msgstr ""
+
+#: ../../source/index.rst:66
+msgid "The :doc:`Installation ` section has information on installing Manim."
+msgstr ""
+
+#: ../../source/index.rst:67
+msgid "In :doc:`Tutorials & Guides ` you can find learning resources: proper tutorials that guide you through the process of creating a video are in the :doc:`Tutorial ` section; guides on specific topics are in the :doc:`Guides ` section, and the answers to frequently asked questions can be found in the :doc:`FAQ ` section."
+msgstr ""
+
+#: ../../source/index.rst:72
+msgid "The :doc:`Reference Manual ` contains a comprehensive list of all of Manim's (documented) modules, classes, and functions. If you are somewhat familiar with Manim's module structure feel free to browse the manual directly. If you are searching for something specific, feel free to use the documentation's search feature in the sidebar. Many classes and methods come with their own illustrated examples too!"
+msgstr ""
+
+#: ../../source/index.rst:77
+msgid "The :doc:`Plugins ` page documents how to install, write, and distribute plugins (that is, separate Python packages that extend the feature set of the core library)."
+msgstr ""
+
+#: ../../source/index.rst:79
+msgid "Changes between versions are documented in our :doc:`Changelog `."
+msgstr ""
+
+#: ../../source/index.rst:80
+msgid "If you are looking into contributing to the development of Manim, you can find information on how to get involved in our :doc:`Contributing ` section."
+msgstr ""
+
+#: ../../source/index.rst:82
+msgid "And finally, the :doc:`Code of Conduct ` page has a formal description of the rules you should abide by when interacting within our community."
+msgstr ""
+
+#: ../../source/index.rst:86
+msgid "Sharing Your Work"
+msgstr ""
+
+#: ../../source/index.rst:88
msgid "We'd love to hear from you and see your manimations `on Twitter `_, `Reddit `_, or `Discord `_. If you're using Manim in a scientific context, instructions on how to cite a particular release can be found `in our README `_."
msgstr ""
+#: ../../source/index.rst:95
+msgid "Index"
+msgstr ""
+
diff --git a/docs/i18n/gettext/installation.pot b/docs/i18n/gettext/installation.pot
index 7d2d56328d..956ccbdfc3 100644
--- a/docs/i18n/gettext/installation.pot
+++ b/docs/i18n/gettext/installation.pot
@@ -19,7 +19,7 @@ msgid "Otherwise, if you intend to use Manim to work on an animation project, we
msgstr ""
#: ../../source/installation.rst:16
-msgid "Note that there are several different versions of Manim. The instructions on this website are **only** for the *community edition*. Find out more about the :doc:`differences between Manim versions ` if you are unsure which version you should install."
+msgid "Note that there are several different versions of Manim. The instructions on this website are **only** for the *community edition*. Find out more about the :ref:`differences between Manim versions ` if you are unsure which version you should install."
msgstr ""
#: ../../source/installation.rst:22
@@ -50,47 +50,47 @@ msgstr ""
msgid "Depending on your particular setup, the installation process might be slightly different. Make sure that you have tried to follow the steps on the following pages carefully, but in case you hit a wall we are happy to help: either `join our Discord `__, or start a new Discussion `directly on GitHub `__."
msgstr ""
-#: ../../source/installation.rst:59
+#: ../../source/installation.rst:58
msgid "Once Manim is installed locally, you can proceed to our :doc:`quickstart guide ` which walks you through rendering a first simple scene."
msgstr ""
-#: ../../source/installation.rst:63
-msgid "As mentioned above, do not worry if there are errors or other problems: consult our :doc:`troubleshooting guide ` for help, or get in touch with the community via `GitHub discussions `__ or `Discord `__."
+#: ../../source/installation.rst:62
+msgid "As mentioned above, do not worry if there are errors or other problems: consult our :doc:`FAQ section ` for help (including instructions for how to ask Manim's community for help)."
msgstr ""
-#: ../../source/installation.rst:75
+#: ../../source/installation.rst:71
msgid "Using Manim via Docker"
msgstr ""
-#: ../../source/installation.rst:77
+#: ../../source/installation.rst:73
msgid "`Docker `__ is a virtualization tool that allows the distribution of encapsulated software environments (containers)."
msgstr ""
-#: ../../source/installation.rst:80
+#: ../../source/installation.rst:76
msgid "The following pages contain more information about the docker image maintained by the community, ``manimcommunity/manim``:"
msgstr ""
-#: ../../source/installation.rst:91
+#: ../../source/installation.rst:87
msgid "Interactive Jupyter notebooks for your browser"
msgstr ""
-#: ../../source/installation.rst:93
+#: ../../source/installation.rst:89
msgid "Manim ships with a built-in ``%%manim`` IPython magic command designed for the use within `Jupyter notebooks `__. Our interactive tutorial over at https://try.manim.community illustrates how Manim can be used from within a Jupyter notebook."
msgstr ""
-#: ../../source/installation.rst:98
+#: ../../source/installation.rst:94
msgid "The following pages explain how you can setup interactive environments like that yourself:"
msgstr ""
-#: ../../source/installation.rst:108
+#: ../../source/installation.rst:104
msgid "Editors"
msgstr ""
-#: ../../source/installation.rst:110
+#: ../../source/installation.rst:106
msgid "If you're using Visual Studio Code you can install an extension called *Manim Sideview* which provides automated rendering and an integrated preview of the animation inside the editor. The extension can be installed through the `marketplace of VS Code `__."
msgstr ""
-#: ../../source/installation.rst:117
+#: ../../source/installation.rst:113
msgid "Installation for developers"
msgstr ""
diff --git a/docs/i18n/gettext/installation/troubleshooting.pot b/docs/i18n/gettext/installation/troubleshooting.pot
index c4857b3edb..8b13789179 100644
--- a/docs/i18n/gettext/installation/troubleshooting.pot
+++ b/docs/i18n/gettext/installation/troubleshooting.pot
@@ -1,305 +1 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Manim \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../source/installation/troubleshooting.rst:2
-msgid "Troubleshooting"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:5
-msgid "Version incompatibility"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:7
-msgid "Confusion and conflict between versions is by far the most common reason for installation failures. Some signs and errors resulting from this are as follows:"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:11
-msgid "``There are no scenes in that module``"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:12
-msgid "``ModuleNotFoundError: No module named 'manim'``"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:13
-msgid "``ModuleNotFoundError: No module named 'manimlib'``"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:14
-msgid "You followed any tutorial created before October 2020 (because the community edition did not exist before then)"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:15
-msgid "You cloned a repository on GitHub (installation of the community version for normal use does not require the cloning of any repository)"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:16
-msgid "Different import statements (explained below)"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:17
-msgid "You used documentation for multiple versions (such as the readme for 3b1b/manim and this documentation)"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:20
-msgid "As this is the documentation for the community version, we can only help with the installation of this library. If you would like to install other versions of manim, please refer to their documentation."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:25
-msgid "Identifying files written for a different version of manim"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:27
-msgid "There are some distinctive features of different versions of manim that can help in identifying what version of manim files are written for:"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:31
-msgid "Feature"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:31
-msgid "ManimCE (this version)"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:31
-msgid "ManimGL"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:31
-msgid "ManimCairo"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:33
-msgid "Import statement"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:33
-msgid "``from manim import *``"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:33
-msgid "``from manimlib import *``"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:33
-msgid "``from manimlib.imports import *``"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:37
-msgid "If you are a beginner, you should only attempt to run files written for your version. Files written for a different version of manim will generally not work without some modification."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:42
-msgid "Identifying the version you are running"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:44
-msgid "The community edition of manim should always state `Manim Community ` as its first line of any command you run."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:48
-msgid "Identifying and removing conflicting versions of manim"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:50
-msgid "Within the system or environment you are using to run manim, run the following command in the terminal:"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:57
-msgid "The correct package for the community edition is simply ``manim``. If you do not see this package listed, please refer back to our installation guide to install it. If you see ``manimlib`` or ``manimce`` (actually an old version of the community edition), you should remove them with:"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:68
-msgid "If you have cloned a repository from GitHub, you should either remove it or run manim outside that folder."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:72
-msgid "Other errors"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:75
-msgid "``pip install manim`` fails when installing manimpango?"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:76
-msgid "Most likely this means that pip was not able to use our pre-built wheels of ``manimpango``. Let us know (via our `Discord `_ or by opening a `new issue on GitHub `_) which architecture you would like to see supported, and we'll see what we can do about it."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:83
-msgid "To fix errors when installing ``manimpango``, you need to make sure you have all the necessary build requirements. Check out the detailed instructions given in `the BUILDING section `_ of the corresponding `GitHub repository `_."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:91
-msgid "(Windows) OSError: dlopen() failed to load a library: pango?"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:93
-msgid "This should be fixed in Manim's latest version, update using ``pip install --upgrade manim``."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:99
-msgid "Some letters are missing from Text/Tex output?"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:101
-msgid "If you have recently installed TeX you may need to build the fonts it uses. Which can be done by running:"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:112
-msgid "Installation does not support converting PDF to SVG?"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:114
-msgid "First, make sure your ``dvisvgm`` version is at least 2.4:"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:121
-msgid "If you do not know how to update ``dvisvgm``, please refer to your operating system's documentation."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:123
-msgid "Second, check whether your ``dvisvgm`` supports PostScript specials. This is needed to convert from PDF to SVG."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:131
-msgid "If the output to this command does **not** contain ``ps dvips PostScript specials``, this is a bad sign. In this case, run"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:139
-msgid "If the output does **not** contain ``--libgs=filename``, this means your ``dvisvgm`` does not currently support PostScript. You must get another binary."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:142
-msgid "If, however, ``--libgs=filename`` appears in the help, that means that your ``dvisvgm`` needs the Ghostscript library to support PostScript. Search for ``libgs.so`` (on Linux, probably in ``/usr/local/lib`` or ``/usr/lib``) or ``gsdll32.dll`` (on 32-bit Windows, probably in ``C:\\windows\\system32``) or ``gsdll64.dll`` (on 64-bit Windows, probably in ``c:\\windows\\system32`` -- yes 32) or ``libgsl.dylib`` (on Mac OS, probably in ``/usr/local/lib`` or ``/opt/local/lib``). Please look carefully, as the file might be located elsewhere, e.g. in the directory where Ghostscript is installed."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:151
-msgid "As soon as you have found the library, try (on Mac OS or Linux)"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:158
-msgid "or (on Windows)"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:166
-msgid "You should now see ``ps dvips PostScript specials`` in the output. Refer to your operating system's documentation to find out how you can set or export the environment variable ``LIBGS`` automatically whenever you open a shell."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:170
-msgid "As a last check, you can run"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:176
-msgid "while still having ``LIBGS`` set to the correct path, of course. If ``dvisvgm`` can find your Ghostscript installation, it will be shown in the output together with the version number."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:180
-msgid "If you do not have the necessary library on your system, please refer to your operating system's documentation to find out where you can get it and how you have to install it."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:184
-msgid "If you are unable to solve your problem, check out the `dvisvgm FAQ `_."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:187
-msgid "(Windows) ``Python is not recognized as an internal or external command, operable program or batch file.``"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:189
-msgid "To fix this, you need to add the Python executable to your ``PATH`` environment variable. Follow the steps in `this StackExchange answer `__."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:193
-msgid "``choco install manimce`` failed"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:195
-msgid "If ``choco install manimce`` failed, it is likely being caused by Python not being added to your ``PATH`` variable properly. Try running the following commands in your terminal:"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:199
-msgid "``py --version``"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:200
-msgid "``python --version``"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:201
-msgid "``py3 --version``"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:202
-msgid "``python3 --version``"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:204
-msgid "Minimally, ``py --version`` and ``python --version`` should return a version. If none of these commands are recognized, this means that Python was installed on your system, but was not added to PATH. See above for directions to add it to your PATH variable."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:209
-msgid "If any of these commands opens up the Windows store, this is likely interfering with the process. This is because Chocolatey runs a command that calls python or python3, and opening up the Windows store is not the expected behavior. See below to fix aliases."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:216
-msgid "(Windows) Fix Aliases"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:218
-msgid "Go to the Windows Settings."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:219
-msgid "Under Apps and Features, there are an application execution aliases."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:220
-msgid "Within this menu disable the alias(es) that is causing the issue (``python`` and/or ``python3``)."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:223
-msgid "``IndexError: List index out of range``"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:225
-msgid "Did you install LaTeX using MiKTeX? If so, open the MiKTeX console, install the ``cm-super`` package, then delete the ``media`` directory and try to render the scene again."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:230
-msgid "Config"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:232
-msgid "We've dropped the use of CONFIG in the Community Version :doc:`version 0.2.0<../changelog/0.2.0-changelog>`, released in January 2021. This means parameters that were previously specified in the CONFIG dictionary should now be passed directly into the constructor. Practically, this means that old constructions like:"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:249
-msgid "should now be defined like:"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:269
-msgid "For scenes, this is even easier:"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:276
-msgid "becomes:"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:286
-msgid "A python command does not work"
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:288
-msgid "If a python command does not work, try adding ``python -m`` in front of it. For example, if ``pip install manim`` does not work, you can try ``python -m pip install manim``."
-msgstr ""
-
-#: ../../source/installation/troubleshooting.rst:293
-msgid "undefined symbol"
-msgstr ""
-
-
diff --git a/docs/i18n/gettext/installation/versions.pot b/docs/i18n/gettext/installation/versions.pot
index 067dbd674c..8b13789179 100644
--- a/docs/i18n/gettext/installation/versions.pot
+++ b/docs/i18n/gettext/installation/versions.pot
@@ -1,69 +1 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Manim \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../source/installation/versions.rst:2
-msgid "Differences between Manim Versions"
-msgstr ""
-
-#: ../../source/installation/versions.rst:4
-msgid "While originally a single library, there are now three main versions of manim, each with their own advantages, disadvantages, and ideal use cases. It is important to understand these differences in order to select the best version for your use case and avoid confusion arising from version mismatches."
-msgstr ""
-
-#: ../../source/installation/versions.rst:10
-msgid "A brief history of Manim"
-msgstr ""
-
-#: ../../source/installation/versions.rst:12
-msgid "Manim was originally created by Grant Sanderson as a personal project and for use in his YouTube channel, `3Blue1Brown `_. As his channel gained popularity, many grew to like the style of his animations and wanted to use manim for their own projects. However, as manim was only intended for personal use, it was very difficult for other users to install and use it."
-msgstr ""
-
-#: ../../source/installation/versions.rst:18
-msgid "In late 2019, Grant started working on faster OpenGL rendering in a new branch, known as the shaders branch. In mid-2020, a group of developers forked it into what is now the community edition; this is the version documented on this website. In early 2021, Grant merged the shaders branch back into master, making it the default branch in his repository. The old version is still available as the branch ``cairo-backend``."
-msgstr ""
-
-#: ../../source/installation/versions.rst:25
-msgid "The three versions of Manim"
-msgstr ""
-
-#: ../../source/installation/versions.rst:27
-msgid "There are currently three main versions of manim. They are as follows:"
-msgstr ""
-
-#: ../../source/installation/versions.rst:29
-msgid "**ManimCE**: The community edition of manim. This is the version documented by this website, and is named `manim `_ on pip."
-msgstr ""
-
-#: ../../source/installation/versions.rst:30
-msgid "`ManimGL `_: 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 `_."
-msgstr ""
-
-#: ../../source/installation/versions.rst:31
-msgid "`ManimCairo `_: The old version of manim originally used by 3blue1brown. It is not available on pip."
-msgstr ""
-
-#: ../../source/installation/versions.rst:34
-msgid "Which version to use"
-msgstr ""
-
-#: ../../source/installation/versions.rst:35
-msgid "We recommend using the community edition for most purposes, as it has been developed to be more stable, better tested, quicker to respond to community contributions, and easier for beginners to use. It also has partial experimental OpenGL support and should have full support shortly (as of April 2021)."
-msgstr ""
-
-#: ../../source/installation/versions.rst:39
-msgid "If you would like to use a version with full OpenGL support or render recent 3Blue1Brown videos (2020 onwards), you should use ManimGL."
-msgstr ""
-
-#: ../../source/installation/versions.rst:41
-msgid "If you would like to render old 3Blue1Brown projects (2019 and before), you should use ManimCairo."
-msgstr ""
-
-#: ../../source/installation/versions.rst:44
-msgid "Notes on installation, documentation, and use"
-msgstr ""
-
-
diff --git a/docs/i18n/gettext/internals.pot b/docs/i18n/gettext/internals.pot
index e3fe41bd9a..8b13789179 100644
--- a/docs/i18n/gettext/internals.pot
+++ b/docs/i18n/gettext/internals.pot
@@ -1,17 +1 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Manim \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../source/internals.rst:2
-msgid "Internal structure"
-msgstr ""
-
-#: ../../source/internals.rst:4
-msgid "Efforts to document the internal structure of Manim is ongoing on our `wiki `_."
-msgstr ""
-
-
diff --git a/docs/i18n/gettext/reference.pot b/docs/i18n/gettext/reference.pot
index 16adfb4682..acbf07c446 100644
--- a/docs/i18n/gettext/reference.pot
+++ b/docs/i18n/gettext/reference.pot
@@ -11,7 +11,7 @@ msgid "Reference Manual"
msgstr ""
#: ../../source/reference.rst:4
-msgid "This reference manual details modules, functions, and variables included in Manim, describing what they are and what they do. For learning how to use Manim, see :doc:`tutorials`. For a list of changes since the last release, see the :doc:`changelog`."
+msgid "This reference manual details modules, functions, and variables included in Manim, describing what they are and what they do. For learning how to use Manim, see :doc:`tutorials/index`. For a list of changes since the last release, see the :doc:`changelog`."
msgstr ""
#: ../../source/reference.rst:9
@@ -26,15 +26,15 @@ msgstr ""
msgid "Animations"
msgstr ""
-#: ../../source/reference.rst:37
+#: ../../source/reference.rst:38
msgid "Cameras"
msgstr ""
-#: ../../source/reference.rst:49
+#: ../../source/reference.rst:50
msgid "Mobjects"
msgstr ""
-#: ../../source/reference.rst:87
+#: ../../source/reference.rst:88
msgid "Scenes"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim._config.logger_utils.pot b/docs/i18n/gettext/reference/manim._config.logger_utils.pot
index 85dfc0a6ad..8e4b7536c7 100644
--- a/docs/i18n/gettext/reference/manim._config.logger_utils.pot
+++ b/docs/i18n/gettext/reference/manim._config.logger_utils.pot
@@ -50,7 +50,6 @@ msgid "A parser containing any .cfg files in use."
msgstr ""
#: ../../../manim/_config/logger_utils.py:docstring of manim._config.logger_utils.make_logger:5
-#: ../../../manim/_config/logger_utils.py:docstring of manim._config.logger_utils.set_file_logger:7
msgid "The verbosity level of the logger."
msgstr ""
@@ -70,7 +69,6 @@ msgid "Return type"
msgstr ""
#: ../../../manim/_config/logger_utils.py:docstring of manim._config.logger_utils.make_logger:16
-#: ../../../manim/_config/logger_utils.py:docstring of manim._config.logger_utils.set_file_logger:11
msgid "Notes"
msgstr ""
@@ -94,8 +92,4 @@ msgstr ""
msgid "The path to the file is built using ``config.log_dir``."
msgstr ""
-#: ../../../manim/_config/logger_utils.py:docstring of manim._config.logger_utils.set_file_logger:5
-msgid "The global config, used to determine the log file path."
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim._config.utils.ManimConfig.pot b/docs/i18n/gettext/reference/manim._config.utils.ManimConfig.pot
index 093944a0aa..c5d7878d63 100644
--- a/docs/i18n/gettext/reference/manim._config.utils.ManimConfig.pot
+++ b/docs/i18n/gettext/reference/manim._config.utils.ManimConfig.pot
@@ -54,50 +54,54 @@ msgid "Examples"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:25
+msgid "We use a copy of the global configuration object in the following examples for the sake of demonstration; you can skip these lines and just import ``config`` directly if you actually want to modify the configuration:"
+msgstr ""
+
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:35
msgid "Each config option allows for dict syntax and attribute syntax. For example, the following two lines are equivalent,"
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:34
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:44
msgid "The former is preferred; the latter is provided mostly for backwards compatibility."
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:37
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:47
msgid "The config options are designed to keep internal consistency. For example, setting ``frame_y_radius`` will affect ``frame_height``:"
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:48
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:58
msgid "There are many ways of interacting with config options. Take for example the config option ``background_color``. There are three ways to change it: via a config file, via CLI flags, or programmatically."
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:52
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:62
msgid "To set the background color via a config file, save the following ``manim.cfg`` file with the following contents."
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:60
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:70
msgid "In order to have this ``.cfg`` file apply to a manim scene, it needs to be placed in the same directory as the script,"
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:69
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:79
msgid "Now, when the user executes"
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:75
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:85
msgid "the background of the scene will be set to ``WHITE``. This applies regardless of where the manim command is invoked from."
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:78
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:88
msgid "Command line arguments override ``.cfg`` files. In the previous example, executing"
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:85
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:95
msgid "will set the background color to BLUE, regardless of the contents of ``manim.cfg``."
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:88
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:98
msgid "Finally, any programmatic changes made within the scene script itself will override the command line arguments. For example, if ``scene.py`` contains the following"
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:101
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig:111
msgid "the background color will be set to RED, regardless of the contents of ``manim.cfg`` or the CLI arguments used when invoking manim."
msgstr ""
@@ -196,6 +200,11 @@ msgstr ""
msgid "Enable wireframe debugging mode in opengl."
msgstr ""
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1::1
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.ffmpeg_executable:1
+msgid "Manually specify the path to the ffmpeg executable"
+msgstr ""
+
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1::1
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.ffmpeg_loglevel:1
msgid "Verbosity level of ffmpeg (no flag)."
@@ -348,7 +357,7 @@ msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1::1
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.renderer:1
-msgid "\"cairo\", \"opengl\", \"webgl"
+msgid "\"cairo\", \"opengl"
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1::1
@@ -435,11 +444,6 @@ msgstr ""
msgid "Use shaders for OpenGLVMobject stroke which are compatible with transformation matrices."
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1::1
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.use_webgl_renderer:1
-msgid "Whether or not to use WebGL renderer."
-msgstr ""
-
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1::1
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.verbosity:1
msgid "Logger verbosity; \"DEBUG\", \"INFO\", \"WARNING\", \"ERROR\", or \"CRITICAL\" (-v)."
@@ -449,11 +453,6 @@ msgstr ""
msgid "Directory to place videos (no flag)."
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1::1
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.webgl_renderer_path:1
-msgid "Path to WebGL renderer."
-msgstr ""
-
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.aspect_ratio:1::1
#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.window_monitor:1
msgid "The monitor on which the scene will be rendered"
@@ -597,23 +596,23 @@ msgstr ""
msgid "The value of ``config.tex_dir`` is ``'{media_dir}/Tex'`` by default, i.e. it is a subfolder of wherever ``config.media_dir`` is located. In order to get the *actual* directory, use :meth:`~ManimConfig.get_dir`."
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:40
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:41
msgid "Resolving directories is done in a lazy way, at the last possible moment, to reflect any changes in other config options:"
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:49
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:50
msgid "Some directories depend on information that is not available to :class:`ManimConfig`. For example, the default value of `video_dir` includes the name of the input file and the video quality (e.g. 480p15). This informamtion has to be supplied via ``kwargs``:"
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:64
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:65
msgid "Note the quality does not need to be passed as keyword argument since :class:`ManimConfig` does store information about quality."
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:67
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:68
msgid "Directories may be recursively defined. For example, the config option ``partial_movie_dir`` depends on ``video_dir``, which in turn depends on ``media_dir``:"
msgstr ""
-#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:83
+#: ../../../manim/_config/utils.py:docstring of manim._config.utils.ManimConfig.get_dir:84
msgid "Standard f-string syntax is used. Arbitrary names can be used when defining directories, as long as the corresponding values are passed to :meth:`ManimConfig.get_dir` via ``kwargs``."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim._config.utils.pot b/docs/i18n/gettext/reference/manim._config.utils.pot
index 02c1066d28..97c2d9774a 100644
--- a/docs/i18n/gettext/reference/manim._config.utils.pot
+++ b/docs/i18n/gettext/reference/manim._config.utils.pot
@@ -19,7 +19,7 @@ msgid "The main class exported by this module is :class:`ManimConfig`. This cla
msgstr ""
#: ../../../manim/_config/utils.py:docstring of manim._config.utils:9
-msgid "See :doc:`/tutorials/configuration` for an introduction to Manim's configuration system."
+msgid "See :doc:`/guides/configuration` for an introduction to Manim's configuration system."
msgstr ""
#: ../../source/reference/manim._config.utils.rst:15
diff --git a/docs/i18n/gettext/reference/manim.animation.animation.Animation.pot b/docs/i18n/gettext/reference/manim.animation.animation.Animation.pot
index 1590490bb5..ebd350ca77 100644
--- a/docs/i18n/gettext/reference/manim.animation.animation.Animation.pot
+++ b/docs/i18n/gettext/reference/manim.animation.animation.Animation.pot
@@ -70,23 +70,43 @@ msgstr ""
msgid "For example ``rate_func(0.5)`` is the proportion of the animation that is done after half of the animations run time."
msgstr ""
-#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:17
-msgid "The name of the animation. This gets displayed while rendering the animation. Defaults to ()."
+#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:21
+msgid "reverse_rate_function"
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:19
+msgid "Reverses the rate function of the animation. Setting ``reverse_rate_function`` does not have any effect on ``remover`` or ``introducer``. These need to be set explicitly if an introducer-animation should be turned into a remover one and vice versa."
+msgstr ""
+
+#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:24
+msgid "name"
+msgstr ""
+
+#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:24
+msgid "The name of the animation. This gets displayed while rendering the animation. Defaults to ()."
+msgstr ""
+
+#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:26
+msgid "remover"
+msgstr ""
+
+#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:27
msgid "Whether the given mobject should be removed from the scene after this animation."
msgstr ""
-#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:20
+#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:30
+msgid "suspend_mobject_updating"
+msgstr ""
+
+#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:29
msgid "Whether updaters of the mobject should be suspended during the animation."
msgstr ""
-#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:24
+#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:34
msgid "In the current implementation of this class, the specified rate function is applied within :meth:`.Animation.interpolate_mobject` call as part of the call to :meth:`.Animation.interpolate_submobject`. For subclasses of :class:`.Animation` that are implemented by overriding :meth:`interpolate_mobject`, the rate function has to be applied manually (e.g., by passing ``self.rate_func(alpha)`` instead of just ``alpha``)."
msgstr ""
-#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:33
+#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation:43
msgid "Examples"
msgstr ""
@@ -149,9 +169,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
-#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.begin:1::1
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.begin:1::1
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.is_introducer:1
+msgid "Test if a the animation is an introducer."
+msgstr ""
+
+#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.begin:1::1
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.is_remover:1
msgid "Test if a the animation is a remover."
msgstr ""
@@ -278,6 +301,9 @@ msgid "A float between 0 and 1 expressing the ratio to which the animation is co
msgstr ""
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.is_introducer:3
+msgid "``True`` if the animation is an introducer, ``False`` otherwise."
+msgstr ""
+
#: ../../../manim/animation/animation.py:docstring of manim.animation.animation.Animation.is_remover:3
msgid "``True`` if the animation is a remover, ``False`` otherwise."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.composition.AnimationGroup.pot b/docs/i18n/gettext/reference/manim.animation.composition.AnimationGroup.pot
index 7aac5c939a..059e7e9e22 100644
--- a/docs/i18n/gettext/reference/manim.animation.composition.AnimationGroup.pot
+++ b/docs/i18n/gettext/reference/manim.animation.composition.AnimationGroup.pot
@@ -56,14 +56,10 @@ msgstr ""
msgid "Updates things like starting_mobject, and (for Transforms) target_mobject."
msgstr ""
-#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup:0
-#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.clean_up_from_scene:0
-#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.interpolate:0
-#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.update_mobjects:0
-msgid "Parameters"
+#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.begin:3
+msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
-#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.begin:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.build_animations_with_timings:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.clean_up_from_scene:0
@@ -74,14 +70,16 @@ msgstr ""
msgid "Return type"
msgstr ""
-#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.begin:3
-msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
-msgstr ""
-
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.clean_up_from_scene:3
msgid "This includes to :meth:`~.Scene.remove` the Animation's :class:`~.Mobject` if the animation is a remover."
msgstr ""
+#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.clean_up_from_scene:0
+#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.interpolate:0
+#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.update_mobjects:0
+msgid "Parameters"
+msgstr ""
+
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.AnimationGroup.clean_up_from_scene:6
msgid "The scene the animation should be cleaned up from."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.composition.LaggedStart.pot b/docs/i18n/gettext/reference/manim.animation.composition.LaggedStart.pot
index f4f2993b9a..3f5aa193b3 100644
--- a/docs/i18n/gettext/reference/manim.animation.composition.LaggedStart.pot
+++ b/docs/i18n/gettext/reference/manim.animation.composition.LaggedStart.pot
@@ -18,8 +18,4 @@ msgstr ""
msgid "Bases: :py:class:`manim.animation.composition.AnimationGroup`"
msgstr ""
-#: ../../source/reference/manim.animation.composition.LaggedStart.rst:14
-msgid "Methods"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.composition.LaggedStartMap.pot b/docs/i18n/gettext/reference/manim.animation.composition.LaggedStartMap.pot
index 15c9a872b8..885a4730de 100644
--- a/docs/i18n/gettext/reference/manim.animation.composition.LaggedStartMap.pot
+++ b/docs/i18n/gettext/reference/manim.animation.composition.LaggedStartMap.pot
@@ -18,12 +18,4 @@ msgstr ""
msgid "Bases: :py:class:`manim.animation.composition.LaggedStart`"
msgstr ""
-#: ../../source/reference/manim.animation.composition.LaggedStartMap.rst:14
-msgid "Methods"
-msgstr ""
-
-#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.LaggedStartMap:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.composition.Succession.pot b/docs/i18n/gettext/reference/manim.animation.composition.Succession.pot
index a9d1e954f8..0b9c73266d 100644
--- a/docs/i18n/gettext/reference/manim.animation.composition.Succession.pot
+++ b/docs/i18n/gettext/reference/manim.animation.composition.Succession.pot
@@ -41,13 +41,10 @@ msgstr ""
msgid "Updates things like starting_mobject, and (for Transforms) target_mobject."
msgstr ""
-#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession:0
-#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.interpolate:0
-#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.update_mobjects:0
-msgid "Parameters"
+#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.begin:3
+msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
-#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.begin:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.finish:0
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.interpolate:0
@@ -55,10 +52,6 @@ msgstr ""
msgid "Return type"
msgstr ""
-#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.begin:3
-msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
-msgstr ""
-
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.finish:3
msgid "This method gets called when the animation is over."
msgstr ""
@@ -67,6 +60,11 @@ msgstr ""
msgid "This method gets called for every frame during an animation."
msgstr ""
+#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.interpolate:0
+#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.update_mobjects:0
+msgid "Parameters"
+msgstr ""
+
#: ../../../manim/animation/composition.py:docstring of manim.animation.composition.Succession.interpolate:5
msgid "The relative time to set the animation to, 0 meaning the start, 1 meaning the end."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.creation.AddTextLetterByLetter.pot b/docs/i18n/gettext/reference/manim.animation.creation.AddTextLetterByLetter.pot
index 3414c38344..21768a4061 100644
--- a/docs/i18n/gettext/reference/manim.animation.creation.AddTextLetterByLetter.pot
+++ b/docs/i18n/gettext/reference/manim.animation.creation.AddTextLetterByLetter.pot
@@ -34,8 +34,4 @@ msgstr ""
msgid "This is currently only possible for class:`~.Text` and not for class:`~.MathTex`"
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.AddTextLetterByLetter:0
-msgid "Return type"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.creation.AddTextWordByWord.pot b/docs/i18n/gettext/reference/manim.animation.creation.AddTextWordByWord.pot
index 13ff1286af..a37c706b12 100644
--- a/docs/i18n/gettext/reference/manim.animation.creation.AddTextWordByWord.pot
+++ b/docs/i18n/gettext/reference/manim.animation.creation.AddTextWordByWord.pot
@@ -22,12 +22,4 @@ msgstr ""
msgid "Show a :class:`~.Text` word by word on the scene. Note: currently broken."
msgstr ""
-#: ../../source/reference/manim.animation.creation.AddTextWordByWord.rst:14
-msgid "Methods"
-msgstr ""
-
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.AddTextWordByWord:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.creation.Create.pot b/docs/i18n/gettext/reference/manim.animation.creation.Create.pot
index 9fe7cffa91..f8f9b51069 100644
--- a/docs/i18n/gettext/reference/manim.animation.creation.Create.pot
+++ b/docs/i18n/gettext/reference/manim.animation.creation.Create.pot
@@ -38,10 +38,6 @@ msgstr ""
msgid "If ``mobject`` is not an instance of :class:`~.VMobject`."
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Create:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Create:9
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.creation.DrawBorderThenFill.pot b/docs/i18n/gettext/reference/manim.animation.creation.DrawBorderThenFill.pot
index 5e8dd83cfd..cd9c033b3a 100644
--- a/docs/i18n/gettext/reference/manim.animation.creation.DrawBorderThenFill.pot
+++ b/docs/i18n/gettext/reference/manim.animation.creation.DrawBorderThenFill.pot
@@ -40,20 +40,15 @@ msgstr ""
msgid "Get all mobjects involved in the animation."
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill:0
-msgid "Parameters"
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill.begin:3
+msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill:0
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill.begin:0
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill.get_all_mobjects:0
msgid "Return type"
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill.begin:3
-msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
-msgstr ""
-
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.DrawBorderThenFill.get_all_mobjects:3
msgid "Ordering must match the ordering of arguments to interpolate_submobject"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.creation.ShowIncreasingSubsets.pot b/docs/i18n/gettext/reference/manim.animation.creation.ShowIncreasingSubsets.pot
index bbcf77d718..0cb0e993c6 100644
--- a/docs/i18n/gettext/reference/manim.animation.creation.ShowIncreasingSubsets.pot
+++ b/docs/i18n/gettext/reference/manim.animation.creation.ShowIncreasingSubsets.pot
@@ -35,14 +35,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowIncreasingSubsets:0
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowIncreasingSubsets.interpolate_mobject:0
msgid "Parameters"
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowIncreasingSubsets:0
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowIncreasingSubsets.interpolate_mobject:0
-msgid "Return type"
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowIncreasingSubsets.interpolate_mobject:3
+msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.creation.ShowPartial.pot b/docs/i18n/gettext/reference/manim.animation.creation.ShowPartial.pot
index 2cb7468858..6abed1c161 100644
--- a/docs/i18n/gettext/reference/manim.animation.creation.ShowPartial.pot
+++ b/docs/i18n/gettext/reference/manim.animation.creation.ShowPartial.pot
@@ -30,10 +30,6 @@ msgstr ""
msgid "If ``mobject`` is not an instance of :class:`~.VMobject`."
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowPartial:0
-msgid "Parameters"
-msgstr ""
-
#: ../../source/reference/manim.animation.creation.ShowPartial.rst:14
msgid "Methods"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.creation.ShowSubmobjectsOneByOne.pot b/docs/i18n/gettext/reference/manim.animation.creation.ShowSubmobjectsOneByOne.pot
index 2eeaf09a24..f8f58f258a 100644
--- a/docs/i18n/gettext/reference/manim.animation.creation.ShowSubmobjectsOneByOne.pot
+++ b/docs/i18n/gettext/reference/manim.animation.creation.ShowSubmobjectsOneByOne.pot
@@ -26,8 +26,4 @@ msgstr ""
msgid "Methods"
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.ShowSubmobjectsOneByOne:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.creation.SpiralIn.pot b/docs/i18n/gettext/reference/manim.animation.creation.SpiralIn.pot
new file mode 100644
index 0000000000..dad241e4f7
--- /dev/null
+++ b/docs/i18n/gettext/reference/manim.animation.creation.SpiralIn.pot
@@ -0,0 +1,59 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/reference/manim.animation.creation.SpiralIn.rst:2
+msgid "SpiralIn"
+msgstr ""
+
+#: ../../source/reference/manim.animation.creation.SpiralIn.rst:4
+msgid "Qualified name: ``manim.animation.creation.SpiralIn``"
+msgstr ""
+
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:1
+msgid "Bases: :py:class:`manim.animation.animation.Animation`"
+msgstr ""
+
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:1
+msgid "Create the Mobject with sub-Mobjects flying in on spiral trajectories."
+msgstr ""
+
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:0
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn.interpolate_mobject:0
+msgid "Parameters"
+msgstr ""
+
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:3
+msgid "The Mobject on which to be operated."
+msgstr ""
+
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:4
+msgid "The factor used for scaling the effect."
+msgstr ""
+
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:5
+msgid "Fractional duration of initial fade-in of sub-Mobjects as they fly inward."
+msgstr ""
+
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn:8
+msgid "Examples"
+msgstr ""
+
+#: ../../source/reference/manim.animation.creation.SpiralIn.rst:14
+msgid "Methods"
+msgstr ""
+
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn.interpolate_mobject:1::1
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn.interpolate_mobject:1
+msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
+msgstr ""
+
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.SpiralIn.interpolate_mobject:3
+msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/reference/manim.animation.creation.Uncreate.pot b/docs/i18n/gettext/reference/manim.animation.creation.Uncreate.pot
index 04cd9b9084..5ce7effd57 100644
--- a/docs/i18n/gettext/reference/manim.animation.creation.Uncreate.pot
+++ b/docs/i18n/gettext/reference/manim.animation.creation.Uncreate.pot
@@ -26,12 +26,4 @@ msgstr ""
msgid "Examples"
msgstr ""
-#: ../../source/reference/manim.animation.creation.Uncreate.rst:14
-msgid "Methods"
-msgstr ""
-
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Uncreate:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.creation.Unwrite.pot b/docs/i18n/gettext/reference/manim.animation.creation.Unwrite.pot
index 2cf6060fd8..553eae3646 100644
--- a/docs/i18n/gettext/reference/manim.animation.creation.Unwrite.pot
+++ b/docs/i18n/gettext/reference/manim.animation.creation.Unwrite.pot
@@ -30,10 +30,6 @@ msgstr ""
msgid "Set True to have the animation start erasing from the last submobject first."
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Unwrite:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Unwrite:7
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.creation.Write.pot b/docs/i18n/gettext/reference/manim.animation.creation.Write.pot
index 4a179e9e39..62551c553a 100644
--- a/docs/i18n/gettext/reference/manim.animation.creation.Write.pot
+++ b/docs/i18n/gettext/reference/manim.animation.creation.Write.pot
@@ -40,18 +40,13 @@ msgstr ""
msgid "Finish the animation."
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Write:0
-msgid "Parameters"
+#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Write.begin:3
+msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Write:0
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Write.begin:0
#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Write.finish:0
msgid "Return type"
msgstr ""
-#: ../../../manim/animation/creation.py:docstring of manim.animation.creation.Write.begin:3
-msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.creation.pot b/docs/i18n/gettext/reference/manim.animation.creation.pot
index a50531d589..490ed23815 100644
--- a/docs/i18n/gettext/reference/manim.animation.creation.pot
+++ b/docs/i18n/gettext/reference/manim.animation.creation.pot
@@ -18,39 +18,43 @@ msgstr ""
msgid "Classes"
msgstr ""
-#: ../../source/reference/manim.animation.creation.rst:38::1
+#: ../../source/reference/manim.animation.creation.rst:40::1
msgid "Show a :class:`~.Text` letter by letter on the scene."
msgstr ""
-#: ../../source/reference/manim.animation.creation.rst:38::1
+#: ../../source/reference/manim.animation.creation.rst:40::1
msgid "Show a :class:`~.Text` word by word on the scene."
msgstr ""
-#: ../../source/reference/manim.animation.creation.rst:38::1
+#: ../../source/reference/manim.animation.creation.rst:40::1
msgid "Incrementally show a VMobject."
msgstr ""
-#: ../../source/reference/manim.animation.creation.rst:38::1
+#: ../../source/reference/manim.animation.creation.rst:40::1
msgid "Draw the border first and then show the fill."
msgstr ""
-#: ../../source/reference/manim.animation.creation.rst:38::1
+#: ../../source/reference/manim.animation.creation.rst:40::1
msgid "Show one submobject at a time, leaving all previous ones displayed on screen."
msgstr ""
-#: ../../source/reference/manim.animation.creation.rst:38::1
+#: ../../source/reference/manim.animation.creation.rst:40::1
msgid "Abstract class for Animations that show the VMobject partially."
msgstr ""
-#: ../../source/reference/manim.animation.creation.rst:38::1
+#: ../../source/reference/manim.animation.creation.rst:40::1
msgid "Show one submobject at a time, removing all previously displayed ones from screen."
msgstr ""
-#: ../../source/reference/manim.animation.creation.rst:38::1
+#: ../../source/reference/manim.animation.creation.rst:40::1
+msgid "Create the Mobject with sub-Mobjects flying in on spiral trajectories."
+msgstr ""
+
+#: ../../source/reference/manim.animation.creation.rst:40::1
msgid "Like :class:`Create` but in reverse."
msgstr ""
-#: ../../source/reference/manim.animation.creation.rst:38::1
+#: ../../source/reference/manim.animation.creation.rst:40::1
msgid "Simulate erasing by hand a :class:`~.Text` or a :class:`~.VMobject`."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.fading.FadeIn.pot b/docs/i18n/gettext/reference/manim.animation.fading.FadeIn.pot
index e906160605..dca41945e4 100644
--- a/docs/i18n/gettext/reference/manim.animation.fading.FadeIn.pot
+++ b/docs/i18n/gettext/reference/manim.animation.fading.FadeIn.pot
@@ -42,10 +42,6 @@ msgstr ""
msgid "The factor by which the mobject is scaled initially before being rescaling to its original size while being faded in."
msgstr ""
-#: ../../../manim/animation/fading.py:docstring of manim.animation.fading.FadeIn:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/fading.py:docstring of manim.animation.fading.FadeIn:11
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.fading.FadeOut.pot b/docs/i18n/gettext/reference/manim.animation.fading.FadeOut.pot
index 61f74f992b..928f9ff500 100644
--- a/docs/i18n/gettext/reference/manim.animation.fading.FadeOut.pot
+++ b/docs/i18n/gettext/reference/manim.animation.fading.FadeOut.pot
@@ -43,11 +43,6 @@ msgstr ""
msgid "The factor by which the mobject is scaled while being faded out."
msgstr ""
-#: ../../../manim/animation/fading.py:docstring of manim.animation.fading.FadeOut:0
-#: ../../../manim/animation/fading.py:docstring of manim.animation.fading.FadeOut.clean_up_from_scene:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/fading.py:docstring of manim.animation.fading.FadeOut:10
msgid "Examples"
msgstr ""
@@ -69,4 +64,8 @@ msgstr ""
msgid "This includes to :meth:`~.Scene.remove` the Animation's :class:`~.Mobject` if the animation is a remover."
msgstr ""
+#: ../../../manim/animation/fading.py:docstring of manim.animation.fading.FadeOut.clean_up_from_scene:6
+msgid "The scene the animation should be cleaned up from."
+msgstr ""
+
diff --git a/docs/i18n/gettext/reference/manim.animation.growing.GrowArrow.pot b/docs/i18n/gettext/reference/manim.animation.growing.GrowArrow.pot
index 7ed156b655..b4fe1544f5 100644
--- a/docs/i18n/gettext/reference/manim.animation.growing.GrowArrow.pot
+++ b/docs/i18n/gettext/reference/manim.animation.growing.GrowArrow.pot
@@ -34,10 +34,6 @@ msgstr ""
msgid "Initial color of the arrow before growing to its full size. Leave empty to match arrow's color."
msgstr ""
-#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowArrow:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowArrow:7
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.growing.GrowFromCenter.pot b/docs/i18n/gettext/reference/manim.animation.growing.GrowFromCenter.pot
index c0e21d1181..07bb84a79b 100644
--- a/docs/i18n/gettext/reference/manim.animation.growing.GrowFromCenter.pot
+++ b/docs/i18n/gettext/reference/manim.animation.growing.GrowFromCenter.pot
@@ -34,10 +34,6 @@ msgstr ""
msgid "Initial color of the mobject before growing to its full size. Leave empty to match mobject's color."
msgstr ""
-#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowFromCenter:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowFromCenter:7
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.growing.GrowFromEdge.pot b/docs/i18n/gettext/reference/manim.animation.growing.GrowFromEdge.pot
index 640811c03b..3b5d7def14 100644
--- a/docs/i18n/gettext/reference/manim.animation.growing.GrowFromEdge.pot
+++ b/docs/i18n/gettext/reference/manim.animation.growing.GrowFromEdge.pot
@@ -38,10 +38,6 @@ msgstr ""
msgid "Initial color of the mobject before growing to its full size. Leave empty to match mobject's color."
msgstr ""
-#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowFromEdge:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowFromEdge:8
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.growing.GrowFromPoint.pot b/docs/i18n/gettext/reference/manim.animation.growing.GrowFromPoint.pot
index 4aec39fc18..6d0672b1e0 100644
--- a/docs/i18n/gettext/reference/manim.animation.growing.GrowFromPoint.pot
+++ b/docs/i18n/gettext/reference/manim.animation.growing.GrowFromPoint.pot
@@ -38,10 +38,6 @@ msgstr ""
msgid "Initial color of the mobject before growing to its full size. Leave empty to match mobject's color."
msgstr ""
-#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowFromPoint:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.GrowFromPoint:8
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.growing.SpinInFromNothing.pot b/docs/i18n/gettext/reference/manim.animation.growing.SpinInFromNothing.pot
index 718ff0b5b1..b910e735ca 100644
--- a/docs/i18n/gettext/reference/manim.animation.growing.SpinInFromNothing.pot
+++ b/docs/i18n/gettext/reference/manim.animation.growing.SpinInFromNothing.pot
@@ -38,10 +38,6 @@ msgstr ""
msgid "Initial color of the mobject before growing to its full size. Leave empty to match mobject's color."
msgstr ""
-#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.SpinInFromNothing:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/growing.py:docstring of manim.animation.growing.SpinInFromNothing:9
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.indication.ApplyWave.pot b/docs/i18n/gettext/reference/manim.animation.indication.ApplyWave.pot
index d5ae851381..e1822d9d93 100644
--- a/docs/i18n/gettext/reference/manim.animation.indication.ApplyWave.pot
+++ b/docs/i18n/gettext/reference/manim.animation.indication.ApplyWave.pot
@@ -54,16 +54,8 @@ msgstr ""
msgid "The duration of the animation."
msgstr ""
-#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ApplyWave:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ApplyWave:12
msgid "Examples"
msgstr ""
-#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ApplyWave:31
-msgid "Homotopy is a function from (x, y, z, t) to (x', y', z')"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.indication.Flash.pot b/docs/i18n/gettext/reference/manim.animation.indication.Flash.pot
index 24eb2b599b..3467a3a8de 100644
--- a/docs/i18n/gettext/reference/manim.animation.indication.Flash.pot
+++ b/docs/i18n/gettext/reference/manim.animation.indication.Flash.pot
@@ -62,10 +62,6 @@ msgstr ""
msgid "Additional arguments to be passed to the :class:`~.Succession` constructor"
msgstr ""
-#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.Flash:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.Flash:15
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.indication.FocusOn.pot b/docs/i18n/gettext/reference/manim.animation.indication.FocusOn.pot
index 040e38d293..482c7f82b1 100644
--- a/docs/i18n/gettext/reference/manim.animation.indication.FocusOn.pot
+++ b/docs/i18n/gettext/reference/manim.animation.indication.FocusOn.pot
@@ -46,10 +46,6 @@ msgstr ""
msgid "Additional arguments to be passed to the :class:`~.Succession` constructor"
msgstr ""
-#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.FocusOn:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.FocusOn:11
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.indication.Indicate.pot b/docs/i18n/gettext/reference/manim.animation.indication.Indicate.pot
index c90485d5e9..136caba7f9 100644
--- a/docs/i18n/gettext/reference/manim.animation.indication.Indicate.pot
+++ b/docs/i18n/gettext/reference/manim.animation.indication.Indicate.pot
@@ -46,10 +46,6 @@ msgstr ""
msgid "Additional arguments to be passed to the :class:`~.Succession` constructor"
msgstr ""
-#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.Indicate:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.Indicate:11
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.indication.ShowCreationThenFadeOut.pot b/docs/i18n/gettext/reference/manim.animation.indication.ShowCreationThenFadeOut.pot
index 82b3ca4f6f..aff5c1edea 100644
--- a/docs/i18n/gettext/reference/manim.animation.indication.ShowCreationThenFadeOut.pot
+++ b/docs/i18n/gettext/reference/manim.animation.indication.ShowCreationThenFadeOut.pot
@@ -19,19 +19,7 @@ msgid "Bases: :py:class:`manim.animation.composition.Succession`"
msgstr ""
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowCreationThenFadeOut:1
-msgid "Deprecated"
-msgstr ""
-
-#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowCreationThenFadeOut:4
-msgid "The class ShowCreationThenFadeOut has been deprecated since v0.15.0 and is expected to be removed after v0.16.0. Use Create then FadeOut to achieve this effect."
-msgstr ""
-
-#: ../../source/reference/manim.animation.indication.ShowCreationThenFadeOut.rst:14
-msgid "Methods"
-msgstr ""
-
-#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowCreationThenFadeOut:0
-msgid "Parameters"
+msgid "Deprecated The class ShowCreationThenFadeOut has been deprecated since v0.15.0 and is expected to be removed after v0.16.0. Use Create then FadeOut to achieve this effect."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.indication.ShowPassingFlash.pot b/docs/i18n/gettext/reference/manim.animation.indication.ShowPassingFlash.pot
index 02acdc6b96..0cad303763 100644
--- a/docs/i18n/gettext/reference/manim.animation.indication.ShowPassingFlash.pot
+++ b/docs/i18n/gettext/reference/manim.animation.indication.ShowPassingFlash.pot
@@ -35,11 +35,6 @@ msgstr ""
msgid "The length of the sliver relative to the length of the stroke."
msgstr ""
-#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowPassingFlash:0
-#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowPassingFlash.clean_up_from_scene:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowPassingFlash:7
msgid "Examples"
msgstr ""
@@ -57,4 +52,8 @@ msgstr ""
msgid "This includes to :meth:`~.Scene.remove` the Animation's :class:`~.Mobject` if the animation is a remover."
msgstr ""
+#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.ShowPassingFlash.clean_up_from_scene:6
+msgid "The scene the animation should be cleaned up from."
+msgstr ""
+
diff --git a/docs/i18n/gettext/reference/manim.animation.indication.Wiggle.pot b/docs/i18n/gettext/reference/manim.animation.indication.Wiggle.pot
index 3cc8218912..a1e7b8201d 100644
--- a/docs/i18n/gettext/reference/manim.animation.indication.Wiggle.pot
+++ b/docs/i18n/gettext/reference/manim.animation.indication.Wiggle.pot
@@ -54,10 +54,6 @@ msgstr ""
msgid "The duration of the animation"
msgstr ""
-#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.Wiggle:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/indication.py:docstring of manim.animation.indication.Wiggle:13
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.indication.pot b/docs/i18n/gettext/reference/manim.animation.indication.pot
index 445048431b..5724a18b18 100644
--- a/docs/i18n/gettext/reference/manim.animation.indication.pot
+++ b/docs/i18n/gettext/reference/manim.animation.indication.pot
@@ -42,6 +42,10 @@ msgstr ""
msgid "Indicate a Mobject by temporarily resizing and recoloring it."
msgstr ""
+#: ../../source/reference/manim.animation.indication.rst:36::1
+msgid "Deprecated"
+msgstr ""
+
#: ../../source/reference/manim.animation.indication.rst:36::1
msgid "Show only a sliver of the VMobject each frame."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.movement.ComplexHomotopy.pot b/docs/i18n/gettext/reference/manim.animation.movement.ComplexHomotopy.pot
index 1b5f7adaea..2c202d313f 100644
--- a/docs/i18n/gettext/reference/manim.animation.movement.ComplexHomotopy.pot
+++ b/docs/i18n/gettext/reference/manim.animation.movement.ComplexHomotopy.pot
@@ -22,12 +22,4 @@ msgstr ""
msgid "Complex Homotopy a function Cx[0, 1] to C"
msgstr ""
-#: ../../source/reference/manim.animation.movement.ComplexHomotopy.rst:14
-msgid "Methods"
-msgstr ""
-
-#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.ComplexHomotopy:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.movement.Homotopy.pot b/docs/i18n/gettext/reference/manim.animation.movement.Homotopy.pot
index b96b29a460..b4d2762f55 100644
--- a/docs/i18n/gettext/reference/manim.animation.movement.Homotopy.pot
+++ b/docs/i18n/gettext/reference/manim.animation.movement.Homotopy.pot
@@ -19,15 +19,39 @@ msgid "Bases: :py:class:`manim.animation.animation.Animation`"
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:1
-msgid "Homotopy is a function from (x, y, z, t) to (x', y', z')"
+msgid "A Homotopy."
msgstr ""
-#: ../../source/reference/manim.animation.movement.Homotopy.rst:14
-msgid "Methods"
+#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:3
+msgid "This is an animation transforming the points of a mobject according to the specified transformation function. With the parameter :math:`t` moving from 0 to 1 throughout the animation and :math:`(x, y, z)` describing the coordinates of the point of a mobject, the function passed to the ``homotopy`` keyword argument should transform the tuple :math:`(x, y, z, t)` to :math:`(x', y', z')`, the coordinates the original point is transformed to at time :math:`t`."
msgstr ""
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:0
msgid "Parameters"
msgstr ""
+#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:11
+msgid "A function mapping :math:`(x, y, z, t)` to :math:`(x', y', z')`."
+msgstr ""
+
+#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:12
+msgid "The mobject transformed under the given homotopy."
+msgstr ""
+
+#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:13
+msgid "The run time of the animation."
+msgstr ""
+
+#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:14
+msgid "Keyword arguments propagated to :meth:`.Mobject.apply_function`."
+msgstr ""
+
+#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.Homotopy:15
+msgid "Further keyword arguments passed to the parent class."
+msgstr ""
+
+#: ../../source/reference/manim.animation.movement.Homotopy.rst:14
+msgid "Methods"
+msgstr ""
+
diff --git a/docs/i18n/gettext/reference/manim.animation.movement.MoveAlongPath.pot b/docs/i18n/gettext/reference/manim.animation.movement.MoveAlongPath.pot
index f30d54ef24..5fe157f9cb 100644
--- a/docs/i18n/gettext/reference/manim.animation.movement.MoveAlongPath.pot
+++ b/docs/i18n/gettext/reference/manim.animation.movement.MoveAlongPath.pot
@@ -31,14 +31,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
-#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.MoveAlongPath:0
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.MoveAlongPath.interpolate_mobject:0
msgid "Parameters"
msgstr ""
-#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.MoveAlongPath:0
-#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.MoveAlongPath.interpolate_mobject:0
-msgid "Return type"
+#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.MoveAlongPath.interpolate_mobject:3
+msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.movement.PhaseFlow.pot b/docs/i18n/gettext/reference/manim.animation.movement.PhaseFlow.pot
index 54c2cc2f4b..52540ff949 100644
--- a/docs/i18n/gettext/reference/manim.animation.movement.PhaseFlow.pot
+++ b/docs/i18n/gettext/reference/manim.animation.movement.PhaseFlow.pot
@@ -27,14 +27,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
-#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.PhaseFlow:0
#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.PhaseFlow.interpolate_mobject:0
msgid "Parameters"
msgstr ""
-#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.PhaseFlow:0
-#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.PhaseFlow.interpolate_mobject:0
-msgid "Return type"
+#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.PhaseFlow.interpolate_mobject:3
+msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.movement.SmoothedVectorizedHomotopy.pot b/docs/i18n/gettext/reference/manim.animation.movement.SmoothedVectorizedHomotopy.pot
index 59e693eb6a..6259c703bf 100644
--- a/docs/i18n/gettext/reference/manim.animation.movement.SmoothedVectorizedHomotopy.pot
+++ b/docs/i18n/gettext/reference/manim.animation.movement.SmoothedVectorizedHomotopy.pot
@@ -18,10 +18,6 @@ msgstr ""
msgid "Bases: :py:class:`manim.animation.movement.Homotopy`"
msgstr ""
-#: ../../../manim/animation/movement.py:docstring of manim.animation.movement.SmoothedVectorizedHomotopy:1
-msgid "Homotopy is a function from (x, y, z, t) to (x', y', z')"
-msgstr ""
-
#: ../../source/reference/manim.animation.movement.SmoothedVectorizedHomotopy.rst:14
msgid "Methods"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.movement.pot b/docs/i18n/gettext/reference/manim.animation.movement.pot
index 77ad3fe2f4..52b838bf07 100644
--- a/docs/i18n/gettext/reference/manim.animation.movement.pot
+++ b/docs/i18n/gettext/reference/manim.animation.movement.pot
@@ -23,8 +23,7 @@ msgid "Complex Homotopy a function Cx[0, 1] to C"
msgstr ""
#: ../../source/reference/manim.animation.movement.rst:28::1
-#: ../../source/reference/manim.animation.movement.rst:28::1
-msgid "Homotopy is a function from (x, y, z, t) to (x', y', z')"
+msgid "A Homotopy."
msgstr ""
#: ../../source/reference/manim.animation.movement.rst:28::1
diff --git a/docs/i18n/gettext/reference/manim.animation.numbers.ChangeDecimalToValue.pot b/docs/i18n/gettext/reference/manim.animation.numbers.ChangeDecimalToValue.pot
index 7972854c8c..1836100e7c 100644
--- a/docs/i18n/gettext/reference/manim.animation.numbers.ChangeDecimalToValue.pot
+++ b/docs/i18n/gettext/reference/manim.animation.numbers.ChangeDecimalToValue.pot
@@ -18,12 +18,4 @@ msgstr ""
msgid "Bases: :py:class:`manim.animation.numbers.ChangingDecimal`"
msgstr ""
-#: ../../source/reference/manim.animation.numbers.ChangeDecimalToValue.rst:14
-msgid "Methods"
-msgstr ""
-
-#: ../../../manim/animation/numbers.py:docstring of manim.animation.numbers.ChangeDecimalToValue:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.numbers.ChangingDecimal.pot b/docs/i18n/gettext/reference/manim.animation.numbers.ChangingDecimal.pot
index 7a75504c01..de340bcf66 100644
--- a/docs/i18n/gettext/reference/manim.animation.numbers.ChangingDecimal.pot
+++ b/docs/i18n/gettext/reference/manim.animation.numbers.ChangingDecimal.pot
@@ -27,14 +27,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
-#: ../../../manim/animation/numbers.py:docstring of manim.animation.numbers.ChangingDecimal:0
#: ../../../manim/animation/numbers.py:docstring of manim.animation.numbers.ChangingDecimal.interpolate_mobject:0
msgid "Parameters"
msgstr ""
-#: ../../../manim/animation/numbers.py:docstring of manim.animation.numbers.ChangingDecimal:0
-#: ../../../manim/animation/numbers.py:docstring of manim.animation.numbers.ChangingDecimal.interpolate_mobject:0
-msgid "Return type"
+#: ../../../manim/animation/numbers.py:docstring of manim.animation.numbers.ChangingDecimal.interpolate_mobject:3
+msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.rotation.Rotate.pot b/docs/i18n/gettext/reference/manim.animation.rotation.Rotate.pot
index b4f89cba93..c8b0b5458c 100644
--- a/docs/i18n/gettext/reference/manim.animation.rotation.Rotate.pot
+++ b/docs/i18n/gettext/reference/manim.animation.rotation.Rotate.pot
@@ -46,10 +46,6 @@ msgstr ""
msgid "If ``about_point``is ``None``, this argument specifies the direction of the bounding box point to be taken as the rotation center."
msgstr ""
-#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotate:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotate:12
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.rotation.Rotating.pot b/docs/i18n/gettext/reference/manim.animation.rotation.Rotating.pot
index 72c2c4ea53..c94ddcd187 100644
--- a/docs/i18n/gettext/reference/manim.animation.rotation.Rotating.pot
+++ b/docs/i18n/gettext/reference/manim.animation.rotation.Rotating.pot
@@ -27,14 +27,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
-#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotating:0
#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotating.interpolate_mobject:0
msgid "Parameters"
msgstr ""
-#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotating:0
-#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotating.interpolate_mobject:0
-msgid "Return type"
+#: ../../../manim/animation/rotation.py:docstring of manim.animation.rotation.Rotating.interpolate_mobject:3
+msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.speedmodifier.ChangeSpeed.pot b/docs/i18n/gettext/reference/manim.animation.speedmodifier.ChangeSpeed.pot
new file mode 100644
index 0000000000..e9ac21bd31
--- /dev/null
+++ b/docs/i18n/gettext/reference/manim.animation.speedmodifier.ChangeSpeed.pot
@@ -0,0 +1,144 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:2
+msgid "ChangeSpeed"
+msgstr ""
+
+#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:4
+msgid "Qualified name: ``manim.animation.speedmodifier.ChangeSpeed``"
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:1
+msgid "Bases: :py:class:`manim.animation.animation.Animation`"
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:1
+msgid "Modifies the speed of passed animation. :class:`AnimationGroup` with different ``lag_ratio`` can also be used which combines multiple animations into one. The ``run_time`` of the passed animation is changed to modify the speed."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:0
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:0
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.clean_up_from_scene:0
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.interpolate:0
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.update_mobjects:0
+msgid "Parameters"
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:6
+msgid "Animation of which the speed is to be modified."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:7
+msgid "Contains nodes (percentage of ``run_time``) and its corresponding speed factor."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:8
+msgid "Overrides ``rate_func`` of passed animation, applied before changing speed."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed:11
+msgid "Examples"
+msgstr ""
+
+#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:14
+msgid "Methods"
+msgstr ""
+
+#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27::1
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:1
+msgid "This static method can be used to apply speed change to updaters."
+msgstr ""
+
+#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27::1
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.begin:1
+msgid "Begin the animation."
+msgstr ""
+
+#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27::1
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.clean_up_from_scene:1
+msgid "Clean up the :class:`~.Scene` after finishing the animation."
+msgstr ""
+
+#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27::1
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.finish:1
+msgid "Finish the animation."
+msgstr ""
+
+#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27::1
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.get_scaled_total_time:1
+msgid "The time taken by the animation under the assumption that the ``run_time`` is 1."
+msgstr ""
+
+#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27::1
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.interpolate:1
+msgid "Set the animation progress."
+msgstr ""
+
+#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:27::1
+msgid "Updates things like starting_mobject, and (for Transforms) target_mobject."
+msgstr ""
+
+#: ../../source/reference/manim.animation.speedmodifier.ChangeSpeed.rst:29
+msgid "Attributes"
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:3
+msgid "This updater will follow speed and rate function of any :class:`.ChangeSpeed` animation that is playing with ``affects_speed_updaters=True``. By default, updater functions added via the usual :meth:`.Mobject.add_updater` method do not respect the change of animation speed."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:8
+msgid "The mobject to which the updater should be attached."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:9
+msgid "The function that is called whenever a new frame is rendered."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:10
+msgid "The position in the list of the mobject's updaters at which the function should be inserted."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.add_updater:12
+msgid "If ``True``, calls the update function when attaching it to the mobject."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.begin:3
+msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.begin:0
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.clean_up_from_scene:0
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.finish:0
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.get_scaled_total_time:0
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.interpolate:0
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.update_mobjects:0
+msgid "Return type"
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.clean_up_from_scene:3
+msgid "This includes to :meth:`~.Scene.remove` the Animation's :class:`~.Mobject` if the animation is a remover."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.clean_up_from_scene:6
+msgid "The scene the animation should be cleaned up from."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.finish:3
+msgid "This method gets called when the animation is over."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.interpolate:3
+msgid "This method gets called for every frame during an animation."
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier.ChangeSpeed.interpolate:5
+msgid "The relative time to set the animation to, 0 meaning the start, 1 meaning the end."
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/reference/manim.animation.speedmodifier.pot b/docs/i18n/gettext/reference/manim.animation.speedmodifier.pot
new file mode 100644
index 0000000000..e44ae23c43
--- /dev/null
+++ b/docs/i18n/gettext/reference/manim.animation.speedmodifier.pot
@@ -0,0 +1,21 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/reference/manim.animation.speedmodifier.rst:2
+msgid "speedmodifier"
+msgstr ""
+
+#: ../../../manim/animation/speedmodifier.py:docstring of manim.animation.speedmodifier:1
+msgid "Utilities for modifying the speed at which animations are played."
+msgstr ""
+
+#: ../../source/reference/manim.animation.speedmodifier.rst:15
+msgid "Classes"
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.ApplyComplexFunction.pot b/docs/i18n/gettext/reference/manim.animation.transform.ApplyComplexFunction.pot
index 112a2c6873..a087a06b63 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.ApplyComplexFunction.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.ApplyComplexFunction.pot
@@ -26,8 +26,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyComplexFunction:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.ApplyFunction.pot b/docs/i18n/gettext/reference/manim.animation.transform.ApplyFunction.pot
index 20a44312a6..30cd26b0a1 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.ApplyFunction.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.ApplyFunction.pot
@@ -26,8 +26,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyFunction:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.ApplyMatrix.pot b/docs/i18n/gettext/reference/manim.animation.transform.ApplyMatrix.pot
index b3a8bf609a..49331eeb99 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.ApplyMatrix.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.ApplyMatrix.pot
@@ -42,10 +42,6 @@ msgstr ""
msgid "Further keyword arguments that are passed to :class:`ApplyPointwiseFunction`."
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyMatrix:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyMatrix:9
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.ApplyMethod.pot b/docs/i18n/gettext/reference/manim.animation.transform.ApplyMethod.pot
index d9c6a1eedc..320085ca09 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.ApplyMethod.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.ApplyMethod.pot
@@ -42,10 +42,6 @@ msgstr ""
msgid "Any keyword arguments passed to :class:`~.Transform`."
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyMethod:0
-msgid "Return type"
-msgstr ""
-
#: ../../source/reference/manim.animation.transform.ApplyMethod.rst:14
msgid "Methods"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.ApplyPointwiseFunction.pot b/docs/i18n/gettext/reference/manim.animation.transform.ApplyPointwiseFunction.pot
index 5291a225bb..36d818db66 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.ApplyPointwiseFunction.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.ApplyPointwiseFunction.pot
@@ -34,8 +34,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyPointwiseFunction:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.ApplyPointwiseFunctionToCenter.pot b/docs/i18n/gettext/reference/manim.animation.transform.ApplyPointwiseFunctionToCenter.pot
index e5d7f648cd..84ed1cd0e4 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.ApplyPointwiseFunctionToCenter.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.ApplyPointwiseFunctionToCenter.pot
@@ -31,13 +31,8 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyPointwiseFunctionToCenter:0
-msgid "Parameters"
-msgstr ""
-
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyPointwiseFunctionToCenter:0
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyPointwiseFunctionToCenter.begin:0
-msgid "Return type"
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ApplyPointwiseFunctionToCenter.begin:3
+msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.ClockwiseTransform.pot b/docs/i18n/gettext/reference/manim.animation.transform.ClockwiseTransform.pot
index 99ce9194c2..331c76c280 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.ClockwiseTransform.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.ClockwiseTransform.pot
@@ -34,8 +34,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ClockwiseTransform:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.CounterclockwiseTransform.pot b/docs/i18n/gettext/reference/manim.animation.transform.CounterclockwiseTransform.pot
index bd9b425a0b..41d2723333 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.CounterclockwiseTransform.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.CounterclockwiseTransform.pot
@@ -34,8 +34,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.CounterclockwiseTransform:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.CyclicReplace.pot b/docs/i18n/gettext/reference/manim.animation.transform.CyclicReplace.pot
index 90209fce40..54881283d2 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.CyclicReplace.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.CyclicReplace.pot
@@ -26,8 +26,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.CyclicReplace:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.FadeToColor.pot b/docs/i18n/gettext/reference/manim.animation.transform.FadeToColor.pot
index ab7fb81ea0..9385df131f 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.FadeToColor.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.FadeToColor.pot
@@ -34,8 +34,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.FadeToColor:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.MoveToTarget.pot b/docs/i18n/gettext/reference/manim.animation.transform.MoveToTarget.pot
index b375158de4..50a593be89 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.MoveToTarget.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.MoveToTarget.pot
@@ -38,8 +38,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.MoveToTarget:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.ReplacementTransform.pot b/docs/i18n/gettext/reference/manim.animation.transform.ReplacementTransform.pot
index 428ecf85bb..707df6190e 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.ReplacementTransform.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.ReplacementTransform.pot
@@ -38,10 +38,6 @@ msgstr ""
msgid "Further keyword arguments that are passed to :class:`Transform`."
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ReplacementTransform:0
-msgid "Return type"
-msgstr ""
-
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ReplacementTransform:8
msgid "Examples"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.Restore.pot b/docs/i18n/gettext/reference/manim.animation.transform.Restore.pot
index c79a64a83a..bb8983d573 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.Restore.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.Restore.pot
@@ -38,8 +38,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Restore:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.ScaleInPlace.pot b/docs/i18n/gettext/reference/manim.animation.transform.ScaleInPlace.pot
index a87c08d9a2..5fcf2fb7a8 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.ScaleInPlace.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.ScaleInPlace.pot
@@ -34,8 +34,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ScaleInPlace:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.ShrinkToCenter.pot b/docs/i18n/gettext/reference/manim.animation.transform.ShrinkToCenter.pot
index 704df9cf06..afb2b118db 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.ShrinkToCenter.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.ShrinkToCenter.pot
@@ -34,8 +34,4 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.ShrinkToCenter:0
-msgid "Parameters"
-msgstr ""
-
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.Transform.pot b/docs/i18n/gettext/reference/manim.animation.transform.Transform.pot
index e305a2c686..33af82e09b 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.Transform.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.Transform.pot
@@ -18,6 +18,63 @@ msgstr ""
msgid "Bases: :py:class:`manim.animation.animation.Animation`"
msgstr ""
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:1
+msgid "A Transform transforms a Mobject into a target Mobject."
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:0
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.clean_up_from_scene:0
+msgid "Parameters"
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:3
+msgid "The :class:`.Mobject` to be transformed. It will be mutated to become the ``target_mobject``."
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:4
+msgid "The target of the transformation."
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:5
+msgid "A function defining the path that the points of the ``mobject`` are being moved along until they match the points of the ``target_mobject``, see :mod:`.utils.paths`."
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:7
+msgid "The arc angle (in radians) that the points of ``mobject`` will follow to reach the points of the target if using a circular path arc, see ``path_arc_centers``. See also :func:`manim.utils.paths.path_along_arc`."
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:10
+msgid "The axis to rotate along if using a circular path arc, see ``path_arc_centers``."
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:11
+msgid "The center of the circular arcs along which the points of ``mobject`` are moved by the transformation. If this is set and ``path_func`` is not set, then a ``path_along_circles`` path will be generated using the ``path_arc`` parameters and stored in ``path_func``. If ``path_func`` is set, this and the other ``path_arc`` fields are set as attributes, but a ``path_func`` is not generated from it."
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:11
+msgid "The center of the circular arcs along which the points of ``mobject`` are moved by the transformation."
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:14
+msgid "If this is set and ``path_func`` is not set, then a ``path_along_circles`` path will be generated using the ``path_arc`` parameters and stored in ``path_func``. If ``path_func`` is set, this and the other ``path_arc`` fields are set as attributes, but a ``path_func`` is not generated from it."
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:17
+msgid "Controls which mobject is replaced when the transformation is complete. If set to True, ``mobject`` will be removed from the scene and ``target_mobject`` will replace it. Otherwise, ``target_mobject`` is never added and ``mobject`` just takes its shape."
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:17
+msgid "Controls which mobject is replaced when the transformation is complete."
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:19
+msgid "If set to True, ``mobject`` will be removed from the scene and ``target_mobject`` will replace it. Otherwise, ``target_mobject`` is never added and ``mobject`` just takes its shape."
+msgstr ""
+
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:23
+msgid "Examples"
+msgstr ""
+
#: ../../source/reference/manim.animation.transform.Transform.rst:14
msgid "Methods"
msgstr ""
@@ -41,22 +98,16 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:0
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.clean_up_from_scene:0
-msgid "Parameters"
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.begin:3
+msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.begin:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.clean_up_from_scene:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.get_all_mobjects:0
msgid "Return type"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.begin:3
-msgid "This method is called right as an animation is being played. As much initialization as possible, especially any mobject copying, should live in this method."
-msgstr ""
-
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.Transform.clean_up_from_scene:3
msgid "This includes to :meth:`~.Scene.remove` the Animation's :class:`~.Mobject` if the animation is a remover."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.TransformAnimations.pot b/docs/i18n/gettext/reference/manim.animation.transform.TransformAnimations.pot
index be48e628a4..b753ae9f62 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.TransformAnimations.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.TransformAnimations.pot
@@ -31,18 +31,16 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations:0
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations.interpolate:0
-msgid "Parameters"
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations.interpolate:3
+msgid "This method gets called for every frame during an animation."
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations.interpolate:0
-msgid "Return type"
+msgid "Parameters"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations.interpolate:3
-msgid "This method gets called for every frame during an animation."
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformAnimations.interpolate:5
+msgid "The relative time to set the animation to, 0 meaning the start, 1 meaning the end."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.TransformFromCopy.pot b/docs/i18n/gettext/reference/manim.animation.transform.TransformFromCopy.pot
index c79f095c34..48930a5725 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.TransformFromCopy.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.TransformFromCopy.pot
@@ -35,18 +35,16 @@ msgstr ""
msgid "Attributes"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy:0
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy.interpolate:0
-msgid "Parameters"
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy.interpolate:3
+msgid "This method gets called for every frame during an animation."
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy:0
#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy.interpolate:0
-msgid "Return type"
+msgid "Parameters"
msgstr ""
-#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy.interpolate:3
-msgid "This method gets called for every frame during an animation."
+#: ../../../manim/animation/transform.py:docstring of manim.animation.transform.TransformFromCopy.interpolate:5
+msgid "The relative time to set the animation to, 0 meaning the start, 1 meaning the end."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.transform.pot b/docs/i18n/gettext/reference/manim.animation.transform.pot
index 9956c62eb3..13575090ea 100644
--- a/docs/i18n/gettext/reference/manim.animation.transform.pot
+++ b/docs/i18n/gettext/reference/manim.animation.transform.pot
@@ -70,4 +70,8 @@ msgstr ""
msgid "Animation that makes a mobject shrink to center."
msgstr ""
+#: ../../source/reference/manim.animation.transform.rst:60::1
+msgid "A Transform transforms a Mobject into a target Mobject."
+msgstr ""
+
diff --git a/docs/i18n/gettext/reference/manim.animation.updaters.update.MaintainPositionRelativeTo.pot b/docs/i18n/gettext/reference/manim.animation.updaters.update.MaintainPositionRelativeTo.pot
index 7d0930de33..348be8cd65 100644
--- a/docs/i18n/gettext/reference/manim.animation.updaters.update.MaintainPositionRelativeTo.pot
+++ b/docs/i18n/gettext/reference/manim.animation.updaters.update.MaintainPositionRelativeTo.pot
@@ -27,14 +27,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
-#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.MaintainPositionRelativeTo:0
#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.MaintainPositionRelativeTo.interpolate_mobject:0
msgid "Parameters"
msgstr ""
-#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.MaintainPositionRelativeTo:0
-#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.MaintainPositionRelativeTo.interpolate_mobject:0
-msgid "Return type"
+#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.MaintainPositionRelativeTo.interpolate_mobject:3
+msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.animation.updaters.update.UpdateFromFunc.pot b/docs/i18n/gettext/reference/manim.animation.updaters.update.UpdateFromFunc.pot
index bed3f29766..f976b33052 100644
--- a/docs/i18n/gettext/reference/manim.animation.updaters.update.UpdateFromFunc.pot
+++ b/docs/i18n/gettext/reference/manim.animation.updaters.update.UpdateFromFunc.pot
@@ -31,14 +31,12 @@ msgstr ""
msgid "Interpolates the mobject of the :class:`Animation` based on alpha value."
msgstr ""
-#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.UpdateFromFunc:0
#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.UpdateFromFunc.interpolate_mobject:0
msgid "Parameters"
msgstr ""
-#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.UpdateFromFunc:0
-#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.UpdateFromFunc.interpolate_mobject:0
-msgid "Return type"
+#: ../../../manim/animation/updaters/update.py:docstring of manim.animation.updaters.update.UpdateFromFunc.interpolate_mobject:3
+msgid "A float between 0 and 1 expressing the ratio to which the animation is completed. For example, alpha-values of 0, 0.5, and 1 correspond to the animation being completed 0%, 50%, and 100%, respectively."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.camera.moving_camera.CameraFrame.pot b/docs/i18n/gettext/reference/manim.camera.moving_camera.CameraFrame.pot
index 047c6e4cc2..8b13789179 100644
--- a/docs/i18n/gettext/reference/manim.camera.moving_camera.CameraFrame.pot
+++ b/docs/i18n/gettext/reference/manim.camera.moving_camera.CameraFrame.pot
@@ -1,45 +1 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Manim \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:2
-msgid "CameraFrame"
-msgstr ""
-
-#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:4
-msgid "Qualified name: ``manim.camera.moving\\_camera.CameraFrame``"
-msgstr ""
-
-#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.CameraFrame:1
-msgid "Bases: :py:class:`manim.mobject.types.vectorized_mobject.VGroup`"
-msgstr ""
-
-#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:14
-msgid "Methods"
-msgstr ""
-
-#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:21
-msgid "Attributes"
-msgstr ""
-
-#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:32::1
-msgid "Used to animate the application of any method of :code:`self`."
-msgstr ""
-
-#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:32::1
-msgid "The depth of the mobject."
-msgstr ""
-
-#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:32::1
-msgid "If there are multiple colors (for gradient) this returns the first one"
-msgstr ""
-
-#: ../../source/reference/manim.camera.moving_camera.CameraFrame.rst:32::1
-msgid "The height of the mobject."
-msgstr ""
-
-
diff --git a/docs/i18n/gettext/reference/manim.camera.moving_camera.MovingCamera.pot b/docs/i18n/gettext/reference/manim.camera.moving_camera.MovingCamera.pot
index 11d7cd810a..37e3cfc10d 100644
--- a/docs/i18n/gettext/reference/manim.camera.moving_camera.MovingCamera.pot
+++ b/docs/i18n/gettext/reference/manim.camera.moving_camera.MovingCamera.pot
@@ -90,6 +90,10 @@ msgstr ""
msgid "If set to ``True``, only allows focusing on mobjects that are already in frame."
msgstr ""
+#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.auto_zoom:12
+msgid "If set to ``False``, applies the changes instead of returning the corresponding animation"
+msgstr ""
+
#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.auto_zoom:0
#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.frame_center:0
#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.frame_height:0
@@ -97,8 +101,8 @@ msgstr ""
msgid "Returns"
msgstr ""
-#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.auto_zoom:13
-msgid "Returns an animation that zooms the camera view to a given list of mobjects."
+#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.auto_zoom:14
+msgid "_AnimationBuilder that zooms the camera view to a given list of mobjects or ScreenRectangle with position and size updated to zoomed position."
msgstr ""
#: ../../../manim/camera/moving_camera.py:docstring of manim.camera.moving_camera.MovingCamera.auto_zoom:0
diff --git a/docs/i18n/gettext/reference/manim.mobject.geometry.Arc.pot b/docs/i18n/gettext/reference/manim.mobject.geometry.Arc.pot
index a90df840fb..8b13789179 100644
--- a/docs/i18n/gettext/reference/manim.mobject.geometry.Arc.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.geometry.Arc.pot
@@ -1,75 +1 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Manim \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:2
-msgid "arc"
-msgstr ""
-
-#: ../../../manim/mobject/geometry/arc.py:docstring of manim.mobject.geometry.arc:1
-msgid "Mobjects that are curved."
-msgstr ""
-
-#: ../../../manim/mobject/geometry/arc.py:docstring of manim.mobject.geometry.arc:4
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::0
-msgid "Examples"
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:15
-msgid "Classes"
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
-msgid "A dot with bigger radius and bold stroke to annotate scenes."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::0
-msgid "param inner_radius"
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
-msgid "The inside radius of the Annular Sector."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
-msgid "Region between two concentric :class:`Circles <.Circle>`."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
-msgid "A circular arc."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
-msgid "Inherits from Arc and additionally takes 2 points between which the arc is spanned."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
-msgid "A generalized polygon allowing for points to be connected with arcs."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
-msgid "A circle."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::0
-msgid "Example"
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
-msgid "A circle with a very small radius."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
-msgid "A circular shape; oval, circle."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
-msgid "A :class:`Dot` containing a label in its center."
-msgstr ""
-
-
diff --git a/docs/i18n/gettext/reference/manim.mobject.geometry.Line.pot b/docs/i18n/gettext/reference/manim.mobject.geometry.Line.pot
index 3e988739f5..8b13789179 100644
--- a/docs/i18n/gettext/reference/manim.mobject.geometry.Line.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.geometry.Line.pot
@@ -1,49 +1 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Manim \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../source/reference/manim.mobject.geometry.line.rst:2
-msgid "line"
-msgstr ""
-
-#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line:1
-msgid "Mobjects that are lines or variations of them."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.line.rst:15
-msgid "Classes"
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
-msgid "A circular arc or elbow-type mobject representing an angle of two lines."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
-msgid "An arrow."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
-msgid "A dashed :class:`Line`."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
-msgid "An arrow with tips on both ends."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
-msgid "Two lines that create a right angle about each other: L-shape."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
-msgid "An elbow-type mobject representing a right angle between two lines."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
-msgid "Constructs a line tangent to a :class:`~.VMobject` at a specific point."
-msgstr ""
-
-
diff --git a/docs/i18n/gettext/reference/manim.mobject.geometry.Polygram.pot b/docs/i18n/gettext/reference/manim.mobject.geometry.Polygram.pot
index 91cae7205f..8b13789179 100644
--- a/docs/i18n/gettext/reference/manim.mobject.geometry.Polygram.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.geometry.Polygram.pot
@@ -1,57 +1 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Manim \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../source/reference/manim.mobject.geometry.polygram.rst:2
-msgid "polygram"
-msgstr ""
-
-#: ../../../manim/mobject/geometry/polygram.py:docstring of manim.mobject.geometry.polygram:1
-msgid "Mobjects that are simple geometric shapes."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.polygram.rst:15
-msgid "Classes"
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
-msgid "A shape with smaller cutouts."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
-msgid "A shape consisting of one closed loop of vertices."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
-msgid "A generalized :class:`Polygon`, allowing for disconnected sets of edges."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
-msgid "A quadrilateral with two sets of parallel sides."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
-msgid "An n-sided regular :class:`Polygon`."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
-msgid "A :class:`Polygram` with regularly spaced vertices."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
-msgid "A rectangle with rounded corners."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
-msgid "A rectangle with equal side lengths."
-msgstr ""
-
-#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
-msgid "A regular polygram without the intersecting lines."
-msgstr ""
-
-
diff --git a/docs/i18n/gettext/reference/manim.mobject.geometry.arc.pot b/docs/i18n/gettext/reference/manim.mobject.geometry.arc.pot
new file mode 100644
index 0000000000..a90df840fb
--- /dev/null
+++ b/docs/i18n/gettext/reference/manim.mobject.geometry.arc.pot
@@ -0,0 +1,75 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:2
+msgid "arc"
+msgstr ""
+
+#: ../../../manim/mobject/geometry/arc.py:docstring of manim.mobject.geometry.arc:1
+msgid "Mobjects that are curved."
+msgstr ""
+
+#: ../../../manim/mobject/geometry/arc.py:docstring of manim.mobject.geometry.arc:4
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::0
+msgid "Examples"
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:15
+msgid "Classes"
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
+msgid "A dot with bigger radius and bold stroke to annotate scenes."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::0
+msgid "param inner_radius"
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
+msgid "The inside radius of the Annular Sector."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
+msgid "Region between two concentric :class:`Circles <.Circle>`."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
+msgid "A circular arc."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
+msgid "Inherits from Arc and additionally takes 2 points between which the arc is spanned."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
+msgid "A generalized polygon allowing for points to be connected with arcs."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
+msgid "A circle."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::0
+msgid "Example"
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
+msgid "A circle with a very small radius."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
+msgid "A circular shape; oval, circle."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.arc.rst:50::1
+msgid "A :class:`Dot` containing a label in its center."
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/reference/manim.mobject.geometry.line.Angle.pot b/docs/i18n/gettext/reference/manim.mobject.geometry.line.Angle.pot
index 193feb1640..e62b85dd8c 100644
--- a/docs/i18n/gettext/reference/manim.mobject.geometry.line.Angle.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.geometry.line.Angle.pot
@@ -23,6 +23,7 @@ msgid "A circular arc or elbow-type mobject representing an angle of two lines."
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle:0
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:0
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_value:0
msgid "Parameters"
msgstr ""
@@ -72,6 +73,7 @@ msgid "Further keyword arguments that are passed to the constructor of :class:`A
msgstr ""
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle:30
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:15
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:7
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_value:9
msgid "Examples"
@@ -85,54 +87,85 @@ msgstr ""
msgid "Methods"
msgstr ""
-#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:21::1
+#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:22::1
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:1
+msgid "The angle between the lines AB and BC."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:22::1
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:1
msgid "Get the lines forming an angle of the :class:`Angle` class."
msgstr ""
-#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:21::1
+#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:22::1
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_value:1
msgid "Get the value of an angle of the :class:`Angle` class."
msgstr ""
-#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:23
+#: ../../source/reference/manim.mobject.geometry.line.Angle.rst:24
msgid "Attributes"
msgstr ""
-#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:1::1
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:1::1
msgid "Used to animate the application of any method of :code:`self`."
msgstr ""
-#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:1::1
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:1::1
msgid "The depth of the mobject."
msgstr ""
-#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:1::1
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:1::1
msgid "If there are multiple colors (for gradient) this returns the first one"
msgstr ""
-#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:1::1
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:1::1
msgid "The height of the mobject."
msgstr ""
-#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:1::1
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:1::1
msgid "The width of the mobject."
msgstr ""
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:3
+msgid "This constructs the angle :math:`\\angle ABC`."
+msgstr ""
+
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:5
+msgid "The endpoint of the first angle leg"
+msgstr ""
+
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:6
+msgid "The vertex of the angle"
+msgstr ""
+
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:7
+msgid "The endpoint of the second angle leg"
+msgstr ""
+
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:8
+msgid "Further keyword arguments are passed to :class:`.Angle`"
+msgstr ""
+
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:0
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:0
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_value:0
msgid "Returns"
msgstr ""
-#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:3
-msgid "A :class:`~.VGroup` containing the lines that form the angle of the :class:`Angle` class."
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:10
+msgid "Angle(line1, line2, radius=0.5, quadrant=(-1,1), stroke_width=8), Angle(line1, line2, radius=0.7, quadrant=(-1,-1), color=RED, other_angle=True),"
msgstr ""
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.from_three_points:0
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:0
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_value:0
msgid "Return type"
msgstr ""
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_lines:3
+msgid "A :class:`~.VGroup` containing the lines that form the angle of the :class:`Angle` class."
+msgstr ""
+
#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line.Angle.get_value:3
msgid "A boolean to decide the unit (deg/rad) in which the value of the angle is returned."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.mobject.geometry.line.pot b/docs/i18n/gettext/reference/manim.mobject.geometry.line.pot
new file mode 100644
index 0000000000..3e988739f5
--- /dev/null
+++ b/docs/i18n/gettext/reference/manim.mobject.geometry.line.pot
@@ -0,0 +1,49 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/reference/manim.mobject.geometry.line.rst:2
+msgid "line"
+msgstr ""
+
+#: ../../../manim/mobject/geometry/line.py:docstring of manim.mobject.geometry.line:1
+msgid "Mobjects that are lines or variations of them."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.line.rst:15
+msgid "Classes"
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
+msgid "A circular arc or elbow-type mobject representing an angle of two lines."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
+msgid "An arrow."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
+msgid "A dashed :class:`Line`."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
+msgid "An arrow with tips on both ends."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
+msgid "Two lines that create a right angle about each other: L-shape."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
+msgid "An elbow-type mobject representing a right angle between two lines."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.line.rst:36::1
+msgid "Constructs a line tangent to a :class:`~.VMobject` at a specific point."
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/reference/manim.mobject.geometry.polygram.pot b/docs/i18n/gettext/reference/manim.mobject.geometry.polygram.pot
new file mode 100644
index 0000000000..91cae7205f
--- /dev/null
+++ b/docs/i18n/gettext/reference/manim.mobject.geometry.polygram.pot
@@ -0,0 +1,57 @@
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Manim \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/reference/manim.mobject.geometry.polygram.rst:2
+msgid "polygram"
+msgstr ""
+
+#: ../../../manim/mobject/geometry/polygram.py:docstring of manim.mobject.geometry.polygram:1
+msgid "Mobjects that are simple geometric shapes."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.polygram.rst:15
+msgid "Classes"
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
+msgid "A shape with smaller cutouts."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
+msgid "A shape consisting of one closed loop of vertices."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
+msgid "A generalized :class:`Polygon`, allowing for disconnected sets of edges."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
+msgid "A quadrilateral with two sets of parallel sides."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
+msgid "An n-sided regular :class:`Polygon`."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
+msgid "A :class:`Polygram` with regularly spaced vertices."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
+msgid "A rectangle with rounded corners."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
+msgid "A rectangle with equal side lengths."
+msgstr ""
+
+#: ../../source/reference/manim.mobject.geometry.polygram.rst:38::1
+msgid "A regular polygram without the intersecting lines."
+msgstr ""
+
+
diff --git a/docs/i18n/gettext/reference/manim.mobject.graph.Graph.pot b/docs/i18n/gettext/reference/manim.mobject.graph.Graph.pot
index e144a57769..ded7c4d5b4 100644
--- a/docs/i18n/gettext/reference/manim.mobject.graph.Graph.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.graph.Graph.pot
@@ -135,10 +135,14 @@ msgid "All vertices in your graph which are not listed in any of the partitions
msgstr ""
#: ../../../manim/mobject/graph.py:docstring of manim.mobject.graph.Graph:159
+msgid "The representation of a linear artificial neural network is facilitated by the use of the partite layout and defining partitions for each layer."
+msgstr ""
+
+#: ../../../manim/mobject/graph.py:docstring of manim.mobject.graph.Graph:193
msgid "The custom tree layout can be used to show the graph by distance from the root vertex. You must pass the root vertex of the tree."
msgstr ""
-#: ../../../manim/mobject/graph.py:docstring of manim.mobject.graph.Graph:185
+#: ../../../manim/mobject/graph.py:docstring of manim.mobject.graph.Graph:219
msgid "The following code sample illustrates the use of the ``vertex_spacing`` layout parameter specific to the ``\"tree\"`` layout. As mentioned above, setting ``vertex_spacing`` overrides the specified value for ``layout_scale``, and as such it is harder to control the size of the mobject. However, we can adjust the captured frame and zoom out by using a :class:`.MovingCameraScene`::"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.Axes.pot b/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.Axes.pot
index 994cd3f671..9eba72c307 100644
--- a/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.Axes.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.Axes.pot
@@ -66,9 +66,9 @@ msgid "Additional arguments to be passed to :class:`CoordinateSystem` and :class
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes:14
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.coords_to_point:9
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.coords_to_point:16
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.plot_line_graph:21
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.point_to_coords:9
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.point_to_coords:11
msgid "Examples"
msgstr ""
@@ -120,10 +120,26 @@ msgstr ""
msgid "The width of the mobject."
msgstr ""
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.coords_to_point:3
+msgid "The coordinates. Each coord is passed as a separate argument: ``ax.coords_to_point(1, 2, 3)``. Also accepts a list of coordinates ``ax.coords_to_point( [x_0, x_1, ...], [y_0, y_1, ...], ... )`` ``ax.coords_to_point( [[x_0, y_0, z_0], [x_1, y_1, z_1]] )``"
+msgstr ""
+
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.coords_to_point:3
msgid "The coordinates. Each coord is passed as a separate argument: ``ax.coords_to_point(1, 2, 3)``."
msgstr ""
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.coords_to_point:5
+msgid "Also accepts a list of coordinates"
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.coords_to_point:7
+msgid "``ax.coords_to_point( [x_0, x_1, ...], [y_0, y_1, ...], ... )``"
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.coords_to_point:9
+msgid "``ax.coords_to_point( [[x_0, y_0, z_0], [x_1, y_1, z_1]] )``"
+msgstr ""
+
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.coords_to_point:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.get_axes:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.plot_line_graph:0
@@ -131,8 +147,8 @@ msgstr ""
msgid "Returns"
msgstr ""
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.coords_to_point:5
-msgid "A point with respect to the scene's coordinate system."
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.coords_to_point:11
+msgid "A point with respect to the scene's coordinate system. The shape of the array will be similar to the shape of the input."
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.coords_to_point:0
@@ -187,7 +203,7 @@ msgid "A VDict containing both the line and dots (if specified). The line can be
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.Axes.point_to_coords:3
-msgid "The point, i.e. ``RIGHT`` or ``[0, 1, 0]``."
+msgid "The point, i.e. ``RIGHT`` or ``[0, 1, 0]``. Also accepts a list of points as ``[RIGHT, [0, 1, 0]]``."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.CoordinateSystem.pot b/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.CoordinateSystem.pot
index f49f657bd0..b2f20b2dd5 100644
--- a/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.CoordinateSystem.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.CoordinateSystem.pot
@@ -19,7 +19,7 @@ msgid "Bases: :py:class:`object`"
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem:1
-msgid "Abstract class for Axes and NumberPlane"
+msgid "Abstract base class for Axes and NumberPlane."
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem:4
@@ -27,7 +27,7 @@ msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.angle_of_tangent:12
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_T_label:17
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_area:16
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:15
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:17
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_graph_label:16
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_horizontal_line:10
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_lines_to_point:14
@@ -39,11 +39,12 @@ msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_y_axis_label:12
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.input_to_graph_coords:5
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.input_to_graph_point:12
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot:16
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_antiderivative_graph:17
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot:18
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_antiderivative_graph:20
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_derivative_graph:11
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_implicit_curve:9
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_polar_graph:8
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_surface:17
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.polar_to_point:10
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.slope_of_tangent:11
msgid "Examples"
@@ -64,7 +65,7 @@ msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.add_coordinates:1::1
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.c2p:1
-msgid "Abbreviation for coords_to_point"
+msgid "Abbreviation for :meth:`coords_to_point`"
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.add_coordinates:1::1
@@ -78,6 +79,7 @@ msgid "Returns a :class:`~.Polygon` representing the area under the graph passed
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.add_coordinates:1::1
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:1
msgid "Defines labels for the x_axis and y_axis of the graph."
msgstr ""
@@ -158,7 +160,7 @@ msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.add_coordinates:1::1
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.p2c:1
-msgid "Abbreviation for point_to_coords"
+msgid "Abbreviation for :meth:`point_to_coords`"
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.add_coordinates:1::1
@@ -181,11 +183,21 @@ msgstr ""
msgid "Creates the curves of an implicit function."
msgstr ""
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.add_coordinates:1::1
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_parametric_curve:1
+msgid "A parametric curve."
+msgstr ""
+
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.add_coordinates:1::1
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_polar_graph:1
msgid "A polar graph."
msgstr ""
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.add_coordinates:1::1
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_surface:1
+msgid "Generates a surface based on a function."
+msgstr ""
+
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.add_coordinates:1::1
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.point_to_polar:1
msgid "Gets polar coordinates from a point."
@@ -238,7 +250,9 @@ msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_antiderivative_graph:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_derivative_graph:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_implicit_curve:0
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_parametric_curve:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_polar_graph:0
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_surface:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.point_to_polar:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.polar_to_point:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.pr2pt:0
@@ -288,6 +302,7 @@ msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_antiderivative_graph:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_derivative_graph:0
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_surface:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.point_to_polar:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.polar_to_point:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.slope_of_tangent:0
@@ -321,7 +336,9 @@ msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_antiderivative_graph:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_derivative_graph:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_implicit_curve:0
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_parametric_curve:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_polar_graph:0
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_surface:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.point_to_polar:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.polar_to_point:0
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.pr2pt:0
@@ -403,23 +420,23 @@ msgstr ""
msgid "When x_ranges do not match (either area x_range, graph's x_range or bounded_graph's x_range)."
msgstr ""
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:1
-msgid "Defines labels for the x_axis and y_axis of the graph. For increased control over the position of the labels, use :meth:`get_x_axis_label` and :meth:`get_y_axis_label`."
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:3
+msgid "For increased control over the position of the labels, use :meth:`get_x_axis_label` and :meth:`get_y_axis_label`."
msgstr ""
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:4
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:6
msgid "The label for the x_axis. Defaults to :class:`~.MathTex` for ``str`` and ``float`` inputs."
msgstr ""
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:5
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:7
msgid "The label for the y_axis. Defaults to :class:`~.MathTex` for ``str`` and ``float`` inputs."
msgstr ""
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:7
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:9
msgid "A :class:`~.Vgroup` of the labels for the x_axis and y_axis."
msgstr ""
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:11
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.get_axis_labels:13
msgid ":class:`get_x_axis_label` :class:`get_y_axis_label`"
msgstr ""
@@ -702,14 +719,18 @@ msgid "The range of the curve along the axes. ``x_range = [x_min, x_max, x_step]
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot:5
-msgid "Additional parameters to be passed to :class:`~.ParametricFunction`."
+msgid "Whether to pass in the generated t value array to the function. Only use this if your function supports it. Output should be a numpy array of shape ``[y_0, y_1, ...]``"
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot:7
+msgid "Additional parameters to be passed to :class:`~.ParametricFunction`."
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot:9
msgid "The plotted curve."
msgstr ""
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot:11
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot:13
msgid "This method may not produce accurate graphs since Manim currently relies on interpolation between evenly-spaced samples of the curve, instead of intelligent plotting. See the example below for some solutions to this problem."
msgstr ""
@@ -726,15 +747,19 @@ msgid "The number of points to take the area under the graph."
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_antiderivative_graph:6
+msgid "Whether to use the vectorized version of the antiderivative. This means to pass in the generated t value array to the function. Only use this if your function supports it. Output should be a numpy array of shape ``[y_0, y_1, ...]``"
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_antiderivative_graph:9
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_derivative_graph:5
msgid "Any valid keyword argument of :class:`~.ParametricFunction`."
msgstr ""
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_antiderivative_graph:8
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_antiderivative_graph:11
msgid "The curve of the antiderivative."
msgstr ""
-#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_antiderivative_graph:12
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_antiderivative_graph:15
msgid "This graph is plotted from the values of area under the reference graph. The result might not be ideal if the reference graph contains uncalculatable areas from x=0."
msgstr ""
@@ -766,6 +791,22 @@ msgstr ""
msgid "Additional parameters to pass into :class:`ImplicitFunction`."
msgstr ""
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_parametric_curve:3
+msgid "A parametric function mapping a number to a point in the coordinate system."
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_parametric_curve:5
+msgid "Whether to pass in the generated t value array to the function. Only use this if your function supports it."
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_parametric_curve:6
+msgid "Any further keyword arguments are passed to :class:`.ParametricFunction`."
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_parametric_curve:9
+msgid "Example"
+msgstr ""
+
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_polar_graph:3
msgid "The function r of theta."
msgstr ""
@@ -778,6 +819,34 @@ msgstr ""
msgid "Additional parameters passed to :class:`~.ParametricFunction`."
msgstr ""
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_surface:3
+msgid "The function used to construct the :class:`~.Surface`."
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_surface:4
+msgid "The range of the ``u`` variable: ``(u_min, u_max)``."
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_surface:5
+msgid "The range of the ``v`` variable: ``(v_min, v_max)``."
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_surface:6
+msgid "Colors of the surface. Passing a list of colors will color the surface by z-value. Passing a list of tuples in the form ``(color, pivot)`` allows user-defined pivots where the color transitions."
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_surface:9
+msgid "Defines the axis on which the colorscale is applied (0 = x, 1 = y, 2 = z), default is z-axis (2)."
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_surface:11
+msgid "Additional parameters to be passed to :class:`~.Surface`."
+msgstr ""
+
+#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.plot_surface:13
+msgid "The plotted surface."
+msgstr ""
+
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.point_to_polar:3
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.CoordinateSystem.polar_to_point:6
msgid "The point."
diff --git a/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.NumberPlane.pot b/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.NumberPlane.pot
index 0b2f123e73..e31a3beee6 100644
--- a/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.NumberPlane.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.NumberPlane.pot
@@ -63,7 +63,7 @@ msgid "Additional arguments to be passed to :class:`Axes`."
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.NumberPlane:14
-msgid "If :attr:`x_length` or :attr:`y_length` are not defined, the plane automatically adjusts its lengths based on the :attr:`x_range` and :attr:`y_range` values to set the ``unit_size`` to 1."
+msgid "If :attr:`x_length` or :attr:`y_length` are not defined, they are automatically calculated such that one unit on each axis is one Manim unit long."
msgstr ""
#: ../../../manim/mobject/graphing/coordinate_systems.py:docstring of manim.mobject.graphing.coordinate_systems.NumberPlane:18
diff --git a/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.pot b/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.pot
index 4ca16af714..dff35f65a2 100644
--- a/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.graphing.coordinate_systems.pot
@@ -27,7 +27,7 @@ msgid "A :class:`~.NumberPlane` specialized for use with complex numbers."
msgstr ""
#: ../../source/reference/manim.mobject.graphing.coordinate_systems.rst:30::1
-msgid "Abstract class for Axes and NumberPlane"
+msgid "Abstract base class for Axes and NumberPlane."
msgstr ""
#: ../../source/reference/manim.mobject.graphing.coordinate_systems.rst:30::1
diff --git a/docs/i18n/gettext/reference/manim.mobject.graphing.functions.ParametricFunction.pot b/docs/i18n/gettext/reference/manim.mobject.graphing.functions.ParametricFunction.pot
index bbf76c1e1a..7548f5c5af 100644
--- a/docs/i18n/gettext/reference/manim.mobject.graphing.functions.ParametricFunction.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.graphing.functions.ParametricFunction.pot
@@ -43,18 +43,22 @@ msgid "Whether to interpolate between the points of the function after they have
msgstr ""
#: ../../../manim/mobject/graphing/functions.py:docstring of manim.mobject.graphing.functions.ParametricFunction:8
+msgid "Whether to pass in the generated t value array to the function as ``[t_0, t_1, ...]``. Only use this if your function supports it. Output should be a numpy array of shape ``[[x_0, x_1, ...], [y_0, y_1, ...], [z_0, z_1, ...]]`` but ``z`` can also be 0 if the Axes is 2D"
+msgstr ""
+
+#: ../../../manim/mobject/graphing/functions.py:docstring of manim.mobject.graphing.functions.ParametricFunction:12
msgid "Values of t at which the function experiences discontinuity."
msgstr ""
-#: ../../../manim/mobject/graphing/functions.py:docstring of manim.mobject.graphing.functions.ParametricFunction:9
+#: ../../../manim/mobject/graphing/functions.py:docstring of manim.mobject.graphing.functions.ParametricFunction:13
msgid "The left and right tolerance for the discontinuities."
msgstr ""
-#: ../../../manim/mobject/graphing/functions.py:docstring of manim.mobject.graphing.functions.ParametricFunction:12
+#: ../../../manim/mobject/graphing/functions.py:docstring of manim.mobject.graphing.functions.ParametricFunction:16
msgid "Examples"
msgstr ""
-#: ../../../manim/mobject/graphing/functions.py:docstring of manim.mobject.graphing.functions.ParametricFunction:42
+#: ../../../manim/mobject/graphing/functions.py:docstring of manim.mobject.graphing.functions.ParametricFunction:46
msgid "If your function has discontinuities, you'll have to specify the location of the discontinuities manually. See the following example for guidance."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.mobject.graphing.number_line.NumberLine.pot b/docs/i18n/gettext/reference/manim.mobject.graphing.number_line.NumberLine.pot
index 9544f8bf5b..42be00957c 100644
--- a/docs/i18n/gettext/reference/manim.mobject.graphing.number_line.NumberLine.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.graphing.number_line.NumberLine.pot
@@ -127,6 +127,8 @@ msgid "Number ranges that include both negative and positive values will be gene
msgstr ""
#: ../../../manim/mobject/graphing/number_line.py:docstring of manim.mobject.graphing.number_line.NumberLine:34
+#: ../../../manim/mobject/graphing/number_line.py:docstring of manim.mobject.graphing.number_line.NumberLine.number_to_point:10
+#: ../../../manim/mobject/graphing/number_line.py:docstring of manim.mobject.graphing.number_line.NumberLine.point_to_number:10
msgid "Examples"
msgstr ""
@@ -308,11 +310,11 @@ msgid "A numpy array of floats represnting values along the number line."
msgstr ""
#: ../../../manim/mobject/graphing/number_line.py:docstring of manim.mobject.graphing.number_line.NumberLine.number_to_point:4
-msgid "The value to be transformed into a coordinate."
+msgid "The value to be transformed into a coordinate. Or a list of values."
msgstr ""
#: ../../../manim/mobject/graphing/number_line.py:docstring of manim.mobject.graphing.number_line.NumberLine.number_to_point:6
-msgid "A point with respect to the scene's coordinate system."
+msgid "A point with respect to the scene's coordinate system. Or a list of points."
msgstr ""
#: ../../../manim/mobject/graphing/number_line.py:docstring of manim.mobject.graphing.number_line.NumberLine.point_to_number:4
diff --git a/docs/i18n/gettext/reference/manim.mobject.graphing.probability.BarChart.pot b/docs/i18n/gettext/reference/manim.mobject.graphing.probability.BarChart.pot
index 9fa6bfdcc6..18f5e0e4c1 100644
--- a/docs/i18n/gettext/reference/manim.mobject.graphing.probability.BarChart.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.graphing.probability.BarChart.pot
@@ -29,11 +29,11 @@ msgid "Parameters"
msgstr ""
#: ../../../manim/mobject/graphing/probability.py:docstring of manim.mobject.graphing.probability.BarChart:5
-msgid "An iterable of values that determines the height of each bar. Accepts negative values."
+msgid "A sequence of values that determines the height of each bar. Accepts negative values."
msgstr ""
#: ../../../manim/mobject/graphing/probability.py:docstring of manim.mobject.graphing.probability.BarChart:6
-msgid "An iterable of names for each bar. Does not have to match the length of ``values``."
+msgid "A sequence of names for each bar. Does not have to match the length of ``values``."
msgstr ""
#: ../../../manim/mobject/graphing/probability.py:docstring of manim.mobject.graphing.probability.BarChart:7
@@ -49,7 +49,7 @@ msgid "The length of the y-axis."
msgstr ""
#: ../../../manim/mobject/graphing/probability.py:docstring of manim.mobject.graphing.probability.BarChart:12
-msgid "The color for the bars. Accepts a single color or an iterable of colors. If the length of``bar_colors`` does not match that of ``values``, intermediate colors will be automatically determined."
+msgid "The color for the bars. Accepts a sequence of colors (can contain just one item). If the length of``bar_colors`` does not match that of ``values``, intermediate colors will be automatically determined."
msgstr ""
#: ../../../manim/mobject/graphing/probability.py:docstring of manim.mobject.graphing.probability.BarChart:15
@@ -65,7 +65,7 @@ msgid "The stroke width of the bars."
msgstr ""
#: ../../../manim/mobject/graphing/probability.py:docstring of manim.mobject.graphing.probability.BarChart:20
-#: ../../../manim/mobject/graphing/probability.py:docstring of manim.mobject.graphing.probability.BarChart.change_bar_values:7
+#: ../../../manim/mobject/graphing/probability.py:docstring of manim.mobject.graphing.probability.BarChart.change_bar_values:8
#: ../../../manim/mobject/graphing/probability.py:docstring of manim.mobject.graphing.probability.BarChart.get_bar_labels:10
msgid "Examples"
msgstr ""
@@ -111,6 +111,10 @@ msgstr ""
msgid "The values that will be used to update the height of the bars. Does not have to match the number of bars."
msgstr ""
+#: ../../../manim/mobject/graphing/probability.py:docstring of manim.mobject.graphing.probability.BarChart.change_bar_values:5
+msgid "Whether to re-initalize the colors of the bars based on ``self.bar_colors``."
+msgstr ""
+
#: ../../../manim/mobject/graphing/probability.py:docstring of manim.mobject.graphing.probability.BarChart.get_bar_labels:1
msgid "Annotates each bar with its corresponding value. Use ``self.bar_labels`` to access the labels after creation."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.mobject.matrix.Matrix.pot b/docs/i18n/gettext/reference/manim.mobject.matrix.Matrix.pot
index a81b5c3354..996df14df3 100644
--- a/docs/i18n/gettext/reference/manim.mobject.matrix.Matrix.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.matrix.Matrix.pot
@@ -91,6 +91,10 @@ msgid "The right bracket type, by default ``\"]\"``."
msgstr ""
#: ../../../manim/mobject/matrix.py:docstring of manim.mobject.matrix.Matrix:69
+msgid "``True`` if should stretch the brackets to fit the height of matrix contents, by default ``True``."
+msgstr ""
+
+#: ../../../manim/mobject/matrix.py:docstring of manim.mobject.matrix.Matrix:70
msgid "Additional arguments to be passed to :class:`~.MathTex` when constructing the brackets."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.mobject.matrix.MobjectMatrix.pot b/docs/i18n/gettext/reference/manim.mobject.matrix.MobjectMatrix.pot
index 4c402dd5bd..e7a29ce27b 100644
--- a/docs/i18n/gettext/reference/manim.mobject.matrix.MobjectMatrix.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.matrix.MobjectMatrix.pot
@@ -79,6 +79,10 @@ msgid "The right bracket type, by default ``\"]\"``."
msgstr ""
#: ../../../manim/mobject/matrix.py:docstring of manim.mobject.matrix.MobjectMatrix:30
+msgid "``True`` if should stretch the brackets to fit the height of matrix contents, by default ``True``."
+msgstr ""
+
+#: ../../../manim/mobject/matrix.py:docstring of manim.mobject.matrix.MobjectMatrix:31
msgid "Additional arguments to be passed to :class:`~.MathTex` when constructing the brackets."
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.mobject.mobject.Group.pot b/docs/i18n/gettext/reference/manim.mobject.mobject.Group.pot
index 5e44eb075d..f22c37b286 100644
--- a/docs/i18n/gettext/reference/manim.mobject.mobject.Group.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.mobject.Group.pot
@@ -22,6 +22,14 @@ msgstr ""
msgid "Groups together multiple :class:`Mobjects <.Mobject>`."
msgstr ""
+#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Group:4
+msgid "Notes"
+msgstr ""
+
+#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Group:5
+msgid "When adding the same mobject more than once, repetitions are ignored. Use :meth:`.Mobject.copy` to create a separate copy which can then be added to the group."
+msgstr ""
+
#: ../../source/reference/manim.mobject.mobject.Group.rst:14
msgid "Methods"
msgstr ""
diff --git a/docs/i18n/gettext/reference/manim.mobject.mobject.Mobject.pot b/docs/i18n/gettext/reference/manim.mobject.mobject.Mobject.pot
index 0b80228c7d..c1b1b0e014 100644
--- a/docs/i18n/gettext/reference/manim.mobject.mobject.Mobject.pot
+++ b/docs/i18n/gettext/reference/manim.mobject.mobject.Mobject.pot
@@ -47,469 +47,474 @@ msgstr ""
msgid "Methods"
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.add:1
msgid "Add mobjects as submobjects."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.add_animation_override:1
msgid "Add an animation override."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.add_background_rectangle:1
msgid "Add a BackgroundRectangle as submobject."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.add_to_back:1
msgid "Add all passed mobjects to the back of the submobjects."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.add_updater:1
msgid "Add an update function to this mobject."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.align_data:1
msgid "Aligns the data of this mobject with another mobject."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.align_on_border:1
msgid "Direction just needs to be a vector pointing towards side or corner in the 2d plane."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.align_to:1
msgid "Aligns mobject to another :class:`~.Mobject` in a certain direction."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.animation_override_for:1
msgid "Returns the function defining a specific animation override for this class."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
msgid "Applies a complex function to a :class:`Mobject`."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.apply_to_family:1
msgid "Apply a function to ``self`` and every submobject with points recursively."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.arrange:1
msgid "Sorts :class:`~.Mobject` next to each other on screen."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.arrange_in_grid:1
msgid "Arrange submobjects in a grid."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.arrange_submobjects:1
msgid "Arrange the position of :attr:`submobjects` with a small buffer."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.become:1
msgid "Edit points, colors and submobjects to be identical to another :class:`~.Mobject`"
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.clear_updaters:1
msgid "Remove every updater."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.copy:1
msgid "Create and return an identical copy of the :class:`Mobject` including all :attr:`submobjects`."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.flip:1
msgid "Flips/Mirrors an mobject about its center."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.generate_points:1
msgid "Initializes :attr:`points` and therefore the shape."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.get_bottom:1
msgid "Get bottom coordinates of a box bounding the :class:`~.Mobject`"
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.get_center:1
msgid "Get center coordinates"
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.get_color:1
msgid "Returns the color of the :class:`~.Mobject`"
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.get_coord:1
msgid "Meant to generalize ``get_x``, ``get_y`` and ``get_z``"
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.get_corner:1
msgid "Get corner coordinates for certain direction."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
msgid "Picture a box bounding the :class:`~.Mobject`."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.get_edge_center:1
msgid "Get edge coordinates for certain direction."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.get_end:1
msgid "Returns the point, where the stroke that surrounds the :class:`~.Mobject` ends."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.get_left:1
msgid "Get left coordinates of a box bounding the :class:`~.Mobject`"
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.get_midpoint:1
msgid "Get coordinates of the middle of the path that forms the :class:`~.Mobject`."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175::1
#: ../../../manim/mobject/mobject.py:docstring of manim.mobject.mobject.Mobject.get_nadir:1
msgid "Get nadir (opposite the zenith) coordinates of a box bounding a 3D :class:`~.Mobject`."
msgstr ""
-#: ../../source/reference/manim.mobject.mobject.Mobject.rst:174::1
+#: ../../source/reference/manim.mobject.mobject.Mobject.rst:175: