root/juggler/tags/2.0_alpha_2/README.txt

Revision 11292, 7.6 kB (checked in by patrickh, 6 years ago)

Regenerate after Plexus and DSO removal.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1                             Juggler Project Overview
2
3   The Juggler Team
4
5    $Date$
6
7      ----------------------------------------------------------------------
8
9    Table of Contents
10
11    Introduction
12
13    Compiling
14
15    Modules
16
17                 VR Juggler
18
19                 VR Juggler Portable Runtime (VPR)
20
21                 Juggler Configuration and Control Library (JCCL)
22
23                 Gadgeteer
24
25                 Sonix
26
27                 Tweek
28
29    VR Juggler 2.0
30
31 Introduction
32
33    Congratulations, you have downloaded the source code to the Juggler
34    Project, open source software for virtual reality from the Virtual Reality
35    Applications Center at Iowa State University. Within this document, you
36    will find information about the new VR Juggler 2.0 directory structure
37    including descriptions of all the component modules that make up the
38    Juggler Project. Instructions for building the individual modules can be
39    found within the specific module directories and on the VR Juggler
40    website.
41
42 Compiling
43
44    For information on compiling the source code, refer to the INSTALL file
45    found in this directory.
46
47 Modules
48
49    The Juggler Project is made up of several modules that have evolved from
50    the original VR Juggler source tree. Within this section, we describe each
51    of the modules, what they are used for, and, when possible, how they
52    relate to VR Juggler 1.0.
53
54   VR Juggler
55
56     Directory
57
58    juggler/modules/vrjuggler
59
60     Description
61
62    VR Juggler is still VR Juggler. There are many new features in VR Juggler
63    since the 1.0 series, but in essence, it is still the same familiar tool.
64    Of the projects listed below, VR Juggler depends on VPR, JCCL, and
65    Gadgeteer. Its individual components have simply been broken out into
66    individually developed modules. More information about the latest version
67    of VR Juggler is given in the following section.
68
69   VR Juggler Portable Runtime (VPR)
70
71     Directory
72
73    juggler/modules/vapor
74
75     Description
76
77    VPR is the foundation for all the Juggler modules. It provides an
78    object-oriented, cross-platform abstraction layer to common operating
79    system features such as threads, semaphores, and sockets. All the other
80    modules depend on VPR so that they may be ported easily to other
81    platforms. In VR Juggler 1.0, VPR was the collection of directories
82    Threads, SharedMem, and Sync. Since then, that code collected into a
83    single library and greatly extended into what is now VPR.
84
85    VPR itself contains a great deal of platform-specific code. It categorizes
86    this code into subsystems, and various subsystems may be chosen depending
87    upon the target platform and target threading system. For example, on
88    IRIX, there are three possible subsystems: SPROC, POSIX and Netscape
89    Portable Runtime (NSPR). Win32, on the other hand, only uses the NSPR
90    subsystem. The subsystems are:
91
92      o SPROC (IRIX only)
93
94      o POSIX (UNIX-based platforms only)
95
96      o NSPR (all platforms, required on Win32 and Mac OS X)
97
98    Because VPR is the foundation for all the other modules, it is important
99    to choose the right subsystem.
100
101    Choosing the correct subsystem depends on many factors. For example, which
102    of the subsystems are supported on the desired target platform? Are there
103    compatibility issues with software outside the Juggler Project? In most
104    cases, however, the choice is straightforward. Indeed, IRIX is the only
105    platform that presents any real issues. In particular, the use of OpenGL
106    Performer from SGI raises important compatibility concerns. SPROC threads
107    are the only threads that are stable with OpenGL Performer (on IRIX).
108    POSIX threads will work, but applications may sometimes crash on startup.
109    As of this writing, OpenGL Performer does not work at all with NSPR. Other
110    software may pose similar problems, and it is important to know the needs
111    of other tools when configuring VPR.
112
113    On platforms other than IRIX, the choice is relatively simple. If NSPR is
114    available, its use is recommended. If NSPR is not available, POSIX threads
115    is the next logical choice--at least on UNIX-based platforms. On Win32 and
116    Mac OS X, NSPR is required.
117
118    As mentioned above, all the other modules depend on VPR, so it must be
119    compiled before anything else. For more information on compiling VPR,
120    refer to modules/vapor/INSTALL.txt.
121
122   Juggler Configuration and Control Library (JCCL)
123
124     Directory
125
126    juggler/modules/jackal
127
128     Description
129
130    JCCL provides the configuration layer for VR Juggler and other modules.
131    The config chunks and reusable configuration editor JavaBeans come from
132    JCCL. These JavaBeans are used by the VR Juggler configuration editor
133    tool, VRJConfig. In essence, JCCL is the VR Juggler 1.0 Config directory
134    with many new features including XML-based config files.
135
136    To build the JCCL C++ library, CppDOM is required for parsing XML. CppDOM
137    is a lightweight XML parser written in C++ and designed to provide an
138    interface similar to JDOM. More information can be found at
139    http://xml-cppdom.sourceforge.net/.
140
141    To build the configuration editor JavaBeans, JDOM and the Tweek Java API
142    are required. JDOM can be downloaded from http://www.jdom.org/. We require
143    version B7 or newer, and we recommend version B8. Tweek is another module
144    in the Juggler Project, and it will be built automatically as a dependency
145    of JCCL.
146
147   Gadgeteer
148
149     Directory
150
151    juggler/modules/gadgeteer
152
153     Description
154
155    Gadgeteer is made up of the code that was formerly in the VR Juggler 1.0
156    Input directory. It contains all the drivers used for VR Juggler input
157    devices, and it contains the high-level Input Manager. The goal with
158    Gadgeteer is to mold it into the first dynamically loadable component
159    within the VR Juggler microkernel. At this time, it must still be compiled
160    in, but we hope to generalize the concepts of VR Juggler Managers to the
161    point that the kernel knows nothing about them until they are loaded at
162    run time.
163
164   Sonix
165
166     Directory
167
168    juggler/modules/sonix
169
170     Description
171
172    Sonix provides an interface useful to many simple VR and entertainment
173    applications to trigger and position sounds in 3D. This library provides
174    simple audio sound objects on top of several audio APIs. The interface to
175    Sonix is kept very simple in order to get people up and running with sound
176    as fast as possible.
177
178    The interface to sonix is kept very simple in order to get people up and
179    running with sound as fast as possible. Sonix is reconfigurable allowing
180    audio APIs to be safely swapped out at runtime without the dependent
181    systems noticing. Systems using this layer expect to be completely
182    portable.
183
184   Tweek
185
186     Directory
187
188    juggler/modules/tweek
189
190     Description
191
192    Tweek is a cross-platform, cross-language library consisting of a C++ API
193    and a Java API. Its purpose is to provide a convenient mechanism for a
194    Java-based GUI to interact with a complex C++ library or application. The
195    Tweek GUI can be run in virtual environments, external on a palm top, or
196    on the desktop next to a running application. Each of these methods gives
197    a familiar 2D widget set that can control applications flexibly. To
198    provide this capability, it uses CORBA.
199
200    The Java code in Tweek includes the Tweek Java API and the Tweek JavaBean
201    loader application. The Java API is provided to make the use of JavaBeans
202    and CORBA simpler for programmers. The JavaBean loader application simply
203    loads the Beans it finds and presents them to the user in some sort of
204    structured manner (for example, a collection of icons with web-style
205    navigation).
206
207 VR Juggler 2.0
208
209    TODO... (this is the version number of the next release of Juggler)
Note: See TracBrowser for help on using the browser.