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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

424081c · Mar 21, 2025
Mar 5, 2025
Mar 20, 2025
Mar 20, 2025
Feb 4, 2025
Mar 20, 2025
Mar 16, 2025
Mar 17, 2025
Nov 4, 2024
Mar 21, 2025
Feb 28, 2025
Mar 5, 2025
Mar 18, 2025
Mar 4, 2025
Jan 16, 2025
Mar 5, 2025
Mar 6, 2025
Mar 10, 2025
Jun 13, 2024
Mar 21, 2025
Feb 6, 2025
Sep 24, 2024
Feb 6, 2025

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