root/juggler/tags/2.0_beta_2/README.html

Revision 13785, 13.8 kB (checked in by patrickh, 5 years ago)

Regenerate.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 <html><head>
2       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3    <title>Juggler Project Overview</title><link rel="stylesheet" href="base_style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.62.4"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="d0e1"></a>Juggler Project Overview</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="othername">The Juggler Team</span></h3></div></div></div><div><p class="pubdate">$Date$</p></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#d0e15">Introduction</a></span></dt><dt><span class="section"><a href="#d0e26">Compiling</a></span></dt><dt><span class="section"><a href="#modules-section">Modules</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e42">VR Juggler</a></span></dt><dt><span class="section"><a href="#d0e56">VR Juggler Portable Runtime (VPR)</a></span></dt><dt><span class="section"><a href="#d0e93">Juggler Configuration and Control Library (JCCL)</a></span></dt><dt><span class="section"><a href="#d0e117">Gadgeteer</a></span></dt><dt><span class="section"><a href="#d0e131">Sonix</a></span></dt><dt><span class="section"><a href="#d0e147">Tweek</a></span></dt><dt><span class="section"><a href="#d0e163">VRJConfig</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e175">VR Juggler 2.0</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e15"></a>Introduction</h2></div></div><div></div></div><p>Congratulations, you have downloaded the source code to the Juggler
4     Project, open source software for virtual reality from the <a href="http://www.vrac.iastate.edu/" target="_top">Virtual Reality Applications Center</a>
5     at <a href="http://www.iastate.edu/" target="_top">Iowa State University</a>.
6     Within this document, you will find information about the new VR Juggler
7     2.0 directory structure including descriptions of all the component
8     modules that make up the Juggler Project. Instructions for building the
9     individual modules can be found within the specific module directories and
10     on the VR Juggler website.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e26"></a>Compiling</h2></div></div><div></div></div><p>For information on compiling the source code, refer to either the
11     <tt class="filename">INSTALL.txt</tt> or <tt class="filename">INSTALL.html</tt> file
12     found in this directory.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="modules-section"></a>Modules</h2></div></div><div></div></div><p>The Juggler Project is made up of several modules that have evolved
13     from the original VR Juggler source tree. Within this section, we describe
14     each of the modules, what they are used for, and, when possible, how they
15     relate to VR Juggler 1.0.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e42"></a>VR Juggler</h3></div></div><div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e45"></a>Directory</h4></div></div><div></div></div><p><tt class="filename">juggler/modules/vrjuggler</tt></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e51"></a>Description</h4></div></div><div></div></div><p>VR Juggler is still VR Juggler. There are many new features in
16         VR Juggler since the 1.0 series, but in essence, it is still the same
17         familiar tool. Of the projects listed below, VR Juggler depends on
18         VPR, JCCL, Sonix, and Gadgeteer. Its individual components have simply
19         been broken out into individually developed modules. More information
20         about the latest version of VR Juggler is given in the following
21         section.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e56"></a>VR Juggler Portable Runtime (VPR)</h3></div></div><div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e59"></a>Directory</h4></div></div><div></div></div><p><tt class="filename">juggler/modules/vapor</tt></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e65"></a>Description</h4></div></div><div></div></div><p>VPR is the foundation for all the Juggler modules. It provides
22         an object-oriented, cross-platform abstraction layer to common
23         operating system features such as threads, semaphores, and sockets.
24         All the other modules depend on VPR so that they may be ported easily
25         to other platforms. In VR Juggler 1.0, VPR was the collection of
26         directories Threads, SharedMem, and Sync. Since then, that code has
27         been collected into a single library and greatly extended into what is
28         now VPR.</p><p>VPR itself contains a great deal of platform-specific code. It
29         categorizes this code into subsystems, and various subsystems may be
30         chosen depending upon the target platform and target threading system.
31         For example, on IRIX, there are three possible subsystems: SPROC,
32         POSIX, and Netscape Portable Runtime (NSPR). Win32, on the other hand,
33         only uses the NSPR subsystem. The subsystems are:</p><div class="itemizedlist"><ul type="disc"><li><p>SPROC (IRIX only)</p></li><li><p>POSIX (UNIX-based platforms only)</p></li><li><p>NSPR (all platforms, required on Win32 and Mac OS X)</p></li></ul></div><p>Because VPR is the foundation for all the other modules, it is
34         important to choose the right subsystem.</p><p>Choosing the correct subsystem depends on many factors. For
35         example, which of the subsystems are supported on the desired target
36         platform? Are there compatibility issues with software outside the
37         Juggler Project? In most cases, however, the choice is
38         straightforward. Indeed, IRIX is the only platform that presents any
39         real issues. In particular, the use of OpenGL Performer from SGI
40         raises important compatibility concerns. SPROC threads are the only
41         threads that are stable with OpenGL Performer (on IRIX). POSIX threads
42         will work, but applications may sometimes crash on startup. As of this
43         writing, OpenGL Performer does not work at all with NSPR. Other
44         software may pose similar problems, and it is important to know the
45         needs of other tools when configuring VPR.</p><p>On platforms other than IRIX, the choice is relatively simple.
46         If NSPR is available, its use is recommended. If NSPR is not
47         available, POSIX threads is the next logical choice--at least on
48         UNIX-based platforms. On Win32 and Mac OS X, NSPR is required.</p><p>As mentioned above, all the other modules depend on VPR, so it
49         must be compiled before anything else. For more information on
50         compiling VPR, refer to <tt class="filename">modules/vapor/INSTALL.txt</tt>.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e93"></a>Juggler Configuration and Control Library (JCCL)</h3></div></div><div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e96"></a>Directory</h4></div></div><div></div></div><p><tt class="filename">juggler/modules/jackal</tt></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e102"></a>Description</h4></div></div><div></div></div><p>JCCL provides the configuration layer for VR Juggler and other
51         modules. The config chunks and reusable configuration editor JavaBeans
52         come from JCCL. These JavaBeans are used by the VR Juggler
53         configuration editor tool, VRJConfig (see below). In essence, JCCL is
54         the VR Juggler 1.0 Config directory with many new features including
55         XML-based config files.</p><p>To build the JCCL C++ library, CppDOM is required for parsing
56         XML. CppDOM is a lightweight XML parser written in C++ and designed to
57         provide an interface similar to JDOM. More information can be found at
58         <a href="http://xml-cppdom.sourceforge.net/" target="_top">http://xml-cppdom.sourceforge.net/</a>.</p><p>To build the configuration editor JavaBeans, JDOM and the Tweek
59         Java API are required. Tweek is another module in the Juggler Project,
60         and it will be built automatically as a dependency of JCCL. JDOM comes
61         with the Juggler Project source code and can be found in the directory
62         <tt class="filename">juggler/external/jdom</tt>.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e117"></a>Gadgeteer</h3></div></div><div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e120"></a>Directory</h4></div></div><div></div></div><p><tt class="filename">juggler/modules/gadgeteer</tt></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e126"></a>Description</h4></div></div><div></div></div><p>Gadgeteer is made up of the code that was formerly in the VR
63         Juggler 1.0 Input directory. It contains all the drivers used for VR
64         Juggler input devices, and it contains the high-level Input Manager.
65         The goal with Gadgeteer is to mold it into the first dynamically
66         loadable component within the VR Juggler microkernel. At this time, it
67         must still be compiled in, but we hope to generalize the concepts of
68         VR Juggler Managers to the point that the kernel knows nothing about
69         them until they are loaded at run time.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e131"></a>Sonix</h3></div></div><div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e134"></a>Directory</h4></div></div><div></div></div><p><tt class="filename">juggler/modules/sonix</tt></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e140"></a>Description</h4></div></div><div></div></div><p>Sonix provides an interface useful to many simple VR and
70         entertainment applications to trigger and position sounds in 3D. This
71         library provides simple audio sound objects on top of several audio
72         APIs. The interface to Sonix is kept very simple in order to get
73         people up and running with sound as fast as possible.</p><p>The interface to sonix is kept very simple in order to get
74         people up and running with sound as fast as possible. Sonix is
75         reconfigurable allowing audio APIs to be safely swapped out at runtime
76         without the dependent systems noticing. Systems using this layer
77         expect to be completely portable.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e147"></a>Tweek</h3></div></div><div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e150"></a>Directory</h4></div></div><div></div></div><p><tt class="filename">juggler/modules/tweek</tt></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e156"></a>Description</h4></div></div><div></div></div><p>Tweek is a cross-platform, cross-language library consisting of
78         a C++ API and a Java API. Its purpose is to provide a convenient
79         mechanism for a Java-based GUI to interact with a complex C++ library
80         or application. The Tweek GUI can be run in virtual environments,
81         external on a palm top, or on the desktop next to a running
82         application. Each of these methods gives a familiar 2D widget set that
83         can control applications flexibly. To provide this capability, it uses
84         CORBA.</p><p>The Java code in Tweek includes the Tweek Java API and the Tweek
85         JavaBean loader application. The Java API is provided to make the use
86         of JavaBeans and CORBA simpler for programmers. The JavaBean loader
87         application simply loads the Beans it finds and presents them to the
88         user in some sort of structured manner (for example, a collection of
89         icons with web-style navigation).</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e163"></a>VRJConfig</h3></div></div><div></div></div><p>VRJConfig is the configuration editor for VR Juggler. It is a
90       complete rewrite of VjControl, both in terms of the user interface and
91       the back-end code. The new interface is based on open discussion and
92       feedback from users of VR Juggler 1.0 and VjControl.</p><p>The back-end is much more extensible. It allows users to write
93       plug-in editors to simplify complex editing tasks. User-defined
94       configuration elements can be handled in a much more dynamic manner as
95       well. No modification of VR Juggler or JCCL &#8220;<span class="quote">system</span>&#8221; files
96       must be made to get user-defined elements into the editor.</p><p>VRJConfig is itself a JavaBean that is loaded into the Tweek Java
97       GUI. VRJConfig uses JavaBeans internally to facilitate user extensions.
98       All in all, VRJConfig is a highly dynamic, powerful editor for VR
99       Juggler configurations.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e175"></a>VR Juggler 2.0</h2></div></div><div></div></div><p>TODO... (this is the version number of the next release of Juggler)</p></div></div></body></html>
Note: See TracBrowser for help on using the browser.