[SciPy-user] ANN: first release of IVuPy-0.1
Gerard Vermeulen
gerard.vermeulen at grenoble.cnrs.fr
Sun Feb 12 16:39:03 EST 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:
http://www.vtk.org/Wiki/VTK_FAQ#How_to_handle_large_data_sets_in_VTK
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