Generative Modelling Language (GML) in computer graphics and generative computer programming is a very simple programming language for the concise description of complex 3D shapes. It follows the "Generative Modelling" paradigm, where complex datasets are represented by "lists of operations" rather than by lists of objects, which is for instance the case in a relational database.
Usual 3D file formats describe a virtual world in terms of geometric primitives. These may be cubes and spheres in a CSG tree, NURBS patches, a set of implicit functions, a triangle mesh, or just a cloud of points. The term "generative 3D modelling" describes a different paradigm for describing shape. The main idea is to replace 3D objects by object-generating operations: A shape is described by a sequence of processing steps, rather than the triangles which are the end result of applying these operations. Shape design becomes rule design. The approach can be generally applied to any shape representation that provides a basic set of generating functions, called in this context 'elementary shape operators'. Its effectiveness has been demonstrated, e.g., in the field of procedural mesh generation, with Euler operators as complete and closed set of invertible shape generating functions for meshes, operating on the half-edge level.
Generative modelling gains efficiency through the possibility of creating high-level shape operators from low-level shape operators. Any sequence of processing steps can be grouped together to create a new combined operator. It may use elementary operators as well as other combined operators. Concrete values can easily be replaced by parameters, which makes it possible to separate data from operations: The same processing sequence can be applied to different input data sets. The same data can be used to produce different shapes by applying different combined operators from, e.g., a library of domain-dependent modelling operators. This makes it possible to create very complex objects from only a few high-level input parameters, such as for instance a style library.