Skip to content

Neuroevolution of Neural Network for snakes in the Browser

Notifications You must be signed in to change notification settings

Elyx0/snakeneuralnetworkjs

Repository files navigation

snakeneuralnetworkjs Build Status

DEMO: https://snakeneuralnetwork.herokuapp.com/

Neuroevolution of Neural Network of snakes in the Browser.

This is a demonstration of evolving a neural network thanks to genetics algorithms in the browser using a multilayer perceptron (150-15-15-1).

The initial population contains 36 individuals, each assigned a different genome. They will fight following a round-robin tournament. At the end the top 7 are kept alive, and the remaining 29 are created by breeding from the 7.

Each snake has 50 sensors, each reporting 3 inputs:

  1. The distance the sensor has hit something normalized between 0 and 1
  2. 1 if this sensor touched the enemy body
  3. 1 if this sensor touched the enemy body

Screenshot

Snakes fighting:

Snakes

Sensors:

Snakes

Green: The sensor touched the enemy body Yellow: The sensor did not report any activity Red: The sensor is hitting a wall or its own body Blue: The sensor is touching the enemy head

Install

  • Note: requires a node version >= 6 and an npm version >= 3.

First, clone the repo via git:

git clone https://github.com/elyx0/snakeneuralnetworkjs.git your-project-name

And then install dependencies.

$ cd your-project-name && npm install

💡 you will need to run npm run build for publishing like for heroku

Run

$ node server.js

Then head to localhost:8080 in the browser.

Testing

$ npm run test

About

Neuroevolution of Neural Network for snakes in the Browser

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published