Willem Gillis

CG Generalist & Software Developer

A gathering of procedurally made creatures.


For our thesis we wanted to focus on Artificial Intelligence. The end result is a simulation in which autonomous AI provides for itself and procreates on its own. Each creature in the simulation has its own senses and memory and makes realistic decisions based on its current state and traits. It has to find and gather food and water to survive. The best adapted creatures will live longer and pass on their characteristics to their children.

A couple of procedurally generated creatures.
Creatures: procedural creatures

Aside from a personality and other attributes, creatures also have inheritable appearance characteristics. The appearance of creatures gets generated by code. To achieve this we have used UE4 splines and Substance Designer.

Spline setup of a creature.
Creatures: splines

Creatures can also interact with each other. They can do things like talk and fight and can be friends or enemies after certain events. They must also find a partner with whom they can breed.

Our implemented AI contains two layers. In the first layer the decision for the most suitable state gets chosen according to Utility AI theory. Afterwards, in the second layer, the decision between substates gets chosen by Finite State Machines. The available states and their substates can be seen on one of the images below.

Schematics of all states and their substates.
Creatures: creatures states

This is not a game and requires no input of a player. A player can do minor things like change the simulation speed, kill certain creatures, look around at creatures and view the statistics of the evolution.

Statistics of population growth.
Creatures: statistics

The documentation of our thesis can be found here (in Dutch only). This contains a more thoroughly explanation about things that were implemented.

  • Unreal Engine 4

  • Cinema 4D

  • Houdini

  • Substance Designer

  • Adobe Photoshop

  • Adobe Illustrator

  • Marlies Geerts

  • Willem Gillis