Main repository for Vispy
Clone or download
djhoese Merge pull request #1548 from djhoese/bugfix-doc
Update docs to fixed news page with 2018 section
Latest commit 2411968 Nov 30, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
codegen Remove year from all source file copyright lines Oct 16, 2017
doc @ 1323098 Update docs to fixed news page with 2018 section Nov 30, 2018
examples Fix invalid literals in text visual test Nov 22, 2018
js Update notebook widget deps to remove security vulnerability Apr 30, 2018
make Switch back to HTTPS Mar 6, 2018
vispy Change NotImplemented to NotImplementedError Nov 22, 2018
.coveragerc add dummy backend (each function raises error) Oct 19, 2014
.gitignore Add .pytest_cache/ to .gitignore Feb 15, 2018
.gitmodules Move documentation from docs to doc. May 27, 2016
.spyderproject fix face/vertex colors (#1254) Nov 23, 2016
.travis.yml Merge remote-tracking branch 'origin/master' into sdf Mar 30, 2018
LICENSE.txt Remove year from all source file copyright lines Oct 16, 2017 Fix jupyter widget to work with ipywidgets 7.0+ Dec 24, 2017
Makefile First attempt at PySide2 support Feb 14, 2018
README.rst Correct relocated link Jul 22, 2018
appveyor.yml Merge remote-tracking branch 'origin/master' into sdf Mar 30, 2018
pytest.ini Add pytest.ini to ignore 'js' directories Mar 6, 2018
setup.cfg Move flake8 exclusions to setup.cfg Nov 22, 2018 Update to only compile cython if cython is installed Mar 4, 2018
stdeb.cfg MRG: Omit 2.6, fix image_tester deprecation (#1353) Sep 8, 2017 Fix that syntax errors were not properly shown when using proxy module. Feb 13, 2014


VisPy: interactive scientific visualization in Python

Main website:

Build Status Appveyor Status Coverage Status Zenodo Link

VisPy is a high-performance interactive 2D/3D data visualization library. VisPy leverages the computational power of modern Graphics Processing Units (GPUs) through the OpenGL library to display very large datasets. Applications of VisPy include:

  • High-quality interactive scientific plots with millions of points.
  • Direct visualization of real-time data.
  • Fast interactive visualization of 3D models (meshes, volume rendering).
  • OpenGL visualization demos.
  • Scientific GUIs with fast, scalable visualization widgets (Qt or IPython notebook with WebGL).


Using VisPy

VisPy is a young library under heavy development at this time. It targets two categories of users:

  1. Users knowing OpenGL, or willing to learn OpenGL, who want to create beautiful and fast interactive 2D/3D visualizations in Python as easily as possible.
  2. Scientists without any knowledge of OpenGL, who are seeking a high-level, high-performance plotting toolkit.

If you're in the first category, you can already start using VisPy. VisPy offers a Pythonic, NumPy-aware, user-friendly interface for OpenGL ES 2.0 called gloo. You can focus on writing your GLSL code instead of dealing with the complicated OpenGL API - VisPy takes care of that automatically for you.

If you're in the second category, we're starting to build experimental high-level plotting interfaces. Notably, VisPy now ships a very basic and experimental OpenGL backend for matplotlib.


VisPy runs on Python 2.7+ and Python 3.3+ and depends on NumPy. You also need a backend (PyQt4/PySide, PyQt5/PySide2, glfw, pyglet, SDL, or wx).

PyQt5/PySide2 should be considered more experimental than PyQt4/PySide.

VisPy can be installed either via pip:

` pip install vispy `

or within the Anaconda Python distribution. Anaconda provides a convenient package management system. Installing VisPy can then easily be achieved by adding conda-forge to the channels with:

` conda config --add channels conda-forge `

Once the conda-forge channel has been enabled, vispy can be installed with:

` conda install vispy `

Development Installation

As VisPy is under heavy development at this time, we highly recommend developers to use the development version on Github (master branch). You need to clone the repository and install VisPy with python install.

As a one-liner, assuming git is installed

git clone && cd vispy && python install --user

This will automatically install the latest version of vispy.

Structure of VisPy

Currently, the main subpackages are:

  • app: integrates an event system and offers a unified interface on top of many window backends (Qt4, wx, glfw, IPython notebook with/without WebGL, and others). Relatively stable API.
  • gloo: a Pythonic, object-oriented interface to OpenGL. Relatively stable API.
  • scene: this is the system underlying our upcoming high level visualization interfaces. Under heavy development and still experimental, it contains several modules.
    • Visuals are graphical abstractions representing 2D shapes, 3D meshes, text, etc.
    • Transforms implement 2D/3D transformations implemented on both CPU and GPU.
    • Shaders implements a shader composition system for plumbing together snippets of GLSL code.
    • The scene graph tracks all objects within a transformation graph.
  • plot: high-level plotting interfaces.

The API of all public interfaces are subject to change in the future, although app and gloo are relatively stable at this point.


VisPy began when four developers with their own visualization libraries decided to team up: Luke Campagnola with PyQtGraph, Almar Klein with Visvis, Cyrille Rossant with Galry, Nicolas Rougier with Glumpy.

Now VisPy looks to build on the expertise of these developers and the broader open-source community to build a high-performance OpenGL library.

External links