a) Multi-shape coordination (b) Boolean operations (c) Advanced context sensitivity (d) Best of several alternativesFigure 1: Our novel grammar language CGA++ enables many advanced procedural modeling scenarios not possible with previous solutions (top; bottom: ours), as exemplified with a grammar for residential suburban buildings comprising a main house, a wing, and a garage, and allowing different configurations of these. (a) With CGA++, modeling decisions can be coordinated across multiple shapes, e.g., to guarantee that overall exactly one door is created. (b) CGA++ enables operations involving multiple shapes, such as Boolean operations. Hence, masses can be merged to avoid overlapping geometries, allowing, e.g., one roof covering the whole building. (c) Generic contextual information can be obtained and acted on in CGA++, whereas previous solutions at best support a narrow set of context sensitivity. While they only allow canceling windows partially occluded, CGA++ additionally enables consistently adjusting all top floor windows. (d) Traditionally, only one alternative can be pursued during one specific derivation. CGA++, however, makes it possible to investigate multiple ones and choose the best of them. On a corner lot, the building grammar may fail if it executes only one option stochastically, and the selected one causes the garage to end up on an irregular footprint. CGA++ allows all options to be explored, robustly evading such failure cases.
AbstractWe present the novel grammar language CGA++ for the procedural modeling of architecture. While existing grammar-based approaches can produce stunning results, they are limited in what modeling scenarios can be realized. In particular, many contextsensitive tasks are precluded, not least because within the rules specifying how one shape is refined, the necessary knowledge about other shapes is not available. Transcending such limitations, CGA++ significantly raises the expressiveness and offers a generic and integrated solution for many advanced procedural modeling problems. Pivotally, CGA++ grants first-class citizenship to shapes, enabling, within a grammar, directly accessing shapes and shape trees, operations on multiple shapes, rewriting shape (sub)trees, and spawning new trees (e.g., to explore multiple alternatives). The new linguistic device of events allows coordination across multiple shapes, featuring powerful dynamic grouping and synchronization. Various examples illustrate CGA++, demonstrating solutions to previously infeasible modeling challenges.