-- CS635 (Spring 2017) --

Capturing and Rendering Real-World Scenes

Have you ever wondered how to create models of 3D objects? Have you ever wanted to create a model of an entire room, floor, or building? Have you ever wanted to add real-world environments and objects to your games and virtual worlds? If so, this is the course for you!!!

[Course Summary PDF]


1. Course Overview

The objective of this course/seminar is to understand the fundamental problems and challenges encountered when capturing, modeling, and rendering (and printing) 3D structures and objects. The course covers several subjects within computer graphics, computer vision, and computer science so as to provide to the student a full understanding of the capture/model/render pipeline. From this understanding and cross-fertilization of ideas, it is expected that students will in the future be able to develop new and improved approaches.



2. Tentative Schedule


Week of



Final Project

Jan 9

Introduction, Toolbox (e.g., features, deblurring. optimization: minimization, least squares, simulated annealing, MCMC, machine learning, human computation)

Jan 11: #0 out







Jan 16

Camera Calibration

Jan 18: #0 in; #1 out






Jan 23

Passive Acquisition (e.g., geometric stereo







Jan 30

photometric stereo and photogeometric stereo)

Feb 1: #1 in; #2 out









Feb 6

Active Acquisition I, Acquisition II (e.g., lasers, structured light)




Time of Flight



Feb 13

Computational Cameras and Displays

Feb 15: #2 in; #3 out






Feb 20

Inverse Optics







Feb 27

Structure Aware Shape Processing

Mar 1: #3 in

Suggestions given


(27 and 1: SASP, 3: Project Brainstorming)



Mar 6

Project Background Presentations


Declare projects


(6: TBA, Presentations: 8 and 10)


Background presentations

Mar 13

Spring break (no classes)







Mar 20

Lightfields and Light Transport







Mar 27

Inverse Modeling







Apr 3

Mid-Project Presentations, TBA


Mid-project presentations





Apr 10

3D Printing and Design







Apr 17








Apr 24

Demo week


Demo and presentation!


(24: demo prep, 26: --, 28: public demos!)





For more information about the general type of research, I recommend looking at:

CGVLab Webpage: http://www.cs.purdue.edu/cgvlab

My webpage: http://www.cs.purdue.edu/~aliaga

For graphics in general: http://kesen.realtimerendering.com/



3. Workload


The course is divided into two parts.


The course grade is determined by the performance in the programming assignments, the final project, and class participation. Each assignment will be evaluated during an interactive session with the instructor. The grade depends on a combination of meeting the requirements, the presentation, and the sophistication of the solution. There will be no final exam but rather a public demo day at the end of the semester with all projects.


The grade distribution is tentatively:

Assignments: 30% (1%, 9%, 10%, 10%)

Final Project: 65% (10%, 15%, 40%)

Class Participation: 5%


A subset of relevant conferences that could be targeted with this semester’s work include:


4. Administrative Issues


All assignments must be handed-in by the specified due date/time. An assignment late by up to one day receives a 50% penalty (e.g., if maximum score is 10, it will be a maximum of 5), by up to two days a 75% penalty and after that a 100% penalty. THERE IS NO LATE PASS. The final project consists of 3 formal presentations (initial background research, a mid-project presentation, and final project presentation). The exact dates will be established once students and projects are settled. All final project related presentations must be on time; otherwise a grade of 0 is given for that component.


All assignments, presentations, and projects must be done individually unless otherwise indicated by instructor. Final projects may be teams of two people (rarely three or more people). In research, it is highly encouraged to “build upon the shoulders” of others, however due credit must be given to the sources. Unreported copying or plagiarism will give you a failing grade in the course and you will be subject to standard departmental and University policies. For the programming assignments, code obtained from the Internet, books, or other sources may *not* be used. For the final project, previously-written code is permissible pending instructor approval.