CHECK OUT THE ORIGINAL PROJECT For the people who know how Genetic Algorithm works, you can scroll to the bottom to find information about the specifics of the Genetic Algorithm. Each car uses 6 sensors to see. The program starts with 20 random AIs. They do random things. The light green one is the best of the best. Each AI has a digital brain called an Artificial Neural Network. They get one point every time they move if they don't die. They get 5 points if they reach the end. But after each game when every car crashes or reaches the end, the program sorts the AIs from best to worst. It keeps the top third and deletes the rest. It then creates random copies of the top third and combines 2 of them at a time to make new ones. Then, it creates random new ones for more diversity. The AIs learn to drive straight for the first 5 generations then go on to more complex maps. After the 5th generation, the map changes by 50% chance when all the cars crash or reach the end. Thanks to @daidaidai1 for most of the costumes and all of backdrops, some of the code(just for changing the background and some numbers for how the car should move). @daidaidai1 if I forgot to credit you for anything, please let me know. I made the AI though. I wanted to use a whole different method of AI to do this, and I think it worked pretty well. For the people who know how these things work, here is some more detailed information: This uses ANNs. One hidden layer with 13-17 Sigmoid neurons each. 6 inputs and 2 outputs. Weights and biases for new AIs have a range from -20 to 20 but ANNs can go beyond the range through mutation. Mutation happens by changing each value by either 1 or -1 multiplied by if a random number between 1 and 100 is greater than a certain number. That number is 50. I found Sigmoid to be the best activation function. I forgot to program it for ReLu and Tanh barely kept crashing the cars. Binary learned too slow. I saw little difference with perceptron but sigmoid learned a bit faster consistently. If you want to go inside the project and try with different neurons 1 is perceptron, 2 is binary, 3 is Sigmoid, 4 is ReLu (you'll have to program your own way of using the output values to determine what to do), and 5 is Tanh. If any information was incorrect, please tell me in the comments. Neural Network Algorithm Network Evolution