Build Status Coverage Status


This project is currently in maintenance-only mode. I will make bug fixes, do cleanup, and possibly improve sample code as I have time, but I will not be adding any new features. 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 pure-Python implementation of NEAT with no dependencies beyond the standard library. 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, 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{}}