A Connection between Partial Symmetry and Inverse Procedural Modeling

We take the red castle as input and automatically derive a shape grammar from the model. The output model (gray) was generated randomly using the derived shape grammar.
Abstract
In this paper, we address the problem of inverse procedural modeling: Given a piece of exemplar
3D geometry, we would like to find a set of rules that describe objects that are similar to the
exemplar. We consider local similarity, i.e., each local neighborhood of the newly created object
must match some local neighborhood of the exemplar. We show that we can find explicit
shape modification rules that guarantee strict local similarity by looking at the structure of
the partial symmetries of the object. By cutting the object into pieces along curves within
symmetric areas, we can build shape operations that maintain local similarity by construction.
We systematically collect such editing operations and analyze their dependency to build a shape
grammar. We discuss how to extract general rewriting systems, context free hierarchical rules,
and grid-based rules. All of this information is derived directly from the model, without user
interaction. The extracted rules are then used to implement tools for semi-automatic shape
modeling by example, which are demonstrated on a number of different example data sets. Overall,
our paper provides a concise theoretical and practical framework for inverse procedural modeling
of 3D objects.
R-Symmetry

For a given input model we a compute symmetry transformation T and the corresponding symmetric area (the red area can be mapped via T onto the blue area).
In this work we are interested in a special kind of symmetry that we call r-symmetry where each point requires a symmetric spherical region with radius r to be r-symmetric.
We use a voxel representation to store this information.
Docking Sites

In this example we can find a cut through the red area that partitions the model into two pieces. Obviously, a dual cut exists in the blue area with identical geometry (locally).
We call these cuts "docking sites". By cutting the model using the docking sites we get four parts (dockers) with identical geometry at the cut borders.

We can now recombine the dockers shown above to retrieve new variations of the input model.
Grammar Extraction

Visualization of the grammar computed for the “pipe
tree” example. Each pad carries a docker, with the
color indicating matching docking sites, shown as curves in the
same color. Black curves indicate the sites at which the dockers are
inserted into the parent docking site. The white docker is the root of
the grammar. Below, an example assembly is given for illustration.
Results (red = input)

Our method can handle complex and fine detailed geometry such as in this staircase example (1d resized).

Another 1d resize example.

Parking structure with ~500.000 triangles (2d resized).

Variations of a bus station (manual edited using extracted shape grammar).
Random variations of a "pipe tree".
We can also construct shape grammars from scanner data. The model "new town hall" consists of ~1.200.000
points (courtesy of C.Brenner, IKG Hannover).