VR Juggler 2.2 Beta 1 released


Two years a few days after the release of VR Juggler 2.0.0, VR Juggler 2.2 Beta 1 finally sees the light of day. VR Juggler 2.2 represents a significant improvement over the VR Juggler 2.0 release series, and we think that users will be quite happy with the results. Download information is available at this location:


RPMs for several Linux distributions are available in the "infiscape-testing" repository. Information about this is available on the page above. VR Juggler 2.2 Beta 1 is officially version 2.1.31, and the RPMs use the actual version identifiers rather than the symbolic "Beta 1" name.

In general, most applications should migrate from VR Juggler 2.0 to 2.2 quite seamlessly, but there are bound to be exceptions. All users and application developers are strongly encouraged to read the VR Juggler 2.2 Migration Guide carefully. It can be found here:


Note especially that configuration files need to be updated for proper migration.

New Features and Improvements

Here is a list of new features and improvements relative to VR Juggler 2.0.3:

* Improved cluster scalability and performance.

* Improved error handling and recovery through the use of exceptions for error reporting. VR Juggler 2.2 is based on VPR 2.0 which uses exception handling for all error reporting. vpr::ReturnStatus is now considered deprecated.

* Easier command-line application build support by leveraging Flagpoll (see https://realityforge.vrsource.org/view/FlagPoll/WebHome for more information). While the use of Flagpoll on Windows is still being refined, by the time VR Juggler 2.2.0 is released, command line compilation using Flagpoll will be supported on all platforms. Note that the *-config Perl scripts (such as vrjuggler-config) no longer exist in VR Juggler 2.2. Forward compatibility for this change was introduced with VR Juggler 2.0.2.

* Cocoa support on Mac OS X. VR Juggler applications are deployed as bundles, and X11 is not required at all. Mac OS X users should review the updated VR Juggler Getting Started Guide for information on application execution options.

NOTE: The VR Juggler Programmer's Guide is still not quite complete with respect to Cocoa use. In the meantime, send questions about this topic to the vrjuggler-info mailing list.

* Support for parallel installations. To facilitate long-lived applications, the Juggler runtime (shared libraries and data files) from multiple versions can be installed in parallel. To get the most from this capability, users are strongly encouraged to use GMTL 0.5.4 and CppDOM 0.7.9 or newer, both of which also support parallel installations.

* Versioned headers, data files, and shared libraries on non-Windows platforms. This is all in support of parallel installations.

* Versioned DLLs on Windows. Windows builds should use automatic linking to avoid complicated detection of .lib file names. Forward compatibility for this change (i.e., automatic linking) was introduced in VR Juggler 2.0.2.

* Support for 64-bit applications on Windows. This requires the use of the CVS HEAD version of NSPR (currently known as NSPR 4.7).

* Reduced dependency on NSPR on Windows. We are using Windows threading and synchronization primitives directly instead of the NSPR wraeppers. The (very) long-term goal is to drop the need for NSPR on Windows if its quirks and limitations continue to be a liability.

* Reduced run-time dependence on environment variables such as VJ_BASE_DIR and SNX_BASE_DIR. This has been in the works since the VR Juggler 2.0 beta stages. Now, for the Windows case, running VR Juggler applications does not require setting VJ_BASE_DIR at all. The installation path is determined at run time when the DLLs are attached to the process. The Visual C++ project files still reference VJ_BASE_DIR and VJ_DEPS_DIR, however.

* Support for OpenSG 2.0 (relative to the current SVN trunk version of OpenSG 2 or the fcptr_stable_jun07 branch) in vrj::OpenSGApp.

* Early support for Direct3D. The VR Juggler Direct3D Draw Manager is in the alpha stages of development, and feedback and improvements would be welcome.

* Proper destruction of singletons created using the VPR singleton preprocessor macros when the application exits. This facilitates much cleaner shutdown, especially in the case of device drivers.

* More flexible debug handling on Windows. There are now two debug-enabled versions of all binaries: one linked against the release runtime and one linked against the debug runtime. This allows applications linked against the release runtime to switch to using debug-enabled Juggler libraries simply by changing the PATH environment variable. This same capability has always existed on non-Windows platforms by modifying (DY)LD_LIBRARY_PATH.

* Expanded use of boost::shared_ptr<> for better (internal) memory handling. User-level code will probably not see much of this.

* Eliminated the need for OSG- and OpenSG-based applications to define plain OpenGL lighting just to make the VR Juggler simulator components render well. See the OSG and OpenSG sample applications for the current state of things.

* Initial Unicode support for Gadgeteer keyboard/mouse devices.

* Support for the noDNA X-IST device. Submitted by Damien Touraine.

* Support for the USB Essential Reality P5 Glove. Submitted by Damian Touraine.

* Revamped Polhemus Fastrak driver that is much easier to configure.

* Enhanced configurability of multisampling with OpenGL windows. Currently, this is only supported fully on the X Window System.

More Information

New VR Juggler users should read the VR Juggler 2.2 Getting Started Guide:


All VR Juggler documentation can be found from this page:


The release of VR Juggler 2.2 Beta 1 means that support for VR Juggler 2.0 will be winding down. At this point, only critical bug fixes will be merged to the VR Juggler 2.0 branch in the Subversion repository, and it is very unlikely that there will be a VR Juggler 2.0.4 release.

Posted by Patrick Hartling 2007-07-14