Manim Widget: manim, truly interactive, without the hassle
Project description
Manim Widget
Interactive Manim for Jupyter/marimo notebooks. The power of Manim, without the hassle.
Installation
# in your project
uv add manim-widget
And you're good to go ! You do not even need to install LaTeX.
If you get errors during installation, go read the manim install guide
Want to try it online ?
Thank's to marimo, that's a no brainer:
How it works
Manim widget uses the amazing Manim Web project to render your scenes.
Code in this repository mainly does the serialization form python to js, using a precise json specification. And it turns out it's harder than one could think !
If you want to dig deeper, I strongly recommend to use the deepwiki documentation here
Headless testing
tests/js_runner.py lets you validate a scene through the JS renderer without a browser — useful for quick sanity-checks and CI.
# run a scene class from an example file
uv run python tests/js_runner.py examples/arrow.py ArrowDance
# pipe in pre-serialized JSON
uv run python -c "from mymodule import MyScene; import json; print(json.dumps(MyScene().scene_data))" \
| uv run python tests/js_runner.py --json
Exit code is 0 on success, 1 on any JS playback error. Errors and warnings are printed to stdout.
Contributing
See CONTRIBUTING.md
AI
This project used AI extensively. I still spent hours on papers for the design decisions, and reviewed most of the architecture, contracts and tests (except for JS 😬)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file manim_widget-0.2.0rc2.tar.gz.
File metadata
- Download URL: manim_widget-0.2.0rc2.tar.gz
- Upload date:
- Size: 983.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afd2d8be8f49373537f22e0203c9655b91ee605682b53e61ab829eb5b682ed9d
|
|
| MD5 |
17b4cfc8f8eacebd11b000939d6a008c
|
|
| BLAKE2b-256 |
a2a52579486cf8fe7d12798041e61efd277a9a778fd667eb09c750c032fc8285
|
Provenance
The following attestation bundles were made for manim_widget-0.2.0rc2.tar.gz:
Publisher:
publish.yml on rambip/manim-widget
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
manim_widget-0.2.0rc2.tar.gz -
Subject digest:
afd2d8be8f49373537f22e0203c9655b91ee605682b53e61ab829eb5b682ed9d - Sigstore transparency entry: 2084805515
- Sigstore integration time:
-
Permalink:
rambip/manim-widget@cf46a90343fa31d39ab05116d746460a8a276f9b -
Branch / Tag:
refs/tags/v0.2.0rc2 - Owner: https://github.com/rambip
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cf46a90343fa31d39ab05116d746460a8a276f9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file manim_widget-0.2.0rc2-py3-none-any.whl.
File metadata
- Download URL: manim_widget-0.2.0rc2-py3-none-any.whl
- Upload date:
- Size: 988.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47cf29becd15732bdd2d07f5edbdf1801f5fd21cb9b3e15f3abfcd92db803998
|
|
| MD5 |
fb5c16aa848c7667bc348f6d6ef9a468
|
|
| BLAKE2b-256 |
15867c43cd9c131c79f572551023694b179eb7e08deb7c706f4937f908ff0584
|
Provenance
The following attestation bundles were made for manim_widget-0.2.0rc2-py3-none-any.whl:
Publisher:
publish.yml on rambip/manim-widget
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
manim_widget-0.2.0rc2-py3-none-any.whl -
Subject digest:
47cf29becd15732bdd2d07f5edbdf1801f5fd21cb9b3e15f3abfcd92db803998 - Sigstore transparency entry: 2084805524
- Sigstore integration time:
-
Permalink:
rambip/manim-widget@cf46a90343fa31d39ab05116d746460a8a276f9b -
Branch / Tag:
refs/tags/v0.2.0rc2 - Owner: https://github.com/rambip
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cf46a90343fa31d39ab05116d746460a8a276f9b -
Trigger Event:
push
-
Statement type: