root/juggler/branches/2.0/README.txt

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