skillfed

rendercanvas

One canvas API, multiple backends

rendercanvas v2.7.2 94.7K downloads/30d#13,316 on PyPI35
License unclear Active released

What it is and what it does

Rendercanvas is a Python library that abstracts away the differences between GUI frameworks and rendering backends, letting you write a single canvas rendering application that can run on multiple platforms. It manages window creation, event handling, and frame presentation through a consistent API, while delegating the actual rendering to wgpu or bitmap output.

The library supports both synchronous and asynchronous event loops (asyncio, trio, or raw callbacks), making it suitable for interactive graphics and real-time rendering tasks. Its only runtime dependency is numpy, and installation is straightforward; you add a backend separately depending on where you want to deploy.

Use it for:

  • Write a rendering application once and run it across different GUI frameworks without code changes.
  • Embed a rendering canvas into an existing GUI application without rewriting your graphics layer.
  • Build interactive notebook visualizations that work across different notebook environments.
  • Render graphics to a bitmap and stream them over HTTP or display in a browser.
  • Create graphics for remote or headless environments.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Rendercanvas provides a unified canvas API that works across multiple GUI backends, letting you write rendering code once and deploy it to different windowing systems.

Yes, if you need to write rendering code once and deploy across multiple platforms. The low install friction, active maintenance, and clear abstraction model make it a solid choice for cross-platform graphics work. Verify the license status in the repository before using it in a commercial or compliance-sensitive context.

Install

rendercanvas on PyPI

pip

pip install rendercanvas

uv

uv add rendercanvas

poetry

poetry add rendercanvas

Installing rendercanvas

Before you install

Low friction: pure Python wheel with only numpy as a runtime dependency. Active maintenance with a recent release (24 days old) and ongoing commits. Repository is not archived.

License in practice

License treatment is unclear—no SPDX identifier or raw license text is available in the package metadata. The description mentions a 2-clause BSD license, but verify the actual license file in the repository before relying on it for compliance.

Quickstart

pip install rendercanvas

import numpy as np
from rendercanvas.auto import RenderCanvas, loop

canvas = RenderCanvas(update_mode="continuous")
context = canvas.get_bitmap_context()

@canvas.request_draw
def animate():
    w, h = canvas.get_logical_size()
    bitmap = np.random.uniform(0, 255, (h, w)).astype(np.uint8)
    context.set_bitmap(bitmap)

loop.run()

Requires Python >=3.10. At least one backend must be installed separately for rendering to work.

Verify before relying

  • Whether the 2-clause BSD license mentioned in the description is the actual license applied to the package.
  • Performance characteristics and typical use-case scale (e.g., resolution, frame rate, latency).
  • Maturity and stability guarantees given the first release was in late 2024.
  • Which specific backends are available and their individual installation requirements.

Package facts

License not declared (unclear)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 1 — numpy
Maintenance actively maintained — 24 days since the last release
Last repo commit
First released
Downloads 94,666/month — #13,316 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: rendercanvas-2.7.2-py3-none-any.whl

Keywords: canvas, rendering, graphics, wgpu, qt, wx, glfw, jupyter

Tags

cross-platform canvas APImulti-backend renderingwgpu canvas abstractionGUI-agnostic graphics windowrender to multiple backendscanvas widget frameworkportable graphics rendering
cross-platformgraphics-abstractionwgpu

More Graphics packages