A recent post at the archinect forum has inspired my inner Ann Landers, and so I will slip on my curly Advisor Wig…
User “jojeg07” asks,
i am confused about the difference between digital and computational design. i had thought they were synonymous. my way of thinking of them now is that UCLA would be “digital” and MIT would be “computational”. is that correct? what exactly makes them different? what is considered computational and what exactly is considered digital design?
This is a good question. I spent the last year doing what was essentially a survey of the past and current state of computational practice, and it is amazing how little consensus there is on terminology and titles. While all of the terms used — digital, computational, parametric, algorithmic — have specific (and easily defined) meanings and associations, the hybrid, messy nature of a design practice often leads to a confusion or misapplication of labels.
The simple answer would be that a “computational designer” uses methods directly associated with programming and computation — algorithms, mathematics, data structures– as a central part of their design process, where as a “digital designer” has a more normative design methodology, using tools that just happen to be on a computer. The simplicity quickly breaks down, however, when you try to apply these criteria to actual practice. For instance, BIM programs like Revit have a computationally-based tree-like structure, with acyclical parent-child relationships (what has been called “parametrics”). However, most of these programs use a graphic interface that requires no previous knowledge of programming or computer science. Grasshopper is an even more direct example of this strategy, as it is essentially a perfect graphical representation of a directed graph structure in a computer program, similar to Scratch.
Do programs that use sophisticated computational methods inside of a friendly, graphical user interface belong in the canon of computational design? Well, given my outsider status as a programmer dilettante, I would say absolutely yes. Even if the user isn’t wholly aware of computational strategies being utilized, the approach is still taking into account algorithmic and parametric methods. Throwing these users out would be like programmers completely dismissing people who code in Python or Processing — excluding higher level methods than your own leads to a one-upsmanship that eventually excludes everyone (as the xkcd cartoon below parodies perfectly).

In the end, as design software becomes more sophisticated, and digital design processes start to resemble data visualization more than drafting, digital design will become (at least partially) inherently computational. I argued in my thesis that computation in design has a future as a context, not as a style. The flip side of that will be that in order for computational design to have lasting impact, we all must become computational designers. And this isn’t going to happen by getting every graduating architect to understand search algorithms and integration methods. It’s going to happen by people bridging the gap and making software that harnesses powerful computational methods to the inherent spatial and visual abilities of design thinkers. These new computational designers might not know if their design problem is NP-complete or not, but they will understand how to use machine methods in design the same way we know how to catch a ball or read a face – as an inseparable, inherent part of their working knowledge.