Description: For my final project I created a museum with paintings on the walls. There are four paintings in total, one on each side of the room. There are three lights, each of which can be turned on or off. The program features most of previous program options, such as the ability to turn on and off wire culling, and directional lighting. I set out to create a museum room with the ability to interact with the environment, and I am pleased with what I was able to come up with. The user can walk around the scene, getting close to the paintings to examine them, or the user can "sit" on a bench in the middle of the room to examine the paintings easier. Also, the whole idea of a museum scene reminded me of the movie Thomas Crown Affair, so I gave the user the ability to "steal" a painting and make a getaway (which exits the program). Controls: 1, 2, 3 = turn on and off the lights h = turn on/off positional lighting c = turn on/off culling r = reset to starting position s = sit on the bench (turning rate is now in 90 degree increments) j = steal or "jack" the painting by Monet, Dusk up arrow = move forward down arrow = move backward left arrow = turn left right arrow = turn right Moving towards the door exits the Museum Techniques: To get proper lighting on the walls I used nested for loops to create the walls with normals and vertices. For the floor, I placed a texture vertex at each corner of the QUAD that was generated. Each painting on the wall is actually on a separate plane than the wall, and is moved 0.1 units away from the wall so that there will not be any conflicts. The bench is made out of scaled solid cubes. I used code from Professor Buss' RGBImage program to load textures into memory. For movement, I made variables that kept track of the current view position, and I used the "angle" the view was facing along with glTranslatef(sin(degrees), 0, cos(degrees)) for the user to move. I also gave the user the ability to sit on the bench, which does not allow the user to move (translate) until the user stands up. However, the user can turn to view all the paintings in 90 degree increments. Also, the user can steal a painting off the wall. For that I simply removed the texture coordinates while still making a quad. The user can make an escape, or exit the program by running towards the door. For this, I used the user coordinates and told the program to exit when the user reached certain coordinates.