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 speedups and to work with current libraries.
For further information regarding general concepts and theory, please see Selected Publications in Stanley's website.
If you want to try neat-python, please check out the repository, start playing with the examples (XOR, single pole balancing, or double pole balancing) and then try creating your own experiment.