Generative Modeling Language

from Wikipedia, the free encyclopedia

The Generative Modeling Language ( GML ) is a programming language for describing three-dimensional shapes. It follows the paradigm of generative modeling , in which not object lists, but (object-generating) operations are used for data representation.

Generative modeling

Generative modeling is an alternative approach to describing three-dimensional shape. It is based on the idea of ​​not describing a model by a collection of geometric primitives (triangles, points, NURBS patches), as usual, but by functions. The paradigm shift from objects to geometry-generating operations makes it possible to procedurally represent models (chairs, car rims). Instead of just saving the result of a 3D construction process, the construction process itself can be represented. The generative approach makes it possible to fall back on a pool of already solved construction tasks in order to reuse them in similar, slightly varied situations. The design knowledge can be collected in the form of libraries of parameterized, domain-specific modeling tools.

The Generative Modeling Language

The "Generative Modeling Language (GML)" is a concrete implementation of a generative model description language. It is a stack-based, interpreted programming language that is structured similarly to Adobe's PostScript , but without operators for 2D layouts. Instead, it contains a whole series of operators for the construction of 3D models ( e.g. for polygons , b-Reps , subdivision surfaces ). As a "programming language for form", it represents, among other things, a real generalization of existing primitive-based 3D model formats such as OBJ , DXF or VRML .

Together with its OpenGL -based runtime engine, the GML allows

  • a compact description of parameterized 3D objects
  • which can be evaluated on-the-fly at runtime,
  • the display with adaptive level of detail (LOD) ,
  • and the interactive changing of the model parameters.

GML example

1:     (0,0, −2) (1,1,0) 2 quad
2: / cyan setcurrentmaterial
5 poly2doubleface
3: (0,1,1) extrude
4: (0,0,1) (1,0,1) normalize
0 project_ringplane
5: (2,0,0) (0,1, −1) 2 quad
6: / yellow setcurrentmaterial
5 poly2doubleface
7: 0 bridgerings
  GML-example-miter.png

Applications

GML-Gothic-Cathedral.jpg

With procedural models, the model size no longer depends directly (i.e. linearly) on the file size. The “procedural cathedral”, a rough model of Cologne Cathedral , contains 70 tracery windows ; in the highest resolution, a single window contains around 7 million triangles. These “unfold” from just 126 kB GML code (18 kB zipped).

GML-Gothic-Window-Thickness.png

Gothic architecture is an example of the richness of procedural design: In Gothic all constructions were carried out exclusively with compasses and rulers. Variations were obtained by procedurally combining fundamentally very simple parametric basic operations in new ways. Therefore, it is practically impossible to find two tracery windows on different structures where the parametric construction is identical.

GML-Cave-Designer.png

The interactive CAVE designer helps to fit a CAVE into a small room. Because of the beams, it is difficult to solve the problem with only 2D plans ( floor plan , elevation ). Degrees of freedom (blue arrows) are the position and orientation of the screens and the opening angle of the projectors.

GML-Autofelge.png

Starting from 30 given CAD models of car rims, an attempt was made to find a common parameterization so that each of the given rims can be generated from it (“generative reverse engineering ”). Now it is easy to create new, similar models in the design space that is spanned by the individual rims.

GML-Stuhl-Template.png

Generative modeling suggests a differentiation between the “structure” and the “appearance” (e.g. the style) of a 3D model. A surprising number of objects have the same structure as a chair ; H. have a similar structure. In principle, this separation then allows the "appearance" of an object within this class to be transferred to any other.

GML-Voronoi-Diagram.png

Didactic applet to illustrate Voronoi diagrams . The question is whether the centers of the Voronoi cells can be derived from the boundaries of the regions. The applet conveys the idea on which the formal proof is based.

Web links

  • GML homepage on generative-modeling.org
  • GML was created as part of Sven Havemann's dissertation at the TU Braunschweig
  • Michael Leyton: A Generative Theory of Shape . Available on his homepage
  • John Snyder: Generative Modeling for Computer Graphics and CAD: Symbolic Shape Design Using Interval Analysis . No longer available, so see the GENMOD page at Caltech . The original motivation was this book.