← all courses

CMSC 23700: Introduction to Computer Graphics

The course provides an introduction to computer graphics, covering fundamental concepts and techniques including: rasterization, sampling, image/signal processing basics, convolutions, coordinate spaces, transformations, camera viewing, 3D transformations, ray tracing, 3D processing, parameterization, animation/deformations, and more. Assignments will be in Python.

Logistics

Grading & Policies

Late assignments. You have a "late bank" of 72 hours that you may use throughout the quarter on any of the assignments. After 3 days (or your "late bank" is empty) the assignment will no longer be accepted. Assignments are given in advance with enough notice, so please plan accordingly.

Academic Honesty. All assignments will be individual. Do not discuss or share your solutions/code with other students, don't post solutions online and do not copy from existing code bases online. We run an auto-grader in this course which automatically runs a sophisticated plagiarism detector. This class adheres to the same policies outlined in CMSC 12100 Fall 2021.

Generative AI. The goal of this course is to get you familiar with the high-level concepts of Computer Graphics. While Generative AI can be extremely helpful for productivity or boilerplate tasks during coding - the assignments in this course do not have any boilerplate elements. The assignments are meant to help solidify the course concepts. We have found that over reliance on generative AI tools can significantly hinder student learning. While we discourage the use of Generative AI, we do not prohibit it entirely. When using GenAI you must always credit it in your documentation.pdf writeup for each assignment. Be extremely cautious when using such tools (they have no sense of what is correct or not and may produce plausible-looking code that contains errors). The following are the only permissible uses of generative AI:

The following are NOT permissible uses of generative AI:

Course Schedule

Week Date Topic Materials
1 Tues Jan 6 Intro & Motivation slides
Thurs Jan 8 Triangles & Rasterization slides
2 Tues Jan 13 Coordinate Spaces & Transformations slides
Thurs Jan 15 3D Rotations (& Assignment 2 Intro) slides
3 Tues Jan 20 Textures slides
Thur Jan 22 Depth & Transparency slides
4 Tues Jan 27 Intro to Geometry slides
Thur Jan 29 Meshes & Half Edge Data Structure slides
5 Tues Feb 3 Geometry Processing slides
Thur Feb 5 Geometric Queries slides
6 Tues Feb 10 Intro to Animation slides
Thur Feb 12 Conformal Parameterization (Richard) slides
7 Tues Feb 17 Rigging slides
Thur Feb 19 Skinning slides
8 Tues Feb 24 Shading/Materials slides
Thur Feb 26 Illumination/MC slides
9 Tues March 3 Final Project Pt. 1
Thur March 5 Final Project Pt. 2

Assignment Schedule

Assignment Release Due Labs
1 Thurs Jan 8 Fri Jan 16 Lab 2
2 Fri Jan 16 Wed Jan 28 Lab 3
3 Thurs Jan 29 Sat Feb 14 Lab 5 & 6
Final project (part A) Tues Feb 10 Sun Feb 22 Lab 7
4 Fri Feb 20 Sun March 1 Lab 8
Final project Sun Feb 15 Tues March 3 Lab 9

Useful Resources

There is no required textbook, though the following will be useful:

Instructional Team

Rana Hanocka Nam Anh Dinh Jinfan Zhou Tian Yang