Skip to main content

A Manim CE plugin for drawing circuit diagrams (and other engineering diagrams in the future).

Project description

manim-eng logo


manim-eng is a plugin for the Manim Community animation engine that introduces symbols and utilities for drawing engineering diagrams. Currently this only includes circuits, but the goal is to extend this to structures in the future as well.

Why make another circuit library?

Quite simply, because the other options available just don't cut it for me. The manim-circuit plugin, which was released during early development of this plugin, comes closer to what I want, but still isn't quite there. My goal can be summed up as 'manim-eng should be to ManimCE what CircuiTikZ is to LaTeX'. This means:

  • Easy to configure and automatically placed labels, annotations, and current and voltage indications.
  • Automatic, sensible animations for when these labels are introduced, removed, or changed.
  • Automatic component connections.
  • Ability to specify component types (i.e. European or American), with as much or as little granularity as you wish.

Those who know CircuiTikZ will know that it can't actually do all of the above, but why not make something better than your inspiration? On top of these features, I wanted a clean, intuitive, Pythonic interface to the library. No available option that I could find had all of this. Making my own was also an excellent way to get familiar with Manim, and a fun project.

Getting started

Head over to the documentation to get started with your first circuit diagrams!

Development

Environment setup

manim-eng, like Manim itself, uses Poetry as a build system. You will need Poetry installed before proceeding. First, clone the repository with Git:

git clone https://github.com/overegneered/manim-eng.git

Then install dependencies with Poetry:

poetry install

Finally, install the pre-commit hooks:

pre-commit install

Testing

manim-eng uses pytest as a testing framework. To run the test suite, you can use

poetry run pytest

though using an IDE integration, such as PyCharm's pytest runner, may be easier!

Licencing and citation

If you use this project in your work, I ask that you cite it using the information contained in the CITATION.cff file. The easiest way to do this is to go to the repository page on GitHub and click on 'Cite this repository'. For more info on CITATION.cff files, check out this website.

This project is mostly licenced under the MIT licence, like Manim itself. However, I specifically revoke any right or permissions to use the contents of this repository for the training of AI models without my prior written approval.

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_eng-0.1.0.tar.gz (43.4 kB view details)

Uploaded Source

Built Distribution

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

manim_eng-0.1.0-py3-none-any.whl (59.0 kB view details)

Uploaded Python 3

File details

Details for the file manim_eng-0.1.0.tar.gz.

File metadata

  • Download URL: manim_eng-0.1.0.tar.gz
  • Upload date:
  • Size: 43.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.12.9 Darwin/24.3.0

File hashes

Hashes for manim_eng-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2e787c5fe292e53dce8e016c3ecdc63fc72b7af3f85d832494949717e3a26f63
MD5 c77d67e09ecb0fd53ee9280b95279cca
BLAKE2b-256 1f3a383d9c67d9ae5abc984065f2cf48d26666d771765e8e1a2a05ad24df9096

See more details on using hashes here.

File details

Details for the file manim_eng-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: manim_eng-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 59.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.12.9 Darwin/24.3.0

File hashes

Hashes for manim_eng-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd3dfa8d63c6eaf1ff0e5de205bc0ece3c8657346354b17175734d49b562413a
MD5 9e57e243b9b5e572ad2f5cbed02e4062
BLAKE2b-256 3fe1ff2f40155eb88c1f11091e3652f9fc94affbe821d72836290e13cadd82e9

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