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

This file covers how to set-up ccc version 3.2 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 (same as version 3.1):

1. Download the ccc32-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 (ccc32-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 ccc32 file.This can be put anywhere and will create a ccc32 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 ccc32 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 (ccc32-src.tar.gz)

2. Untar the first two files (ccc32 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/ccc32).

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 ccc32 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 ccc32 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 ccc32 directory, then type "make all".
 

 

2. How to Run CCC:

1. To run the ccc, enter the ccc32 directory and type startCCC.

2. You are now presented with many options:

 - Name:  whatever you want your name to appear as in the world.  By default it will use your username, but you can change this to be

whatever you want for the purposes of the CCC.
 

 - I want to work: alone will mean that you cannot meet with other people in a common world somewhere.  If you want to work with others

then keep the default of collaborating in world named limbo.  If there is another world you wish to use then replace limbo by this.
 

 - Connecting to:  to be the server or work alone keep the default.  To connect to someone else enter their computer address name (i.e. viz8.sv.vt.edu) or the IP address of the computer you want to connect to.

 

 - Running on: if you want the menu system then select desktop.  If you want the voice commands then select CAVE.  If you want to run voice commands you will have to have a separate voice recognition software package and you will need to run a "throw -p grammar" session.  For more information on this please refer to the voice recognition section of the ccc web page (address given at top).

 

 - Remove other people...: This option is a timeout option for deleting users that may have become inactive or have lost the connection. If you plan to wait a long time for someone while doing nothing then you may want to set this value to be quite high.  On the downside, if the value is high and the person becomes disconnected in a non-standard way (if they exit normally there is no problem), then your computer will still think they are they for a long time and will create multiple copies of them if they try to log in to the world again during this period.

 

 - Start the CCC: start your engines!!! :)
 

 

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

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 has been improved from version 3.1 and now allows you to make jumps in the recording and also allows smoother recording through interpolation.  To make jumps simply pause the recording and then continue where you want it to begin.  When played back it will jump from one place to another.  If you want it to wait at either place then simply record the avatar in that position for the required amount of time.  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