Introduction

As software is woven into the spatial fabric of everyday life, new challenges and opportunities emerge for the design of the built environment. Over the past few decades, computer code has played an increasing role in the production and disposition of space. Code now generates, configures, modulates, conditions, governs, regulates, and activates a wide variety of spaces through which we move on a daily basis. At the same time, the decreasing cost of lower-power microcontrollers and wireless sensor networks, coupled with the proliferation of open source software and hardware initiatives, has brought the design and fabrication of objects, spaces and media that are responsive to their environments to ever-broader communities of architects, artists and designers. Taken together, these conditions present multiple vectors for critical inquiry into the material, formal, social and political dimensions of contemporary architectural practice.

This design research workshop investigates this interweaving of code and space within the built environment through project-based experimentation. It introduces basic concepts and techniques for creating objects, spaces and media that sense and respond to their physical surroundings and the actions and events that transpire there. We will investigate models for spatial interactions with (and through) computers that afford more subtle and complex relations between a range of human and non-human actors. Combining readings, presentations and discussions on the theory of responsive environments in architecture, art and design with a series of hands-on technical workshops in computing methods and techniques, the course provides a critical context for emerging forms of experimental architecture.

Topics include fundamental ideas in computing (languages, representations of thought and world), embodied interaction (situated actions, responsive systems), practical aspects of hardware design (electricity, electronics, microprocessors, components, sensors and actuators), functional programming (variables, data types, control structures, functions, objects) and basic networking principles (topologies, protocols). This is an introductory course. No prior expertise in computing required. Curiosity about how things work is a must.