Procedural geometry paradigms are analyzed and classified as either "data amplifier" or "lazy evaluation." Lazy evaluation reduces the size of the geometric representation passed to renderers and increases the flexibility of procedural experimentation. Several existing procedural geometry systems are compared in this light, and a new one is proposed, called procedural geometric instancing.
Inspired by shading languages, procedural geometric instancing is a modeling language that embeds functional calls in the geometric representation which are evaluated on demand during rendering. Procedural geometric instancing enables articulation of highly detailed models with the ability to inductively specify billions of objects with a few lines of code, and to pass parameters, facilitating more complex relationships between parent and child geometries. Furthermore, it defines functions for local access to the world coordinate system which supports global effects such as tropism. The hierarchical z-buffer is adapted to operate on hierarchical bounding volumes, efficiently rendering procedural geometric instancing models.