
Version 0.42 12/10/98
(C) Jason Leigh
Electronic Visualization Lab
University of Illinois at Chicago
Requirements
Compiling LIMBO
Instructions
Navigation
Wand Buttons
Other Tips
Update History
LIMBO is a simple template of a program that is designed to give people
a starting point to develop collaborative programs in VR. The program
lets you load 3D models files (OBJ, DXF, Inventor, VRML 1 and any other
formats Performer can load) into the scene, and move them. Each participant
is visible as an avatar.
You can load a max of 64 objects into the virtual world. Participants
can join in and leave at any time.
The participants can also speak to each other via an asynchronous intercom
system.
This software is free! If you use this in your project,
great! Just let us know what you do with it and it add a citation on
your next paper or project pointing to one of our CAVERN
papers and WEB page. If you would like us to showcase your work we
would be happy to link to it from out CAVERN WEB page.
If you have questions, comments, suggestions etc, please email me at:
cavern@evl.uic.edu
Requirements
CAVE Library
CAVERN (at least version 2.2)
Performer 2.x
Compiling LIMBO
Edit the lines in the Makefile and in SERVER/Makefile to point to the location
of your CAVERN and CAVE library distribution. Also add the necessary -lelm
library for CAVE library licensing.
Then type:
Instructions
For simplicity each collaborator should have their own copy of the entire
LIMBO distribution. For help type:
limbo
-h
There are a number of ways to run LIMBO. I will outline 3.
0. Connecting your LIMBO client to our server
in Chicago
At EVL we now have a permanent LIMBO server running and we invite you
to stop by and visit us. To do this type:
limbo -n Your_name -w evl -s limbo.evl.uic.edu
1. Connecting 2 clients to each other
Lets say you have 2 computers, one called: laurel and the other called
hardy.
Lets assume laurel will act as the server in this case.
So on laurel type:
Wait till limbo has completely loaded. Now on hardy type:
Now you should be able to see each other as an avatar. Use the wand's joystick
for navigation.
To load objects into the scene:
Lets say you are on hardy and want to load an object into the space.
Type:
delimbo limbo laurel localModelFile 0
limbo is the name of the world (default is limbo).
localModelFile is some 3D model file like demo1.iv - note:
it is important that the proper suffixes are maintained (e.g iv, dxf, obj).
There are sample models in the SAMPLES directory.
0 is the index/slot to choose for the object (You can choose values
between 0 and 63.)
If you want to remove the object type:
delimbo limbo laurel NONE 0
2. Connecting clients to a central server
In this example we designate a separate computer as the server.
On a separate computer (say call it beeviz), go into the SERVER directory
and run:
irb
Now on any other machine run limbo like:
limbo -s beeviz -n Jason
Finally to upload models type:
delimbo limbo beeviz localModelFile 0
limbo is the name of the world (default is limbo).
localModelFile is some 3D model file like demo1.iv - note:
it is important that the proper suffixes are maintained (e.g iv, dxf, obj).
There are sample models in the SAMPLES directory.
0 is the index to choose for the object (You can choose values between
0 and 63.)
If you want to remove object X type:
delimbo limbo beeviz NONE X
where X is the index of the object (from 0 to 63)
Navigation
Use the joystick on the wand for navigation.
Wand Buttons
LEFT Button - lets you pick and move an object. The intersection
is shown as a blinking white box.
MIDDLE Button - lets you fly towards whatever your wand is intersecting
with so you don't have to deal with navigation.
RIGHT Button - press and hold the button down while speaking
into the microphone. Release the button to deliver your message to everyone.
To do this make sure that your audio-in and audio-out in the audio panel
is set at 11kHz. Run the audio panel by typing: apanel
LEFT and MIDDLE Button together - lets you delete the
object that you are pointing at.
Other Tips
Now you can run LIMBO in any directory other than
the directory in which LIMBO was installed. To do this you need to set
the environment variable LIMBO to point to the directory where the LIMBO
installation resides.
e.g. setenv LIMBO /usr/local/limbo
Also to set a permanent location for your own LIMBO
database use the LIMBO_DB environment variable.
e.g. setenv LIMBO_DB ~/mylimbodb
The network port that LIMBO opens for accepting incoming
connections can be set using the -l option at limbo's command line.
In addition the port number that LIMBO will connect-to at the remote site
can be changed using the -r option. By default both of these
values are set at 10000.
Update History
Version 0.42 (12/10/98)
-
Additional code has been added allowing you to more easily share your own data. See lim_user.c++.
Avatar's names are printed including full hostname resolution.
Version 0.41 (12/3/98)
-
A permanent LIMBO server has been set up at EVL.
The world name is: evl and the server name is: limbo.evl.uic.edu.
You can use your LIMBO browser to jump into our world.
-
Bug fixes for version 0.4 involving limbo path names
that occur when you try to run LIMBO a separate directory from LIMBO's
installation directory.
-
LIMBO_TEMP directory is no longer needed. Temporary
files are written to /usr/tmp.
Version 0.4 (11/24/98)
-
This version of LIMBO must use at least version 2.2 of CAVERN.
-
The parameter list for launching limbo and delimbo have been changed. They
are:
limbo [-n your_name] [-w world_name] [-s server_address] [-l local_port]
[-r remote_port] [-help]
delimbo world_name remoteIP <local_object_file | NONE> id
By including the world_name parameter you can use the same LIMBO
program to browse different limbo worlds just by changing the name of the
limbo world. By default the world's name is limbo. But you can have different
people build their own worlds with their own unique world names and you
run limbo to tour them. Limbo will cache the objects for each of these
worlds in completely separate databases hence keeping the contents and
state of the worlds separate. Used in conjunction with the server address
you can have many servers host many worlds.
The local_port and remote_port parameters allow you to override the
network port numbers from their default values (10000).
-
Fixed another small bug in version 0.32a that may
appear when objects are erased in LIMBO.
-
Added LIMBO and LIMBO_DB environment variables. See
TIPS above.
Version 0.32a (11/21/98)
-
Modified LIMBO database path names so that many independent
LIMBO worlds can be managed by 1 server. See lim_appName.h++
Version 0.31a (11/17/98)
-
Fixed a tiny bug when erasing objects in LIMBO
Version 0.3a (10/27/98)
-
Added collision detection to navigation so that you
cannot walk through walls and you can climb objects.
-
Added rotation with object movement.
-
NOTE: LIMBO 0.3a is NOT compatible with older versions
of LIMBO.
Version 0.2a (6/6/98)
-
Fixed a small bug in object position synchronization
on start up.
-
Changed avatar designs yet again.
Version 0.1a (6/1/98)
-
Must be compiled with CAVERNsoft Version 1.7.
-
Changed avatar designs.
-
Added ability to point and remove an object.
-
Supports all the file formats supported by Performer
as long as the filename suffixes are correctly kept.
Version 0.0a (4/3/98) - First release.