Skip to main content

A Manim plugin that lets you apply a iterm2 color theme to your Manim scenes.

Project description

PyPI version License Documentation Status

Example Themes

About this Project

This project is a Python Module that provides allows theming of Manim projects with iterm2 color themes. 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.

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

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):

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:

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

manim_themes-0.1.2.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

manim_themes-0.1.2-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file manim_themes-0.1.2.tar.gz.

File metadata

  • Download URL: manim_themes-0.1.2.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for manim_themes-0.1.2.tar.gz
Algorithm Hash digest
SHA256 80f77af02bf23f70f58a80dc8655e6a9a85dfe9043b687f84dc7a54da465a31e
MD5 742a3a69d1c627f5a09dab16c1541d06
BLAKE2b-256 0d034b66d480622fc3cdc04a63a47789a07f518bb0a00d7163e20b69ed0f4c49

See more details on using hashes here.

File details

Details for the file manim_themes-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: manim_themes-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for manim_themes-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ae54e9561e9e9a2fd6ed334bf74a4245066a30af688e7883e60715ef2ac69762
MD5 d79cd845ef03eebfac9ea307d35a5b4e
BLAKE2b-256 8f4620e584beb41b4ab29c9a4933f1ab00adc70092eed9c10f38768222c470ec

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page