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.0.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.0-py3-none-any.whl (988.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: manim_widget-0.2.0.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.0.tar.gz
Algorithm Hash digest
SHA256 2e1cd57185d3552aa6fcc1d33f28763a5494faa81ac2a6f883c3c77b0d1adce5
MD5 5db2473806a7a153f822a69541099525
BLAKE2b-256 fdbd3d37b4d0a95c5c1c1c894e847d4c33990070560c431c555c4245e2399c9b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: manim_widget-0.2.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8721d49db390a15fd32a89d20f91122e3e9f993f5424a038d239c0ec91c9aa68
MD5 1d0dc80ae9731554f86b450db908069c
BLAKE2b-256 e373fd4723c1b17f15bcb1d16096d6507ed4fe81a186c1b3da5aa137c55be4fb

See more details on using hashes here.

Provenance

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