class: center, middle # Procedural Modeling of Interconnected Structures ### Lars Krecklau and Leif Kobbelt ### RWTH Aachen University, Germany #### Presentation by: Markus Eger --- class: center, middle # Interconnected Structures --- # Shape Grammars * As we have heard last week, we can use grammars to generate 3D structures * Start with a box with a label * A rule divides a box with a label into smaller boxes with potentially different labels * These divisions are done by cuts along an axis --- # Interconnected Structures * Starting with a large box, and cutting out pieces mirrors starting at a coarse level and adding detail * However, in many cases we want to retroactively add things, like connections between parts * For example, we add houses along a street and then want to add overhead wiring/a catenary --- class: medium # Challenges * If we just subdivide boxes, we would have to take the connections into account while we perform the cuts * However, a more natural/intuitive way of defining such connections would be to do so after the connectors have been created * Krecklau and Kobbelt describe a method to perform such retroactive connections * The challenges they address are how to find connectors, different types of connections, and avoiding obstacles while performing a connection --- class: center, middle # Creating Connections --- class: small # Containers * The basic idea when connecting structures is that every connector defines connection points * While the grammar is being expanded, these connection points can be collected in so-called containers
--- class: small # Connections * A grammar can contain an arbitrary number of containers * Different parts of the geometry may populate the different containers * When the evaluation of these parts is done, there may be extra rules that define how the containers are used to connect parts of the model * These rules define two aspects: *Which* connection points are to be connected, and *how* --- # Patterns The simplest way of connecting parts of the model is by defining which connection points are to be connected in code
--- # Geometric Queries Alternatively, a ray can be cast from a connection point to find a suitable surface to connect with.
--- # FFDs Instead of working on boxes, the grammars generate and use trilinear freeform deformations (FFDs). It is possible to define a mapping from FFDs to boxes, making them well-suited for grammars with more flexibility.
--- # Splines FFDs can be created along arbitrary splines. The rotation is defined by an additional normal vector on each control point.
--- # Inverse Kinematics Finally, two points may be connected with a given geometry that consists of rotational and translational joints. For example, to mount iron bars between two walls, we can define a connector with hinges and a bar of arbitrary length in the center. To calculate the angles and length of the joints, homogeneous coordinates are used, which result in a non-linear equation that is solved using standard methods.
--- class: center, middle # Use Cases --- # Sydney Harbor Bridge
--- # Catenary
--- # Rollercoaster
--- class: center, middle # Discussion