Sample Computer Graphics Projects
HMC Computer Science Department

Below are descriptions of a few projects completed by students in the computer graphics course at Harvey Mudd College. The students were given four weeks to complete their projects. All projects were implemented in C++ and openGL on SGI Indigo 2 Workstations. These represent about one-fourth of the projects done by students in the class.


Mirror Maze (B. Johnson and J. Larkin) This program allows the user to define and navigate through a 3D maze in which some of the walls are mirrors. The scene is rendered in real-time using an optimized stencil-buffering algorithm for the reflections.

MIDI Piano (M. Mogley) This project plays a MIDI file and interprets the notes as the appropriate keys on 3-dimensional baby grand piano. The piano can be manipulated in 3-dimensions. Other features include an opening piano cover and lid and an animated M.C. who marches out on stage and bows.

BSP Trees (M. Balloni and J. Miller) This project involved the design and implementation of a package of data structures and algorithms for binary space partitioning (BSP) trees. This package can be used to substantially improve rendering speeds of complex 3-dimensional scenes. A 3-dimensional scene is partitioned into a hierarchy of volumes and an algorithm determines which volumes must be rendered and which can be "culled out" for a given eye position.

Graphical File System Browser (D. Lundin) This program is a graphical file system browser. The user sees a set of cubes, representing the files and subdirectories within the current directory. The user can navigate up and down the directory structure by clicking on the appropriate cubes in the scene.


Virtual Pinball Game (B. Hyslop and A. Geiger) A pinball game specification language was developed and implemented. The language allows the programmer to rapidly construct and play a customized three-dimensional pinball game using a variety of objects (such as flippers, bumpers, etc.) with various properties.

4-Dimensional Visualization Toolkit (J. Bester and D. McCoy) This project involved the construction of a toolkit for the specification and projection of four-dimensional objects. The toolkit contains both generalizations of openGL functions to four dimensions as well as a viewer which allows the user to easily switch between various types of projections.

Nerd Fighter (T. Semple and C. Sloan) Nerd fighter is a game of combat involving two nerds, complete with horn-rimmed glasses and plastic pocket protectors. Each of two players controls a nerd. The current version of the game supports punching, blocking, ducking, and forward and backwards movement. However, the nerd's movements are specified in a Nerd Definition Language (NDL) which allows for new moves to be specified easily. Intersection testing and scoring are performed automatically.


Virtual Rollercoaster (J. Regier and J. Winstead) This program provides a GUI (graphical user interface) which allows the user to design and simulate a rollercoaster in three-dimensional space. The track comprises piecewise-Bezier curves defined by the user via a simple interface. The user can also specify "twists" in the track. Once the track is defined, the user can take a virtual rollercoaster on the track simulator. The simulator accounts correctly for velocity and acceleration.

Walking Man (K. Agarwal and P. Winston) Walking Man provides a GUI which allows the user to define the motions of a three-dimensional human form. The user specifies the motion as a function of time at five different joints via user-controllable parametric curves.

Quantum Mechanical Scattering (QMS) in Two-Dimenstions (I. Pieragostini) QMS solves the time dependent Schrodinger equation to simulate the interaction between a moving particle and a potential function. The wavefunction describing the particle is a Guassian wave packet. A graphical user interface is included to allow the user to edit input parameters and record output as a series of RGB files for conversion to a movie.