{"id":15621637,"url":"https://github.com/jeertmans/manim-slides","last_synced_at":"2025-05-14T15:10:57.912Z","repository":{"id":44991393,"uuid":"513032928","full_name":"jeertmans/manim-slides","owner":"jeertmans","description":"Tool for live presentations using manim","archived":false,"fork":false,"pushed_at":"2025-05-12T18:36:30.000Z","size":6456,"stargazers_count":606,"open_issues_count":27,"forks_count":58,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-12T19:49:48.947Z","etag":null,"topics":["manim","manimgl","plugin","python","slides"],"latest_commit_sha":null,"homepage":"https://manim-slides.eertmans.be","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"galatolofederico/manim-presentation","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeertmans.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["jeertmans"]}},"created_at":"2022-07-12T06:56:38.000Z","updated_at":"2025-05-12T18:50:48.000Z","dependencies_parsed_at":"2023-09-27T22:28:06.175Z","dependency_job_id":"bafea509-c621-41d4-a6f5-d2a85351bb1f","html_url":"https://github.com/jeertmans/manim-slides","commit_stats":{"total_commits":579,"total_committers":24,"mean_commits":24.125,"dds":0.2987910189982729,"last_synced_commit":"2169938df758c519906c14036265ced50276381f"},"previous_names":[],"tags_count":74,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2Fmanim-slides","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2Fmanim-slides/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2Fmanim-slides/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeertmans%2Fmanim-slides/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeertmans","download_url":"https://codeload.github.com/jeertmans/manim-slides/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253813983,"owners_count":21968554,"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":["manim","manimgl","plugin","python","slides"],"created_at":"2024-10-03T09:51:22.334Z","updated_at":"2025-05-14T15:10:57.871Z","avatar_url":"https://github.com/jeertmans.png","language":"Python","funding_links":["https://github.com/sponsors/jeertmans"],"categories":[],"sub_categories":[],"readme":"\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/jeertmans/manim-slides/main/static/logo_dark_transparent.png\"\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/jeertmans/manim-slides/main/static/logo_light_transparent.png\"\u003e\n  \u003cimg alt=\"Manim Slides Logo\" src=\"https://raw.githubusercontent.com/jeertmans/manim-slides/main/static/logo.png\"\u003e\n\u003c/picture\u003e\n\n\u003c!-- start pypi --\u003e\n\n[![Latest Release][pypi-version-badge]][pypi-version-url]\n[![Python version][pypi-python-version-badge]][pypi-version-url]\n[![PyPI - Downloads][pypi-download-badge]][pypi-version-url]\n[![Documentation][documentation-badge]][documentation-url]\n[![DOI][doi-badge]][doi-url]\n[![JOSE Paper][jose-badge]][jose-url]\n[![codecov][codecov-badge]][codecov-url]\n[![Binder][binder-badge]][binder-url]\n\n# Manim Slides\n\nTool for live presentations using either\n[Manim (community edition)](https://www.manim.community/)\nor [ManimGL](https://3b1b.github.io/manim/).\nManim Slides will *automatically* detect the one you are using!\n\n\u003e [!NOTE]\n\u003e This project extends the work of\n\u003e [`manim-presentation`](https://github.com/galatolofederico/manim-presentation),\n\u003e with a lot more features!\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Comparison with Similar Tools](#comparison-with-similar-tools)\n- [F.A.Q](https://eertmans.be/manim-slides/latest/faq.html)\n- [Citing](#citing)\n- [Contributing](#contributing)\n  * [Reporting an Issue](#reporting-an-issue)\n  * [Seeking for Help](#seeking-for-help)\n  * [Contact](#contact)\n\n## Installation\n\nManim Slides requires either Manim or ManimGL to be installed, along\nwith their dependencies. Please checkout the\n[documentation](https://eertmans.be/manim-slides/latest/installation.html)\nfor detailed install instructions.\n\n## Usage\n\n\u003c!-- start usage --\u003e\n\nUsing Manim Slides is a two-step process:\n1. Render animations using `Slide` (resp. `ThreeDSlide`) as a base class instead\n   of `Scene` (resp. `ThreeDScene`), and add calls to `self.next_slide()`\n   every time you want to create a new slide.\n2. Run `manim-slides` on rendered animations and display them like a\n   *PowerPoint* presentation.\n\nThe documentation is available [online](https://eertmans.be/manim-slides/).\n\n### Basic Example\n\nCall `self.next_slide()` every time you want to create a pause between\nanimations, and `self.next_slide(loop=True)` if you want the next slide to loop\nover animations until the user presses continue:\n\n```python\nfrom manim import *  # or: from manimlib import *\n\nfrom manim_slides import Slide\n\n\nclass BasicExample(Slide):\n    def construct(self):\n        circle = Circle(radius=3, color=BLUE)\n        dot = Dot()\n\n        self.play(GrowFromCenter(circle))\n        self.next_slide()  # Waits user to press continue to go to the next slide\n\n        self.next_slide(loop=True)  # Start loop\n        self.play(MoveAlongPath(dot, circle), run_time=2, rate_func=linear)\n        self.next_slide()  # This will start a new non-looping slide\n\n        self.play(dot.animate.move_to(ORIGIN))\n```\n\nFirst, render the animation files:\n\n```bash\nmanim-slides render example.py BasicExample\n# or use ManimGL\nmanim-slides render --GL example.py BasicExample\n```\n\u003c!-- end usage --\u003e\n\n\u003e [!NOTE]\n\u003e Using `manim-slides render` makes sure to use the `manim`\n\u003e (or `manimlib`) library that was installed in the same Python environment.\n\u003e Put simply, this is a wrapper around\n\u003e `manim render [ARGS]...` (or `manimgl [ARGS]...`).\n\n\u003c!-- start more-usage --\u003e\n\nTo start the presentation using `Scene1`, `Scene2` and so on, run:\n\n```bash\nmanim-slides [OPTIONS] Scene1 Scene2...\n```\n\nIn our example:\n\n```bash\nmanim-slides BasicExample\n```\n\n\u003c!-- end more-usage --\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Example GIF\" src=\"https://raw.githubusercontent.com/jeertmans/manim-slides/main/static/example.gif\"\u003e\n\u003c/p\u003e\n\nFor detailed usage documentation, run `manim-slides --help`, or go to the\n[documentation](https://eertmans.be/manim-slides/latest/reference/cli.html).\n\n## Interactive Tutorial\n\nClick on the image to watch a slides presentation that explains to you how\nto use Manim Slides.\n\n[![Manim Slides Docs](https://raw.githubusercontent.com/jeertmans/manim-slides/main/static/docs.png)](https://eertmans.be/manim-slides/)\n\n## More Examples\n\nMore examples are available in the\n[`example.py`](https://github.com/jeertmans/manim-slides/blob/main/example.py)\nfile, if you downloaded the git repository.\n\n## Comparison with Similar Tools\n\nThere exists a variety of tools that allows to create slides presentations\ncontaining Manim animations.\n\nBelow is a comparison of the most used ones with Manim Slides:\n\n| Project name | Manim Slides | Manim Presentation | Manim Editor | Jupyter Notebooks |\n|:------------:|:------------:|:------------------:|:------------:|:-----------------:|\n| Link | [![GitHub Repo stars](https://img.shields.io/github/stars/jeertmans/manim-slides?style=social)](https://github.com/jeertmans/manim-slides) | [![GitHub Repo stars](https://img.shields.io/github/stars/galatolofederico/manim-presentation?style=social)](https://github.com/galatolofederico/manim-presentation) | [![GitHub Repo stars](https://img.shields.io/github/stars/ManimCommunity/manim_editor?style=social)](https://github.com/ManimCommunity/manim_editor) | [![GitHub Repo stars](https://img.shields.io/github/stars/jupyter/notebook?style=social)](https://github.com/jupyter/notebook) |\n| Activity | [![GitHub Repo stars](https://img.shields.io/github/last-commit/jeertmans/manim-slides?style=social)](https://github.com/jeertmans/manim-slides) | [![GitHub Repo stars](https://img.shields.io/github/last-commit/galatolofederico/manim-presentation?style=social)](https://github.com/galatolofederico/manim-presentation) | [![GitHub Repo stars](https://img.shields.io/github/last-commit/ManimCommunity/manim_editor?style=social)](https://github.com/ManimCommunity/manim_editor) | [![GitHub Repo stars](https://img.shields.io/github/last-commit/jupyter/notebook?style=social)](https://github.com/jupyter/notebook) |\n| Usage | Command-line | Command-line | Web Browser | Notebook |\n| Note | Requires minimal modif. in scenes files | Requires minimal modif. in scenes files |  Requires the usage of sections, and configuration through graphical interface | Relies on `nbconvert` to create slides from a Notebook |\n| Support for ManimGL | Yes | No | No | No |\n| Web Browser presentations | Yes | No | Yes | No |\n| Offline presentations | Yes, with Qt | Yes, with OpenCV | No | No\n\n## Citing\n\nIf you use this project, please cite it using the following reference:\n\n```bibtex\n@article{Jerome_Eertmans_Manim_Slides_A_2023,\n\ttitle        = {{Manim Slides: A Python package for presenting Manim content anywhere}},\n\tauthor       = {{Jérome Eertmans}},\n\tyear         = 2023,\n\tmonth        = aug,\n\tjournal      = {Journal of Open Source Education},\n\tvolume       = 6,\n\tdoi          = {10.21105/jose.00206}\n}\n```\n\nor by linking this GitHub repository at the end of the presentation.\n\n## Contributing\n\nContributions are more than welcome! Please read through\n[our contributing section](https://eertmans.be/manim-slides/latest/contributing/index.html).\n\n### Reporting an Issue\n\n\u003c!-- start reporting-an-issue --\u003e\n\nIf you think you found a bug,\nan error in the documentation,\nor wish there was some feature that is currently missing,\nwe would love to hear from you!\n\nThe best way to reach us is via the\n[GitHub issues](https://github.com/jeertmans/manim-slides/issues).\nIf your problem is not covered by an already existing (closed or open) issue,\nthen we suggest you create a\n[new issue](https://github.com/jeertmans/manim-slides/issues/new/choose).\nYou can choose from a list of templates, or open a\n[blank issue](https://github.com/jeertmans/manim-slides/issues/new)\nif your issue does not fit one of the proposed topics.\n\nThe more precise you are in the description of your problem, the faster we will\nbe able to help you!\n\n\u003c!-- end reporting-an-issue --\u003e\n\n### Seeking for help\n\n\u003c!-- start seeking-for-help --\u003e\n\nSometimes, you may have a question about Manim Slides,\nnot necessarily an issue.\n\nFirst, make sure to read the\n[F.A.Q](https://eertmans.be/manim-slides/latest/faq.html) to see if\nyour question has already been answered. If not, please follow the\nrecommendation (from that page) to reach us for questions.\n\n\u003c!-- end seeking-for-help --\u003e\n\n### Contact\n\n\u003c!-- start contact --\u003e\n\nFinally, if you do not have any GitHub account,\nor just wish to contact the author of Manim Slides,\nyou can do so at: [jeertmans@icloud.com](mailto:jeertmans@icloud.com).\n\n\u003c!-- end contact --\u003e\n\n[pypi-version-badge]: https://img.shields.io/pypi/v/manim-slides?label=manim-slides\n[pypi-version-url]: https://pypi.org/project/manim-slides/\n[pypi-python-version-badge]: https://img.shields.io/pypi/pyversions/manim-slides\n[pypi-download-badge]: https://img.shields.io/pypi/dm/manim-slides\n[documentation-badge]: https://readthedocs.org/projects/manim-slides/badge/?version=latest\n[documentation-url]: https://manim-slides.readthedocs.io/\n[doi-badge]: https://zenodo.org/badge/DOI/10.5281/zenodo.7971360.svg\n[doi-url]: https://doi.org/10.5281/zenodo.7971360\n[jose-badge]: https://jose.theoj.org/papers/10.21105/jose.00206/status.svg\n[jose-url]: https://doi.org/10.21105/jose.00206\n[codecov-badge]: https://codecov.io/gh/jeertmans/manim-slides/branch/main/graph/badge.svg?token=8P4DY9JCE4\n[codecov-url]: https://codecov.io/gh/jeertmans/manim-slides\n[binder-badge]: https://mybinder.org/badge_logo.svg\n[binder-url]: https://mybinder.org/v2/gh/jeertmans/manim-slides-binder/HEAD?filepath=getting_started.ipynb\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeertmans%2Fmanim-slides","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeertmans%2Fmanim-slides","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeertmans%2Fmanim-slides/lists"}