A Connection between Partial Symmetry and Inverse Procedural Modeling

M. Bokeloh M. Wand H.-P. Seidel
SIGGRAPH 2010
paper (24 MB) paper (lowres, 1.8 MB) slides (33 MB)



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


symmetry detection
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


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.


recombined
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).


eXTReMe Tracker