README for VT-CAVE CCC ver 3.1 addition to Limbo 0.5

This file covers how to set-up ccc version 3.1 to run on your machine and contains the following information:

 
 
  1. Setup
  2. How to Run it 
  3. Added CCC functionality 
  4. The CCC command instruction set 
  5. Bug Fix 
  6. Limbo 0.5 Files Changed

1. Initial Setup:

1. Download the ccc31-bin-SGI.tar.gz file, the curses.tar file and the optional models.tgz file from our site. OR if you think you may want to modify the code then you will need the following instead: the ccc31-src.tar.gz file, the new CAVERN tar file (linked from our website), the curses.tar file, and the optional models.tgz from our site.

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:
 

 

Include usrnew/people/gredward/CAVERN/CAVERN_MAKEFILE_INCLUDES_PTHREAD_N32

 

 

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".
 

 

2. How to Run CCC:

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.
 

 

**************************************************************************

3. Added CCC functionality:

 

 

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.
 

 

**************************************************************************

4. Command Instruction Set for CCC:

 

 

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.
 

 

******************************************************************************
 

 

5. Bug fix:

 

 

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.
 

 

******************************************************************************
 

 

6. Limbo 0.5 Files Changed:

 

 

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
 

 


Greg Edwards

Virginia Tech
VT-CAVE
Created 10/16/99, Revised 01/11/99

http://www.sv.vt.edu/future/cave/software/ccc/install/install.html


Back to the CCC Homepage