One canvas API, multiple backends 🚀
See how the two windows above look the same? That's the idea; they also look the same to the code that renders to them. Yet, the GUI systems are very different (Qt vs glfw in this case). Now that's a powerful abstraction!
The main use-case is rendering with wgpu,
but rendercanvas
can be used by anything that can render based on a window-id or
by producing rgba images.
pip install rendercanvas
To have at least one backend, we recommend:
pip install rendercanvas glfw
Also see the online documentation and the examples.
# Select either the glfw, qt or jupyter backend
from rendercanvas.auto import RenderCanvas, loop
# Visualizations can be embedded as a widget in a Qt application.
# Supported qt libs are PySide6, PyQt6, PySide2 or PyQt5.
from rendercanvas.pyside6 import QRenderWidget
# Now specify what the canvas should do on a draw
TODO
This code is distributed under the 2-clause BSD license.
rendercanvas
and developer deps using pip install -e .[dev]
.ruff format
to apply autoformatting.ruff check
to check for linting errors.pre-commit install
, lint fixes and formatting will be automatically applied on git commit
.pytest tests
to run the tests.