Crate neat

source ·
Expand description

A simple crate that implements the Neuroevolution Augmenting Topologies algorithm using genetic-rs

§Feature Roadmap:

  • base (single-core) crate
  • rayon
  • serde
  • crossover

You can get started by looking at genetic-rs docs and checking the examples for this crate.



  • Built-in nextgen functions and traits to go with them.
  • Used to quickly import everything this crate has to offer. Simply add use genetic_rs::prelude::* to begin using this crate.
  • A module containing the main NeuralNetwork struct. This has state/cache and will run the predictions. Make sure to run NeuralNetwork::flush_state between uses of NeuralNetwork::predict.
  • A module containing the NeuralNetworkTopology struct. This is what you want to use in the DNA of your agent, as it is the thing that goes through nextgens and suppors mutation.





  • When making a new generation, it despawns half of the genomes and then spawns children from the remaining to reproduce. WIP: const generic for mutation rate, will allow for DivisionReproduction::divide to accept a custom mutation rate. Delayed due to current Rust limitations
  • When making a new generation, it mutates each genome a certain amount depending on their reward. This nextgen is very situational and should not be your first choice.

Derive Macros§