This website is about my work in computational design.
My main project now is creating software tools for designers who use shape grammars. Shape grammars let you describe the process by which a design is derived (e.g., line by line), and they let you describe that process in a graphic way, i.e., in drawings. (For a more detailed explanation, please see this page.)
The tools are a general interpreter, which executes grammars that you create, and a set of scripts, which allow you to move shapes between the interpreter and the modeling application Rhinoceros. They are available at this website:
The reason I’m creating shape grammar tools is that I need them to continue work that I started 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:
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:
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 a general interpreter. I’m still working on this.
My goal is to grow the interpreter into a development environment, and to use it to do in reality the work that I proposed theoretically.
i (at) andrew (dot) li