{"id":15621680,"url":"https://github.com/jeertmans/manim-tutorial","last_synced_at":"2025-08-01T06:04:30.564Z","repository":{"id":59666405,"uuid":"529160486","full_name":"jeertmans/manim-tutorial","owner":"jeertmans","description":"Manim tutorial presented to PhD and Master student at UCLouvain","archived":false,"fork":false,"pushed_at":"2023-12-25T19:08:52.000Z","size":41128,"stargazers_count":12,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-28T14:08:04.916Z","etag":null,"topics":["ieee-student-branch","manim","manimgl","python","tutorial","uclouvain"],"latest_commit_sha":null,"homepage":"https://eertmans.be/manim-tutorial","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeertmans.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-26T07:32:16.000Z","updated_at":"2025-03-11T03:11:16.000Z","dependencies_parsed_at":"2024-10-22T07:04:04.804Z","dependency_job_id":null,"html_url":"https://github.com/jeertmans/manim-tutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2Fmanim-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2Fmanim-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2Fmanim-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2Fmanim-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeertmans","download_url":"https://codeload.github.com/jeertmans/manim-tutorial/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251326840,"owners_count":21571636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ieee-student-branch","manim","manimgl","python","tutorial","uclouvain"],"created_at":"2024-10-03T09:51:28.048Z","updated_at":"2025-04-28T14:08:20.528Z","avatar_url":"https://github.com/jeertmans.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Manim Tutorial Logo](slides/images/logo.png)\n\u003ca href=\"https://sites.uclouvain.be/ieee/\"\u003e\u003cimg src=\"slides/images/ieee-sb-uclouvain-logo.png\" alt=\"IEEE Student Branch UCLouvain Logo\" height=\"40\"\u003e\u003c/a\u003e\n\n\u003e This repository contains all the documents related to the Manim Tutorial given by the [UCLouvain IEEE Student Branch](https://sites.uclouvain.be/ieee/).\n\u003e After reading this document, you should be able te reproduce everything that was presented during the tutorial.\n\n* **What:** a rapid overview of Manim and how to use it.\n* **Target Audience**: Master \u0026 PhD students, as well as professors.\n* **Authors:** [Jérome Eertmans](mailto:jerome.eertmans@uclouvain.be) and [Olivier Leblanc](mailto:o.leblanc@uclouvain.be), from UCLouvain.\n* **Recording of Live Tutorial Session:** https://youtu.be/B94uvQKzFEE.\n\n# Table of Contents\n\n* [About Manim and ManimGL](#about-manim-and-manimgl)\n* [About this tutorial](#about-this-tutorial)\n* [Installation Guidelines](#installation-guidelines)\n  * [Prerequisites](#prerequisites)\n  * [Choosing between Manim and ManimGL](#choosing-between-manim-and-manimgl)\n  * [How to install Manim](#how-to-install-manim)\n  * [How to install ManimGL](#how-to-install-manimgl)\n  * [Additional Tools](#additional-tools)\n    * [Use Manim within Jupyter](#use-manim-within-jupyter)\n    * [Create slides with Manim Slides](#create-slides-with-manim-slides)\n    * [Manim Physics and more](#manim-physics-and-more)\n\n# About Manim and ManimGL\n\nFrom [3b1b's repo](https://github.com/3b1b/manim):\n\u003e Manim is an engine for precise programmatic animations, designed for creating explanatory math videos.\n\u003e\n\u003e Note, there are two versions of manim.  This repository began as a personal project by the author of [3Blue1Brown](https://www.3blue1brown.com/) for the purpose of animating those videos, with video-specific code available [here](https://github.com/3b1b/videos).  In 2020 a group of developers forked it into what is now the [community edition](https://github.com/ManimCommunity/manim/), with a goal of being more stable, better tested, quicker to respond to community contributions, and all around friendlier to get started with. See [this page](https://docs.manim.community/en/stable/faq/installation.html#different-versions) for more details.\n\nHence, the community edition will be referred to as *Manim*, while the one authored by 3Blue1Brown will be referred to as *ManimGL*.\n\n# About this tutorial\n\nThis tutorial aims to give a rapid overview on what can be done with Manim in a few lines of code, but also with additional tools that can help you rapidly produce high quality video animations.\n\nFor the rest of the document, we assumed that:\n\n* you assisted the live tutorial **or** watched the video (link soon) **or** read through the slides (link soon)\n* you have [basic knowledge](https://www.python.org/about/gettingstarted/) in Python programming\n* you know how to open a [terminal / command prompt](https://www.ionos.com/help/email/troubleshooting-mail-basicmail-business/access-the-command-prompt-or-terminal/#c59604)\n\nAdditionally, it is good to know a bit about $\\LaTeX$.\n\nIf you have any question, please feel free to reach us, see [Report issues](#report-issues).\n\n# Installation Guidelines\n\nIn the following sections, we will guide you to the installation process, to later be able to reproduce everything that was presented during the live tutorial.\n\n## Prerequisites\n\nFor this tutorial to be successfully followed, you need a working Python installation, whose version is above or equal to 3.8 (¹). See [here](https://www.python.org/downloads/) how to install Python.\n\nThen, it is highly recommended, but not mandatory, to create a virtual environment (venv) and to install Python modules in it. If you don't know venv is, please check [this page](https://docs.python.org/3/tutorial/venv.html).\n\n*(¹): Python 3.7 can work, but not with ManimGL, see below.*\n\n## Choosing between Manim and ManimGL\n\nDuring the live tutorial, we presented two Python libraries / tools: Manim and ManimGL.\n\nIf you don't know what to choose between Manim (community edition) and ManimGL (3Blue1Brown edition), we **highly recommend** opting for Manim.\n\n*Why?* For multiple reasons:\n\n* Easier cross-platform installation.\n* Does not require installing OpenGL.\n* Maintained by the community. Hence, more stable accross time, meaning that your recently created code is more likely to still work in 2 years with Manim than with ManimGL.\n* Very good documentation, see [here](https://www.manim.community/).\n\n*Why not?* Reasons to prefer ManimGL:\n\n* You want to reproduce some of 3b1b's videos, available on [GitHub](https://github.com/3b1b/videos).\n* You need features that are (currently) only available with ManimGL.\n\n## How to install Manim\n\nThe Manim Community's website contains documentation detailing how to install Manim depending on your platform. Please find installation guidelines here in [English](https://docs.manim.community/en/stable/installation.html) or in [French](https://docs.manim.community/fr/stable/installation.html).\n\nIf you want to try out Manim **before installing anything**, go check  their [interactive tutorial available online](https://try.manim.community/).\n\n## How to install ManimGL\n\n\u003e **Warning:** while ManimGL claims that they support Python versions above or equal to 3.7, it should be noted that the actual minimal Python version is 3.8.\n\n3Blue1Brown's website contains documentation detailing how to install ManimGL depending on your platform. Please find installation guidelines here in [English](https://3b1b.github.io/manim/getting_started/installation.html).\n\n\u003e **Note:** while ManimGL is installed as `manimgl`, the python module is imported as `manimlib`.\n\n## Additional tools\n\nBelow, you will find additional tools that will, surely, make your experience with Manim even greater!\n\n### Create slides with Manim Slides\n\n\u003e **Manim Support**: this tool works with Manim and ManimGL\n\nTo generate *PowerPoint*-like presentations, i.e, slides that you can play/pause/rewind/etc., you can use [Manim Slides](https://github.com/jeertmans/manim-slides). This tool supports both Manim and ManimGL.\n\nThe installation process is straightforward:\n\n```bash\npip install manim-slides\n```\n\nFor more information on how to install and use Manim Slides, directly refer to the [README](https://github.com/jeertmans/manim-slides).\n\n### Use Manim within Jupyter\n\n\u003e **Manim Support**: this only works with Manim, not ManimGL\n\nManim can be used directly within Jupyter Notebook, see [here](https://docs.manim.community/en/stable/installation/jupyter.html). This enables faster development, and the possibility to create HTML slides containing Manim animations.\n\nActually, this tutorial slides were generated based on a [Jupyter Notebook](https://jupyter.org/install#jupyter-notebook), read more in the README of the [slides](/slides) directory.\n\nIf you decided to work in a venv, you might need to add a *kernel* to Jupyter, so that you can use your venv within your notebooks (ref.: [link](https://queirozf.com/entries/jupyter-kernels-how-to-add-change-remove)):\n\n```bash\npip install jupyter # if not done, this installs Jupyter Notebooks\nipython kernel install --name \"your-env\" --user\n```\n\nwhere `\"your-venv\"` refers to the name of your new kernel.\n\nThen, you can now change the kernel in any notebook by clicking `Kernel` -\u003e `Change kernel` -\u003e `your-env`.\n\n### Manim Physics and more\n\nOn top of Manim and ManimGL, many users have created their own animations, libraries, tutorials, and so on.\n\nTo cite a few, we recommend checking:\n\n* [Manim Physics](https://github.com/Matheart/manim-physics), a physics simulation plugin for Manim\n* [Reducible](https://www.youtube.com/c/Reducible), a YouTuber that utilizes Manim for its videos ![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCK8XIGR5kRidIw2fWqwyHRA?style=social)\n* the Manim subreddit for questions and inspirations \u003ca href=\"https://www.reddit.com/r/manim/\"\u003e\u003cimg src=\"https://img.shields.io/reddit/subreddit-subscribers/manim?style=social\" alt=\"Manim Subreddit\"\u003e\u003c/a\u003e\n* the Manim Community discord for questions and inspirations \u003ca href=\"https://www.manim.community/discord/\"\u003e\u003cimg src=\"https://img.shields.io/discord/581738731934056449.svg?label=discord\u0026color=yellow\u0026logo=discord\" alt=\"Discord\"\u003e\u003c/a\u003e\n\n# Report issues\n\nDid we write something wrong? Did you encounter some bugs following our tutorial? Do you think some content should be added?\n\nFirst, check out our [Wiki](https://github.com/jeertmans/manim-tutorial/wiki) to see if your issue is known.\n\nOtherwise, please contact us by [creating an issue](https://github.com/jeertmans/manim-tutorial/issues/new), or use our UCLouvain contact addresses (see above).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeertmans%2Fmanim-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeertmans%2Fmanim-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeertmans%2Fmanim-tutorial/lists"}