Counting 1,690 Big Data & Machine Learning Frameworks, Toolsets, and Examples...
Suggestion? Feedback? Tweet @stkim1

Last Commit
Aug. 18, 2017
Dec. 21, 2016


Join the chat at Documentation Version Anaconda-Server Badge Coverage Status Build Status

3d plotting for Python in the Jupyter notebook based on IPython widgets using WebGL.

Ipyvolume currenty can

  • Do volume rendering.
  • Create scatter plots (up to ~1 million glyphs).
  • Create quiver plots (like scatter, but with an arrow pointing in a particular direction).
  • Render in the Jupyter notebook, or create a standalone html page (or snippet to embed in your page).
  • Render in stereo, for virtual reality with Google Cardboard.
  • Animate in d3 style, for instance if the x coordinates or color of a scatter plots changes.
  • Integrates with

Ipyvolume will probably, but not yet:

  • Render labels in latex.
  • Do isosurface rendering.
  • Do selections using mouse or touch.
  • Show a custom popup on hovering over a glyph.
  • Be stylable.


Documentation is generated at readthedocs: Documentation

Screencast demos

Volume rendering


Glyphs (quiver plots)

screencast quiver


To install use pip:

$ pip install ipyvolume
$ jupyter nbextension enable --py --sys-prefix ipyvolume

To install use pip (as non-admin):

$ pip install ipyvolume --user
$ jupyter nbextension enable --py --user ipyvolume

Or with anaconda/conda:

$ pip install ipywidgets~=6.0.0b5
$ conda install -c conda-forge ipyvolume

For a development installation (requires npm),

$ git clone
$ cd ipyvolume
$ pip install -e .
$ jupyter nbextension install --py --symlink --sys-prefix ipyvolume
$ jupyter nbextension enable --py --sys-prefix ipyvolume

After changing the javascript, run npm install from the js directory, or webpack --watch and work from the examples/dev.ipynb notebook,

Latest Releases
 Jul. 8 2017
 Apr. 2 2017
 Apr. 2 2017
 Mar. 13 2017
 Feb. 17 2017