Skip to content

a Python library for creating interactive, JavaScript-based visualizations.

License

Notifications You must be signed in to change notification settings

ChiSym/genstudio

Repository files navigation

PyPI version

Gen Studio

Visualization tools for GenJAX.


genstudio.plot provides a composable way to create interactive plots using Observable Plot.

Key features:

  • Functional, composable plot creation built on Observable Plot (with near 1:1 API correspondence between Python and JavaScript)
  • Support for sliders & animations
  • Works in Jupyter / Google Colab
  • HTML mode which persists plots across kernel restart/shutdown, and a Widget mode which supports Python<>JavaScript interactivity
  • Terse layout syntax for organizing plots into rows and columns
  • Hiccup implementation for interspersing arbitrary HTML

For detailed usage instructions and examples, refer to the Gen Studio User Guide.

Development

Run yarn watch to compile the JavaScript bundle.

CI Workflows

The project has several CI workflows:

  • Tests: Runs JavaScript and Python unit tests
  • WebGPU Screenshots: Tests 3D WebGPU rendering capabilities by capturing screenshots in headless Chrome
  • Docs: Builds and deploys documentation
  • Pyright: Runs type checking for Python code
  • Ruff: Runs code formatting and linting

Credits

  • AnyWidget provides a nice Python<>JavaScript widget API
  • pyobsplot was the inspiration for our Python->JavaScript approach

About

a Python library for creating interactive, JavaScript-based visualizations.

Resources

License

Stars

Watchers

Forks

Packages

No packages published