Andrew I-kang Li   李以康

The interpreter project

  gray line


About me

About shape grammars


gray line

The interpreter project

Set up

Create a grammar

Run a grammar

Get out of trouble

gray line

The Yingzao fashi project

gray line

If you want to design with shape grammars, this is the place for you. I’ve made two tools that should help you do interesting and useful work.

The first is a general interpreter, which you can use to run a grammar and generate designs. It handles labeled shapes composed of straight lines and labeled points in 3-space (in grammar-speak: shapes in the U13 and V03 algebras) and supports emergence.

By general, I mean that the interpreter can handle a grammar that you create. It is not a one-trick pony, running a single “hard-wired” grammar. You can run your own grammars and create your own designs.

The second tool is a set of Python scripts for Rhino. These scripts allow you to draw a grammar in the CAD application Rhinoceros and export it to the interpreter. This means that the grammar - the initial shapes and rules - is an object with which you can interact directly. You can edit as much as you like. This is important, since using a grammar is an edit-test activity. It also reinforces shape grammar work as an inherently visual / graphic activity.

It also means that you can “post-process” shapes that you create with the interpreter: move them to Rhino, where you can render them, convert them to solid models for 3D printing, and so on. In other words, you can make stuff with shape grammars. And you can prepare things for publication.

When you’re ready to get set up, please go to the next page.


This interpreter is built around an engine by CHAU Hau Hing. CHEN Liang coded the interpreter. WANG Yang coded the Autocad applet (now obsolete) and wrote the documentation. Thank you all.

A confession

I use the terms interpreter and environment interchangeably. My ambition is to make a development environment, but what I’ve got now is probably closer to an interpreter. In the meantime, I hope I’m not confusing you.

gray line
Contact me

i (at) andrew (dot) li

gray line