A OpenGL implementation of the Smart Rockets genetic algorithm based on The Coding Train's video: "Coding Challenge #29: Smart Rockets in p5.js".
Each rocket has its own DNA, that encodes the directions in which the rockets are going to accelerate. The next generations are created by randomly selecting two parents from the best rockets of the prior generation and combining their DNA with some mutations to create the new generation. This results in the rockets learning how to fly into the green rectangle, which can be freely moved in the simulation.