root/juggler/tags/1.1_dr_3/README.txt

Revision 8264, 8.4 kB (checked in by patrickh, 7 years ago)

Regen.
Added HTML versions of the files for those wacky folks with web
browsers.

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