MY WORK IN SHORT
Feedforward Neural Network
Customization
- Your desktop powered by Machine Learning -
Seagulls' Playground is an application developed for Wallpaper Engine that allows you to follow the genetic evolution of a group of seagulls that learn to fly through hoops in realtime using Machine Learning. It was a solo school project that I wanted to improve afterwards.
I used icons from Flaticon for this project.
MACHINE LEARNING
The way it works is pretty easy to understand. We start a training session and give points to the seagulls that do things we want them to do. It can be whatever you want: passing through hoops for example! When the session is over, we check which seagulls have behaved the most as we wanted and select them for the next generation. We then create a slightly modified copy of them and restart the training session with both the selected and the copied pools. Following this process, seagulls will learn how to behave in the way we defined, generations after generations.
This is possible thanks to what we called the neural network. Every agent (our seagulls) has its own neural network. This neural network makes the agent behave. It takes input (that are some variables we define, like position or rotation), executes operations with random numbers, then outputs values that we can use to control the agent.
When we modify the copy of the selected seagulls, we actually modify the random values that are stored inside the agent's neural network.
GENETIC SELECTION
Defining which agent behaves well means defining a performance value. In my case, this value increases as the agent gets closer to an hoop and passes through it. The faster it passes through an hoop, the more points it will get. At the end of the training session, we select the agents for which the performance values are the highest of the pool.

There you can see how agents gradually learn to pass through hoops!

PLAYGROUND
I wanted to allow the player to custom the playground and follow every generation. We can see the leaderboard that shows the best agents in realtime. The player is not only able to move the blocs with hoops but also to set their height (though it does not work on Wallpaper Engine yet). I also integrated a save button that allows the player to store the current generation to load it later.
Back to Top