This course provides an introduction to the field of Computational Design for Digital Fabrication. Students will learn about both hardware and algorithmics aspects of various 3D printing processes and other digital fabrication technologies. As the central part of this course, students will learn about simulation- and optimization-based design approaches. We will cover simple forward design methods based on mass-spring systems as well as inverse design methods based on advanced finite-element models of solids, shells, and rods. The theoretical underpinnings of these approaches are formed by numerical linear algebra, unconstrained and constrained optimization, as well as various topics from computational mechanics. The material introduced in class will be richly illustrated using examples from, e.g., mechanical, industrial, and architectural design. The lectures are accompanied by programming exercises, in which students will implement some of the concepts taught in class, as well as by practical exercises on digital fabrication hardware.
There will be two classes per week, on Wednesdays and Fridays, each two hours long.
|Day||Time||Location||Start Date||End Date|
|Wednesdays||13:30 - 15:29||1411 Pav. André-Aisenstadt||09/05/2018||12/05/2018|
|Fridays||11:30 - 13:29||Z-200 Pav. Claire-McNicoll||09/07/2018||12/07/2018|
Here are some example projects to browse. More can be found here .
The course will start off with an overview of the field, and by answering important questions such as 'what is computational design?' and 'what is digital fabrication?'.
As a fundamental part of virtual prototyping and forward design, this class covers some basic concepts of numerical simulation. Using simple spring networks as an example, we will have an in-depth look at gradient-based function minimization.
We will take a deep dive into Fused Deposition Modeling (FDM), the most widespread process for consumer-level 3D printing. We will discuss parametric modeling of solid objects using OpenSCAD, an open source, scriptable CAD software. We will also have a look at G-Code, which is the de facto standard language used for FDM printers.
This class will introduce more powerful minimization methods, in particular Newton's method, that leverage second order derivative information of the objective function for faster convergence. In this context, we will also talk about how to solve linear systems, and some of the things that can go wrong when trying to do so.
The accompanying programming exercises are meant to deepen the concepts covered in class. For each programming sheet, we will provide a C++ code framework with basic functionality already in place. This allows you to get straight to the point and implement only the technically interesting and relevant parts. The framework is based on Microsoft Visual Studio 2018 (freely available from here ), as well as GLFW.
75% of the final grade will be determined by the exercise grades, 25% will be determined based on an extended review and in-class presentation of a recent SIGGRAPH article (list to be posted).