Procedural generation is a widely used term in the production of media, indicating the possibility to create content on the fly rather than prior to distribution. This is often related to computer graphics applications and video game level design.
The term procedural refers to the process that computes a particular function. Fractals, an example of procedural generation, dramatically expresses this concept, around which a whole body of mathematics—fractal geometry—has evolved. Commonplace procedural content includes textures and meshes. Sound is often procedurally generated as well and has applications in both speech synthesis as well as music. It has been used to create compositions in various genres of electronic music by artists such as Brian Eno who popularized the term “generative music”.
While software developers have applied procedural generation techniques for years, few products have employed this approach extensively.
The modern demoscene uses procedural generation to package a great deal of audiovisual content into relatively small programs. Farbrausch is a team famous for such achievements, although many similar techniques were already implemented by The Black Lotus in the 1990s.
Procedurally generated content such as textures and landscapes may exhibit variation, but the generation of a particular item or landscape must be identical from frame to frame. Accordingly, the functions used must be referentially transparent, always returning the same result for the same point, so that they may be called in any order and their results freely cached as necessary. This is similar to lazy evaluation in functional programming languages.