vispy
Interactive visualization in Python
What it is and what it does
VisPy is a Python visualization library that harnesses GPU power through OpenGL to render interactive 2D and 3D plots of very large datasets. It targets two audiences: developers comfortable with OpenGL who want a Pythonic interface to graphics programming, and scientists seeking high-performance plotting without graphics expertise. The library provides gloo, a NumPy-aware wrapper around OpenGL ES 2.0, plus experimental scene-graph and plotting modules for building scientific GUIs. It integrates with multiple window backends (Qt, wx, glfw, Jupyter) and supports real-time data streaming, 3D mesh rendering, and volume visualization.
The package depends on numpy for array handling, freetype-py for text rendering, hsluv for color space conversion, kiwisolver for constraint solving, and packaging for version management. Installation requires a working OpenGL driver and display environment. VisPy is in active development (Alpha status) with a relatively stable app and gloo API, though higher-level plotting interfaces remain experimental.
Use it for:
- Render interactive scatter plots with millions of points for exploratory data analysis.
- Visualize 3D meshes and volumetric medical imaging data in real-time.
- Build scientific GUIs with fast, scalable visualization widgets in Qt or Jupyter notebooks.
- Stream live sensor or simulation data to an interactive OpenGL canvas.
- Create custom OpenGL visualizations using gloo without low-level graphics boilerplate.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
VisPy is a GPU-accelerated 2D/3D visualization library that renders large datasets interactively using OpenGL, offering both low-level graphics control via gloo and experimental high-level plotting interfaces.
Yes, if you need GPU-accelerated visualization of large datasets and can accept medium install friction and experimental high-level APIs. The gloo layer is stable and well-suited for custom graphics work. Skip if you need only static plots or lack GPU/display hardware, or if you prefer matplotlib/plotly's mature ecosystem.
Install
vispy on PyPI
pip
pip install vispyuv
uv add vispypoetry
poetry add vispyInstalling vispy
Before you install
Medium install friction due to compiled dependencies (freetype-py, hsluv, kiwisolver). Pre-built wheels cover Python 3.10–3.13 across macOS, Linux, and Windows. Actively maintained with a recent release.
License in practice
BSD-3-Clause is permissive; you can use, modify, and distribute VisPy freely in commercial or private projects provided you retain the license notice.
Quickstart
import vispy
from vispy import app, gloo
canvas = app.Canvas()
canvas.show()
app.run()
Requires an OpenGL-capable GPU and a display server (X11 on Linux, native on macOS/Windows; headless rendering requires additional setup).
Verify before relying
- Whether the experimental high-level plotting interfaces are production-ready or remain research-stage.
- Specific performance characteristics for datasets at different scales (millions vs. billions of points).
- Compatibility with Jupyter/IPython WebGL backend in modern notebook environments.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 5 — numpy, freetype-py, hsluv, kiwisolver, packaging |
| Maintenance | actively maintained — 86 days since the last release |
| First released | |
| Downloads | 1,685,141/month — #3,655 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: vispy-0.16.2-cp310-cp310-macosx_10_9_x86_64.whl; vispy-0.16.2-cp310-cp310-macosx_11_0_arm64.whl; vispy-0.16.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; vispy-0.16.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; vispy-0.16.2-cp310-cp310-win_amd64.whl; vispy-0.16.2-cp311-cp311-macosx_10_9_x86_64.whl; vispy-0.16.2-cp311-cp311-macosx_11_0_arm64.whl; vispy-0.16.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; vispy-0.16.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; vispy-0.16.2-cp311-cp311-win_amd64.whl; vispy-0.16.2-cp312-cp312-macosx_10_13_x86_64.whl; vispy-0.16.2-cp312-cp312-macosx_11_0_arm64.whl; vispy-0.16.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; vispy-0.16.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; vispy-0.16.2-cp312-cp312-win_amd64.whl; vispy-0.16.2-cp313-cp313-macosx_10_13_x86_64.whl; vispy-0.16.2-cp313-cp313-macosx_11_0_arm64.whl; vispy-0.16.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; vispy-0.16.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; vispy-0.16.2-cp313-cp313-win_amd64.whl
Keywords: visualization, OpenGl, ES, medical, imaging, 3D, plotting, numpy, bigdata, ipython, jupyter, widgets
Tags
More Visualization packages
matplotlib creates static, animated, and…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
plotlyPlotly is an interactive, browser-based…
permissive · top 1,000 on PyPI
graphvizGenerates DOT language source code for graph…
permissive · top 1,000 on PyPI
streamlitStreamlit transforms Python scripts into…
permissive · top 1,000 on PyPI
leatherLeather is a lightweight Python charting…
permissive · top 1,000 on PyPI
modernglModernGL is a Python wrapper over OpenGL Core…
permissive · top 15,000 on PyPI
naparinapari is an interactive, multi-dimensional…
permissive · top 15,000 on PyPI
dearpyguidearpygui is a GPU-accelerated GUI framework…
permissive · top 15,000 on PyPI
viserViser is a Python library for 3D visualization…
permissive · top 5,000 on PyPI
PyOpenGLPyOpenGL provides standard OpenGL bindings for…
permissive · top 5,000 on PyPI
datashaderDatashader converts large datasets into…
permissive · top 15,000 on PyPI
PyOpenGL-accelerateProvides Cython-compiled C extensions that…
permissive · top 5,000 on PyPI
sunpySunPy provides Python tools for accessing,…
permissive · top 15,000 on PyPI
pythreejsPythreejs bridges Python and Three.js to render…
permissive · top 15,000 on PyPI
wgpuwgpu-py provides a Python binding to WebGPU, a…
permissive · top 15,000 on PyPI