Skip to content

Latest commit

 

History

History
65 lines (44 loc) · 1.65 KB

README.md

File metadata and controls

65 lines (44 loc) · 1.65 KB

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