My doctoral work was in the field of computer graphics, and I focused on combining grammar-based procedural techniques with one another — like the various classes of L-System and Shape Grammars — and attempted to show how they were mathematically related.

Most of my code was written in Common Lisp, taking advantage of the language’s great macro facilities to create a domain specific language for my grammar implementation that seamlessly merged with the Common Lisp environment, making it easy to blend grammar-based procedural modelling with geometric and spatial queries (intersection queries, visibility and lighting queries, etc.) at each step of the modelling process.

While I learnt a lot, and had already implemented enough to create 2D cities and the beginning of 3D geometry using sub-division surfaces, I never finished the thesis and instead found full-time work in order to support myself.