In this course we will study applications of computer programming in design, and see how we can use coding to modify our design tools and create custom workflows that embed more intelligence into our design process.
Writing code, or “programming” is the oldest way of working with a computer. Modern software use graphical user interfaces (GUI’s) that allows users to interact with a computer without even being aware of the code that exists behind the GUI and actually tells the computer what to do when you move your mouse or click a button.
This way of interacting with computers makes the software much easier to learn and work with, but also makes that software constrained to specific functionality that must be universal to all users. It also results in a lot of manual work from the user to get the software to do what they need it to do.
Writing our own code can enable us to create our own tools that solve our specific needs, thereby embedding more intelligence into our process. As a side product such workflows tend to automate the most repetitive and routine design tasks so you can focus less on the technical work and more on the creative part of design. The good news is we don’t have to start from scratch
While computer software is now integrated into almost every design practice, actually writing computer code or creating custom software is not a typically skill set for a designer. While learning this new skill can be daunting, even learning a little bit will allow you to start customizing your tools and save you time.
The good news is we don’t have to start from scratch, and you don’t necessarily need to be able to build your own CAD software like Revit or Rhino to start developing custom tools and workflows. Most CAD software today supports developing custom features and extensions through plugins and scripting interfaces. This allows us to get up to speed very quickly while the opportunities ahead are vast.
This course is structured around several hands-on exercises that will demonstrate a variety of computational approaches and strategies for solving design problems through code. The class will focus on building real applications, while covering enough theory and case studies to ground the work we will be doing and expose some of the larger possibilities.