skillfed

vispy

Interactive visualization in Python

vispy v0.16.2 1.7M downloads/30d#3,655 on PyPI
Permissive license BSD-3-Clause Active released

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 vispy

uv

uv add vispy

poetry

poetry add vispy

Installing 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

Development Status :: 3 - AlphaFramework :: IPythonIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.9Topic :: Scientific/Engineering :: Visualization

Tags

GPU accelerated visualizationOpenGL interactive plottinglarge dataset visualization3D scientific visualizationreal-time data visualizationhigh-performance graphics renderingWebGL jupyter visualization
gpu-graphicsopenglscientific-visualization

More Visualization packages