PyJuggler 1.0 Beta 1 available
patrick at infiscape.com
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
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
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
(http://www.boost.org/libs/python/). Boost.Python makes the mapping
between C++ and Python quite simple. It also makes embedding Python in
C++ vastly easier than was previously possible.
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.
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: http://tinyurl.com/2msw3 | http://www.infiscape.com/
More information about the Python-announce-list