Skip to main content

Manim Widget: manim, truly interactive, without the hassle

Project description

Manim Widget

image

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: Open in molab

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


Download files

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

Source Distribution

manim_widget-0.2.0rc3.tar.gz (983.7 kB view details)

Uploaded Source

Built Distribution

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

manim_widget-0.2.0rc3-py3-none-any.whl (988.7 kB view details)

Uploaded Python 3

File details

Details for the file manim_widget-0.2.0rc3.tar.gz.

File metadata

  • Download URL: manim_widget-0.2.0rc3.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

Hashes for manim_widget-0.2.0rc3.tar.gz
Algorithm Hash digest
SHA256 87c3300b1778c18f4c28f6401cc85523729c56d8427e6c6db59b1f463c7eabc0
MD5 50f66b92a52c6c32d76c9ed86977167b
BLAKE2b-256 abea72ce915f33614182568919029196e5f096d8353c6c02516e0343c63bcac1

See more details on using hashes here.

Provenance

The following attestation bundles were made for manim_widget-0.2.0rc3.tar.gz:

Publisher: publish.yml on rambip/manim-widget

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file manim_widget-0.2.0rc3-py3-none-any.whl.

File metadata

  • Download URL: manim_widget-0.2.0rc3-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

Hashes for manim_widget-0.2.0rc3-py3-none-any.whl
Algorithm Hash digest
SHA256 1b2a6efab47c085f6a33a2ffd44a5c73f0f42bcd2d3efc179377e99bff332386
MD5 8e2fe860117b4ea4fa52728f49fdd780
BLAKE2b-256 0b9b3e49964eb51dbf2869b05f761f45786820e53847f9088afbbc245cf7fce4

See more details on using hashes here.

Provenance

The following attestation bundles were made for manim_widget-0.2.0rc3-py3-none-any.whl:

Publisher: publish.yml on rambip/manim-widget

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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