After careful consideration and a consultation with my coordinator, I decided to implement an interactive visualisation of a procedurally generated planet. Although I originally planned to focus on the procedural generation of buildings and cities, I found no way to contribute anything new to this topic. CityEngine is a very extended city generator. Generation of landscapes have been covered extensively as well, although it is less frequently extended to full planets. Hence I would like to procedurally generate planets.

The idea

Most of the time fractals and noise functions are used to generate height maps. This has been demonstrated quite a few applications. So first I’ll be extending these concepts to do the same for a sphere. Rivers, cliffs, caves and loose rocks are not generated with this method. If time allows it, I could think about how to implement some of these elements.

The use of fractals allows the user to determine the level of detail of the planet. It will be dependant on the position of the camera, i.e., how close it is to the surface. To allow on interactive visualisation of the render world, I would also need to implement a dynamic level of detail (LOD) algorithm.

Possible extension

A possible extension to the idea above, is to provide a way to change the procedurally generated planet. An example: a user can shoot asteroids to the planet which leaves craters. There are two ways to save an event like this:

either by changing the procedural algorithm (also called inverse procedural modeling). Here it is important to keep changes localized.

by storing the changed data and remembering where it should replace the procedurally generated content.

At the moment this extension is not considered to be part of the project. Since this kind of reverse procedural modeling is an aspect of procedural modeling which is still heavily researched.

What I’ll do next

Today I had a brief look into fractals and noise functions and how LOD algorithms work. For now I’ll be focusing on fractals and noise functions by comparing the existing techniques and deciding which functions are best for the generation of planet landscapes.