We will use a range of tools to produce output in industry standard formats (PDF, STL etc.) Our primary platform will be Processing, a Java-based coding tool that facilitates experimentation with coded processes without the constraints of conventional CAD software or design tools.
To describe 2D and 3D structures in code we will rely heavily on principles from computational geometry. An understanding of mathematical concepts like vectors and trigonometry is essential, as these are the atomic units of geometry. These topics are introduced as part of the course, along with strategies to simplify the math involved through helpful workflows and existing code. The real challenge is not math, but rather the translation of spatial ideas into code. Sharing of code and other resources will be done through Dropbox and Github.
To this end we will use libraries like Modelbuilder, Toxiclibs.org and Hemesh. These libraries extend the core functionality of Processing, providing higher-level abstractions that aid in the articulation and manipulation of geometry. From the basic task of constructing a valid 3D mesh to more advanced concepts like physical simulation and kinetic behavior, most challenges will be resolved through a combination of hands-on code and knowing when to use an existing tool.
Other possible tools include Rhino/Grasshopper, Meshlab, Netfabb and Pepakura, as well as any CAD or Open Source software participants may find helpful in their chosen projects.