A Programming Language for Procedural Content Generation in 3D Scenes

This thesis deals with the specification and implementation of a procedural API and programming language that can generate realistic looking asteroids. To achieve this, real asteroids and comets are analysed for their features. For that purpose, the usefulness of Lindenmayer-Systems are evaluated.


This master thesis tried to achieve two goals:

  1. to create realistic looking asteroids and comets
  2. to abstract the generation process to a general programming language

Generation of asteroids and comets

In order to generate asteroids and comets, a feature analysis was performed on pictures of Itokawa, Churyumov-Gerasimenko, Lutetia and Vesta. Then algorithms were defined to replicate these features. These algorithms are then implemented as an API.

Procedural Content Generation Language

A programming language was developed to ease the usage of the procedural API. Furthermore PCGL showed that Lindenmayer-Systems were used to generate procuedural models.


The usage of PCGL showed, that Lindemnayer-Systems could be used for geometry generation. Nevertheless, the usage did not have any benefits over the traditional implementation of procedural algorithms. However, realistically looking replicats of Vesta, Lutetia, Churyumov-Gerasimenko and Itokawa could be generated with the help of the implemented API and its programming language PCGL.



Full version of the master thesis


This original work is copyright by University of Bremen.
Any software of this work is covered by the European Union Public Licence v1.2. To view a copy of this license, visit eur-lex.europa.eu.
The Thesis provided above (as PDF file) is licensed under Attribution-NonCommercial-NoDerivatives 4.0 International.
Any other assets (3D models, movies, documents, etc.) are covered by the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit creativecommons.org.
If you use any of the assets or software to produce a publication, then you must give credit and put a reference in your publication.
If you would like to use our software in proprietary software, you can obtain an exception from the above license (aka. dual licensing). Please contact zach at cs.uni-bremen dot de.