eight0153/CartPole-NEAT

View on GitHub
README.md

Summary

Maintainability
Test Coverage
[![Build Status](https://travis-ci.com/eight0153/CartPole-NEAT.svg?token=mBA1uqs7VwsypGYiKPgD&branch=master)](https://travis-ci.com/eight0153/CartPole-NEAT)
[![codebeat badge](https://codebeat.co/badges/a6656f42-36b7-4605-ab72-0153b4d24d37)](https://codebeat.co/projects/github-com-eight0153-cartpole-neat-master)
[![Maintainability](https://api.codeclimate.com/v1/badges/1678fd2cef75afa22cd1/maintainability)](https://codeclimate.com/github/eight0153/CartPole-NEAT/maintainability)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/08f0846ff60d48f8960bbcb55050cd02)](https://www.codacy.com?utm_source=github.com&utm_medium=referral&utm_content=eight0153/CartPole-NEAT&utm_campaign=Badge_Grade) 
[![codecov](https://codecov.io/gh/eight0153/CartPole-NEAT/branch/master/graph/badge.svg?token=uZUyIx10T5)](https://codecov.io/gh/eight0153/CartPole-NEAT)
# CartPole-NEAT
In this project I aim to implement [NEAT](https://en.wikipedia.org/wiki/Neuroevolution_of_augmenting_topologies) in python. Then I will try solve the CartPole problem using it. I will use [OpenAI Gym's environment](https://gym.openai.com/envs/CartPole-v0/) for this. I also plan to make this program multi-threaded so that I can have multiple runs (with possibly different configurations) running in parallel.

I also want to make a supporting web application that will handle real-time plotting as I have found [matplotlib](https://matplotlib.org/) to be a bit lacking in that area. This as an opportunity to practice some web development skills and learn some new tech. This web application would be a RESTful application served locally from a [flask](http://flask.pocoo.org/) server running in [docker](https://www.docker.com/) container, backed by [MongoDB](https://www.mongodb.com/) or possibly [PostgreSQL](https://www.postgresql.org/). For the front end of things I will probably use a combination of Twitter [Bootstrap](https://getbootstrap.com/), [React](https://reactjs.org/), and [JavaScript Live](https://canvasjs.com/html5-javascript-dynamic-chart/).

Check out the [wiki pages](https://github.com/eight0153/CartPole-NEAT/wiki) for relevant resources and the [projects page](https://github.com/eight0153/CartPole-NEAT/projects) to see the progress of brainstorming, planning, and implementation. This project is split up into three subprojects: the actual genetic algorithm implementation, the RESTful API that provides access to test data, and the dashboard that provides visualizations of previous runs and a real time visualization test runs that are in progress. Each subproject contains a README.md with further details.

## Test Suite
I intend on building up a test suite as I go. This can be run with the 'test_suite.sh' script, although you probably don't need to do this yourself since Travis CI does this for you.