Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This is an implementation of NEAT: NeuroEvolution of Augmenting Topologies in Python.

Environments Plot (reward vs. generations) Evolved Neural Network Architecture


pip install numpy scipy matplotlib
conda install pygraphviz
pip install networkx

Installation of OpenAI Gym: [link]

How to use?

This is a minimal implementation of NEAT. I haven't used any sort of parallel computing tricks like multiprocessing over here. The implementation should be fairly easy to understand.

python --help

python --task=lunar   # Run NEAT to learn lunar-lander policy

For any customization:

  • Different tasks: Edit
  • Hyperparameters: Edit pyneat/


  • Stanley, Kenneth O., and Risto Miikkulainen. "Efficient evolution of neural network topologies." Proceedings of the 2002 Congress on Evolutionary Computation. CEC'02 (Cat. No. 02TH8600). Vol. 2. IEEE, 2002.
  • neat-python:

Refer the following implementation for additional (advanced) functionalities.

Please let me know if you come across any bugs in this implementation. Feel free to send any pull requests.