This course will explore recent developments in 3d scanning technology and the tools and techniques for collecting, analyzing, and visualizing 3d data. Once relegated to the realm of academic and military research, 3d scanning has recently been made available to amateurs through DIY implementations like DAVID laser scanner, or, in the case of Kinect, through open source reverse engineering of cheap consumer hardware. We will cover different methods of 3d input, including structured light, LIDAR, time of flight, stereo matching, and optical triangulation -- and focus on techniques for organizing and collecting data, creatively visualizing it, and using it in an interactive context. This course will be taught using openframeworks, a C++ toolkit for creative coding. While the class will be highly technical and code-heavy, there will be a strong emphasis the poetic potential of this new form of input.
This two-point course meets for the first seven weeks of the semester.
Week 1 (September 7)
Introduction to 3d scanning technologies, including LIDAR, structured light and Kinect, stereo and multiview stereo, optical triangulation, and others. The assignment will focus on creating a 3d scan in a group.
Week 2 (September 14)
Groups present their 3d scans from last week. Continue discussion on scanning techniques. Start working with raw scan data for interaction using the Kinect. The assignment will focus on basic technical exercises regarding interaction in 3d.
Week 3 (September 21)
Short discussion of solutions to previous assignment. Continued discussion of computer vision for interaction in 3d, including higher level information: skeleton tracking, gesture recognition, and face tracking. The assignment will focus on advanced interaction techniques.
Week 4 (September 28)
Start discussing methods of processing scan data for visualization/rendering, including voxels, point clouds, and depth maps. This will lead into a discussion of processing for fabrication on laser cutters, 3d printers, and other devices including non-computational systems. The assignment will focus on recreating specific looks, and producing your own look on or off a screen.
Week 5 (October 5)
Presentations of work from previous week. We will start exploring projection mapping using reconstructme, 123dcatch and mapamok. Students are expected to begin working on their final project at this point.
Week 6 (October 12)
Presentation of intermediate work on final project, followed by discussion and problem solving. This class will primarily be guided by the subjects and problems students encounter while working on their final projects.
Week 7 (October 19)
Presentation and discussion of final projects.
Assignments and Grading
Assignments will be given at the end every class. Some assignments will require students to post to the class blog. Besides the weekly assignments, there will also be a final project due at the end of the class.
In order to pass the class, students must complete the assignments, the final project, and attend class. A student will fail if they miss more than one class, miss more than one assignment, or fail to present a completed final project.