29 Jan 2013

There are some pretty cool projects out there that use procedural generation to “evolve” a simulation over time. An especially interesting area of both research and artistic expression is the use of procedural generation to simulate natural phenomenon like life and nature. A cool early example is a project developed by Karl Sims in 1994 that uses Darwinian evolutionary algorithms to develop blocky creatures. These creatures are developed randomly over time to achieve a set goal such as swimming quickly, fighting over a cube, and other tasks. The good designs are kept and improved until the a creature is developed that can best accomplish the task.

Since then there have been other cool projects that use procedural generation, especially in games. A great example of this is Minecraft–while the game is incredibly blocky and closer to Legos than landscapes, the algorithms used by Notch to create them make convincing and exciting areas to explore ranging from thick jungles to frozen tundra. Below is a link posted by Notch discussing his terrain generation techniques:

He discusses some of the technical issues involved with generating an infinite terrain for the player–in particular having to center the world around the player and making new world for them to explore as they get farther and farther from their spawn point. He doesn’t tell us the actual algorithm unfortunately, but it definitely shows the technical limits of certain kinds of generation.

Here are some additional links to projects that I either found or heard about through other sources.