PyJuggler 1.0 Beta 1 available

Patrick Hartling patrick at
Mon Dec 27 19:55:16 CET 2004

Following up on the release of VR Juggler 2.0 Beta 1, I am pleased to 
announce the release of PyJuggler 1.0 Beta 1.  This release includes 
many important additions over the last release in July 2004:

     1) Complete code coverage for user-visible application programming
     2) Addition of bindings for vrj::GlContextData<T> to allow for
        user-defined application-specific data in Python application
     3) Addition of bindings for cluster::UserData<T> to allow for
        user-defined shared data types in cluster configurations
     4) Addition of docstrings for all classes and nearly all methods and
     5) Support for Mac OS X (without PyJuggler.vrj.OsgApp, however)
     6) Support for pickling of types commonly used with
        application-specific shared data in cluster configurations
     7) Addition of bindings for Sonix in the new module PyJuggler.snx

For more information and downloads, go to the PyJuggler website:

The full source code and binary versions of PyJuggler for Fedora Cora 2 
and Microsoft Windows (Visual C++ 7.1) can be downloaded from this page:

I will be posting a build for Mac OS X 10.3 (Panther) later today or 
tomorrow once I get an installer created.

For more details on 2), 3), and 6) from above, refer to the updated and 
extended PyJuggler /Getting Started Guide/ on the PyJuggler 
documentation page:

The pydoc-generated API documentation is available with the pre-compiled 
releases and from the PyJuggler documentation page.

All pre-compiled releases include a compiled version of PyGMTL 0.4.5, 
which includes pickling support for all GMTL data types.  A pre-compiled 
copy of Boost.Python from Boost 1.32.0 comes with the VR Juggler 2.0 
Beta 1 dependencies.  It is highly recommended that the dependency 
distribution be used.  The package for your platform and compiler can be 
acquired here:

Please note that the pre-compiled versions of PyJuggler for Fedora Core 
2 and Windows were built against Python 2.3 and Open Scene Graph 0.9.8. 
  If you are using Python 2.4, you will have to build Boost.Python and 
PyJuggler yourself (it will work just fine).  If you are using OSG 
0.9.7, you will have to rebuild PyJuggler against that version.  If you 
are not using OSG at all, do not worry about this detail.  The access to 
PyJuggler.vrj.OsgApp through PyJuggler is optional, and its availability 
is determined at run time.

What is PyJuggler?
PyJuggler is an extension to VR Juggler I started in my spare time one 
weekend in November 2002.  Its main purpose is to fulfill a goal I have 
had for a long time: the ability to write VR Juggler application objects 
in a scripting language.  In this case, the language is Python, a mature 
and popular object-oriented scripting language.

Using PyJuggler, it is possible to write a VR Juggler application object 
in Python and load the object into the VR Juggler kernel, which of 
course is written in C++.  Python-based application objects can even be 
mixed with C++ application objects in the same kernel.  Lastly, it is 
possible to write the equivalent of a C++ main() function in Python so 
that a developer need never see or write any C++ code to use VR Juggler.

PyJuggler is built on top of the excellent Boost.Python v2 library 
(  Boost.Python makes the mapping 
between C++ and Python quite simple.  It also makes embedding Python in 
C++ vastly easier than was previously possible.

Current Status
The support for Mac OS X is new in this release.  Getting PyJuggler to 
work on Mac OS X required improving the way in which the VR Juggler 
libraries are compiled and linked.  To do this, I took advantage of all 
the work the Boost developers and users did to get Boost compiling and 
working well on Mac OS X.  Nevertheless, there is probably still room to 
improve the use of PyJuggler on Mac OS X.

Known Problems
At this time, third-party dependencies such as omniORB and Open Scene 
Graph are not getting along with PyJuggler on Mac OS X.  Therefore, 
PyOSG cannot be used with PyJuggler on Mac OS X, and the CORBA-based 
features of the VR Juggler C++ code base are not available through 
PyJuggler.  All other platforms are working fine.


Patrick L. Hartling                    | VP Engineering, Infiscape Corp.
PGP:          |

More information about the Python-announce-list mailing list