manim-themes


Namemanim-themes JSON
Version 0.1.3 PyPI version JSON
download
home_pageNone
SummaryA Manim plugin that lets you apply a iterm2 color theme to your Manim scenes.
upload_time2025-08-01 08:38:37
maintainerNone
docs_urlNone
authorAlexander Nasuta
requires_python<4.0,>=3.11
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![PyPI version](https://img.shields.io/pypi/v/manim-themes)](https://pypi.org/project/manim-themes/)
![License](https://img.shields.io/pypi/l/manim-themes)
[![Documentation Status](https://readthedocs.org/projects/manim-themes/badge/?version=latest)](https://manim-themes.readthedocs.io/en/latest/?badge=latest)

<h1 align="center">
  <img src="https://raw.githubusercontent.com/Alexander-Nasuta/manim-themes/master/resources/ThemeGif_ManimCE_v0.19.0.gif" alt="Example Themes" />
</h1>

## About this Project

This project is a Python Module that provides allows theming of [Manim](https://www.manim.community) projects with [iterm2 color themes](https://iterm2colorschemes.com).
It works by overriding the default Manim configuration with a set of colors that are derived from the selected theme.
I am not an expert in how Python looks up variables, and I am not sure if there is a better way for a plugin to realise theming.
It works fine for my purposes, but if you have a idea how to improve this, feel free to let me know (by issuing a pull request or opening an issue).
## Installation

Install the package with pip:
```
   pip install manim-themes
```


## Minimal Example

**NOTE: Please make sure you have manim installed and running on your machine**

Below is a minimal example of how to use the Module.

```python
import manim as m

from manim_themes.manim_theme import apply_theme


class MinimalThemeExample(m.Scene):

    def setup(self):
        # Set the background color to a light beige
        theme = "Andromeda"
        apply_theme(manim_scene=self, theme_name=theme, light_theme=True)

    def construct(self):
        my_text = m.Text("Hello World")
        maroon_text = m.Text("I use Manim BTW", color=m.MAROON)
        maroon_text.next_to(my_text, m.DOWN)

        text_group = m.VGroup(my_text, maroon_text).move_to(m.ORIGIN)

        self.play(m.FadeIn(text_group))


if __name__ == '__main__':
    import os
    from pathlib import Path

    FLAGS = "-pqm"
    SCENE = "MinimalThemeExample"

    file_path = Path(__file__).resolve()
    os.system(f"manim {Path(__file__).resolve()} {SCENE} {FLAGS}")
```

This should yield a Scene that looks like so:

![Example Output Screenshot](https://raw.githubusercontent.com/Alexander-Nasuta/manim-themes/master/resources/MinimalThemeExample_ManimCE_v0.19.0.png)


### Documentation

This project uses `sphinx` for generating the documentation.
It also uses a lot of sphinx extensions to make the documentation more readable and interactive.
For example the extension `myst-parser` is used to enable markdown support in the documentation (instead of the usual .rst-files).
It also uses the `sphinx-autobuild` extension to automatically rebuild the documentation when changes are made.
By running the following command, the documentation will be automatically built and served, when changes are made (make sure to run this command in the root directory of the project):

```shell
sphinx-autobuild ./docs/source/ ./docs/build/html/
```

If sphinx extensions were added the `requirements_dev.txt` file needs to be updated.
These are the requirements, that readthedocs uses to build the documentation.
The file can be updated using this command:

```shell
poetry export -f requirements.txt --output requirements.txt --with dev
```

This project features most of the extensions featured in this Tutorial: [Document Your Scientific Project With Markdown, Sphinx, and Read the Docs | PyData Global 2021](https://www.youtube.com/watch?v=qRSb299awB0).


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "manim-themes",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.11",
    "maintainer_email": null,
    "keywords": null,
    "author": "Alexander Nasuta",
    "author_email": "alexander.nasuta@wzl-iqs.rwth-aachen.de",
    "download_url": "https://files.pythonhosted.org/packages/e5/ce/a9136b75538d61090aacea6053b9e462e633d03f110822a33114fe2775f5/manim_themes-0.1.3.tar.gz",
    "platform": null,
    "description": "[![PyPI version](https://img.shields.io/pypi/v/manim-themes)](https://pypi.org/project/manim-themes/)\n![License](https://img.shields.io/pypi/l/manim-themes)\n[![Documentation Status](https://readthedocs.org/projects/manim-themes/badge/?version=latest)](https://manim-themes.readthedocs.io/en/latest/?badge=latest)\n\n<h1 align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/Alexander-Nasuta/manim-themes/master/resources/ThemeGif_ManimCE_v0.19.0.gif\" alt=\"Example Themes\" />\n</h1>\n\n## About this Project\n\nThis project is a Python Module that provides allows theming of [Manim](https://www.manim.community) projects with [iterm2 color themes](https://iterm2colorschemes.com).\nIt works by overriding the default Manim configuration with a set of colors that are derived from the selected theme.\nI am not an expert in how Python looks up variables, and I am not sure if there is a better way for a plugin to realise theming.\nIt works fine for my purposes, but if you have a idea how to improve this, feel free to let me know (by issuing a pull request or opening an issue).\n## Installation\n\nInstall the package with pip:\n```\n   pip install manim-themes\n```\n\n\n## Minimal Example\n\n**NOTE: Please make sure you have manim installed and running on your machine**\n\nBelow is a minimal example of how to use the Module.\n\n```python\nimport manim as m\n\nfrom manim_themes.manim_theme import apply_theme\n\n\nclass MinimalThemeExample(m.Scene):\n\n    def setup(self):\n        # Set the background color to a light beige\n        theme = \"Andromeda\"\n        apply_theme(manim_scene=self, theme_name=theme, light_theme=True)\n\n    def construct(self):\n        my_text = m.Text(\"Hello World\")\n        maroon_text = m.Text(\"I use Manim BTW\", color=m.MAROON)\n        maroon_text.next_to(my_text, m.DOWN)\n\n        text_group = m.VGroup(my_text, maroon_text).move_to(m.ORIGIN)\n\n        self.play(m.FadeIn(text_group))\n\n\nif __name__ == '__main__':\n    import os\n    from pathlib import Path\n\n    FLAGS = \"-pqm\"\n    SCENE = \"MinimalThemeExample\"\n\n    file_path = Path(__file__).resolve()\n    os.system(f\"manim {Path(__file__).resolve()} {SCENE} {FLAGS}\")\n```\n\nThis should yield a Scene that looks like so:\n\n![Example Output Screenshot](https://raw.githubusercontent.com/Alexander-Nasuta/manim-themes/master/resources/MinimalThemeExample_ManimCE_v0.19.0.png)\n\n\n### Documentation\n\nThis project uses `sphinx` for generating the documentation.\nIt also uses a lot of sphinx extensions to make the documentation more readable and interactive.\nFor example the extension `myst-parser` is used to enable markdown support in the documentation (instead of the usual .rst-files).\nIt also uses the `sphinx-autobuild` extension to automatically rebuild the documentation when changes are made.\nBy running the following command, the documentation will be automatically built and served, when changes are made (make sure to run this command in the root directory of the project):\n\n```shell\nsphinx-autobuild ./docs/source/ ./docs/build/html/\n```\n\nIf sphinx extensions were added the `requirements_dev.txt` file needs to be updated.\nThese are the requirements, that readthedocs uses to build the documentation.\nThe file can be updated using this command:\n\n```shell\npoetry export -f requirements.txt --output requirements.txt --with dev\n```\n\nThis project features most of the extensions featured in this Tutorial: [Document Your Scientific Project With Markdown, Sphinx, and Read the Docs | PyData Global 2021](https://www.youtube.com/watch?v=qRSb299awB0).\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Manim plugin that lets you apply a iterm2 color theme to your Manim scenes.",
    "version": "0.1.3",
    "project_urls": {
        "Documentation": "https://manim-themes.readthedocs.io/en/latest/",
        "Homepage": "https://github.com/Alexander-Nasuta/manim-themes",
        "Repository": "https://github.com/Alexander-Nasuta/manim-themes"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f9cc6170c988c012fe887507238316e3d09c2c904b357fc069ca9c015b323f1c",
                "md5": "3c9aa46cf12072fdba44c957cb2a0cda",
                "sha256": "2687854526ee163c0995fdafe504afbc4f2dfdeed0927f06dd6ec4a1a32f37d4"
            },
            "downloads": -1,
            "filename": "manim_themes-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3c9aa46cf12072fdba44c957cb2a0cda",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.11",
            "size": 12645,
            "upload_time": "2025-08-01T08:38:34",
            "upload_time_iso_8601": "2025-08-01T08:38:34.404728Z",
            "url": "https://files.pythonhosted.org/packages/f9/cc/6170c988c012fe887507238316e3d09c2c904b357fc069ca9c015b323f1c/manim_themes-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e5cea9136b75538d61090aacea6053b9e462e633d03f110822a33114fe2775f5",
                "md5": "ce150e62fb6652541bfae28e0331f58d",
                "sha256": "f9578d520ae575f911fa04e7938b34750f4fdd3bdbd9febeca2045182ac2ca02"
            },
            "downloads": -1,
            "filename": "manim_themes-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "ce150e62fb6652541bfae28e0331f58d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.11",
            "size": 12522,
            "upload_time": "2025-08-01T08:38:37",
            "upload_time_iso_8601": "2025-08-01T08:38:37.405416Z",
            "url": "https://files.pythonhosted.org/packages/e5/ce/a9136b75538d61090aacea6053b9e462e633d03f110822a33114fe2775f5/manim_themes-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-01 08:38:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Alexander-Nasuta",
    "github_project": "manim-themes",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "manim-themes"
}
        
Elapsed time: 2.65199s