--- id: rendercanvas version: "2.7.2" license: unclear license_treatment: unclear maintenance: active --- # rendercanvas — One canvas API, multiple backends License: unclear · Maintenance: active · Downloads: 94.7K/mo ## 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 above — 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 pip install rendercanvas uv add rendercanvas 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_current - Install friction: low - Maintenance: active - Downloads: 94.7K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags cross-platform canvas API, multi-backend rendering, wgpu canvas abstraction, GUI-agnostic graphics window, render to multiple backends, canvas widget framework, portable graphics rendering, cross-platform, graphics-abstraction, wgpu [View on SkillFed](https://skillfed.io/packages/rendercanvas) · [View on PyPI](https://pypi.org/project/rendercanvas/)