This is a java library for the NEAT algorithm.
It implements all processes of evolution described in Stanley and Miikkulainen's Evolving Neural Networks through Augmenting Topologies (2002), while adding some functionality not in the paper.
It supports recursive connections, custom activation functions, complete parameterization of behaviour, multiple instances using different parameters, guaranteed equal results using random instances with the same seed, saving and loading genomes, etc.
Check out the included examples to learn how to use this library.
The EvolveXOR example is the simplest. A slightly more complex demo is EvolvePoleBalancingNV.
The Drift2 example, using Processing, uses this library to evolve a group of cars to lap around a track.
The javadoc is extensive, and the package-info explains intended usage.