1. Introduction

IVuPy is a set of Python bindings for two of the Coin3D C++ class libraries: Coin and SoQt.

Coin3D serves to create 3D graphics applications and is fully compatible with the SGI Open Inventor 2.1 API (a 'standard' library for 3D visualization and visual simulation software in science and engineering). The Coin library adds VRML97 support, 3D sound, 3D textures, and parallel rendering on multiple processors. It requires OpenGL, but is further platform independent. The SoQt library is the interface between Coin and Qt.

IVuPy aims to be a solid basis for large Python programs geared to 3D visualization and data analysis with a modern GUI (Qt).

Therefore, IVuPy has the following features:

  1. IVuPy requires at least one of the Numerical Python extensions packages: NumPy (based on Numeric with improvements from numarray), Numeric, and numarray. NumPy, Numeric and/or numarray extend the Python language with new data types that make Python an ideal language for numerical computing and experimentation like MatLab and IDL. The transfer of data between the Open Inventor data structures and the Numerical Python arrays is implemented in C++ for efficiency.
  2. IVuPy has been developed using SIP, the Python interface generator for PyQt. This provides optimal integration with PyQt and very efficient bindings as exposed in Python Wrapper Tools: a Performance Study.

Get started with a copy of the Inventor Mentor and study the Python translations of SGI's implementation of the Inventor Mentor examples in the examples/Mentor directory.

Note: Translating some or all of the C++ examples is a very good exercise.

Note: Section 3.2 explains how IVuPy takes care of calling the member functions ref(), unref(), and unrefNoDelete() behind your back. There should be no need to call those functions, and if you do, you do it at your own risk.

Note: Install Doxygen and GraphViz to make better documentation for Coin and SoQt with clickable inheritance and colloboration diagrams. The clickable diagrams are very useful, even if you are an Open Inventor wizard.