[IPython-dev] WebGL example in IPython notebook based on three.js

Cyrille Rossant cyrille.rossant at gmail.com
Tue Jan 20 04:09:08 EST 2015

Thank you for your feedback. VisPy/WebGL is definitely not yet ready
for production, I was essentially mentioning that there was work in
progress in that direction!

> - When I started this coding, the IPython notebook examples for vispy
> weren't readily available (I vagely remember failing to find them with
> google even though something was mentioned on the home page)

It's still experimental at this point, but a more robust version will
be available in the coming weeks.

> - The idea that you *have* to write low-level GLSL code seems a bit
> intimidating (with three.js you can, but don't need to)

That's actually not the case in the latest version, see for example
<http://vispy.org/examples/basics/scene/surface_plot.html>. We do have
high-level interfaces that don't require users to write GLSL. Only the
most advanced users will be interested in writing custom GLSL.

> - three.js includes nice controls to pan, zoom etc. out of the box

Idem, in VisPy we do have interactive "cameras" that provide controls
to pan, zoom, etc.

> - Because I'm trying to attract users to my software, I think it's
> absolutely essential to be able to use the nbconverted output to show nice
> interactive plots to potential users who haven't installed my program yet
> (and who may not even be familiar with the scipy ecosystem), as a kind of
> "marketing" tool.

That's a good point and that's definitely something on our radar.

> However, I'll definitely keep an eye out for progress on vispy, it sounds
> like some cool features are planned. The one thing I don't like about
> three.js is that it is very much fixed around the idea of always animating
> at 60 frames/sec for games etc. This means that it is chewing up significant
> CPU, even if the figure if not updating.

VisPy is indeed more efficient in that the scene is only updated when
needed (pan, zoom, etc.). But you can also have timer-based


More information about the IPython-dev mailing list