Menu

PyJuggler 0.9.1 is available

PyJuggler 0.9.1 is a bug-fix release made to correct problems with the use of Python 2.3 on Windows.

For more information and downloads, go to the following ebsite:

http://www.vrjuggler.org/pyjuggler/

The full source code and binary versions of PyJuggler for Fedora Cora 1, Red Hat Linux 8.0, and Microsoft Windows (Visual C++ 7.1) can be downloaded from this page:

http://www.vrjuggler.org/pyjuggler/download.php

All three include a compiled version of PyGMTL. A pre-compiled copy of Boost.Python from Boost 1.31.0 comes with the VR Juggler 2.0 Alpha 4 dependencies. It is highly recommended that the dependency distribution be used. The package for your platform and compiler can be acquired ere:

http://sourceforge.net/project/showfiles.php?group_id=8041&package_id=117007

Please note that most of the pre-compiled versions of PyJuggler were built against Python 2.2. I made a new VR Juggler dependency distribution for Visual C++ 7.1 that includes a build of Boost.Python compiled against Python 2.3. The builds of Boost.Python included with the other dependency distributions were compiled against Python 2.2.

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.

Current Status
--------------
Since PyJuggler 0.1 was released in March 2003, a lot of work has gone into improving the code base. Version 0.1 was a proof of concept, but this new version is much closer to being a robust, full-fledged tool. Class coverage is now considered complete, and nearly all of GMTL can be
accessed through the PyGMTL bindings (available with the GMTL source).

PyJuggler 0.1 was very unstable because of multi-threading issues, and those have long since been resolved. Detailed bug reports relating to application crashes would be helpful in improving PyJuggler further.

The vrj::OsgApp bindings are new in this release and have not yet been tested with PyOSG. Since PyJuggler and PyOSG are fundamentally based on Python/C, everything should work fine. However, there are known incompatibilities with Boost.Python and some other Python bindings libraries when trying to pass objects between the two. In most cases,
it should not be necessary for a vrj.OsgApp subclass to have to worry about OSG objects being passed back and forth between C++ and Python, but time and use will tell if this is going to be an issue or not.

Known Problems
--------------
Trying to compile PyGMTL with Visual C++ 7.0 results in numerous compile errors not seen with other C++ compilers (GCC and MIPSpro). It is unclear whether the problems are with the PyGMTL code or with the compiler. At this time, Visual C++ 7.1 (from .NET 2003) is required for
both PyGMTL and PyJuggler.

Posted by Patrick Fewell-Hartling 2004-07-02

Log in to post a comment.