Procedural modeling  and procedural content generation (PCG)  are used to co-creatively and automatically generate content for applications such as video games, films and simulations. As the complexity and scope of these applications grows, these methods are increasingly relied upon to generate content. Yet, the creation of procedural rules that can generate a particular type and style of content is a difficult and time-consuming process . Instead of creating rules by hand, it is possible to learn rules from examples. Furthermore, one of the critical challenges of PCG is style inference, or the ability to generate content in the same style that has been learned or inferred from examples . Solving these challenges could also be considered a step in the direction of computational creativity , as learning new styles is a crucial part of their further exploration.
In this paper, we propose SIGI (Shape Inference and Grammar Induction), a novel method for inferring the style of one or more grid-based 3D buildings in the form of a shape grammar . This grammar of geometric designs defines the style as a set of building style features, such as columns and windows, and their relations, and can be used to generate new buildings in a similar style. We make the following contributions:
We propose a method for inferring shapes present in grid-based 3D buildings. Unlike most previous work, shape inference allows the segmentation of examples with limited user input and without predefined feature classes.
We show how these shapes are used to induce a shape grammar, which allows co-creative design and automatic generation of similar buildings in an interpretable way. Furthermore, SIGI allows for the induction of a shape grammar from multiple example buildings, which generate buildings in a shared style. Applied to Minecraft examples, we demonstrate our approach and results.
As a notion for repetition or symmetry in the examples, we define matching shapes that lead to an enlarged generative space and the generation of novel buildings.
In this section, we introduce shape grammars and discuss shape inference, a component of SIGI that seeks a set of shapes that correspond to parts of the style present in the example buildings. We further use style feature as an informal notion for any building component, such as a window, wall, balcony or awning, that is part of the building style.
Given grid-based 3D buildings , SIGI infers shapes and induces a shape grammar for the style of . Input examples are composed of elementary components at a position in . We use Minecraft buildings as examples, which exist out of a set of elementary blocks . A block is a tuple with a type and a position in a grid-based 3D coordinate space in . A block represents a voxel at in a Minecraft world textured according to its type .
We adapt the shape grammar formalism  for grid-based shapes as a 4-tuple where:
is a finite set of shapes
a finite set of labels
a finite set of shape rules of the form where and are labeled shapes
the initial labeled shape of the form
A shape in is a set of blocks . is a subset of blocks in an example in : . Blocks are connected such that all blocks in are reachable from every other block in by following a path through adjacent blocks in . Thus, forms a coherent segment of , without any disconnected blocks. A labeled shape contains auxiliary data, in the form of symbols. A shape rule consists of a transformation from one labeled shape to another and can take into account this labeled information. Shape grammars function similarly to formal grammars or other production systems: starting from and by applying rules, shapes are rewritten to produce new geometric shapes (as in Figure 4).
We define three shape specifications in order to further constrain the shapes: (a) 3D shapes without further limitations, (b) 2D shapes limited to a single plane by restricting all blocks to the same position on the , or axis and (c) rectangular shapes which further limit 2D shapes to a rectangular form. Figure 1 shows shapes inferred for each specification. As rectangular shapes suffice for two-dimensional facades , these may as well suffice for 3D buildings consisting of facades. However, more complex parts of buildings, such as slanted roofs, might be difficult to describe with rectangular shapes.
We define matching shapes as two shapes and that are identical, containing the same blocks in the same configuration, except for their position and orientation in the structure. In other words, and match if a transformation exists that is a one-to-one mapping of the blocks of onto . This transformation is of the form:
where and a rotation matrix along the axis (such that only rotations as in Figure 2(a,b) are allowed):
Inferring Shape Sets
In order to infer a suitable set of shapes for we apply a local search that minimizes a cost function on . Aside from ensuring shapes meet their requirements, we strive to find shapes that form a suitable description of the style. Each shape ideally matches a style feature present in the examples. Shapes are not limited to predefined feature classes, as in other work [16, 5]. Instead, we infer a suitable set of shapes that are likely style features.
We make the assumption that most style features consist of a few components in a limited number of materials or block types. A window, for example, usually exists out of glass and a frame in another material. While this assumption does not hold for any style feature, it establishes a foundation for the inference of shapes that are likely style features. Thus we strive to find simple shapes (containing few block types), such that we avoid representing multiple style features in a single shape. At the same time, we limit the total number of shapes, to avoid overly simple shapes devoid of any meaning.
A suitable set of shapes consists of shapes that are neither too simple nor too complex. We introduce a cost function that strives to find this balance.
Firstly, we limit the complexity of shapes by increasing their cost. As a measure for this complexity, we use entropy , or the measure of information content, of a shape :
where is the number of block types in and
is the probability of block typein . The entropy cost favors compact and homogeneous shapes , such as shapes consisting of just a single block. To counterbalance this, we introduce a cost for the number of shapes in the set, adding by one to remove a bias for shape sets of size one. By favoring a smaller number of shapes, the cost promotes larger shapes. The resulting cost function to be minimized is:
where is a shape present in the shape set and is a parameter weighing the importance of .
The cost is minimized by repeatedly executing operations on . We use a hill-climbing algorithm that, at every step, evaluates and applies the first operation on the shape set that decreases the cost. The algorithm converges to a local optimum, once no more operations exist that decrease the cost. Figure 1 shows resulting shapes for different shape specifications and values inferred from a simple example.
We define two operations on shapes. A merge combines and into one , resulting in a new set of shapes :
A split splits into two shapes and :
Not all operations are legal, as resulting shapes must meet the defined requirements. They must form coherent segments of and adhere to the chosen shape specification.
During the execution of the local search, it is possible to use the merge, split or both operations. These schemes require different initializations of at the start of the algorithm: minimal when merging, maximal when splitting and any in between for the combination. When merging rectangular or 2D shapes, once two shapes have been combined they can no longer be separated. One of the axes becomes fixed, locking the blocks out of potentially better shapes in other planes. In order to alleviate this issue, we initialize each block as three shapes, with one in each plane, and only allow merges between shapes in the same plane. After hill-climbing, we ensure all blocks in are present in and remove redundant shapes that are entirely covered by others. A side effect of this optimization allows overlapping shapes, which can contain the same blocks, as in Figure 1. While the resulting shape set is no longer a pure segmentation of , allowing overlapping shapes may increase the number of matching shapes, as illustrated in Figure 3. Some blocks may indeed belong to multiple style features present in the examples.
Shape Grammar Induction
We discuss how the inferred shape sets form a shape grammar, which can be used to produce new similar buildings. Figure 4 shows a partial shape grammar induced by SIGI and an example derivation.
Given the shapes for examples , we induce a shape grammar with a set of shape rules . When a block is directly adjacent to a block , these form two rules (as in Figure 4):
When the shape on the leftmost side of the rule is present in the production, the second shape can be added to the production. Every shape is labeled with its original position and orientation in the example structure, such that during production of a shape it can be taken into account to calculate its new position. A transformation , of the same form as in Equation 1, can be applied to the initial shape to move the shape to any other position. When deriving a rule, if the leftmost shape has been transformed by , the same transformation is applied to the rightmost shape. Thus, the relative positions of both shapes in the example are retained in the production. In this form generates just subsets of . In order to generalize the generative space of we make use of matching shapes in the shape set.
While matching shapes represent the same style features in different positions in the examples, they form rules with different shapes. We share rules between matching shapes, such that they can be applied to multiple shapes in . As an intuitive example, when a balcony is present next to a window in , it can be produced next to any matching window shape in the production. The production rules in Equation 5 extended to (as in Figure 4):
where is the set of shapes that match , including . These rules can be seen as shorthand for adding a duplicate rule for each shape that matches the leftmost shape in Equation 5. Starting from a shape in it is possible to expand a shared rule to add to the production. The transformation in Equation 1, that maps to its matching shape , is applied to the new production . Thus, is transformed to form the same relative position with as was present in the example with , as shown in the derivation of Figure 4. The sharing of rules between matching shapes allows rule expansions outside the space of . Thus, more matching shapes in generalize the generative space of . Additionally, if two buildings in have matching shapes, these two examples will be linked in , because the matching shape rules provide a bridge between both production spaces.
Production of Similar Structures
The induced shape grammar allows the production of new artifacts in a similar style as the examples. Starting from a production , which contains the initial shape chosen from , shape rules are applied that add shapes to . At every step the production selects a shape from and a rule that applies to . For all applicable rules the leftmost shape is either or a matching shape of . The rightmost shape is added to after applying , if applied to , and , if is a matching shape of . These transformations align the relative positions of the shapes in the production. A new shape is chosen from , and the process can be repeated indefinitely. When used as a co-creative tool, the designer controls the rule derivation and chooses a stopping point, both of which are hard to do sensibly automatically.
When using for automatic generation, rules are applied randomly until a predefined stopping condition, such as a maximum number of rule applications, is reached. Shape grammars are not suited for automatic derivation, because unconstrained derivation frequently adds new shapes to the production  and leads to unstructured buildings, as in Figure 5. While a designer can guarantee structurally and creatively consistent artifacts by choosing which rules to expand, the quality of automatically generated artifacts is much more difficult to ensure. Consequently, the derivations are usually done by hand or co-creatively with the assistance of a computer. The automatic generation of satisfactory artifacts requires additional constraints, which are difficult to define in the shape grammar itself .
By removing redundant shapes or filling in empty spaces in an unstructured building, we form a coherent enclosed building with a clear distinction between the in- and outside. We define the enclosure constraint as follows. Rectangular and 2D shapes are restricted to a single position on the , or axis. As such has two distinct sides and on either side of this fixed axis. These consist of the positions of every block present in the shape shifted by or along that axis. The shape is enclosed when either or can not be reached through a path of empty space starting from the exterior of the structure. We do not extend the enclosure constraint to 3D shapes, as there are no obvious sides to these shapes. A simple pathfinding algorithm explores the production space and finds reachable sides in the production. Once all sides have been explored, we remove any shape for which both sides were reachable, providing an enclosed production, as in Figure 6.
Evaluation and Results
We implement111https://github.com/gillishermans/sigi SIGI as a filter for MCEdit-Unified222https://github.com/Podshot/MCEdit-Unified, a world editor for Minecraft. Filters are written in Python code to extract and edit information from a Minecraft world. We evaluate the shape inference procedure through experiments on the effects of its parameters and perform a qualitative evaluation on the results of automatic generation.
Shape Inference Evaluation
SIGI provides a number of parameters for shape inference: three shape specifications and search operations, the parameter and overlapping shapes. The following experiments address the following question:
How do the inference parameters affect the results?
As the ground truth shape set of an example is undefined and ultimately comes down to the intentions of the designer, we emphasize objective summary measures instead of the correctness or value of the resulting shapes. We perform shape inference on each example while alternating all parameter combinations and take aggregate measurements on the resulting shape sets. These are: the number of shapes , the percentage of matching shapes , the number of blocks in a shape and the number of block types over the shape size
as a measure for complexity. These allow us to estimate the average effects of the examined parameters in the composition of the shape sets.
The 9 examples333https://github.com/gillishermans/sigi_results used in these experiments were chosen to encompass various complexities and structural features, such as slanted roofs and cylindrical buildings. Examples were built for basic testing and were built by community members444https://www.planetminecraft.com/projects/ and edited to remove excess details. Example building sizes range from to blocks and to different block types.
As some blocks may belong to multiple style features in the examples, allowing overlap may increase the number of matching shapes. As shown in Table 1, overlap increases matching shapes in general, but also significantly increases the number of shapes. When considering the results of the examples side by side it seems overlap has a different effect on each example. While effective for some examples, such as in Figure 1, it is detrimental for more complex examples with smaller shapes. Thus, we do not recommend the use of overlap in general.
The parameter weighs the number of shapes in the cost function. A higher value promotes a smaller set of shapes and thus larger shapes. An of produces minimal shapes because only entropy is taken into account. Table 2 shows that larger lead to larger shapes and less matching shapes. An of around results in maximal shape sets, as the entropy is disregarded. Thus any value in this range, specifically around , will provide reasonably sized shapes for the shape set.
The hill-climbing algorithm applies merge, split or the combination of operations. Table 3 shows that the combination provides the most fine-tuned shape sets, as a merge and split can reverse each others effects. Our implementation uses a minimal initialization for the combination as well as the merge. Thus, it is more likely for these to converge soon, resulting in large shape sets with small shapes. Conversely the split operation starts from maximal shapes and converges with larger shapes. The merge and combination produce similar results because both start from the same initialization and follow the same initial path of merges. Occasionally a split operation will occur in the combination, resulting in slightly larger shape sets with smaller shapes. Consequently, the resulting shape set is highly reliant on the initialization of , because the local search scheme converges quickly in the first local optima.
SIGI allows three shape specifications: rectangular, 2D and 3D. As shown in Table 4, less constrained shapes allow larger shapes with less block types. Even when paired with a low (as in Figure 1), 3D shapes are often enormous, encompassing significant subsets of and lack matching shapes. Thus, buildings generated from these shapes will lack variation. We recommend a more fine-grained approach in the form of rectangular or 2D shapes.
In conclusion, the combination of operations with rectangular or 2D shapes without overlap and an between and generally result in the most suitable shape sets with fair number of matching shapes.
Shape Grammar Evaluation
We evaluate the shape grammar by means of a qualitative evaluation on the results of automatic generation, that aims to answer the following questions:
Is SIGI able to induce a shape grammar capable of generating new buildings that are similar to the examples?
To what extent does SIGI infer the style of the example buildings?
Results were generated from the same examples used in the shape inference evaluation with two additional examples for a shared shape grammar. We generated new buildings using and rule productions with and without enclosure.
While the results of an unconstrained automatic derivation of the shape grammar are unusable artifacts by themselves (Figure 5), enforcing the enclosure constraint can produce similar and suitable buildings (Figure 6 and 5). Moreover, SIGI allows the induction of a shape grammar from multiple examples, and the generation of new buildings in a shared style (Figure 6). Results were found with straightforward shape inference parameters: of , rectangular or 2D shapes and merge or the combination of operations. Although these could be tuned to further improve the results, at least for simple examples limited input is necessary. Despite the success of Q1, our approach has a number of limitations.
SIGI struggles with buildings that include complex style features, such as slanted roofs, because they cannot be effectively represented with rectangular or 2D shapes. Instead, these result in many small shapes and rules that complicate the shape grammar resulting in subpar productions (Figure 5). Using 3D shapes leads to a few large shapes without any matching shapes (Figure 1).
The enclosure constraint is limited in a few ways. Enclosure removes shapes even when unenclosed in the original examples. A potential solution marks these during shape inference as unenclosed shapes which are ignored by the enclosure constraint. At the same time it is possible that the removal of unenclosed shapes reveals new unenclosed shapes, as in Figure 5. Thus, enclosure can be run multiple times until no shapes are removed. Furthermore, there is no guarantee that any part of a generated building will be enclosed, resulting in empty generated artifacts. Consequently this generation process is not suited for on the fly generation, for example during gameplay.
This shape grammar considers only local relationships, in the form of adjacent shapes. Our shape grammar is thus capable of extending shapes arbitrarily to form new structures in a similar style, which can result in novel buildings such as in Figure 6 and 5. However, the style of buildings consists of a global structure  in addition to the local structure, which SIGI does not take into account. Thus as an answer to Q2, while SIGI is able to capture local style features and how they neighbor each other, the inferred style may be much more general than what we perceive as the style of a building due to neglecting the global structure.
Discussion, Related and Future Work
As an answer for the challenges of style inference  and learning rules from examples , we proposed SIGI, an approach towards shape inference and grammar induction from grid-based 3D buildings. In this section we discuss SIGI, compare it to related example-based procedural methods and discuss future work.
SIGI and Related Work
SIGI employs a local search through candidate shape sets, minimizing a cost function, to infer shapes from examples. This cost favors shapes that are likely style features, with the assumption that features contain a few block types. Thus, shapes are not guaranteed to accurately represent style features, especially complex features for which this assumption does not hold. In spite of this, the resulting grammar does not strictly require shapes that correspond tightly to style features. Although these could improve the interpretability of the shape grammar, resulting in a more understandable derivation and modification process. While resulting shapes are often satisfactory for simple examples, the search can get stuck in bad local optima. Adding common local search refinements, such as backtracking and restarts  can alleviate this issue. In SIGI each inferred set of shapes is limited to one shape specification. However, style features are best represented by different types of shapes: rectangular shapes are ideal for walls but not for slanted roofs. Thus, combining specifications (not exclusive to the ones defined in this paper) could better represent the examples.
Existing methods that induce shape grammars from 2D building facades rely on predefined feature classes  and labeled input . One approach that induces a grammar for 3D buildings  requires the user to subdivide the building into basic building blocks by hand. However, model synthesis  and inverse procedural modeling (IPM) , require limited user input in the form of a few parameters or constraints. SIGI requires a similar amount of user input in the form of parameter choices, without any labeled data or predefined feature classes.
Shape Grammar Induction
SIGI depends on matching shapes to enlarge the induced grammar’s generative space and generate novel buildings. Even when present in the examples, matching shapes must be found during shape inference. A potential improvement redefines the cost function to encourage finding matching shapes. Resulting shape grammars can be interpreted in a visual manner, as in Figure 4. Shape grammars are ideal for use in an interactive editor, similar to previously defined shape grammar interfaces [9, 3]. Such an editor allows co-creative design of new buildings by guiding the derivation and modifying the buildings and grammar. The shape grammar is not inherently suited for automatic generation, because random application of rules adds new shapes to the production, without concern for the global structure . Nonetheless, with the addition of enclosure, SIGI is capable of automatically generating suitable buildings for one or more simple examples.
Machine learning PCG methods, trained on example content, implicitly address the challenges of style inference and automatic rule learning . However, two common issues not present in SIGI are the lack of sufficient training data and the uninterpretable nature of many ML approaches. Both model synthesis  and IPM , the most similar approaches to SIGI, process 3D examples with limited user input and generate new structures in a similar style. Just as SIGI, model synthesis allows the use of multiple examples towards a shared style. Finding repetition or symmetry in the examples is an inherent problem in example-based PCG, which SIGI tackles with matching shapes and shared rules. While model synthesis directly synthesises a new model from the examples by finding symmetric patterns, IPM induces a shape grammar by cutting the examples at symmetric parts. Both methods rely on an adjacency constraint (referred to as r-similarity in IPM), which ensures that for every point in the generated model a point exists in the example whose neighborhood matches the neighborhood of . This constraint, which could be applied to SIGI instead of enclosure, guarantees a local similarity within these neighborhoods defined by radius . Just as SIGI, these approaches produce similar structures by applying local relationships arbitrarily, without taking into account the global structure and style of the examples.
It is possible to define constraints, such as the adjacency [6, 3] and enclosure constraint, that allow the shape grammar to generate suitable artifacts. However, shape grammars are not inherently suited for automatic generation. Split grammars  extend the shape grammar formalism in order to effectively use automatic rule derivation for generation. They consist of a vocabulary of basic shapes (cuboids, cylinders, etc.) with split rules that split a basic shape into multiple other shapes and conversion rules that transform a basic shape into another. In both cases the resulting shapes fit into the volume of the original shape. The hierarchical nature of these rules constrains and controls automatic rule selection and ensures global structure. In addition to the split grammar, that generates the basic structure, a control grammar distributes attributes, such as textures, throughout the structure.
Split Grammar Induction
We propose an extension of SIGI for the induction of split grammars from examples. Split grammars have previously been induced from two-dimensional examples [5, 16, 10]. As far as we know, no example-based split grammar approaches have been proposed for 3D structures. One approach forms split rules by combining the shapes found during shape inference into larger shapes. These are stripped of their block type data, thus specifying only block positions. The shapes are combined again and again until a single shape remains, forming a top-down hierarchy of split rules, ideal for automatic generation. Starting from the root shape, split rules are applied until the final shapes containing block type data are filled in. As the hierarchy imposes a stopping point at which the new production is complete, this grammar is suited for on the fly generation. This split grammar will, however, only generate copies of the original example. By sharing rules with matching shapes, as discussed for shape grammars, we enlarge the generative space. However at the same time, this split grammar will be limited in the variation provided along the higher-order global structure of buildings. Thus, it may be necessary to induce the split grammar from multiple example buildings, in order to generate new buildings with differing global structure. Instead of filling in block type data through rules, the addition of a control grammar that distributes attributes over the productions would improve the spatial distribution of the style in an orderly fashion, for example disallowing floating doors as present in Figure 6.
While further details must be discussed and implemented in future work, SIGI provides a basis for a 3D example-based split grammar approach.
A current challenge for procedural generation is the induction of rules for the style of example content [13, 17]. We proposed SIGI, an example-based procedural approach towards the generation of grid-based 3D buildings. SIGI induces a shape grammar from inferred shapes that allows co-creative design of similar buildings in an interpretable way. Furthermore, with the addition of the enclosure constraint, it is capable of automatically generating suitable buildings, with a few limitations. A crucial aspect of this challenge is finding repetition and symmetry in the examples that lead to generalizations in the induced generative space, which we tackle with matching shapes and shared rules. Existing methods, including SIGI, do not take into account the global structure of buildings, although it can be considered a crucial part of their style. This paper serves as a stepping stone towards the currently unexplored problem of inducing split grammars from 3D examples, an approach that does take global structure into account and is inherently suited for automatic generation.
This research was partially funded by KU Leuven Research Fund (C14/18/062) and the Research Foundation - Flanders (G097720N). Thomas Winters is a fellow of the Research Foundation Flanders (FWO-Vlaanderen).
Local search in combinatorial optimization. Princeton University Press. Cited by: Shape Inference.
-  (2007) Style grammars for interactive visualization of architecture. IEEE Transactions on Visualization and Computer Graphics 13 (4), pp. 786–797. External Links: Cited by: Shape Inference.
-  (2010) A connection between partial symmetry and inverse procedural modeling. In ACM SIGGRAPH 2010 Papers, SIGGRAPH ’10, New York, NY, USA. External Links: Cited by: Shape Inference, Shape Grammar Induction, Shape Grammar Induction, Split Grammars.
-  (2011) Entropy rate superpixel segmentation. In CVPR 2011, Vol. , pp. 2097–2104. External Links: Cited by: Cost function.
-  (2013-06) Bayesian grammar learning for inverse procedural modeling. In , Cited by: Inferring Shape Sets, Shape Inference, Split Grammar Induction.
-  (2011) Model synthesis: a general procedural modeling algorithm. IEEE Transactions on Visualization and Computer Graphics 17 (6), pp. 715–728. External Links: Cited by: Shape Inference, Shape Grammar Induction, Split Grammars.
-  (2013) A shape grammar approach to computational creativity and procedural content generation in massively multiplayer online role playing games. Entertainment Computing 4 (2), pp. 115–130. External Links: Cited by: Production of Similar Structures.
-  (2014) Structure-aware shape processing. In ACM SIGGRAPH 2014 Courses, SIGGRAPH ’14, New York, NY, USA. External Links: Cited by: Limitations.
-  (2006) Procedural modeling of buildings. In ACM SIGGRAPH 2006 Papers, SIGGRAPH ’06, New York, NY, USA, pp. 614–623. External Links: Cited by: Shape Grammar Induction.
-  (2007-07) Image-based procedural modeling of facades. ACM Trans. Graph. 26 (3), pp. 85–es. External Links: Cited by: Split Grammar Induction.
-  (2001) Procedural modeling of cities. In Proceedings of the 28th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’01, New York, NY, USA, pp. 301–308. External Links: Cited by: Introduction.
-  (1951) Prediction and entropy of printed english. Bell System Technical Journal 30 (1), pp. 50–64. External Links: Cited by: Cost function.
-  (2010) Inverse procedural modeling by automatic generation of l-systems. Computer Graphics Forum 29 (2), pp. 665–674. External Links: Cited by: Introduction, Discussion, Related and Future Work, Conclusion.
-  (1980) Introduction to shape and shape grammars. Environment and Planning B: Planning and Design 7 (3), pp. 343–351. External Links: Cited by: Introduction, Definitions.
-  (2018) Procedural content generation via machine learning (pcgml). IEEE Transactions on Games 10 (3), pp. 257–270. External Links: Cited by: Shape Grammar Induction.
Parsing facades with shape grammars and reinforcement learning. IEEE Transactions on Pattern Analysis and Machine Intelligence 35 (7), pp. 1744–1756. External Links: Cited by: Definitions, Inferring Shape Sets, Shape Inference, Split Grammar Induction.
-  (2013) Procedural Content Generation: Goals, Challenges and Actionable Steps. In Artificial and Computational Intelligence in Games, S. M. Lucas, M. Mateas, M. Preuss, P. Spronck, and J. Togelius (Eds.), Dagstuhl Follow-Ups, Vol. 6, pp. 61–75. Note: Keywords: procedural content generation, video games External Links: Cited by: Introduction, Discussion, Related and Future Work, Conclusion.
-  (2015) Data mining and machine learning in computational creativity. WIREs Data Mining and Knowledge Discovery 5 (6), pp. 265–275. External Links: Cited by: Introduction.
-  (2003-07) Instant architecture. ACM Trans. Graph. 22 (3), pp. 669–677. External Links: Cited by: Production of Similar Structures, Shape Grammar Induction, Split Grammars.
-  (2018) Artificial intelligence and games. Springer New York. Cited by: Introduction.