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.0rc0.tar.gz (979.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.0rc0-py3-none-any.whl (984.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: manim_widget-0.2.0rc0.tar.gz
  • Upload date:
  • Size: 979.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.0rc0.tar.gz
Algorithm Hash digest
SHA256 a84c075b6b7e3c55d6ea9e0c2828bce0319175ca443c41531d6bef9d05239b52
MD5 972a30841707274153cbe1394e6aa082
BLAKE2b-256 303756408a264a008e354b2bf768f3d0647b89aa46248c8cf5f2de87a0c53be8

See more details on using hashes here.

Provenance

The following attestation bundles were made for manim_widget-0.2.0rc0.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.0rc0-py3-none-any.whl.

File metadata

  • Download URL: manim_widget-0.2.0rc0-py3-none-any.whl
  • Upload date:
  • Size: 984.5 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.0rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 6d32fba666a449dd4faba00e7c185f84b7040bb54b665064ecd0ea8bd65deeda
MD5 5ed7230dd131d82a019be13b54ce29fa
BLAKE2b-256 03d0f6e5c7a6e2a95d5ac246f8726cd7b83fad8bde5d2a0536ee655550f330f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for manim_widget-0.2.0rc0-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