shahanneda / EvolutionarySimulator

An evolutionary trained neural network capable of playing snake.

Home Page:https://shahan.ca/EvolutionarySimulator/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Evolutionary Simulator

An implementation of the NEAT (Neuroevolution of Augmenting Topologies) algorithm

Run the simulator online running in assembly by clicking this link

image

This project implements the NEAT algorithm, which is an evolutionary approeach to training neural networks, and provides a GUI that allows visualisation of the algorithm.

The algorithm is implemented in an abstract way that allows any type of task to be plugged in. Currently, there is a Snake and XOR task.

Written in pure C++, with no external dependencies relating to the neural networks / evolution. GUI made using ImGUI/OpenGL/WebGL, can run both in the browser using web assembly, and locally. It is much faster when running natively compared to in web assembly.

Running

Run the script ./full_build.sh for a full native build, run ./emc_full_build.sh for a webassembly build (which can be tested with ./run_test_web_server.sh.

About

An evolutionary trained neural network capable of playing snake.

https://shahan.ca/EvolutionarySimulator/


Languages

Language:C++ 96.2%Language:HTML 1.3%Language:Python 0.9%Language:CMake 0.8%Language:Shell 0.8%