manim-presentations


Namemanim-presentations JSON
Version 0.1.71 PyPI version JSON
download
home_pageNone
SummaryA Python framework for creating composable manim-slides presentations.
upload_time2025-08-12 11:38:06
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords manim animations mathematics presentations education visualization
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ManimPresentations

This is a minimal and quick-and-dirty package to make ManimSlides more modular and reduce the time
required to create presentations. It unifies the way presentations are created and displayed. It allows composition
of chapters as list of slides and of presentations as list of chapters. That way, your slides and chapters
can be reused in different presentations. Furthermore, it allows to render individual slides and chapters, so
you don't have to render the whole presentation every time you want to see a change.

## Main objectives:

* have a clear hierarchy: presentation -> chapters -> slides
* have shared elements between slides (slide number, presentation title, author, year, event, current chapter, etc.)
* being able to compose Presentations using various chapters and slides
* being able to render and launch the whole presentation with the usual `manim-slides render example.py MyPresentation` 
and `manim-slides MyPresentation` commands
* provide an elegant layout for presentations

## State of the project:

This is a _personal project_ that I started to make my life easier when creating presentations with Manim. It may be
useful to others, but do not consider it a complete, elegant or polished solution. It probably lacks a lot of useful 
features to make it a general tool, but it's not my intention to make it so :)

If you have suggestions, ideas or feedback, feel free to open a discussion though!

## Installation:

You can install this package using pip:

```bash
pip install manim-presentations
```

To install locally, you can clone the repository and run:

```bash
pip install -e .
```

## Components:

### ModularSlide

A `ModularSlide` is a single slide in a presentation. It extends the `manim_slides.Slide` class, so it's a Manim Scene.

The magic is in the `ctx` context argument that is passed to the `__init__` method. By default this context is None,
in which case the slide behaves like a normal Manim Scene/Slide, allowing you to use it as a standalone scene. But this
context can also be an instance of `manim_presentations.Presentation` or `manim_presentations.Chapter`, which allows
rendering the slide within the presentation or chapter.

A `ModularSlide` also contains an `inner_canvas` attribute, which is a `manim.Group` intended to contain the graphical
elements of the slide. The default `tear_down` method clears this inner canvas, but can be overridden by your custom
slide class. This allows you to create slides that reuse the canvas from a previous slide, although this requires
knowing how the previous slide organised its canvas in the first place.

### Chapter

A chapter is a portion of a presentation that can be composed of multiple `ModularSlides`. By default, its `construct`
method iterates over the slides and renders them one by one.

It also receives a `ctx` context argument, which can be an instance of `manim_presentations.Presentation` but is None
by default. This allows to render a chapter as a standalone scene, or as part of a presentation.

### Presentation

A presentation is the actual, complete presentation that you want to create. It receives chapters as a list of `Chapter` 
instances and renders them in the order they are provided. 

It has properties like the title, presenting author, other authors, year, event it is made for, and a list of chapters.

