For
Compiled Code Users (ccc31-bin-SGI.tar.gz)
– The binary
executables were made for N32 using threads. Unless you want to change
these values or modify the code it is recommended to use this method.
2. Unzip and untar the ccc31 file.This can be put anywhere and will create a ccc31 directory upon unzipping.
3. Unzip and untar the optional models.tgz file.The models can be put anywhere, but for convenience should most likely be put within the ccc31 directory or a subdirectory within this.
4. The curses file should be put in the perl5 directory and untarred from there (it will add some necessary perl scripts). You will most likely have to be logged on as root to do this.
For
Source Code Users (ccc31-src.tar.gz)
2. Untar the first two files (ccc31 and CAVERN). These can be put anywhere, but both should be in the same base directory (e.g. both untarred in /users/people/homer/ will create /users/people/homer/CAVERN and /users/people/homer/ccc31).
3. Unzip and untar the optional models.tgz file.The models can be put anywhere, but for convenience should most likely be put within the ccc31 directory or a subdirectory within this.
4. The curses file should be put in the perl5 directory and untarred from there (it will add some necessary perl scripts). You will most likely have to be logged on as root to do this.
5. Limbo
was made to be able to operate on 32, N32 and 64 bit operating systems.If
you know which one you are then you should modify the Makefile within the
ccc31 directory to refer to the appropriate thread or sproc files (you
can also choose between sproc or thread).The
line looks like this:
If you want to use 64 bit then change the
N32 to 64 (..._PTHREAD_64), and similarly for 32.You
will also have to change the directory references within the first 12 lines
so that it knows where to look for your CAVERN and CAVE directories.
6. Also
within the ccc31 directory you must change the CAVERN_MAKEFILE_INCLUDES_N32
(or 32) file to refer to where you put the CAVERN directory.
7. Within
the CAVERN directory you have to change the appropriate PTHREAD or SPROC
include file (the one you chose to use in step 5) to reference your CAVERN
directory.
e.g.
CAVERN=/usrnew/people/gredward/CAVERN
8. Now
to compile the code you must be in the ccc31 directory, then type "make
all".
1. To
run the ccc, there are two possible ways to do so.If
you want to use voice commands (ideal for the cave) then you will require
a voice recognition software package.Please
refer to the voice
recognition portion of the ccc web site for more information on how
to set this up.If you want to run
the program with a menu selection system then enter the ccc31 directory
and run the cccmenu script followed by a -n and your "name".For
example:
cccmenu
-n "name"
A -n is used to specify your avatar
name and a
-s is used to specify a server if you are connecting
to another user.Examples with and
without another user:
Examples:
For single user usage with menu: cccmenu -n George
For multiple users with menu: server person: cccmenu -n serverguy
other people:
cccmenu -s SERVERGUY_LOCATION -n Bart
where SERVER_GUY_LOCATION is either a network name
or an IP address of the server person's computer.
**************************************************************************
The VT-CAVE CCC add-on to Limbo allows the following:
o shows optional two-dimensional radar of all avatar positions.
o shows optional three-dimensional radar of all avatar positions.
o shows optional list of participants and their current distance from your avatar.
o allows you to tether to another user and follow their movements.
o allows you to share the view of another user.
o allows you to record your movements and play them back at a later time.
o allows a shortcut for you to easily load and unload model files.
o provides a voice recognition interface for the commands.
o provides a menu interface for the commands.
o allows you to teleport to a user or object's position.
o
allows you to set collision detection on or off.
Improvements to Limbo 0.5 itself:
In addition to the added CCC functionality. The limbo code itself has been improved by:
o allowing models to now be loaded and unloaded in any order.
o the addition of a sky to the world.
o the button diagram now disappears after 7 seconds so that it does not obscure your view.
o A framecount crashing bug that occurred on the CAVE with multiple users has been fixed (for more information on this see the Bug Fixes section below).
o
The rotating cube that used to be used for selection has been replaced
by a transparent laser beam that hits the object selected.
**************************************************************************
To operate the CCC the following command instruction
set is provided:
To view and hide CCC awareness tools:
o computer show/hide participant list please
o computer show/hide two-dimensional radar please
o computer show/hide three-dimensional radar please
o
computer show/hide all please
To load and unload files into Limbo:
o computer load/unload "iv/flt/pfb-filename" please
OR
o computer load "iv/flt/pfb-filename" as “name you want to give it in CCC” please
o computer unload "name you gave it in CCC” please
NOTE: the type of file must be a .iv, .flt or .pfb
file.
To teleport to a place or user:
o computer teleport/translate/jump/port to "john" please
o computer teleport/translate/jump/port to 1.0 1.0 1.0 please
NOTE: when giving a place you must use the first decimal
place as well and you must enunciate the space between each number
To Tether to another user:
o computer tether/attach/join to "greg" please
o computer detach from "greg" please
NOTE:in this
example you will be moved to where "greg" is and will be bound to his movements
until you detach.
To Share the view of another user:
o computer share "greg's" view please
o computer ownview please
NOTE:in this
example you will begin seeing through greg's eyes. Your avatar will appear
to remain in its original position to all other users. You will see through
his/her eyes until you invoke the ownview command.
To record your movements to a file:
o computer record "filename" please
o computer pause please//pauses recording but keeps file open
o computer continue please //"unpauses" recording to the file
o computer stop please //stops recording and closes the file
NOTE:the file
is placed in the current directory (most likely ccc) and this is also where
the play function will look.You
will not have to worry about this unless you change computers and want
to take the movement files with you.
To playback recorded movement files:
o computer play "filename" please
o computer pause please//pauses the play but keeps the file open
o computer continue please//continues to play from where paused
o computer stop please//stops playing and closes the file
NOTE: while playing or paused while playing you cannot
move or select things
More Tether Information:
The tether function now moves you to the person you
want to tether to.When tethered
to someone you are pulled along beside them and your avatar does not have
collision detection so that while being pulled you will pass right through
things and not hinder the person that is tethering you.A
status message will appear telling you who you are tethered to and will
disappear if the tether is detached or the other user leaves limbo.
More Recording Information:
The recording function at the moment is very basic
and was unable to be completed as wished because of time constraints for
this project.It currently uses a
reduced number of points to save disk space.Although
an interpolation algorithm was planned, it has not yet been implemented.The
playback speed is currently dependent on the speed of your computer and
not the speed at which the movements were recorded.Also,
the recording function only currently records your movements.It
will not register any loading, unloading, selecting or moving of objects
nor will it register the display or hiding of ccc awareness tools.
******************************************************************************
Limbo used to crash our CAVE with the error message:
> Error Message:
PF Fatal/Internal: Assertion failed _pfCurrrentPipe->pf_getFrameCount() ...
PFNotice(11): Caught SIGCHLD. Exiting due to death
of child with ...
> When:
This error happens when limbo runs on the CAVE, where there is a processor assigned per wall. In this case performer has a processor per pipe and one process per stage. The error would happen at inconsistent amounts of time, but usually occurred within 5 minutes.
> Reason:
The reason was because of limbo's avatar's not being synchronized with the performer APP->CULL->DRAW multiple step drawing model. Updating of the avatar' positions would occur at any stage (instead of only in APP, as it should be), leading to the crash.
> Fix:
Add a traverse function to the avatar, to be called
in the pre stage of the APP stage of Performer.Now
the callback function only updates the variables, but does not change the
avatar position. The callback function reads the variables and change the
DCS. This bug has been fixed in the new version by changing the lim_avatar.c++
and lim_avatar.h++ files.
Known Bugs:
- Only the person that loads an object may unload that object (a Limbo 0.5 limitation ).
- Path Recording only records avatar movements (no loading, unloading, etc..).
- If it crashes unexpectedly you may have a catchThrowSocket
file within you usr/tmp directory that you have to delete.This
will prevent you from running limbo again by presenting a message to the
effect that it cannot connect.
******************************************************************************
o CAVERNst_baseAvatar_c.h++ changed to accomodate ccc tethering and sharing view functionality as well as avatar colors in ccc and the deletion of users from the CCC when appropriate.
o CAVERNst_baseAvatar_c.c++
o lim_avatar.h++
o lim_avatar.c++to fix Limbo's CAVE framecount crashing problem (not ccc related)
o lim_model.h++ to allow you to load and unload models in any order (not ccc related)
o lim_model.c++ (not ccc related)
o lim_perf.h++ added sky and timed button display, and changed flashing cube
o lim_perf.c++
o lim_pick.c++ changed for the selection beam that replaces the cube
o lim_pick.h++
o lim_user.c++ changed for ccc tether functionality
o
lim_main.c++ to involve the console in the main loop of operation
http://www.sv.vt.edu/future/cave/software/ccc/install/install.html