COMP 175 Graphics (2016 Spring)

Course Number COMP175
Semester Spring, 2016
Hours TH 1:30-2:45
Schedule H+ Block
Location Halligan 102

Instructor Remco Chang
email remco at cs tufts edu
Office Halligan 221
Office Hours TBD

Head Graduate TA Mike Shah
email mshah08 at cs tufts edu
Office Lab H120
Office Hours By Appointment

TA Staff Jake Mingolla
email Jacob.Mingolla at Tufts
Office TBD
Office Hours TBD

TA Staff Kabir Singh
email Kabir.Singh at Tufts
"Office" Collab Room
Office Hours Fr 1-3, S 12-2

Course Description

Final Projects

Radiosity - Jeremy Slavitz & Thomas Hebb
Terrain Editor - Walton Lee & Henry Zhou
Ray Traced Constructive Solid Geometry - Brett Fouss & Jason Fan
Cities - Peter Lee & Jade Chan
Psychedelic Bubble Simulator - Samantha Welch & Cecily Lo
Notorious RGB (Distributed WebGL Rendering) - Maxwell Bernstein & Thomas Colgrove
Deferred Shading - Megan Van Welle & Anzu Hakone
Procedural Cities - Reema Al-Marzoog & Eric Baily
Real-Time Hatching - Jeremy Marcus & Skyler Tom
Simulating Elasticity - Robert Crumbaugh & Arthur Berman
Solar System Exploration Game - Xu Liu & Tianyu Zhu
Constructive Solid Geometry and Marching Cubes - Alena & Timothy Ho

Course Description

This course explores the fundamentals of computer graphics, including 3D rendering via ray casting, ray tracing and radiosity, viewing transformations, 3D shape representation, and an introduction to modeling and computer animation. Assignments and projects require a good working knowledge of linear algebra and the C and C++ programming languages.

Prerequisite: COMP 40 (Machine Structure and Assembly-Language Programming). Background in Linear Algebra a plus


Date Topic Assignments Notes
01-21-2016 Intro
01-26-2016 OpenGL Basics
01-28-2016 Lab0 -- Compiling OpenGL
02-02-2016 Linear Algebra Recap A1 out
02-04-2016 Lab1 -- Loading a Shape File
02-09-2016 Shapes
A1 algo due
02-11-2016 Transform 2
02-16-2016 Lab2 -- User Interactions in OpenGL A2 out A1 due Remco at the EI conference
02-18-2015 Monday Schedule Remco at the EI conference
02-23-2016 Camera
02-25-2016 Lab3 -- Solar System A2 algo due
03-01-2016 Scene Graph (pdf)
Scene Graph
A3 out Remco at KAUST
03-03-2016 Lab4 -- Be a Movie Director A2 due Remco at KAUST
03-08-2016 Animation A3 algo due
03-10-2016 Lab5 -- Roller Coaster
03-15-2016 Ray Casting A4 out A3 due
03-17-2015 Lab6 -- Painting an Object
03-22-2016 Spring Break
03-24-2016 Spring Break
03-29-2016 Illumination and Intersection Normals A4 algo due
03-31-2016 Lab7 -- Silhouette
04-05-2016 Recursive Ray Tracer - Basics and Texture A5 out A4 due
04-07-2016 Recursive Ray Tracer - Advanced Concepts and Data Structure
Final Project Discussion
04-12-2016 Shaders A5 algo due
04-14-2016 Lab8 -- Bump Mapping on the GPU
04-19-2016 WebGL
tutorial 1: simple objects
tutorial 2: adding colors
tutorial 3: simple animation
tutorial 4: adding interaction
tutorial 5: texture
tutorial 6: PLY and normal
Final Project Out A5 due
04-21-2016 Lab9 -- WebGL + Shower Door Effect
04-26-2016 Final Project Check-In
04-28-2016 Lab10 -- WebGL
05-03-2016 Reading Period
05-05-2016 Reading Period
05-06-2016 Final Project Presentation Final Project Due 3:30-5:30pm (in Halligan 102)


Note: If you are downloading the demos to a lab machine, you may need to unblock the .zip file before extracting the files. Otherwise, the executable file may not be included in the extraction.

Assignment 1: Shapes (Demo: PC | Mac | Linux) Render 3D objects using OpenGL           Handout | Worksheet PDF | Worksheet TeX
Assignment 2: Camera (Demo: PC | Mac | Linux) Create your own camera                     Handout | Worksheet PDF | Worksheet TeX
Assignment 3: SceneView (Demo: PC | Mac | Linux) Render a hierarchical scene                   Handout | Worksheet PDF | Worksheet TeX | Sample Makefile
Assignment 4: Intersect (Demo: PC | Mac | Linux) Implement a basic ray tracer                 Handout | Worksheet PDF | Worksheet TeX
Assignment 5: Ray (Demo: PC | Mac | Linux), (Test Data) Implement a recursive ray tracer            Handout | Worksheet PDF | Worksheet TeX

In Class Labs

Find your partner for this week

Lab0 Handout | Files
Lab1 Handout | Files
Lab2 Handout | Files
Lab3 Handout | Files
Lab4 Handout | Files
Lab5 Handout | Files
Lab6 Handout | Files
Lab7 Handout | Files
Final Project Ideas Ideas Sheet
Lab8 Handout | Files
Lab9 Handout | Files | Howto Setup a Local Web Server
Lab10 Handout | Files


Required Books
R1 Fundamentals of Computer Graphics (Third Edition) by Shirley and Marschner


Assignment 1 12%
Assignment 2 12%
Assignment 3 12%
Assignment 4 12%
Assignment 5 12%
Final Project 15%
In Class Projects 25%
Total 100%
Grading: Each assignment is worth 12% of your final grade. Out of the 12%, 2% is for your written algorithm, and 10% for the implementation.

Late Policy: All the assignments (including written algorithms) are due at 11:59pm on Monday (the night before the Tuesday lecture). Assignments that are turned in late will receive a 0. However, you are allowed one "extension" for the semester. When you use an extension, you will be granted an extra 3 days. The rationale for the late policy is that the assignments are built on top of each other (e.g. you cannot complete assignment 5 without completing assignment 4). So completing each assignment in time is essential to the success of the next assignment. If you have an extraordinary circumstance, you must contact the instructor or the TA as soon as possible and obtain written approval.

In Class Projects
Grading: There are 10 in class projects, each is worth 2.5% of your final grade. Note that Project 0 (P0) is not for credit, but obviously getting OpenGL to compile is essetial to the rest of your course work.

Late Policy: All in-class projects must be completed by the start of the next in-class project (1 week). The project will be checked in person by the TA or the instructor during class. There is no late policy for in-class projects. You will not receive partial credit for turning in a late project.

Final Project
Grading: Your final project will be graded in-person during the final exam period.

Late Policy: There is no late policy for the final project. You will receive a 0 if your final project isn't working by the demo day.


Tufts is committed to providing support services and reasonable accommodations to all students with documented disabilities. To request an accommodation, you must register with the Student Accessibility Services at the beginning of the semester. To do so, arrange an appointment with Linda Sullivan, Program Director of Student Accessibility Services at (617) 627-5447.


Some images and slides are based on lectures by Professor Andy van Dam at Brown University and Professor Daniel Keefe at the University of Minnesota.