NEAT Sumo implements part of the NEAT Algorythm to train agents to fight in a sumo like environment.
Once an agent is out of bounds the opponents score is increased. If no agent is forced out of the ring the agent which is closer to the center is the winner and its score increased.
Training is done in Workers for multithreading. Worker from a pool are assigned a numer of fights and return which side one and how. Then the scores are calculated in the main thread and a promise for the worker is resolved. Once all promises are resolved one generatio is finished and the next generatio is created from the current one.
No outside libraries where used for graphics, physics or machine learning.
< try here >