manim-eng
A circuit-drawing plugin for Manim Community Edition for circuit-based diagrams and animations.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.7%) to scientific vocabulary
Repository
A circuit-drawing plugin for Manim Community Edition for circuit-based diagrams and animations.
Basic Info
- Host: GitHub
- Owner: overegneered
- License: mit
- Language: Python
- Default Branch: trunk
- Homepage: https://docs.manim-eng.egneer.ing
- Size: 927 KB
Statistics
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 1
Metadata Files
README.md

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:
shell
git clone https://github.com/overegneered/manim-eng.git
Then install dependencies with Poetry:
shell
poetry install
Finally, install the pre-commit hooks:
shell
pre-commit install
Testing
manim-eng uses pytest as a testing framework. To run the test suite, you can use
shell
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.
Owner
- Login: overegneered
- Kind: user
- Location: United Kingdom
- Repositories: 1
- Profile: https://github.com/overegneered
Third-year MEng Engineering Science student at the University of Oxford, specialising in electronic and computer engineering.
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
type: software
title: manim-eng
version: 0.1.0
repository-code: 'https://github.com/overegneered/manim-eng'
message: >-
If you use this software, please cite it using the
metadata from this file. The use of the source code of
this software (including that of all auxillary files, such
as documentation) for the training of AI models is
EXPRESSLY PROHIBITED.
authors:
- given-names: overegneered
email: overegneered@egneer.ing
orcid: "https://orcid.org/0009-0003-9009-5831"
abstract: >-
manim-eng is a plugin for Manim Community Edition that
adds the ability to create and animate circuit diagrams.
keywords:
- Manim
- ManimCE
- circuit theory
- animation
- circuits
license: MIT
GitHub Events
Total
- Create event: 11
- Release event: 1
- Issues event: 9
- Watch event: 3
- Delete event: 11
- Issue comment event: 4
- Push event: 49
- Pull request event: 20
- Fork event: 1
Last Year
- Create event: 11
- Release event: 1
- Issues event: 9
- Watch event: 3
- Delete event: 11
- Issue comment event: 4
- Push event: 49
- Pull request event: 20
- Fork event: 1
Packages
- Total packages: 1
-
Total downloads:
- pypi 61 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 1
- Total maintainers: 1
pypi.org: manim-eng
A Manim CE plugin for drawing circuit diagrams (and other engineering diagrams in the future).
- Homepage: https://github.com/overegneered/manim-eng
- Documentation: https://docs.manim-eng.egneer.ing
- License: MIT
-
Latest release: 0.1.0
published 12 months ago
Rankings
Maintainers (1)
Dependencies
- cfgv 3.4.0
- click 8.1.7
- cloup 3.0.5
- colorama 0.4.6
- cython 3.0.11
- decorator 5.1.1
- distlib 0.3.8
- filelock 3.16.1
- glcontext 3.0.0
- identify 2.6.1
- iniconfig 2.0.0
- isosurfaces 0.1.2
- manim 0.18.1
- manimpango 0.6.0
- mapbox-earcut 1.0.2
- markdown-it-py 3.0.0
- mdurl 0.1.2
- moderngl 5.11.1
- moderngl-window 2.4.6
- multipledispatch 1.0.0
- mypy 1.11.2
- mypy-extensions 1.0.0
- networkx 3.3
- nodeenv 1.9.1
- numpy 1.26.4
- packaging 24.1
- pillow 10.4.0
- platformdirs 4.3.6
- pluggy 1.5.0
- pre-commit 3.8.0
- pycairo 1.27.0
- pydub 0.25.1
- pyglet 2.0.17
- pygments 2.18.0
- pyobjc-core 10.3.1
- pyobjc-framework-cocoa 10.3.1
- pyrr 0.10.3
- pytest 8.3.3
- pyyaml 6.0.2
- rich 13.9.2
- ruff 0.5.7
- scipy 1.14.1
- screeninfo 0.8.1
- skia-pathops 0.8.0.post1
- srt 3.5.3
- svgelements 1.9.6
- tqdm 4.66.5
- typing-extensions 4.12.2
- virtualenv 20.26.6
- watchdog 5.0.3
- mypy ^1.11.1 develop
- pre-commit ^3.8.0 develop
- pytest ^8.3.2 develop
- ruff ^0.5.5 develop
- manim >=0.18.1
- python ~3.11