Graphics at

This site contains articles and software that I, Ryan Holmes, have written. These are quite old now, and kept merely for historic purposes.

Topical Articles

This collection began as resource pages for the Introduction to Computer Graphics class at Arizona State University, which I co-taught during the 2003-2004 academic year. Each page describes or introduces a topic in computer graphics.

Utah Teapot

The Utah Teapot is a frequently used dataset in rendering. This page briefly describes the teapot's history and makes the dataset available for download.

Subdivision Surfaces

A Quick Introduction to Subdivision Surfaces briefly discusses several subdivision surface schemes, shows examples, and links to other webpages with more information.


An OpenGL Skeleton contains a Visual C++ 6.0 MFC project with a basic OpenGL window. This skeleton code may be useful if you are interested in experimenting with OpenGL in a VC++/MFC environment. A step-by-step walkthrough with commentary on the creation process is also included.


OFF Files describes the OFF file format many of my programs use, provides old sample code for loading and saving a basic OFF file, and includes links to other programs that use OFF files. If your program uses an OFF file and you'd like it to be mentioned here, contact me.


The DCEL Data Structure for 3D Graphics describes the doubly-connected edge list data structure with emphasis on its use for computer graphics. I include a small OpenGL program for visualizing a DCEL and example code for the basic structure.


These are homepages for the various applications I have written for modeling and rendering 3D objects.


RoffView was my first 3D application. I expanded and rewrote it over the years, but my more recent applications have largely subsumed its functionality.


MeshMan is a direct descendent of RoffView, incorporating code from a number of my class projects over the course of my Master's program.


Vorpal is a volumetric modeling tool, suitable for creating STL files for rapid-prototyping.


Yar is Yet Another Raytracer, implementing distributed raytracing and photon mapping for OFF files.


Tricelpa is a particle engine for experimenting with particle effects. It has a companion program, TricelpaSaver, that allows those particle effects to be used as a Windows screensaver.