Calit2 - StarCAVE
The StarCAVE is a virtual reality system developed and housed at the California Institute for Telecommunications and Information technology (Calit2) at the University of California, San Diego (UCSD). Worth almost one million, StarCaAVE consists of a set of 15 back projected screens and a hexagonal floor - each of these surfaces with two high tech 2048x1536 projectors, which completely enclose the user in a "cave" like structure. The user wears a pair of lightweight polarized 3D glasses (like the new ones used for 3D cinema movies) and the a wand like device to load and navigate 3D models. Furthermore one user can also wear a hat with four ping-pong like balls on the brim, and two video cameras above the cave (the top is open) track these balls so that the scene can subtly adjust as the user moves his head. Various articles have been written explaining the StarCAVE (google "starcave calit2"), or you can watch this youtube video. This article is for the benefit of myself and anyone else who'd like to "use" the CAVE by uploading their 3D models.
Creating VRML2 Files to Show in the StarCAVE
Before you attempt to make any models for the StarCAVE, the most critical step is to make contact with one of the few users who has the room keys, the root password for the machine which runs StarCAVE and also know how to start it! The StarCAVE has been setup to read OBJ and VRML files - preferably VRML2 - OBJ and VRML1 don't support animation. I believe VRML and OBJ are the only formats it reads, so you'll have to find some program (Blender is one option and Cinema 4D another), that can export your model to one of these. Each model / VRML file should be put in a separate folder - this is not a necessity, but highly recommended. Lights, textures, animation, cameras and material transparency are all supported (all of these will be imported from your VRML2 file), however you should read the notes below to make sure they appear as desired.
- Lights: The StarCAVE system adds its own set of light to every model you open - even those with lights already. This is useful if your scene has no lights, but if you have lights already it means your scene will probably appear brighter than you want and you'll have to turn off these extra lights via "View > Other lights" to see your original lighting. In the view menu you'll also notice that (by default) specular lighting is off (to enable quicker performance).
- Textures: Any textures in your scene should be put in the SAME directory as your VRML file (not a textures subdirectory) and linked to via a relative link.
- Animation: Animation (supported in VRML2) can look cool, but I'd suggest you use it sparingly because (a) it loops indefinitely unless you figure out some way to stop it and (b) unless it's a subtle movement there's a good chance of motion sickness! It seems to me animation can have some strange/unexpected effects in the cave - especially if you have a camera in the scene. When you load a VRML with animation a separate animation window is supposed to come up, allowing you to pause or slow the animation, but this may not always be the case, hence you should save a non-animated version in the same directory.
- Scene Cameras: I'd generally avoid adding any Cameras to your VRML file. If there are cameras in your VRML file, I believe the StarCAVE uses the first one (in the hierarchy) and seems to lock to it, restricting free movement with the wand. If you do insist on having scene cameras remember it will be quite restrictive and loop indefinitely, so I'd suggest exporting one vrml file with and one without the camera (the latter allowing you to look around freely).
- Text: If you've added text using a 3D modeling/animation software I'd suggest converted it to a mesh, otherwise it can look quite funny. Although there's no way to ensure it always faces the user, 3D text looks pretty cool and in my opinion it's usual a good idea to provide SOME type of labeling for you model. Keep in mind that the people who may visit the cave and open the model will probably know nothing about what they're looking at (beyond the filename), so 3D text can help inform people and also credit the people who made the model and/or collected the data in the first place!
- Scene Graph / Object Hierarchy: Your scene graph should be as small as possible. A scene with thousands of different objects (such as spheres) can traverse slowly, so you may see a big performance increase by combing these into a single object. Be warned that the (parallelized) processors use by the StarCAVE are not especially fast. If the model renders slowly it's almost impossible to navigate, and you'll have to drag and release the wand very slowly, or it will not register the movement and snap back to its previous position (make it seem like you are "stuck"). It's quite unfortunately but a VRML file that's above 50 MB or >100,000 polygons is likely to run slowly in the cave - too slowly to show off effectively.
- Scale, Orientation and Starting Position: The issue of scale and orientation appear to be quite tricky. I'm still working this out, but assuming there are no cameras in the scene, the default view of the model is down the negative X axis - meaning you'll see a "Right view" where up is positive Y in your model (as expected), but right is positive Z. Since most modeling programs view down positive Z, you may want group and rotate everything in your scene by +90 degrees around the Y axis (H=90 deg) to have it "face" the user when the model loads. From my estimation, the camera faces the model origin from a distance of about 20 units (in my case centimeters) - making the starting position about (20,0,0) in world space, so you may want to scale and position your model accordingly. A cube at origin of about 10x10x10 cm at origin should show nicely at the front of the StarCAVE (facing forward) and occupy about 10 degrees of your vision. StarCAVE models generally work best (and have a good wow factor) if you start with your model zoomed out and then the user can zoom in.... rather than starting in the middle of a complex scene and the user not knowing what he's seeing. Once the model is open you can use "Scale Model" on the main menu if the model appears to big or small, but if you get the position and scale of your model right in VRML you won't have have to worry about this step.
Turning on StarCAVE
To test your model you'll need to login using the CAVE passwords, then open a terminal and run the following commands:
- To turn on the CAVE projectors (usually off to conserve energy and bulbs): $> cave_on
- To start the software: $> opencover <complete_path_to_VRML/OBJ/Model_file>
When you are done using, hit escape to kill opencover. It should also clean it up on all the nodes of the cluster driving the CAVE. Then run cave_off from command line to turn off all the projectors
- NCMIR - contains a small list of other facilities at CalIt2.
- UCSD's StarCAVE Is a Real 3D Super-High-Def Danger Room - little puff piece (one of many on the internet).