CS476: Computer Graphics

Computer graphics is the study and use of computer algorithms to simulate what humans see in the natural world, or to procedurally generate visual art. In essence, computer graphics is an attempt to teach a computer broadly how to do the job of a visual artist (and beyond!).

For the purposes of this course, a broad taxonomy of computer graphics is three-fold: 1. Rendering, or the generation of images of virtual worlds (including photorealistic images or chosen artistic aesthetic, such as Pixar movies) 2. 3D Shape representation and manipulation, or geometric data structures and algorithms to enable efficient and intuitive design of 2D surfaces and 3D volumes in 3D space 3. 3D Animation, or the modeling of dynamics in scenes over time, often simulating aspects of physics in our natural world. This hands on capstone course will be a breadth-first introduction to the world of 3D computer graphics. Rather than teaching the user interfaces of tools such as Blender and Maya, which are commonly used in video game design and movies, and which might be taught in a 3D design curriculum, we instead focus on the technologies themselves behind these programs. As such, the course will have a more mathematical and algorithmic focus. In particular, students will write code to implement vanilla tools from the ground up to design 3D scenes, to perform 3D rendering, to design and manipulate 3D shapes, and to help automate certain aspects of 3D animation, among other things. The course will culminate in a final project related to the digital humanities.