The project

Description:

Currently Smokeview runs only on desktop systems--Unix(SGI), Linux, and yes, even Windows. Using DIVERSE and DGL, this project's primary objective is to get Smokeview running with full functionality in the CAVE. Smokeview as written by Glenn Forney using GLUT, is approximately 30,000 lines of FORTRAN, C/C++ code that must be closely examined and restructured so that it will run under DGL.

Motivation:

The CAVE is an immersive environment, and would provide another fascinating method of visualization. In the CAVE, images are projected so that one feels as if they might simply reach out and grab objects in the virtual world. Think, if one is not at all familiar with the CAVE, a very simple and preliminary version of the holodeck so prominently and imaginatively portrayed on Star Trek. The idea of being immersed in a building that was on fire, and being able to 'walk' through it with fire and smoke surrounding, is motivation enough for this project. But there are potential training benefits as well. For example, a group of firemen in the CAVE immersed in a scenario might be asked what to do and where to go in the building given their knowledge and training, as in the fatal townhouse example. If they should choose to open a door or vent that could prove harmful, Smokeview might show this. All without any danger or harm to anyone or anything! This is in the future of course, but a very real possibility.

Software components used:

Virginia Tech's own DIVERSE and DGL

Simply, DIVERSE is a set a APIs (Application Programming Interfaces) that allow Virtual Environments (VE) to be built independent of the hardware chosen to display the VE. Herein lies the tremendous advantage using DIVERSE--that one may develop an application (such as Smokeview) on the desktop, then that same code will run on the CAVE, Immersadesk, or HMD without any significant changes to the code! So, instead of having an individual tying up the expensive and popular CAVE for developing an application to run on it, the desktop may be substituted instead for the majority of development work. Since desktop systems are much less expensive than the CAVE, this saves substantial amounts of money, not to mention aggravation.

DGL is a subset of DIVERSE, and will allow applications written in low level OpenGL code, to run in the desktop CAVE simulations as well as the actual CAVE and other immersive hardware. Please have a look at the DIVERSE website for much greater depth of information. There are some simple DGL examples here, there is a link to them on the left side of the page. Hopefully it will provide some insight into how a DGL application runs.

Progress and Current State of Project:

As of this moment, only the townhouse model is loaded and running under DGL. I almost have one of the fire and smoke animations running but not quite. The menus are an issue that must be dealt with so that in the future, one might be able to select the scenario and different items to be visualized. Currently, because there is no parallel to the menuing system in GLUT with DGL, I have to figure out a way to integrate this into the DGL Smokeview application. Coming soon, I promise! Progress has been somewhat slow and difficult, due to the complexity and length of Smokeview. And oh yeah, coursework and occasional laziness have nothing to do with the progress! Check back occasionally because this site will be constantly updated with progress reports and improvements. Here is a screenshot of what I currently have running under DGL (and the CAVE)

As one might easily be able to discern, the model does not look quite right. There are some scaling and occlusion issues that must be dealt with as well. The white lines surrounding the townhouse are its' boundaries, and the lines around that are simulating the walls of the CAVE.

The image below the townhouse is called the CAVE Devices Simulator, because it simulates the tracking of a person in the CAVE and changes the perspective of the diplayed image accordingly. Note the position of the sliders which connect through shared memory, and change the perspective of the image as if one were moving about inside the CAVE. This is an application of DTK, which is also a component of DIVERSE. Here is a short film showing how moving the sliders affects the image. Again sorry for the poor quality of the film...I will upload a smoother one as soon as the problems with the SGI Octane are figured out.

DGLSmokview.mov (4.3MB)