Python implementation of the NEAT neuroevolution algorithm
Clone or download

Build Status Coverage Status


Due to lack of time on my part, this project is currently in maintenance-only mode. The forks by @drallensmith and @bennr01 have been extended beyond this implementation a great deal, so those might be better starting points if you need more features than what you see here.


NEAT (NeuroEvolution of Augmenting Topologies) is a method developed by Kenneth O. Stanley for evolving arbitrary neural networks. This project is a Python implementation of NEAT. It was forked from the excellent project by @MattKallada, and is in the process of being updated to provide more features and a (hopefully) simpler and documented API.

For further information regarding general concepts and theory, please see Selected Publications on Stanley's website.

neat-python is licensed under the 3-clause BSD license.

Getting Started

If you want to try neat-python, please check out the repository, start playing with the examples (examples/xor is a good place to start) and then try creating your own experiment.

The documentation, which is still a work in progress, is available on Read The Docs.


Here is a Bibtex entry you can use to cite this project in a publication. The listed authors are the maintainers of all iterations of the project up to this point.

    Title = {neat-python},
    Author = {Alan McIntyre and Matt Kallada and Cesar G. Miguel and Carolina Feher da Silva},
    howpublished = {\url{}}