Sample Computer Graphics Projects
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.
HMC Computer Science Department
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
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
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.