Genetic Algorithm or for short GA is a search based optimization technique based on the principle and concept of Genetic evolution and Natural Selection. In more simple words it's similar to survival of the fittest. Where in a given population only those individuals are selected that are best suited for a particular task.
This small project was build using a small custom implementation of Neural Network along with P5js and Bootstrap. The same can be replicated using tensorflow.js. The main reason behind using custom implementation of Neural Network was that it is more light weight and can be easily tweaked further for a specific problem.
This is a popular classic game, where we have to make sure our little bird friend is able to avoid the maximum amount of pipes it can. Therefor an ideal bird would be the one which is able to slowly evolve in a manner that allows it to avoid those pipes.
A classic example for how prey fish adapts and learns to avoid the predator fish. For this example the prey is the only entity capable of evolving, to avoid the predator. Whereas the predators are always focused on the nearest prey. The bacis task for the prey is to understand in which direction to swim to avoid the predator.