pyrender
Easy-to-use Python renderer for 3D visualization
What it is and what it does
Pyrender is a Python library for rendering 3D scenes and meshes to images, with both an interactive viewer and a headless offscreen renderer. It implements the glTF 2.0 specification and supports physically-based rendering with metallic-roughness materials, shadow mapping, transparency, and texture mapping. The package integrates tightly with trimesh, inheriting support for dozens of mesh formats (OBJ, STL, PLY, GLB, and others).
It is designed for visualization tasks in machine learning pipelines, scientific computing, and graphics applications where you need to render 3D geometry without a display. The interactive viewer offers keyboard and mouse controls for camera manipulation, lighting adjustment, and real-time inspection of scenes. Offscreen rendering can be accelerated via GPU using EGL or OSMesa backends on servers without a display.
Use it for:
- Render 3D mesh outputs from machine learning models to image files for inspection or dataset generation.
- Visualize scientific simulation results (point clouds, volumetric data) in an interactive 3D viewer.
- Generate synthetic training images from 3D CAD models using physically-based rendering on a headless server.
- Convert and inspect 3D mesh files in various formats (OBJ, STL, GLB) with an easy-to-use viewer.
- Batch-render multiple 3D scenes to depth and color images for computer vision applications.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Pyrender renders 3D scenes to images and provides an interactive viewer, supporting glTF 2.0 meshes, physically-based materials, and GPU-accelerated offscreen rendering on headless systems.
Yes, if you need 3D rendering and visualization in Python. The package is stable, permissively licensed, and has low install friction. However, maintenance is dormant (last release 2021, no recent commits beyond early 2025), so expect no bug fixes or feature updates; verify compatibility with your Python version and dependencies before relying on it for production systems.
Install
pyrender on PyPI
pip
pip install pyrenderuv
uv add pyrenderpoetry
poetry add pyrenderInstalling pyrender
Before you install
Low friction install with a pure-Python wheel. Maintenance is dormant—last release was in 2021 and no commits since early 2025, though the repository remains active and the package has accumulated 1467 stars.
License in practice
MIT License (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source projects.
Quickstart
pip install pyrender
import pyrender
import trimesh
mesh = trimesh.load('model.obj')
scene = pyrender.Mesh.from_trimesh(mesh)
pyrender.Mesh.show(scene)
Requires OpenGL support; GPU-accelerated offscreen rendering needs EGL or OSMesa backend on headless systems.
Verify before relying
- Current compatibility with Python versions beyond 3.6 (classifiers list 2.7, 3.5, 3.6 but package is from 2021).
- Whether all 10 runtime dependencies are actively maintained and compatible with modern environments.
Package facts
| License | MIT License (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 10 — freetype-py, imageio, networkx, numpy, Pillow, pyglet, PyOpenGL, scipy, six, trimesh |
| Maintenance | dormant — 2,003 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 851,201/month — #4,905 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyrender-0.1.45-py3-none-any.whl
Keywords: rendering, graphics, opengl, 3d, visualization, pbr, gltf
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
mitsubaMitsuba 3 is a research-oriented rendering…
permissive · top 15,000 on PyPI
panda3d-simplepbrProvides a physically-based rendering (PBR)…
permissive · top 15,000 on PyPI
pyrealsense2Python wrapper for Intel RealSense SDK 2.0 that…
permissive · top 15,000 on PyPI
panda3d-gltfAdds glTF 2.0 file loading to Panda3D,…
permissive · top 15,000 on PyPI
pygltflibReads, writes, and manipulates GLTF and GLB 3D…
permissive · top 5,000 on PyPI
meshcatmeshcat is a Python interface to a…
permissive · top 5,000 on PyPI
viserViser is a Python library for 3D visualization…
permissive · top 5,000 on PyPI
bpyExposes Blender's 3D creation suite—modeling,…
copyleft · top 15,000 on PyPI
modernglModernGL is a Python wrapper over OpenGL Core…
permissive · top 15,000 on PyPI
gsplatgsplat is a CUDA-accelerated Python library for…
unclear · top 15,000 on PyPI