[SciPy-user] ANN: first release of IVuPy-0.1

Gerard Vermeulen gerard.vermeulen at grenoble.cnrs.fr
Sun Feb 12 15:39:03 CST 2006

On Sun, 12 Feb 2006 11:22:23 -0700
Fernando Perez <Fernando.Perez at colorado.edu> wrote:

> Gerard Vermeulen wrote:
> > I am proud to announce IVuPy-0.1 (I-View-Py).
> > 
> > IVuPy is a Python extension module developed to write Python programs
> > for 3D visualization of large data sets using Qt and PyQt.  Python is
> > extended by IVuPy with more than 600 classes of two of the Coin3D C++
> > class libraries: Coin and SoQt.
> It looks very nice.  Perhaps you could add a link to the topical software wiki 
> (when the site comes back up :), along with a brief note on how it differs 
> from VTK?  I'm actually curious on that last one (so feel free to reply on the 
> list if you prefer to putting it on the wiki), as I'm much more familiar with 
> VTK, so I'd love to hear what the differences are.

My knowledge of VTK is practically zero, but I will try.  The motivation
for developing IVuPy originated in the request of a PyQwt-user (the owner of
a company specializing in high-end technical software) complaining that VTK was:
(1) slow,
(2) memory hungry, and
(3) hard to program.

Besides that, VTK does not integrate very well with PyQt (I have tried to help
to fix it, see the QVTKRender*.py files in VTK).  You have to do the right
thing to get it working.

Addressing (1) and (2):

The PyQwt-user would love to display data consisting of 1e7 vertices (IVuPy is
getting sluggish in displaying 1e6 vertices on my hardware).

I have summarized some of my "benchmark results" of VTK, Coin3D and OpenSceneGraph
at http://ivupy.sourceforge.net.  It could be that VTK was treated unfairly,
because I was not yet aware of:
but Coin3D is tuned out of the box for large data sets.

I would be happy to take the fastest VTK version of the first example of
http://ivupy.sourceforge.net/examples.html into account in the comparison.

Addressing (3):

The concepts needed to program VTK and Coin3D seem to be quite different.

Coin3D is a scene graph library.  Nodes in the scene graph can be for instance:
(1) simple shapes such as cones, spheres, cylinders
(2) different type of surfaces
(3) manipulators (for interaction with the user)
(4) materials (color, lightning)
(5) separators
A manipulator node (or material node) affects only the nodes in the scene graph
below it. A separator is used to limit the scope of a node above it.
http://ivupy.sourceforge.net contains a few links explaining why scene graph
libraries optimize OpenGL programs.

Anyhow, this programming model suits the PyQwt-user very well and I like it too.

Disadvantages of Coin3D:

Coin3D is more low-level than VTK.  For instance, a 3D axis frame is missing
from Coin3D (it is on my todo list for IVuPy) and I believe that VTK comes with
more algorithms such as polygonizing an implicit 3D surface or contouring levels
on a 3D surface.

Regards -- Gerard

PS: I will try to put something shorter on the Wiki (I am new to Wikis, though).

More information about the SciPy-user mailing list