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

Uploaded Python 3

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

Hashes for manim_widget-0.2.0rc2.tar.gz
Algorithm Hash digest
SHA256 afd2d8be8f49373537f22e0203c9655b91ee605682b53e61ab829eb5b682ed9d
MD5 17b4cfc8f8eacebd11b000939d6a008c
BLAKE2b-256 a2a52579486cf8fe7d12798041e61efd277a9a778fd667eb09c750c032fc8285

See more details on using hashes here.

Provenance

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

Hashes for manim_widget-0.2.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 47cf29becd15732bdd2d07f5edbdf1801f5fd21cb9b3e15f3abfcd92db803998
MD5 fb5c16aa848c7667bc348f6d6ef9a468
BLAKE2b-256 15867c43cd9c131c79f572551023694b179eb7e08deb7c706f4937f908ff0584

See more details on using hashes here.

Provenance

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