diff --git a/docs/requirements.txt b/docs/requirements.txt index 807fb0d3c4..5b607e9c8b 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -3,3 +3,5 @@ myst-parser sphinx>=7.3 sphinx-copybutton sphinxext-opengraph +sphinx-design +sphinx-reredirects diff --git a/docs/source/conf.py b/docs/source/conf.py index ed95eacfee..a4a092441d 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -51,11 +51,22 @@ "sphinx.ext.inheritance_diagram", "sphinxcontrib.programoutput", "myst_parser", + "sphinx_design", + "sphinx_reredirects", ] # Automatically generate stub pages when using the .. autosummary directive autosummary_generate = True +myst_enable_extensions = ["colon_fence", "amsmath"] + +# redirects (for moved / deleted pages) +redirects = { + "installation/linux": "uv.html", + "installation/macos": "uv.html", + "installation/windows": "uv.html", +} + # generate documentation from type hints ALIAS_DOCS_DICT = parse_module_attributes()[0] autodoc_typehints = "description" diff --git a/docs/source/faq/installation.md b/docs/source/faq/installation.md index c60044b66a..25db9cbad5 100644 --- a/docs/source/faq/installation.md +++ b/docs/source/faq/installation.md @@ -120,19 +120,24 @@ of [ManimPango's README](https://github.com/ManimCommunity/ManimPango). --- +(not-on-path)= ## I am using Windows and get the error `X is not recognized as an internal or external command, operable program or batch file` -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. +If you have followed {doc}`our local installation instructions ` and +have not activated the corresponding virtual environment, make sure to use `uv run manim ...` +instead of just `manim` (or activate the virtual environment by following the instructions +printed when running `uv venv`). -If `python` is recognized but not `manim` or `pip`, you can try running +Otherwise there is a problem with the directories where your system is looking for +executables (the `PATH` variable). +If `python` is recognized, you can try running commands by prepending `python -m`. That is, `manim` becomes `python -m manim`, and `pip` becomes `python -m pip`. +Otherwise see +[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. + --- ## I have tried using Chocolatey (`choco install manimce`) to install Manim, but it failed! diff --git a/docs/source/installation.rst b/docs/source/installation.rst index fbc65a7cc6..3c2b4e4c09 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -8,8 +8,8 @@ require no local installation. Head over to https://try.manim.community to give our interactive tutorial a try. Otherwise, if you intend to use Manim to work on an animation project, -we recommend installing the library locally (either to a conda environment, -your system's Python, or via Docker). +we recommend installing the library locally (preferably to some isolated +virtual Python environment, or a conda-like environment, or via Docker). .. warning:: @@ -19,13 +19,31 @@ your system's Python, or via Docker). versions ` if you are unsure which version you should install. +#. :ref:`(Recommended) Installing Manim via Python's package manager pip + ` #. :ref:`Installing Manim to a conda environment ` -#. :ref:`Installing Manim to your system's Python ` #. :ref:`Using Manim via Docker ` #. :ref:`Interactive Jupyter notebooks via Binder / Google Colab ` +.. _local-installation: + +Installing Manim locally via pip +******************************** + +The recommended way of installing Manim is by using Python's package manager +pip. If you already have a Python environment set up, you can simply run +``pip install manim`` to install the library. + +Our :doc:`local installation guide ` provides more detailed +instructions, including best practices for setting up a suitable local environment. + +.. toctree:: + :hidden: + + installation/uv + .. _conda-installation: Installing Manim via Conda and related environment managers @@ -55,48 +73,6 @@ The following pages show how to install Manim in a conda environment: installation/conda - -.. _local-installation: - -Installing Manim locally -************************ - -Manim is a Python library, and it can be -installed via `pip `__ -or `conda `__. However, -in order for Manim to work properly, some additional system -dependencies need to be installed first. The following pages have -operating system specific instructions for you to follow. - -Manim requires Python version ``3.9`` or above to run. - -.. hint:: - - 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 - `__. - -.. toctree:: - :maxdepth: 2 - - installation/windows - installation/macos - installation/linux - -Once Manim is installed locally, you can proceed to our -:doc:`quickstart guide ` which walks you -through rendering a first simple scene. - -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). - - - .. _docker-installation: Using Manim via Docker @@ -140,6 +116,11 @@ If you're using Visual Studio Code you can install an extension called of the animation inside the editor. The extension can be installed through the `marketplace of VS Code `__. +.. caution:: + + This extension is not officially maintained by the Manim Community. + If you run into issues, please report them to the extension's author. + Installation for developers *************************** diff --git a/docs/source/installation/conda.rst b/docs/source/installation/conda.rst index b69c8d6de6..8350bfaeea 100644 --- a/docs/source/installation/conda.rst +++ b/docs/source/installation/conda.rst @@ -10,15 +10,25 @@ namely `conda `, -:ref:`Linux ` or -:ref:`macOS `. - +Recommendations on how to install LaTeX on different operating systems +can be found :doc:`in our local installation guide `. Working with Manim diff --git a/docs/source/installation/linux.rst b/docs/source/installation/linux.rst deleted file mode 100644 index 6c154d8eed..0000000000 --- a/docs/source/installation/linux.rst +++ /dev/null @@ -1,162 +0,0 @@ -Linux -===== - -The installation instructions depend on your particular operating -system and package manager. If you happen to know exactly what you are doing, -you can also simply ensure that your system has: - -- a reasonably recent version of Python 3 (3.9 or above), -- with working Cairo bindings in the form of - `pycairo `__, -- and `Pango `__ headers. - -Then, installing Manim is just a matter of running: - -.. code-block:: bash - - pip3 install manim - -.. note:: - - In light of the current efforts of migrating to rendering via OpenGL, - this list might be incomplete. Please `let us know - ` if you - ran into missing dependencies while installing. - -In any case, we have also compiled instructions for several common -combinations of operating systems and package managers below. - -Required Dependencies ---------------------- - -apt – Ubuntu / Mint / Debian -**************************** - -To first update your sources, and then install Cairo and Pango -simply run: - -.. code-block:: bash - - sudo apt update - sudo apt install build-essential python3-dev libcairo2-dev libpango1.0-dev - -If you don't have python3-pip installed, install it via: - -.. code-block:: bash - - sudo apt install python3-pip - -Then, to install Manim, run: - -.. code-block:: bash - - pip3 install manim - -Continue by reading the :ref:`optional dependencies ` -section. - -dnf – Fedora / CentOS / RHEL -**************************** - -To install Cairo and Pango: - -.. code-block:: bash - - sudo dnf install cairo-devel pango-devel - -In order to successfully build the ``pycairo`` wheel, you will also -need the Python development headers: - -.. code-block:: bash - - sudo dnf install python3-devel - -At this point you have all required dependencies and can install -Manim by running: - -.. code-block:: bash - - pip3 install manim - -Continue by reading the :ref:`optional dependencies ` -section. - -pacman – Arch / Manjaro -*********************** - -.. tip:: - - Thanks to *groctel*, there is a `dedicated Manim package - on the AUR! ` - -If you don't want to use the packaged version from AUR, here is what -you need to do manually: Update your package sources, then install -Cairo and Pango: - -.. code-block:: bash - - sudo pacman -Syu - sudo pacman -S cairo pango - -If you don't have ``python-pip`` installed, get it by running: - -.. code-block:: bash - - sudo pacman -S python-pip - -then simply install Manim via: - -.. code-block:: bash - - pip3 install manim - - -Continue by reading the :ref:`optional dependencies ` -section. - - -.. _linux-optional-dependencies: - -Optional Dependencies ---------------------- - -In order to make use of Manim's interface to LaTeX for, e.g., rendering -equations, LaTeX has to be installed as well. Note that this is an optional -dependency: if you don't intend to use LaTeX, you don't have to install it. - -You can use whichever LaTeX distribution you like or whichever is easiest -to install with your package manager. Usually, -`TeX Live `__ is a good candidate if you don't -care too much about disk space. - -For Debian-based systems (like Ubuntu), sufficient LaTeX dependencies can be -installed by running: - -.. code-block:: bash - - sudo apt install texlive texlive-latex-extra - -For Fedora (see `docs `__): - -.. code-block:: bash - - sudo dnf install texlive-scheme-full - -Should you choose to work with some smaller TeX distribution like -`TinyTeX `__ , the full list -of LaTeX packages which Manim interacts with in some way (a subset might -be sufficient for your particular application) is:: - - collection-basic amsmath babel-english cbfonts-fd cm-super ctex doublestroke - dvisvgm everysel fontspec frcursive fundus-calligra gnu-freefont jknapltx - latex-bin mathastext microtype ms physics preview ragged2e relsize rsfs - setspace standalone tipa wasy wasysym xcolor xetex xkeyval - - - -Working with Manim ------------------- - -At this point, you should have a working installation of Manim, head -over to our :doc:`Quickstart Tutorial <../tutorials/quickstart>` to learn -how to make your own *Manimations*! diff --git a/docs/source/installation/macos.rst b/docs/source/installation/macos.rst deleted file mode 100644 index 1edd21dd5f..0000000000 --- a/docs/source/installation/macos.rst +++ /dev/null @@ -1,70 +0,0 @@ -macOS -===== - -For the sake of simplicity, the following instructions assume that you have -the popular `package manager Homebrew `__ installed. While -you can certainly also install all dependencies without it, using Homebrew -makes the process much easier. - -If you want to use Homebrew but do not have it installed yet, please -follow `Homebrew's installation instructions `__. - -.. note:: - - For a while after Apple released its new ARM-based processors (the Apple Silicon chips like the *"M1 chip"*), - the recommended way of installing Manim relied on *Rosetta*, Apple's compatibility - layer between Intel and ARM architectures. This is no longer necessary, Manim can - (and is recommended to) be installed natively. - - -Installing Manim ----------------- - -As of July/2024, brew can install Manim including all required dependencies. -To install Manim: - -.. code-block:: bash - - brew install manim - -.. _macos-optional-dependencies: - -Optional Dependencies ---------------------- - -In order to make use of Manim's interface to LaTeX for, e.g., rendering -equations, LaTeX has to be installed as well. Note that this is an optional -dependency: if you don't intend to use LaTeX, you don't have to install it. - -For macOS, the recommended LaTeX distribution is -`MacTeX `__. You can install it by following -the instructions from the link, or alternatively also via Homebrew by -running: - -.. code-block:: bash - - brew install --cask mactex-no-gui - -.. warning:: - - MacTeX is a *full* LaTeX distribution and will require more than 4GB of - disk space. If this is an issue for you, consider installing a smaller - distribution like - `BasicTeX `__. - -Should you choose to work with some partial TeX distribution, the full list -of LaTeX packages which Manim interacts with in some way (a subset might -be sufficient for your particular application) is:: - - amsmath babel-english cbfonts-fd cm-super ctex doublestroke dvisvgm everysel - fontspec frcursive fundus-calligra gnu-freefont jknapltx latex-bin - mathastext microtype ms physics preview ragged2e relsize rsfs - setspace standalone tipa wasy wasysym xcolor xetex xkeyval - - -Working with Manim ------------------- - -At this point, you should have a working installation of Manim. Head -over to our :doc:`Quickstart Tutorial <../tutorials/quickstart>` to learn -how to make your own *Manimations*! diff --git a/docs/source/installation/uv.md b/docs/source/installation/uv.md new file mode 100644 index 0000000000..45e805a51e --- /dev/null +++ b/docs/source/installation/uv.md @@ -0,0 +1,284 @@ +# Installing Manim locally + +The standard way of installing Manim is by using +Python's package manager `pip` to install the latest +release from [PyPI](https://pypi.org/project/manim/). + +To make it easier for you to follow best practices when it +comes to setting up a Python project for your Manim animations, +we strongly recommend using a tool for managing Python environments +and dependencies. In particular, +[we strongly recommend using `uv`](https://docs.astral.sh/uv/#getting-started). + +For the two main ways of installing Manim described below, we assume +that `uv` is available; we think it is particularly helpful if you are +new to Python or programming in general. It is not a hard requirement +whatsoever; if you know what you are doing you can just use `pip` to +install Manim directly. + +:::::{admonition} Installing the Python management tool `uv` +:class: seealso + +One way to install `uv` is via the dedicated console installer supporting +all large operating systems. Simply paste the following snippet into +your terminal / PowerShell -- or +[consult `uv`'s documentation](https://docs.astral.sh/uv/#getting-started) +for alternative ways to install the tool. + +::::{tab-set} +:::{tab-item} MacOS and Linux +```bash +curl -LsSf https://astral.sh/uv/install.sh | sh +``` +::: +:::{tab-item} Windows +```powershell +powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" +``` +::: +:::: + +::::: + +Of course, if you know what you are doing and prefer to setup a virtual +environment yourself, feel free to do so! + +:::{important} +If you run into issues when following our instructions below, do +not worry: check our [installation FAQs]() to +see whether the problem is already addressed there -- and otherwise go and +check [how to contact our community]() to get help. +::: + + + +## Installation + +### Step 1: Installing Python + +We first need to check that an appropriate version of Python is available +on your machine. Open a terminal to run +```bash +uv python install +``` +to install the latest version of Python. If this is successful, continue +to the next step. + +(installation-optional-latex)= +### Step 2 (optional): Installing LaTeX + +[LaTeX](https://en.wikibooks.org/wiki/LaTeX/Mathematics) is a very well-known +and widely used typesetting system allowing you to write formulas like + +\begin{equation*} +\frac{1}{2\pi i} \oint_{\gamma} \frac{f(z)}{(z - z_0)^{n+1}}~dz += \frac{f^{(n)}(z_0)}{n!}. +\end{equation*} + +If rendering plain text is sufficient for your needs and you don't want +to render any typeset formulas, you can technically skip this step. Otherwise +select your operating system from the tab list below and follow the instructions. + +:::::{tab-set} + +::::{tab-item} Windows +For Windows we recommend installing LaTeX via the +[MiKTeX distribution](https://miktex.org). Simply grab +the Windows installer available from their download page, + and run it. +:::: + +::::{tab-item} MacOS +If you are running MacOS, we recommend installing the +[MacTeX distribution](https://www.tug.org/mactex/). The latest +available PKG file can be downloaded from +. +Get it and follow the standard installation procedure. +:::: + +::::{tab-item} Linux +Given the large number of Linux distributions with different ways +of installing packages, we cannot give detailed instructions for +all package managers. + +In general we recommend to install a *TeX Live* distribution +(). For most Linux distributions, +TeX Live has already been packaged such that it can be installed +easily with your system package manager. Search the internet and +your usual OS resources for detailed instructions. + +For example, on Debian-based systems with the package manager `apt`, +a full TeX Live distribution can be installed by running +```bash +sudo apt install texlive-full +``` +For Fedora (managed via `dnf`), the corresponding command is +```bash +sudo dnf install texlive-scheme-full +``` +As soon as LaTeX is installed, continue with actually installing Manim +itself. + +:::: + +::::: + +:::{dropdown} I know what I am doing and I would like to setup a minimal LaTeX installation +You are welcome to use a smaller, more customizable LaTeX distribution like +[TinyTeX](https://yihui.org/tinytex/). Manim overall requires the following +LaTeX packages to be installed in your distribution: +```text +amsmath babel-english cbfonts-fd cm-super count1to ctex doublestroke dvisvgm everysel +fontspec frcursive fundus-calligra gnu-freefont jknapltx latex-bin +mathastext microtype multitoc physics preview prelim2e ragged2e relsize rsfs +setspace standalone tipa wasy wasysym xcolor xetex xkeyval +``` +::: + +### Step 3: Installing Manim + +These steps again differ slightly between different operating systems. Make +sure you select the correct one from the tab list below, then follow +the instructions below. + +::::::{tab-set} + +:::::{tab-item} MacOS & Windows +The following commands will + +- create a new directory for a Python project, +- and add Manim as a dependency, which installs it into the corresponding + local Python environment. + +The name for the Python project is *manimations*, which you can change +to anything you like. + +```bash +uv init manimations +cd manimations +uv add manim +``` + +Manim is now installed in your local project environment! + +::::: + +:::::{tab-item} Linux +Practically, the instructions given in the *MacOS & Windows* tab +also apply for Linux -- however, some additional dependencies are +required as Linux users need to build +[ManimPango](https://github.com/ManimCommunity/ManimPango) +(and potentially [pycairo](https://pycairo.readthedocs.io/en/latest/)) +from source. More specifically, this includes: + +- A C compiler, +- Python's development headers, +- the `pkg-config` tool, +- Pango and its development headers, +- and Cairo and its development headers. + +Instructions for popular systems / package managers are given below. + +::::{tab-set} + +:::{tab-item} Debian-based / apt +```bash +sudo apt update +sudo apt install build-essential python3-dev libcairo2-dev libpango1.0-dev +``` +::: + +:::{tab-item} Fedora / dnf +```bash +sudo dnf install python3-devel pkg-config cairo-devel pango-devel +``` +::: + +:::{tab-item} Arch Linux / pacman +```bash +sudo pacman -Syu base-devel cairo pango +``` +::: + +:::: + +As soon as the required dependencies are installed, you can create +a Python project (feel free to change the name *manimations* used below +to some other name) with a local environment containing Manim by running +```bash +uv init manimations +cd manimations +uv add manim +``` + +::::: + +:::::: + +To verify that your local Python project is setup correctly +and that Manim is available, simply run +```bash +uv run manim checkhealth +``` + +At this point, you can also open your project folder with the +IDE of your choice. All modern Python IDEs (for example VS Code +with the Python extension, or PyCharm) should automatically detect +the local environment created by `uv` such that if you put +```py +import manim +``` +into a new file `my-first-animation.py`, the import is resolved +correctly and autocompletion is available. + +*Happy Manimating!* + + +:::{dropdown} Alternative: Installing Manim as a global `uv`-managed tool +If you have Manim projects in many different directories and you do not +want to setup a local project environment for each of them, you could +also install Manim as a `uv`-managed tool. + +See [`uv`'s documentation for more information](https://docs.astral.sh/uv/concepts/tools/) +on their tool mechanism. + +To install Manim as a global `uv` tool, simply run +```bash +uv tool install manim +``` +after which the `manim` executable will be available on your +global system path, without the need to activate any virtual +environment or prefixing your commands with `uv run`. + +Note that when using this approach, setting up your code editor +to properly resolve `import manim` requires additional work, as +the global tool environment is not automatically detected: the +base path of all tool environments can be determined by running +``` +uv tool dir +``` +which should now contain a directory `manim` in which the appropriate +virtual environment is located. Set the Python interpreter of your IDE +to this environment to make imports properly resolve themselves. +::: + +:::{dropdown} Installing Manim for a different version of Python +In case you would like to use a different version of Python +(for example, due to compatibility issues with other packages), +then `uv` allows you to do so in a fairly straightforward way. + +When initializing the local Python project, simply pass the Python +version you want to use as an argument to the `init` command: +``` +uv init --python 3.12 manimations +cd manimations +uv add manim +``` +To change the version for an existing package, you will need to +edit the `pyproject.toml` file. If you are downgrading the python version, the +`requires-python` entry needs to be updated such that your chosen +version satisfies the requirement. Change the line to, for example +`requires-python = ">=3.12"`. After that, run `uv python pin 3.12` +to pin the python version to `3.12`. Finally, run `uv sync`, and your +environment is updated! +::: diff --git a/docs/source/installation/windows.rst b/docs/source/installation/windows.rst deleted file mode 100644 index 04fe2b735a..0000000000 --- a/docs/source/installation/windows.rst +++ /dev/null @@ -1,108 +0,0 @@ -Windows -======= - -The easiest way of installing Manim and its dependencies is by using a -package manager like `Chocolatey `__ -or `Scoop `__, especially if you need optional dependencies -like LaTeX support. - -If you choose to use one of the package managers, please follow -their installation instructions -(`for Chocolatey `__, -`for Scoop `__) -to make one of them available on your system. - - -Required Dependencies ---------------------- - -Manim requires a recent version of Python (3.9 or above) -in order to work. - -Chocolatey -********** - -Manim can be installed via Chocolatey simply by running: - -.. code-block:: powershell - - choco install manimce - -That's it, no further steps required. You can continue with installing -the :ref:`optional dependencies ` below. - -Pip -*** - -As mentioned above, Manim needs a reasonably recent version of -Python 3 (3.9 or above). - -**Python:** Head over to https://www.python.org, download an installer -for a recent version of Python, and follow its instructions to get Python -installed on your system. - -.. note:: - - We have received reports of problems caused by using the version of - Python that can be installed from the Windows Store. At this point, - we recommend staying away from the Windows Store version. Instead, - install Python directly from the - `official website `__. - -Then, Manim can be installed via Pip simply by running: - -.. code-block:: powershell - - python -m pip install manim - -Manim should now be installed on your system. Continue reading -the :ref:`optional dependencies ` section -below. - - -.. _win-optional-dependencies: - -Optional Dependencies ---------------------- - -In order to make use of Manim's interface to LaTeX to, for example, render -equations, LaTeX has to be installed as well. Note that this is an optional -dependency: if you don't intend to use LaTeX, you don't have to install it. - -For Windows, the recommended LaTeX distribution is -`MiKTeX `__. You can install it by using the -installer from the linked MiKTeX site, or by using the package manager -of your choice (Chocolatey: ``choco install miktex.install``, -Scoop: ``scoop install latex``, Winget: ``winget install MiKTeX.MiKTeX``). - -If you are concerned about disk space, there are some alternative, -smaller distributions of LaTeX. - -**Using Chocolatey:** If you used Chocolatey to install manim or are already -a chocolatey user, then you can simply run ``choco install manim-latex``. It -is a dedicated package for Manim based on TinyTeX which contains all the -required packages that Manim interacts with. - -**Manual Installation:** -You can also use `TinyTeX `__ (Chocolatey: ``choco install tinytex``, -Scoop: first ``scoop bucket add r-bucket https://github.com/cderv/r-bucket.git``, -then ``scoop install tinytex``) alternative installation instructions can be found at their website. -Keep in mind that you will have to manage the LaTeX packages installed on your system yourself via ``tlmgr``. -Therefore we only recommend this option if you know what you are doing. - -The full list of LaTeX packages which Manim interacts with in some way -(a subset might be sufficient for your particular application) are:: - - amsmath babel-english cbfonts-fd cm-super ctex doublestroke dvisvgm everysel - fontspec frcursive fundus-calligra gnu-freefont jknapltx latex-bin - mathastext microtype ms physics preview ragged2e relsize rsfs - setspace standalone tipa wasy wasysym xcolor xetex xkeyval - - - -Working with Manim ------------------- - -At this point, you should have a working installation of Manim, head -over to our :doc:`Quickstart Tutorial <../tutorials/quickstart>` to learn -how to make your own *Manimations*! diff --git a/docs/source/tutorials/quickstart.rst b/docs/source/tutorials/quickstart.rst index 84df97b8af..6f419aa029 100644 --- a/docs/source/tutorials/quickstart.rst +++ b/docs/source/tutorials/quickstart.rst @@ -3,12 +3,22 @@ Quickstart ========== .. note:: - Before proceeding, install Manim and make sure it's running properly by - following the steps in :doc:`../installation`. For - information on using Manim with Jupyterlab or Jupyter notebook, go to the - documentation for the - :meth:`IPython magic command `, - ``%%manim``. + + Before proceeding, install Manim and make sure it is running properly by + following the steps in :doc:`../installation`. For + information on using Manim with Jupyterlab or Jupyter notebook, go to the + documentation for the + :meth:`IPython magic command `, + ``%%manim``. + + +.. important:: + + If you installed Manim in the recommended way, using the + Python management tool ``uv``, then you either need to make sure the corresponding + virtual environment is activated (follow the instructions printed on running ``uv venv``), + or you need to remember to prefix the ``manim`` command in the console with ``uv run``; + that is, ``uv run manim ...``. Overview ******** @@ -28,45 +38,38 @@ use to modify ``Mobject``\s. Starting a new project ********************** -Start by creating a new folder. For the purposes of this guide, name the folder ``project``: +Start by creating a new folder:: -.. code-block:: bash + manim init project my-project --default - project/ - -This folder is the root folder for your project. It contains all the files that Manim needs to function, +The ``my-project`` folder is the root folder for your project. It contains all the files that Manim needs to function, as well as any output that your project produces. Animating a circle ****************** -1. Open a text editor, such as Notepad. Copy the following code snippet into the window: +1. Open a text editor, such as Notepad. Open the file ``main.py`` in the ``my-project`` folder. + It should look something like this: -.. code-block:: python + .. code-block:: python - from manim import * + from manim import * - class CreateCircle(Scene): - def construct(self): - circle = Circle() # create a circle - circle.set_fill(PINK, opacity=0.5) # set the color and transparency - self.play(Create(circle)) # show the circle on screen + class CreateCircle(Scene): + def construct(self): + circle = Circle() # create a circle + circle.set_fill(PINK, opacity=0.5) # set the color and transparency + self.play(Create(circle)) # show the circle on screen -2. Save the code snippet into your project folder with the name ``scene.py``. -.. code-block:: bash - - project/ - └─scene.py +2. Open the command line, navigate to your project folder, and execute + the following command: -3. Open the command line, navigate to your project folder, and execute -the following command: - -.. code-block:: bash + .. code-block:: bash - manim -pql scene.py CreateCircle + manim -pql main.py CreateCircle Manim will output rendering information, then create an MP4 file. Your default movie player will play the MP4 file, displaying the following animation. diff --git a/poetry.lock b/poetry.lock index 494ba4fb93..4cce1eba32 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1086,61 +1086,61 @@ typing = ["typing-extensions (>=4.12.2)"] [[package]] name = "fonttools" -version = "4.55.0" +version = "4.55.1" description = "Tools to manipulate font files" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.55.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:51c029d4c0608a21a3d3d169dfc3fb776fde38f00b35ca11fdab63ba10a16f61"}, - {file = "fonttools-4.55.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bca35b4e411362feab28e576ea10f11268b1aeed883b9f22ed05675b1e06ac69"}, - {file = "fonttools-4.55.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ce4ba6981e10f7e0ccff6348e9775ce25ffadbee70c9fd1a3737e3e9f5fa74f"}, - {file = "fonttools-4.55.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31d00f9852a6051dac23294a4cf2df80ced85d1d173a61ba90a3d8f5abc63c60"}, - {file = "fonttools-4.55.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e198e494ca6e11f254bac37a680473a311a88cd40e58f9cc4dc4911dfb686ec6"}, - {file = "fonttools-4.55.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7208856f61770895e79732e1dcbe49d77bd5783adf73ae35f87fcc267df9db81"}, - {file = "fonttools-4.55.0-cp310-cp310-win32.whl", hash = "sha256:e7e6a352ff9e46e8ef8a3b1fe2c4478f8a553e1b5a479f2e899f9dc5f2055880"}, - {file = "fonttools-4.55.0-cp310-cp310-win_amd64.whl", hash = "sha256:636caaeefe586d7c84b5ee0734c1a5ab2dae619dc21c5cf336f304ddb8f6001b"}, - {file = "fonttools-4.55.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fa34aa175c91477485c44ddfbb51827d470011e558dfd5c7309eb31bef19ec51"}, - {file = "fonttools-4.55.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:37dbb3fdc2ef7302d3199fb12468481cbebaee849e4b04bc55b77c24e3c49189"}, - {file = "fonttools-4.55.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5263d8e7ef3c0ae87fbce7f3ec2f546dc898d44a337e95695af2cd5ea21a967"}, - {file = "fonttools-4.55.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f307f6b5bf9e86891213b293e538d292cd1677e06d9faaa4bf9c086ad5f132f6"}, - {file = "fonttools-4.55.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f0a4b52238e7b54f998d6a56b46a2c56b59c74d4f8a6747fb9d4042190f37cd3"}, - {file = "fonttools-4.55.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3e569711464f777a5d4ef522e781dc33f8095ab5efd7548958b36079a9f2f88c"}, - {file = "fonttools-4.55.0-cp311-cp311-win32.whl", hash = "sha256:2b3ab90ec0f7b76c983950ac601b58949f47aca14c3f21eed858b38d7ec42b05"}, - {file = "fonttools-4.55.0-cp311-cp311-win_amd64.whl", hash = "sha256:aa046f6a63bb2ad521004b2769095d4c9480c02c1efa7d7796b37826508980b6"}, - {file = "fonttools-4.55.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:838d2d8870f84fc785528a692e724f2379d5abd3fc9dad4d32f91cf99b41e4a7"}, - {file = "fonttools-4.55.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f46b863d74bab7bb0d395f3b68d3f52a03444964e67ce5c43ce43a75efce9246"}, - {file = "fonttools-4.55.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33b52a9cfe4e658e21b1f669f7309b4067910321757fec53802ca8f6eae96a5a"}, - {file = "fonttools-4.55.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:732a9a63d6ea4a81b1b25a1f2e5e143761b40c2e1b79bb2b68e4893f45139a40"}, - {file = "fonttools-4.55.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7dd91ac3fcb4c491bb4763b820bcab6c41c784111c24172616f02f4bc227c17d"}, - {file = "fonttools-4.55.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1f0e115281a32ff532118aa851ef497a1b7cda617f4621c1cdf81ace3e36fb0c"}, - {file = "fonttools-4.55.0-cp312-cp312-win32.whl", hash = "sha256:6c99b5205844f48a05cb58d4a8110a44d3038c67ed1d79eb733c4953c628b0f6"}, - {file = "fonttools-4.55.0-cp312-cp312-win_amd64.whl", hash = "sha256:f8c8c76037d05652510ae45be1cd8fb5dd2fd9afec92a25374ac82255993d57c"}, - {file = "fonttools-4.55.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8118dc571921dc9e4b288d9cb423ceaf886d195a2e5329cc427df82bba872cd9"}, - {file = "fonttools-4.55.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01124f2ca6c29fad4132d930da69158d3f49b2350e4a779e1efbe0e82bd63f6c"}, - {file = "fonttools-4.55.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ffd58d2691f11f7c8438796e9f21c374828805d33e83ff4b76e4635633674c"}, - {file = "fonttools-4.55.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5435e5f1eb893c35c2bc2b9cd3c9596b0fcb0a59e7a14121562986dd4c47b8dd"}, - {file = "fonttools-4.55.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d12081729280c39d001edd0f4f06d696014c26e6e9a0a55488fabc37c28945e4"}, - {file = "fonttools-4.55.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7ad1f1b98ab6cb927ab924a38a8649f1ffd7525c75fe5b594f5dab17af70e18"}, - {file = "fonttools-4.55.0-cp313-cp313-win32.whl", hash = "sha256:abe62987c37630dca69a104266277216de1023cf570c1643bb3a19a9509e7a1b"}, - {file = "fonttools-4.55.0-cp313-cp313-win_amd64.whl", hash = "sha256:2863555ba90b573e4201feaf87a7e71ca3b97c05aa4d63548a4b69ea16c9e998"}, - {file = "fonttools-4.55.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:00f7cf55ad58a57ba421b6a40945b85ac7cc73094fb4949c41171d3619a3a47e"}, - {file = "fonttools-4.55.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f27526042efd6f67bfb0cc2f1610fa20364396f8b1fc5edb9f45bb815fb090b2"}, - {file = "fonttools-4.55.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e67974326af6a8879dc2a4ec63ab2910a1c1a9680ccd63e4a690950fceddbe"}, - {file = "fonttools-4.55.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61dc0a13451143c5e987dec5254d9d428f3c2789a549a7cf4f815b63b310c1cc"}, - {file = "fonttools-4.55.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:b2e526b325a903868c62155a6a7e24df53f6ce4c5c3160214d8fe1be2c41b478"}, - {file = "fonttools-4.55.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:b7ef9068a1297714e6fefe5932c33b058aa1d45a2b8be32a4c6dee602ae22b5c"}, - {file = "fonttools-4.55.0-cp38-cp38-win32.whl", hash = "sha256:55718e8071be35dff098976bc249fc243b58efa263768c611be17fe55975d40a"}, - {file = "fonttools-4.55.0-cp38-cp38-win_amd64.whl", hash = "sha256:553bd4f8cc327f310c20158e345e8174c8eed49937fb047a8bda51daf2c353c8"}, - {file = "fonttools-4.55.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f901cef813f7c318b77d1c5c14cf7403bae5cb977cede023e22ba4316f0a8f6"}, - {file = "fonttools-4.55.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8c9679fc0dd7e8a5351d321d8d29a498255e69387590a86b596a45659a39eb0d"}, - {file = "fonttools-4.55.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd2820a8b632f3307ebb0bf57948511c2208e34a4939cf978333bc0a3f11f838"}, - {file = "fonttools-4.55.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23bbbb49bec613a32ed1b43df0f2b172313cee690c2509f1af8fdedcf0a17438"}, - {file = "fonttools-4.55.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a656652e1f5d55b9728937a7e7d509b73d23109cddd4e89ee4f49bde03b736c6"}, - {file = "fonttools-4.55.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f50a1f455902208486fbca47ce33054208a4e437b38da49d6721ce2fef732fcf"}, - {file = "fonttools-4.55.0-cp39-cp39-win32.whl", hash = "sha256:161d1ac54c73d82a3cded44202d0218ab007fde8cf194a23d3dd83f7177a2f03"}, - {file = "fonttools-4.55.0-cp39-cp39-win_amd64.whl", hash = "sha256:ca7fd6987c68414fece41c96836e945e1f320cda56fc96ffdc16e54a44ec57a2"}, - {file = "fonttools-4.55.0-py3-none-any.whl", hash = "sha256:12db5888cd4dd3fcc9f0ee60c6edd3c7e1fd44b7dd0f31381ea03df68f8a153f"}, - {file = "fonttools-4.55.0.tar.gz", hash = "sha256:7636acc6ab733572d5e7eec922b254ead611f1cdad17be3f0be7418e8bfaca71"}, + {file = "fonttools-4.55.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c17a6f9814f83772cd6d9c9009928e1afa4ab66210a31ced721556651075a9a0"}, + {file = "fonttools-4.55.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c4d14eecc814826a01db87a40af3407c892ba49996bc6e49961e386cd78b537c"}, + {file = "fonttools-4.55.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8589f9a15dc005592b94ecdc45b4dfae9bbe9e73542e89af5a5e776e745db83b"}, + {file = "fonttools-4.55.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfee95bd9395bcd9e6c78955387554335109b6a613db71ef006020b42f761c58"}, + {file = "fonttools-4.55.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:34fa2ecc0bf1923d1a51bf2216a006de2c3c0db02c6aa1470ea50b62b8619bd5"}, + {file = "fonttools-4.55.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9c1c48483148bfb1b9ad951133ceea957faa004f6cb475b67e7bc75d482b48f8"}, + {file = "fonttools-4.55.1-cp310-cp310-win32.whl", hash = "sha256:3e2fc388ca7d023b3c45badd71016fd4185f93e51a22cfe4bd65378af7fba759"}, + {file = "fonttools-4.55.1-cp310-cp310-win_amd64.whl", hash = "sha256:c4c36c71f69d2b3ee30394b0986e5f8b2c461e7eff48dde49b08a90ded9fcdbd"}, + {file = "fonttools-4.55.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5daab3a55d460577f45bb8f5a8eca01fa6cde43ef2ab943b527991f54b735c41"}, + {file = "fonttools-4.55.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:acf1e80cf96c2fbc79e46f669d8713a9a79faaebcc68e31a9fbe600cf8027992"}, + {file = "fonttools-4.55.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e88a0329f7f88a210f09f79c088fb64f8032fc3ab65e2390a40b7d3a11773026"}, + {file = "fonttools-4.55.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03105b42259a8a94b2f0cbf1bee45f7a8a34e7b26c946a8fb89b4967e44091a8"}, + {file = "fonttools-4.55.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9af3577e821649879ab5774ad0e060af34816af556c77c6d3820345d12bf415e"}, + {file = "fonttools-4.55.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:34bd5de3d0ad085359b79a96575cd6bd1bc2976320ef24a2aa152ead36dbf656"}, + {file = "fonttools-4.55.1-cp311-cp311-win32.whl", hash = "sha256:5da92c4b637f0155a41f345fa81143c8e17425260fcb21521cb2ad4d2cea2a95"}, + {file = "fonttools-4.55.1-cp311-cp311-win_amd64.whl", hash = "sha256:f70234253d15f844e6da1178f019a931f03181463ce0c7b19648b8c370527b07"}, + {file = "fonttools-4.55.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9c372e527d58ba64b695f15f8014e97bc8826cf64d3380fc89b4196edd3c0fa8"}, + {file = "fonttools-4.55.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:845a967d3bef3245ba81fb5582dc731f6c2c8417fa211f1068c56893504bc000"}, + {file = "fonttools-4.55.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03be82bcd4ba4418adf10e6165743f824bb09d6594c2743d7f93ea50968805b"}, + {file = "fonttools-4.55.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c42e935cf146f826f556d977660dac88f2fa3fb2efa27d5636c0b89a60c16edf"}, + {file = "fonttools-4.55.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:96328bf91e05621d8e40d9f854af7a262cb0e8313e9b38e7f3a7f3c4c0caaa8b"}, + {file = "fonttools-4.55.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:291acec4d774e8cd2d8472d88c04643a77a3324a15247951bd6cfc969799b69e"}, + {file = "fonttools-4.55.1-cp312-cp312-win32.whl", hash = "sha256:6d768d6632809aec1c3fa8f195b173386d85602334701a6894a601a4d3c80368"}, + {file = "fonttools-4.55.1-cp312-cp312-win_amd64.whl", hash = "sha256:2a3850afdb0be1f79a1e95340a2059226511675c5b68098d4e49bfbeb48a8aab"}, + {file = "fonttools-4.55.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0c88d427eaf8bd8497b9051f56e0f5f9fb96a311aa7c72cda35e03e18d59cd16"}, + {file = "fonttools-4.55.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f062c95a725a79fd908fe8407b6ad63e230e1c7d6dece2d5d6ecaf843d6927f6"}, + {file = "fonttools-4.55.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f298c5324c45cad073475146bf560f4110ce2dc2488ff12231a343ec489f77bc"}, + {file = "fonttools-4.55.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f06dbb71344ffd85a6cb7e27970a178952f0bdd8d319ed938e64ba4bcc41700"}, + {file = "fonttools-4.55.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4c46b3525166976f5855b1f039b02433dc51eb635fb54d6a111e0c5d6e6cdc4c"}, + {file = "fonttools-4.55.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:af46f52a21e086a2f89b87bd941c9f0f91e5f769e1a5eb3b37c912228814d3e5"}, + {file = "fonttools-4.55.1-cp313-cp313-win32.whl", hash = "sha256:cd7f36335c5725a3fd724cc667c10c3f5254e779bdc5bffefebb33cf5a75ecb1"}, + {file = "fonttools-4.55.1-cp313-cp313-win_amd64.whl", hash = "sha256:5d6394897710ccac7f74df48492d7f02b9586ff0588c66a2c218844e90534b22"}, + {file = "fonttools-4.55.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:52c4f4b383c56e1a4fe8dab1b63c2269ba9eab0695d2d8e033fa037e61e6f1ef"}, + {file = "fonttools-4.55.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d83892dafdbd62b56545c77b6bd4fa49eef6ec1d6b95e042ee2c930503d1831e"}, + {file = "fonttools-4.55.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:604d5bf16f811fcaaaec2dde139f7ce958462487565edcd54b6fadacb2942083"}, + {file = "fonttools-4.55.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3324b92feb5fd084923a8e89a8248afd5b9f9d81ab9517d7b07cc84403bd448"}, + {file = "fonttools-4.55.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:30f8b1ca9b919c04850678d026fc330c19acaa9e3b282fcacc09a5eb3c8d20c3"}, + {file = "fonttools-4.55.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:1835c98df2cf28c86a66d234895c87df7b9325fd079a8019c5053a389ff55d23"}, + {file = "fonttools-4.55.1-cp38-cp38-win32.whl", hash = "sha256:9f202703720a7cc0049f2ed1a2047925e264384eb5cc4d34f80200d7b17f1b6a"}, + {file = "fonttools-4.55.1-cp38-cp38-win_amd64.whl", hash = "sha256:2efff20aed0338d37c2ff58766bd67f4b9607ded61cf3d6baf1b3e25ea74e119"}, + {file = "fonttools-4.55.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3032d9bf010c395e6eca2851666cafb1f4ecde85d420188555e928ad0144326e"}, + {file = "fonttools-4.55.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0794055588c30ffe25426048e8a7c0a5271942727cd61fc939391e37f4d580d5"}, + {file = "fonttools-4.55.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13ba980e3ffd3206b8c63a365f90dc10eeec27da946d5ee5373c3a325a46d77c"}, + {file = "fonttools-4.55.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d7063babd7434a17a5e355e87de9b2306c85a5c19c7da0794be15c58aab0c39"}, + {file = "fonttools-4.55.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ed84c15144015a58ef550dd6312884c9fb31a2dbc31a6467bcdafd63be7db476"}, + {file = "fonttools-4.55.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e89419d88b0bbfdb55209e03a17afa2d20db3c2fa0d785543c9d0875668195d5"}, + {file = "fonttools-4.55.1-cp39-cp39-win32.whl", hash = "sha256:6eb781e401b93cda99356bc043ababead2a5096550984d8a4ecf3d5c9f859dc2"}, + {file = "fonttools-4.55.1-cp39-cp39-win_amd64.whl", hash = "sha256:db1031acf04523c5a51c3e1ae19c21a1c32bc5f820a477dd4659a02f9cb82002"}, + {file = "fonttools-4.55.1-py3-none-any.whl", hash = "sha256:4bcfb11f90f48b48c366dd638d773a52fca0d1b9e056dc01df766bf5835baa08"}, + {file = "fonttools-4.55.1.tar.gz", hash = "sha256:85bb2e985718b0df96afc659abfe194c171726054314b019dbbfed31581673c7"}, ] [package.extras] @@ -2348,13 +2348,13 @@ headless = ["glcontext (>=3.0.0)"] [[package]] name = "moderngl-window" -version = "3.0.2" +version = "3.0.3" description = "A cross platform helper library for ModernGL making window creation and resource loading simple" optional = false python-versions = ">=3.9" files = [ - {file = "moderngl_window-3.0.2-py3-none-any.whl", hash = "sha256:69012e9335068552ed59aaa634b640a6638e2eac6bee47d1eda55714102c825c"}, - {file = "moderngl_window-3.0.2.tar.gz", hash = "sha256:79b2b881346fd0dca0a137ee51e865ea15cfdf422d0eee3061d0b8be4c24b02c"}, + {file = "moderngl_window-3.0.3-py3-none-any.whl", hash = "sha256:897d7b3b489824b352218561514979e78c4069172a73e42386f7f22db51029da"}, + {file = "moderngl_window-3.0.3.tar.gz", hash = "sha256:b6108c2396cc54d444c11d7fc77a4db0c2c9a4d74c438ab75ea0ea61949b3143"}, ] [package.dependencies] @@ -2365,6 +2365,7 @@ pyglet = ">=2.0.0" pyglm = ">=2.7.0,<3" [package.extras] +av = ["av"] dev = ["build", "coverage", "mypy", "pytest", "pywavefront", "ruff", "scipy", "trimesh"] docs = ["Sphinx (>=8.1.3,<8.2.0)", "doc8", "sphinx-rtd-dark-mode (==1.3.0)", "sphinx-rtd-theme (>=3.0.1,<3.1.0)"] glfw = ["glfw"] @@ -4148,6 +4149,45 @@ sphinx = ">=1.8" code-style = ["pre-commit (==2.12.1)"] rtd = ["ipython", "myst-nb", "sphinx", "sphinx-book-theme", "sphinx-examples"] +[[package]] +name = "sphinx-design" +version = "0.6.1" +description = "A sphinx extension for designing beautiful, view size responsive web components." +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinx_design-0.6.1-py3-none-any.whl", hash = "sha256:b11f37db1a802a183d61b159d9a202314d4d2fe29c163437001324fe2f19549c"}, + {file = "sphinx_design-0.6.1.tar.gz", hash = "sha256:b44eea3719386d04d765c1a8257caca2b3e6f8421d7b3a5e742c0fd45f84e632"}, +] + +[package.dependencies] +sphinx = ">=6,<9" + +[package.extras] +code-style = ["pre-commit (>=3,<4)"] +rtd = ["myst-parser (>=2,<4)"] +testing = ["defusedxml", "myst-parser (>=2,<4)", "pytest (>=8.3,<9.0)", "pytest-cov", "pytest-regressions"] +testing-no-myst = ["defusedxml", "pytest (>=8.3,<9.0)", "pytest-cov", "pytest-regressions"] +theme-furo = ["furo (>=2024.7.18,<2024.8.0)"] +theme-im = ["sphinx-immaterial (>=0.12.2,<0.13.0)"] +theme-pydata = ["pydata-sphinx-theme (>=0.15.2,<0.16.0)"] +theme-rtd = ["sphinx-rtd-theme (>=2.0,<3.0)"] +theme-sbt = ["sphinx-book-theme (>=1.1,<2.0)"] + +[[package]] +name = "sphinx-reredirects" +version = "0.1.5" +description = "Handles redirects for moved pages in Sphinx documentation projects" +optional = false +python-versions = ">=3.5" +files = [ + {file = "sphinx_reredirects-0.1.5-py3-none-any.whl", hash = "sha256:444ae1438fba4418242ca76d6a6de3eaee82aaf0d8f2b0cac71a15d32ce6eba2"}, + {file = "sphinx_reredirects-0.1.5.tar.gz", hash = "sha256:cfa753b441020a22708ce8eb17d4fd553a28fc87a609330092917ada2a6da0d8"}, +] + +[package.dependencies] +sphinx = ">=7.1" + [[package]] name = "sphinxcontrib-applehelp" version = "2.0.0" @@ -4769,4 +4809,4 @@ jupyterlab = ["jupyterlab", "notebook"] [metadata] lock-version = "2.0" python-versions = ">=3.9" -content-hash = "a7f0c7d475d2e171d1cf6ae91be4ea030b1226301fc93b3f07fc76e66ca8c7bd" +content-hash = "06dc9ff9e7fe83005f978bd3e555c37073b542161a645ee1c83990d8f1445119" diff --git a/pyproject.toml b/pyproject.toml index 6d2a0907ec..ffe54554a3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -94,6 +94,8 @@ sphinxext-opengraph = "^0.9.1" types-decorator = "^0.1.7" types-Pillow = "^10.1.0.2" types-Pygments = "^2.17.0.0" +sphinx-design = "^0.6.1" +sphinx-reredirects = "^0.1.5" [tool.poetry.urls] "Bug Tracker" = "https://github.com/ManimCommunity/manim/issues"