It implements various methods for:
* introduction and conclusion slides
* building, showing, hiding and updating various layout elements like slide number, chapter progression or sub-text.
* ...

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "manim-presentations",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "manim, animations, mathematics, presentations, education, visualization",
    "author": null,
    "author_email": "S Lejoly <simon.lejoly@unamur.be>",
    "download_url": "https://files.pythonhosted.org/packages/07/62/87b661a1c66843a140d1e1a0e24805391012c5ed892b8e59ff17e5c80754/manim_presentations-0.1.71.tar.gz",
    "platform": null,
    "description": "# ManimPresentations\n\nThis is a minimal and quick-and-dirty package to make ManimSlides more modular and reduce the time\nrequired to create presentations. It unifies the way presentations are created and displayed. It allows composition\nof chapters as list of slides and of presentations as list of chapters. That way, your slides and chapters\ncan be reused in different presentations. Furthermore, it allows to render individual slides and chapters, so\nyou don't have to render the whole presentation every time you want to see a change.\n\n## Main objectives:\n\n* have a clear hierarchy: presentation -> chapters -> slides\n* have shared elements between slides (slide number, presentation title, author, year, event, current chapter, etc.)\n* being able to compose Presentations using various chapters and slides\n* being able to render and launch the whole presentation with the usual `manim-slides render example.py MyPresentation` \nand `manim-slides MyPresentation` commands\n* provide an elegant layout for presentations\n\n## State of the project:\n\nThis is a _personal project_ that I started to make my life easier when creating presentations with Manim. It may be\nuseful to others, but do not consider it a complete, elegant or polished solution. It probably lacks a lot of useful \nfeatures to make it a general tool, but it's not my intention to make it so :)\n\nIf you have suggestions, ideas or feedback, feel free to open a discussion though!\n\n## Installation:\n\nYou can install this package using pip:\n\n```bash\npip install manim-presentations\n```\n\nTo install locally, you can clone the repository and run:\n\n```bash\npip install -e .\n```\n\n## Components:\n\n### ModularSlide\n\nA `ModularSlide` is a single slide in a presentation. It extends the `manim_slides.Slide` class, so it's a Manim Scene.\n\nThe magic is in the `ctx` context argument that is passed to the `__init__` method. By default this context is None,\nin which case the slide behaves like a normal Manim Scene/Slide, allowing you to use it as a standalone scene. But this\ncontext can also be an instance of `manim_presentations.Presentation` or `manim_presentations.Chapter`, which allows\nrendering the slide within the presentation or chapter.\n\nA `ModularSlide` also contains an `inner_canvas` attribute, which is a `manim.Group` intended to contain the graphical\nelements of the slide. The default `tear_down` method clears this inner canvas, but can be overridden by your custom\nslide class. This allows you to create slides that reuse the canvas from a previous slide, although this requires\nknowing how the previous slide organised its canvas in the first place.\n\n### Chapter\n\nA chapter is a portion of a presentation that can be composed of multiple `ModularSlides`. By default, its `construct`\nmethod iterates over the slides and renders them one by one.\n\nIt also receives a `ctx` context argument, which can be an instance of `manim_presentations.Presentation` but is None\nby default. This allows to render a chapter as a standalone scene, or as part of a presentation.\n\n### Presentation\n\nA presentation is the actual, complete presentation that you want to create. It receives chapters as a list of `Chapter` \ninstances and renders them in the order they are provided. \n\nIt has properties like the title, presenting author, other authors, year, event it is made for, and a list of chapters.\n\nIt implements various methods for:\n* introduction and conclusion slides\n* building, showing, hiding and updating various layout elements like slide number, chapter progression or sub-text.\n* ...\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Python framework for creating composable manim-slides presentations.",
    "version": "0.1.71",
    "project_urls": {
        "Bug Reports": "https://github.com/SimLej18/manim-presentations/issues",
        "Documentation": "https://github.com/SimLej18/manim-presentations/README.md",
        "Homepage": "https://github.com/SimLej18/manim-presentations",
        "Source": "https://github.com/SimLej18/manim-presentations"
    },
    "split_keywords": [
        "manim",
        " animations",
        " mathematics",
        " presentations",
        " education",
        " visualization"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5773b3f3fd7753abd62f059de70335a421de294d80dee91714252beac8c18fe9",
                "md5": "d27d6135668632db0910e4838701e654",
                "sha256": "3b33db922788cae5deddb101c04c99fa70da76a75c2a3f5848c0124c46fee506"
            },
            "downloads": -1,
            "filename": "manim_presentations-0.1.71-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d27d6135668632db0910e4838701e654",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 8080,
            "upload_time": "2025-08-12T11:38:05",
            "upload_time_iso_8601": "2025-08-12T11:38:05.536823Z",
            "url": "https://files.pythonhosted.org/packages/57/73/b3f3fd7753abd62f059de70335a421de294d80dee91714252beac8c18fe9/manim_presentations-0.1.71-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "076287b661a1c66843a140d1e1a0e24805391012c5ed892b8e59ff17e5c80754",
                "md5": "3e45f28ca04eea3af08e39b49dc0750d",
                "sha256": "208bd5d65e737c899fd1429b76dc8a078b00c53a0b63035f4808ecbc43db7381"
            },
            "downloads": -1,
            "filename": "manim_presentations-0.1.71.tar.gz",
            "has_sig": false,
            "md5_digest": "3e45f28ca04eea3af08e39b49dc0750d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 8960,
            "upload_time": "2025-08-12T11:38:06",
            "upload_time_iso_8601": "2025-08-12T11:38:06.275560Z",
            "url": "https://files.pythonhosted.org/packages/07/62/87b661a1c66843a140d1e1a0e24805391012c5ed892b8e59ff17e5c80754/manim_presentations-0.1.71.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-12 11:38:06",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "SimLej18",
    "github_project": "manim-presentations",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "manim-presentations"
}
        
Elapsed time: 1.94466s