Tags filed under ‘programming’

Notes on the Synthesis of Form

Working over the past few months on a fairly large web application with a lot of moving parts, I’ve been doing a lot of thinking about abstraction in the design process, about how best to break it down so that my co-coder and I don’t go crazy wrestling with the complexity. Thankfully, I found a book written over 40 years ago that addresses these design problems directly, in a formal writing style both lucid and technical.

Patterns and models

Christopher Alexander, the architect and theorist best known for popularizing the pattern language method of analyzing design problems, wrote Notes on the Synthesis of Form in 1964, when he was 28 years old. The book was hailed as a breakthrough in design theory, but it also quickly gained notoriety in computer science, as the pioneers in that field recognized that the framework could be adapted to the nascent language structures they were developing (Alexander’s later book A Pattern Language is cited as one of the most influential works leading to the invention of modern object-oriented programming). Instead of a bottom-up approach that seeks to gather existing pattern recipes from those working in the field, Notes outlines a process by which you can methodically break a problem into related sets of diagrammed models, yielding a top-down solution.

To understand the human body you need to know what to consider as its principal functional and structural divisions. You cannot understand it until you recognize the nervous system, the hormonal system, the vasomotor system, the heart, the arms, legs, trunk, head, and so on as entities. You cannot understand chemistry without knowing the pieces of which molecules are made. You cannot claim to have much understanding of the universe until you recognize its galaxies as important pieces. You cannot understand the modern city until you know that although roads are physically intertwined with the distribution of services, the two remain functionally distinct.

One of the comforting sentiments in the book is his recognition that individual humans are unable to intuitively solve complex, modern problems without a visual model or mathematical structure to illustrate how the individual components interrelate (Alexander includes some nifty diagrams and sketches throughout the work).  The epilogue of the book states his focus succinctly:

My main task has been to show that there is a deep and important underlying structural correspondence between the pattern of a problem and the process of designing a physical form which answers that problem. I believe that the great architect has in the past always been aware of the patterned similarity of problem and process, and that it is only the sense of this similarity of structure that ever led him to the design of greats forms.

A design problem is not an optimization problem

Example tree-structured diagram from Notes on the Synthesis of Form

A basic tree of possible requirement sets for a kettle

His approach to design is essentially from the negative: given the yin-and-yang interplay of form (e.g. ‘teakettle’) and context (e.g. ‘person wants to boil water for tea in a kitchen’), the best way to the design the form is to develop sets of intuitively clear misfit variables, binary “good/not-good” properties. He describes this relationship in terms of “goodness of fit”:

Again, it is obvious that a kettle which is uncomfortable to hold causes stress, since the context demands that it should be comfortable to hold. The fact that the kettle is for use by human hands makes this no more than common sense. At the opposite extreme, if somebody suggests that the ensemble is stressed if the kettle will not reflect ultraviolet radiation, common sense tells us to reject this — unless some special reason can be given, which shows what damage the absorption of ultraviolet does to the ensemble. […] A design problem is not an optimization problem. […] For most requirements it is important only to satisfy them at a level which suffices to prevent misfit between the form and the context, and to do this in the least arbitrary manner possible.

Potato peelers and pruning shears

Simple line diagram depicting a layout for a village in India

One of the crazier diagram sketches from the book's appendix, depicting an optimal layout for a rural Indian village that was planned by Christopher Alexander

If you’ve seen Gary Hustwit’s documentary Objectified, about industrial and product design, you might remember the segment about potato peelers and pruning shears. The designers relate that in their work they seek out the “outliers” first, in this case that these tools need to be comfortable and usable in the hands of a hypothetical elderly, arthritic mother. If you’ve baked in that level of accessibility into your design, then a fortiori you’ve already solved much of the problem for the rest of your users.

In the field of web design and development, this is implemented as progressive enhancement, layering additional presentation and functionality layers on top of an already well-formed, accessible system.

Alexander’s method of breaking down the problem into functional sets makes it easier to recognize these widest-angle “misfit” outliers, and to design with them in mind from the outset, before you begin to design the actual physical form of the building, city, software, etc. If you apply this approach to all of the other aspects of the problem, an individual designer can achieve a solution that is inherently simple and orderly, rather than having to prune down and optimize a cumbersome structure. He makes a compelling case, and I see myself doing a lot more up-front consideration before jumping into my next large project. One final quote to tie things together:

Consider the design of the now familiar one-hole kettle. The single wide short spout embraces a number of requirements: all those which center round the problems of getting water in and out of the kettle, the problem of doing it safely without the lid’s falling off, the problem of making manufacture as simple as possible, the problem of making manufacture as simple as possible, the problem of providing warning when the kettle boils, the need for internal maintenance. In the old kettles these requirements were met separately by three components: a spout for pouring, a hole in the top for filling and cleaning, and a top which kept the steam in and rattled when the kettle boiled. Suddenly, when it became possible to put non-corrosive metals on the market, and cheap, available descaler made it unnecessary to get into the kettle for descaling, it became apparent that all these requirements really had a single center of physical implication, not three. The wide spout can be used for filling and pouring, and as a whistle, and there is no top to fall open and let scalding water out over the pourer’s hands. The set of requirements, once its unity is recognized, leads to a single physical component of the kettle.

(Image at top adapted from photo by Flickr user Todd Ehlers)

F.A.T. Lab, GRL, TEMPT ONE + Accessibility

TEMPT ONE / GRL / FAT Lab Project

In one of the best eye-tracking technology projects I’ve seen, the folks from the Graffiti Research Lab and FAT Lab have teamed up with Theodore Watson, Zachary Lieberman, and Christine Sugrue to tackle a novel accessibility problem: enabling pioneering graffiti artist Tempt, hospitalized for over two years with the muscle atrophy of ALS (Lou Gehrig’s Disease), to be able to tag again. Out of all of the things I heard about at SXSW this year, I think this project was the thing that excited me the most — open source hardware + software hacking, vision work, accessibility concerns, graffiti and a great story!

The system they’re developing is using the excellent openFrameworks library and two small cameras: the left can be used as a “mouse button” event by holding that eye closed, and the right eye’s pupil is tracked for gesture. The result is a simple hands-free drawing app, which they will connect with the GRL’s laser tag tools, giving Tempt the ability to express himself through graf writing again.

You can check out the rest of their videos under the TEMPT1 tag on fffff.at (“Release early, often, and w/ rap music.”), but here’s a good one to get you started:


Day #6: From Beyond from Evan Roth on Vimeo.