[ dmg . publications ] edit
title: FormWriter: A Little Programming Language for Generating Three-Dimensional Form Algorithmically
author(s): Mark D Gross
reference: CAAD Futures, CAAD Futures 2001, pp. 577-588., 2001 [pdf]
There has recently been a resurgence of interest in new methods of generating form. Stimulated, in part, by work such as Frank Gehry's Guggenheim museum in Bilbao and the Experimental Music Project in Seattle, and Greg Lynn's "blob' architecture, many architects are seeking new methods to stimulate the creative generation of form. Among the methods architects are exploring is using algorithms to generate complex three-dimensional curves, arrangements, and foldings of space and material. In the case of Gehry, these forms result are made using software designed for aeronautical design; in the case of Lynn, they are generated by programmers who work with the architect to devise form-generating algorithms. In both instances, conventional architectural CAD modeling tools would not serve, Algorithmic generation can produce significantly different and more complex forms than conventional CAD, and emerging application of computer assisted manufacturing (CAM) techniques in architectural construction now make it possible to generate buildings whose form could not be easily described in any other way..

Producing three-dimensional computer graphics models has been made easy by the development of powerful modeling software that allows architects to shape and sculpt three dimensional material and space using 'direct manipulation' operations. However, it has been difficult to control the generation of three dimensional forms through complex parameterizations and more sophisticated algorithms. This capability has been more common in civil, aeronautical, and naval architecture. Although most architectural modeling programs offer macro facilities or embedded scripting languages, these are not especially easy to use, and in some cases, not well integrated into the modeling environment. On the other hand, although full-fledged programming languages such as C and Java can be used to write complex form-generating algorithms, they also require significant amounts of knowledge and effort in order to generate even simple forms. Some designers have resorted to using software such as Mathematica to generate three-dimensional forms, but these packages are oriented for other purposes than design, and are thus less than optimal. What is needed is a simple way for designers to explore and generate forms algorithmically, without having to learn a lot of needless programming complexity.

For these reasons we have been developing WriteForm, an easy-to-use programming language designed especially to allow architects and architecture students to explore generating forms algorithmically. A designer can generate three dimensional graphics immediately with only a few lines of code, and within minutes can explore parameterized and conditional construction of forms to generate complex combinations of shapes. The graphics environment is integrated with the code editor and programming environment which allows a designer to explore forms fluidly without an annoying code-compile-view cycle. This paper describes the WriteForm language, its historical precedents, and our initial experience with using it as a medium for generating form.

WriteForm is a language for novice programmers, designed as "low threshold; no ceiling." Although its ease of use makes it simple for non-programmers to use, it is nevertheless a powerful language, with constructs for passing arguments and returning values, conditional execution, iteration and recursion.
Related projects: FormWriter
last updated 12.7.2001 by Mark D Gross