i (at) andrew (dot) li
My main project now is creating a software tool for designers who use shape grammars. Shape grammars let you describe the process by which a design is derived, from the first line to the completed version. And they let you describe that process in a graphic way, i.e., in drawings. (For a slightly more detailed explanation, please see this page.)
The tool is a general interpreter, which executes grammars that you create. The second-generation version is available at this website:
The reason I’m creating this shape grammar tool is that I need it to continue work that I began years ago.
It started with a study of the 12th-century Chinese building manual Yingzao fashi 營造法式 [Building standards]. I have a website devoted to explaining structural carpentry (da muzuo 大木作) as presented in that manual:
In the next stage, I used a shape grammatical approach to study how to teach and understand that book, which I laid out in my dissertation:
A shape grammar for teaching the architectural style of the Yingzao fashi
Since then, I have been following two parallel tracks. The first track is more theoretical (it doesn’t involve software).
I laid out a framework for using shape grammatical analysis in understanding Chinese architectural history beyond the Yingzao fashi, a framework that I use in my teaching. This is the paper:
The Yingzao fashi in the information age
More generally, I proposed a formal framework for using computational methods to teach architectural history, which I discuss in this paper:
Styles, grammars, authors, and users (PDF, 828 KB)
Even more generally, I considered how studying style is still a subjective activity, even when we use objective tools like grammars. This is the paper:
Computing style (PDF, 480 KB)
The second track of work is about grammar tools and implementations (i.e., software). I made a Flash implementation of a grammar of building sections in the Yingzao fashi. It was an experiment with how a user can interact with a grammar.
Yingzao fashi section grammar (SWF, 452 KB)
That was so much fun that I had to try what is known as a general interpreter, one that will execute any grammar. The first-generation version had two parts: a modeling application for editing and recording the grammars, and a stand-alone interpreter for doing the calculations. Read about it in this paper.
A whole-grammar implementation of shape grammars for designers (final manuscript version; zip, 1 MB; contains PDF, 1.5 MB)
In the second-generation version, both editing and calculation take place inside the modeling application, so users do not have to shift back and forth between two applications. This may sound like a small thing, but it is an important simplification, both mechanically and cognitively. Please try it! Here is the website:
And here are two forthcoming papers by my collaborator Rudi Stouffs and me:
Towards a useful grammar implementation: beginning to learn what designers want, in Lee, Ji-Hyun, ed., Cultural DNA 2019 (messy final manuscript version; PDF, 199 KB)
Learning from users and their interaction with a dual-interface shape-grammar implementation, in Proceedings of CAADRIA 2020 (final manuscript version; PDF, 137 KB)