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.0rc1.tar.gz (982.2 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.0rc1-py3-none-any.whl (987.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: manim_widget-0.2.0rc1.tar.gz
  • Upload date:
  • Size: 982.2 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.0rc1.tar.gz
Algorithm Hash digest
SHA256 19adaabfc387321e44f8a478608ad25b51ed18920c7e5affa83f4477bc99d7e6
MD5 ef5df82fe60b8c1af212e5074ee54f9d
BLAKE2b-256 63f4ae183d052608c96cd9ba8028b62fb3cd9ab6d72f2fdfd2c369550fb75cf4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: manim_widget-0.2.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 987.0 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.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 c76aada2aeeaa832d568e8340e44d45f584fbb80a64c7e577df19097fe1c033b
MD5 f14f6ae0066bb389e1c968540e6c835a
BLAKE2b-256 71fddc4db5960d80fcb9074cf53eeebf003d04222997aca826baf35b4c0f2d6a

See more details on using hashes here.

Provenance

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