-Description- This project is an experiment in which I tried to code a program similar to AI called machine learning. The clones (blue squares) can learn to complete any simple plat-forming level. You can move your character (orange square) and watch the clones learn to beat the level bit by bit. Each generation they get a bit farther in the level. You can design your own levels for it to beat by going into the "Projector" sprite and modifying the "level" costume. Note that sometimes when switching sprites while the program is running, player and clones will clip through the ground. -How it Works- The project starts with a main script generating a random string of numbers (DNA) for each clone (offspring). Then each clone converts the random numbers assigned to it to instruction for how to move and where. Then it moves like the instructions say. It will be deleted if it does not make progress for a certain amount of time or if it runs out of instructions (DNA Length). Just before it deletes itself, it sends how far it made back to the main script. The main script will sort through all the scores and pick out the best of them. Then it takes the DNA for the clones that did the best and gives the rest of the clones that same DNA. However, each clone with have it's own random modifications to that DNA. Each clone will be slightly different, but still similar to the best clones of the last generation. Then all the clones move again and the process repeats. Over time, the clones will get better and better DNA and will eventually make it to the end...at least in theory. One problem it has is that while a clone gets some positive mutations, most of them are negative (just like it real life DNA mutations). The farther the clones get into the level, the slower the progress because while a clone may get a positive mutation it will also probably get several negative mutations that mess it up at the beginning. I was able to get them to beat the whole thing by setting the "Mutation Rate" to 20 which reduces the amount of mutation that a clone gets. If the level was much longer though, even changing the "Mutation Rate" would not work. While this technique, machine learning, has limitations, I am delighted that I was able to get it working in Scratch and I look for other instances where machine learning could be a useful tool. If you want to look inside the code, I labeled all the scripts inside the ML (machine learning) sprite with comments. Have fun scratching! -Credits- I wrote all the code and created all the assets for this project. However, this technique (machine learning) was dreamed up by the creative programmer Arthur Samuel in about 1959. A huge thank you to him for kick-starting the technology that has now become AI.