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.
Vispy is a young library under heavy development at this time. It targets two categories of users:
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 (a GPU language) 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.
We are still working on a complete user guide for Vispy. In the meantime, you can:
- Check out the gallery
- Use the mpl_plot experimental OpenGL backend for matplotlib
- Start learning OpenGL (see below)
- Write your own visualizations with gloo (require knowing some OpenGL/GLSL)
- Start using the higher-level interfaces (visuals, scene graph)
Vispy will eventually provide high-level facilities to let scientists create high-quality, high-performance plots without any knowledge of OpenGL. In the meantime, you can learn more about modern OpenGL in the references below.
Even when Vispy is mature enough, knowing OpenGL will still let you write entirely custom interactive visualizations that fully leverage the power of GPUs.
- A tutorial about Vispy, by Cyrille Rossant, published in the IPython Cookbook
- A tutorial about modern OpenGL and Vispy, by Nicolas Rougier
- A paper on the fundamentals behing Vispy: Rossant C and Harris KD, Hardware-accelerated interactive data visualization for neuroscience in Python, Frontiers in Neuroinformatics 2013
- A free online book on modern OpenGL (but not Python): Learning Modern 3D Graphics Programming, by Jason L. McKesson
- A PyOpenGL tutorial
- A tutorial on OpenGL shaders