Final Paper |
Professor Interrante’s lab during summer 2003 focused on preparation for research experiments. The planned research revolves around the development of GLCreator, a virtual reality architecture program. In the beginning of the summer GLCreator offered only a minimal number of functions and had only the capability to draw boxes. One of the future research projects will focus on the effect of perception and body movement in architectural creation. The experiment will bring in architecture students to study the differences in what and how they create in a two-dimensional world verses a three-dimensional world. This experiment will try to decipher if there is a difference, as well as what the difference is, between creation by a person who can use their body and walk around their creation versus a person who only uses their hands and sees in two dimensions. In short, does body movement affect creation?
![]() |
| A view of the lab showing the trackable area |
My project for the summer was to add a drawing function to GLCreator to aid future research experiments. By adding the drawing capability, users of GLCreator have another tool to duplicate other forms of architectural design equipment. Since I lacked a background in graphics, my program development started by learning the OpenGL graphics language. I proceeded to create cubes and pyramids, as well as experimented with rotation and translation. I found that having a background in Linear Algebra helped greatly in learning the fundamentals of graphics.
I created two drawing tools, each with a different form of display. My first drawing program displayed a list of cubes at the (x, y, z) location given by the Hi-Ball tracking system. I designed a cube class which, when the hand-held trigger device is pulled, provides the (x, y, z) location of the Hi-Ball hand-held device and creates a cube at that location. While the trigger is held down and the (x, y, z) location changes, cubes are created at the given points. After creation, the cubes are stored in a list, which is used for display. Using this method for display helps with efficiency of GLCreator and causes the program to run more smoothly. Virtual Reality is very time dependant. If there are too many calculations the images that are displayed in the head-mounted display appear too slowly causing the user to feel nauseous or dizzy. To aid the user with drawing the cubes a pencil wand points to the location where the cubes will appear.
One of the problems with this drawing design involves the display of the cubes at an appropriate distance from other cubes. If the tracker moves to quickly there are gaps between the displayed cubes causing the cubes to be scattered and not resemble a line. On the other hand, if the tracker moves to slowly, many cubes are displayed in the same general area wasting valuable memory and eventually slowing the program to an unusable state.
The first drawing program has been added to GLCreator. However, some of the features that have been added and the drawing function still require the use of keyboard short cuts. In the future, the drawing function will be added to the already existing kiosk enabling the user to choose drawing while immersed in virtual reality. One of the working functions that has not yet been added to GLCreator is line drawing. This function takes in points and draws a straight line of cubes between the inputs. Other functions that need to be added are size and color changing options for the cubes. There is a paint pallet that has been created for the kiosk while in drawing mode to provide these options to the user. The pallet uses a form of ray tracing that involves the pallet being segmented into triangles. This procedure works by a ray being administered from the selection tool in the direction of the pallet. By giving the starting point and direction of the ray, the ray's intersection point on the pallet is calculated. The large triangles are then tested for ray intersection. After a "hit," the program repeatedly checks smaller and smaller triangles until a specific paint color is known to be intersected. For the calculations of this procedure I used a Point-in-Polygon Test with Barycentric coordinates.
The second drawing feature duplicates a ribbon appearance. The ribbon functionality is based on catmull rom spline construction. Catmull rom splines are unique from other mathematically computed arcs in that they pass through all of their control points, and these user-selected points define the arc. This is desirable so that the ribbon will be displayed where expected. The function is dependant on the four control points used to calculate the equation for display.
![]() |
GLCreator, while usable by computer scientists, needs to be developed to a more advanced state before experiments can be done with architects. The drawing program needs to be optimized and more features need to be added to provide users with capabilities that are supplied by other drawing programs. In order for the research to be successful GLCreator needs to offer many of the features that other architecture programs provide. My research gives GLCreator new functions that bring it closer to being usable in perceptual and movement based research.