TUGS—a tool for teaching computer graphics
John V. Clevenger, Rick Chaddock, Roger Bendig · ACM SIGGRAPH Computer Graphics · 1991
One of the best methods of teaching students about the principles underlying computer graphics systems is to have them develop an implementation of a "graphics pipeline" supporting modeling, viewing, and rendering operations. When completed, such an implementation represents a sophisticated package capable of producing complex images. However, these complex images typically cannot be generated until at or very near the completion of the project. We describe a tool called TUGS which has been developed to support the incremental development of a complex graphics system and which provides the ability to produce complex images early in the development process.TUGS is a complete graphics modeling and rendering system built from a highly-modularized set of primitive operations. Students can replace individual pieces of the TUGS system with their own implementations, while retaining use of the remaining TUGS routines. This allows incremental development of a complete system, while at the same time providing the ability to generate complete images. It also provides a vehicle for selective consideration of the many issues involved in modeling and rendering systems; those areas deemed most important can be assigned to students for implementation, while TUGS can be relied on to provide compatible implementations for the others. TUGS also includes a substantial collection of support routines to help reduce the "overhead" incurred in implementation efforts. These include command input parsing, 3D transformations, vector and matrix algebra operations, metafile storage, and support for device-independent low-level graphics, as well as many others.