The Generative Modeling Language (GML) is a suitable tool for creating various sorts of complex 3D models on a per object basis. A wide range of parametric objects has already been generated, including buildings and car rims. Combining GML with a scene graph like OpenSG benefits in
Creation of Geometry nodes, which can be added by GML:
The creation of geometry also includes proper material definitions. Nodes can be added at any place in an existing scene graph. Additionally GML can create new branches.
GMLs event handling uses a call back mechanism to receive mouse and keyboard inputs from the user. Those call backs are registered in the GML code. Event Handling is used to manipulate the generative creation of objects in an interactive way. The same event handling can also be used to manipulate the rest of the OpenSG scene graph. Simple interaction may only modify transformations as more advanced ones also trigger the generation of extra geometry.
A combination of OpenSG and GML allows to generate more complex scenes containing multiple objects, either generated by GML or modeled in a conventional way. Parametric parts of the scene, e.g. ornaments of a building, can be generated once and then instantiated as an OpenSG node core. Transformation nodes are also created by GML code to translate, rotate and scale generated parts.