// Pratt ARCH ARCH 522c / Procedural Morphology / Scripting and Form

Spring 2011
Tuesday, 7 PM - 9:50 PM, ENG214a
Theo Calvin (theo at mediumlite dot com)

Course Information:

View the course preview video.

"The rule drives the algorithm and the rule is not a number. The rule is a pressure that is always limited by another rule. Rules do not make forms – the limitations that rules impose on one another do....
Design must not focus uniquely on first order regulatory processes but must target second order controls that regulate the regulatory processes themselves.  The genius of nature and design meet precisely here."
-- Sanford Kwinter, 2005


The goal of this class is to explore methods of drawing dynamic, self-organizing, agent-based systems. These systems represent formal ordering methods obtainable only through the effective use of computational models. Computational models don't describe form as a static entity. Rather, these models use rules as a design medium to capture underlying structures, relationships and hidden organizations. The forces driving these systems can often be fleeting or soft or emergent or locally weak, but ultimately very powerful in the creation of form. This section of ARCH 523C covers core concepts in programming for design. We will use the Processing programming language. Processing was developed as a user-friendly way to learn programming for visual output. Despite being appropriate for the first time programmer, Processing is a powerful language, and can be used to create interactivity, animations and even 3D form. Lessons learned in Processing will be useful as you move to other programming languages.

Methods of Assessment

View the final assignment

40% Final Project
30% Attendance and Participation
30% Exercises: 5 'sketches'. I expect 2 sketches from Part 1 of the class, 2 from Part 2 and 1 from Part 3. Additional sketeches are recommended but not required.

Syllabus

Part 1: Introduction to Processing

Week 01: Class Introduction

Welcome to Processing for Architectural Design

Week 02 :: Scripting Fundamentals

Variables, Conditionals, Loops, Expressions

Week 03: Modularity, Reusability, Intro to Animation and Transformation

Arrays, Functions, and the Basics of Movement

Part 2: Agency

Week 04: Object Oriented Programming

Introduction to OOP and Agent-Based Programming

Week 05: Guided Work Session [lab]

Applied OOP

Week 06: Advanced Motion

Vectors and Forces, Non-Linear Physics

Part 3: The 'Creative' Power of Rules-Based Systems

Week 07: Generative Data Forms

Re-Mapping for Creation

Week 08: Guided Work Session [lab]

Data input models

Week 09: Recursion and Form

Modeling growth.

Week 10: Guided Work Session [lab]

Working in scripted 3D

Week 11: Emergence and Self-Organizing Systems

Designing with rules

Week 12: Guided Work Session [lab]

Experiments in Emergent Design

Part 4: Design Integration

Week 13: Rules-based Design Working Session [lab]

Working session for final project

Week 14: Optional Working Session [lab]

Desk crits for final project

Internet Resources

Processing Related

Processing.org
learningprocessing.com
Processingblogs.org
Programming in Processing
Open Processing
Processing for Android

News Sites and Blogs

bldgblog
Create Digital Motion
GeneratorX
We Make Money Not Art
Creative Applications.net
algorithmicdesign.net

People

Casey Reas
Ben Fry
John Maeda
Complexification.net
Flight404
theverymany.net
Marius Watz
Thorsten Fleisch
Andy Lomas
dextro
Scott Sona Snibbe
PostSpectacular

Notable Projects

Flight Patterns by Aarron Koblin
Y-rotation of an attractor

Other Stuff

Scripted by Purpose
Bit Forms Gallery
Event: Entheocentric Salon (Sat Jan 20th)
The Impact of Evolutionary Design (Technology Review video)
Review of Dreaming in Code by Scott Rosenberg
MediaRuimte: Platform for digital art & architecture (Brussels)
Processing Flickr Group

Other Graphical Scripting Languages

NodeBox: is a Mac OS X application that lets you create 2D visuals (static, animated or interactive) using Python programming code and export them as a PDF or a QuickTime movie.

VVVV: realtime 3D video synthesis -- fast 3D using the video card. VVVV uses a graphical programming interface.

Scriptographer: is a scripting plugin for Adobe Illustrator™. It allows designers to extend Illustrator with JavaScript.

Max/MSP/Jitter: a graphical programming environment. The basic 'Max' environment includes MIDI, control, user interface, and timing objects. MSP refers to the realtime audio packages and Jitter is a collection of realtime video components to add to the Max environment.

Data Visualization

Information Aesthetics
Form Follows Behavior
Visual Complexity
Flowing Data
Data is Nature
Well Formed Data

Bibliography

Processing specific books are finally starting to be published. There are many processing resources online, but these are available. (disclosure: I'm using the Amazon affliate links to provide previews of the covers and links to more information. Do not feel obligated to purchase books through these links.)

Processing: Creative Coding and Computational Art Ira Greenberg
Processing: A Programming Handbook for Visual Designers and Artists Casey Reas
Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction Daniel Shiffman
Algorithms for Visual Design Using the Processing Language Kostas Terzidis
Visualizing Data: Exploring and Explaining Data with the Processing Environment Ben Fry
Getting Started with Processing Ben Fry and Casey Reas

The following books and articles will enhace your understanding of the subject matter.

Aesthetic Computing Paul Fishwick
Animate Form Greg Lynn
Cities and Complexity Michael Batty
The Computational Beauty of Nature Gary William Flake
Concepts of Modern Mathematics Ian Stewart
Contemporary Processes in Architecture Ali Rahim
Contemporary Techniques in Architecture Ali Rahim
Creative Code: Aesthetics + Computation John Maeda
Digital Tectonics Neil Leach
Emergence Steven Johnson
Emergence: Morphogenetic Design Strategies Michael Hensel
Informal (Architecture) Cecil Balmond
Pamphlet Architecture 27: Tooling Aranda and Lasch
Responsive Architectures : Subtle Technologies Beesley, Hirosue, Ruxton, Trankle, and Turner
Turtles, Termites, and Traffic Jams Mitchel Resnick
Versioning: Evolutionary Techniques in Architecture SHoP/Sharples Holden Pasquarelli

Student Work

Student work is posted here. Please set up your website for the class assignments and send me the URL.
To learn more about setting up your free Pratt web space click here.

Spring 2008

Adam Grassi
Matt Howard
Ki Youn Lee
Jason McGee
Masami Ueki
Dorian Walther
Elliot White