Shape Grammar Compiler for Procedural Buildings

Type: 
BA
Persons: 
1
Workgroup: 

Description

Shape Grammars are a powerful tool to procedurally generate geometry. Instead of painstakingly modeling every individual detail that a viewer should see, rules that are formulated from a shape grammar can exploit repetition and design logic to create content from a small set of initial parameters. Basic mesh operations (e.g. splitting, extruding, multiplying etc.) are called in sequence to produce detailed output geometry. In our special case, we want to produce buildings and even entire cities with such rule sets. To run in real-time, rules must be interpreted and compiled into fast, stable source code that produces the actual 3D content. Writing or modifiying rules should be straight-forward, fun and allow for immediate visual feedback.

Tasks

Your job would be to write a complete compiler / editor for a defined grammar and use it to design multiple rule sets for large, procedurally generated cities. The compiler should produce an abstract syntax tree - representation (AST) with Bison from any valid grammar input, based on an existing implementation that uses ANTLR. Furthermore, you should add an editor with a nice and intuitive GUI offering methods for interaction to make editing (and previewing) the grammar fast and easy. A base library with support for applying geometric operations from C++ code is already available  and should be used.

Requirements

  • Knowledge of English language (source code comments and final report should be in English)
  • Good knowledge of C++ is required
  • Knowledge of any available rendering API is advantageous
  • Knowledge of Python and Qt is advantageous, but not necessary

Environment

The project should be implemented as a standalone application.

Contact

For more information please contact Bernhard Kerbl (kerbl@cg.tuwien.ac.at) or Chao Jia (cjia@cg.tuwien.ac.at).