NeatJS

A JavaScript implementation of the Neat Algorithm.

Genome Drawing done using D3.js

Examples

Classification

Using an evolutionary process we eventually get a network that can identify whenever a point is on one side or the other of the line. View it in action.

Pole Balancing

Pole balancing is a control benchmark historically used in engineering. It involves a pole affixed to a cart via a joint which allows movement along a single axis. The cart is able to move along a track of fixed length. Using the Neat Algorithm, we can evolve a network to control the cart. Here it is!

Target Seeking

In this example, we have four different populations, and each population evolves independently and at the end of each generation the best population on average score gets a point. The purpose of each player is to stay in the circle as long as possible. Check it out!

Self Driving Car

Applying the NEAT algorithm to a 3D car trying to get along a course, we can clearly see how Neural Networks evolve generation after generation improving their abilities to get along the track. You can even tweak different parameters to customize the fitness function. Try it!

Atari Asteroids

A population of 150 spaceships evolving to beat the old Atari Asteroids Game. Spaceships can see the distance to the closest asteroid in 16 directions evenly spaced around them and can move forward, turn right or left and shoot. Try it!