
Garden of AI-den
...is a generative adversarial network that aims to learn to place vegetation based on examples provided by an artist. The model is trained with prebuild dioramas that contain a terrain and vegetation. The goal is that the network learns the implicit rules an artist applies when building such environments.
To train the model, textures that represent a small part of a diorama were fed to the network. By repeating the texture generation for random locations on the diorama and with some data augmentation, the team was able to train the model with only one sample diorama.
About:
Context: A Game Jam during the International Summer School on AI and Games 2021
Engine: Unity
Language: C#
Team: 6 People
Duration: 5 Days
Texture Generation:

This how the textures generated out of vegetation positions look like. A gradient, representing a piece of vegetation, has to be large enough to be recognized by the machine learning algorithm properly. The output of the system are similar looking textures. Finding the tree positions on a generated texture was an interesting challenge since very few assumptions could be made about the data.
Context:
To expand my knowledge, I attended the 3rd International Summer School on Artificial Intelligence and Games, which is essentially a series of talks aimed at game industry professionals and game researchers. Part of the summer school was a game jam that ran in parallel to the other events.
​
The team I was invited to join included some very experienced game developers. Additionally, I had no prior knowledge of machine learning. This was daunting at first, but I was able to contribute to core aspects of the project in meaningful ways and learned a lot.
​
The winner of the jam was decided via popular vote by the game jam participants. Seeing all the incredible projects and the years of experience, many of the participants had, I am very humbled by the fact that they chose our project as the winning one.
​
​
​
​
-
Creation of a system that generates textures out of tree and bush positions. Those textures are used to train the model.
-
Interpreting textures generated by the machine learning algorithm, meaning finding the tree positions on a generated texture.
-
Creation of the sample diorama the algorithm is learning from.
Main Responsibilities
The Sample Diorama:

This is the diorama the model was trained on. It was built with a few loose rules in mind that afford themselves to be learned by the algorithm. Examples for those rules include: Trees tend to grow on lower elevation levels and on flat terrain, bushes tend to grow sparsely on steep terrain and in groups on hilltops.
Spawning vegetation as the terrain is modified in realtime:
This is a video one of my team members has recorded and it shows the final result. Compare the generated terrain with the rules explained above. I think it's interesting to see what the system learned and where it falls short.
​
The certificate:
