Gitpedia
CodeReclaimers

CodeReclaimers/neat-python

Python implementation of the NEAT neuroevolution algorithm

3 Releases
Latest: 2mo ago
v2.0.1Latest
CodeReclaimersCodeReclaimers·2mo ago·March 14, 2026
GitHub

Patch release with bug fixes and Python 3.12+ compatibility improvements found during a code quality review.

Version 2.0.0v2.0.0
CodeReclaimersCodeReclaimers·3mo ago·March 2, 2026
GitHub

The CTRNN (Continuous-Time Recurrent Neural Network) implementation now supports per-node evolvable time constants. In v1.x, all nodes shared a single fixed time constant passed at network creation time. In v2.0, each node carries its own time constant as an evolved gene attribute, allowing the network to operate across multiple timescales simultaneously. This is a breaking API change: CTRNN.create(genome, config, time_constant) is now CTRNN.create(genome, config). Existing feedforward and discrete-time recurrent configurations require no changes.

Version 1.1.0v1.1.0
CodeReclaimersCodeReclaimers·5mo ago·December 6, 2025
GitHub

Added

  • Reproducibility Support: Evolution can now be made deterministic by setting a random seed
  • Optional `seed` parameter in `[NEAT]` config section
  • Optional `seed` parameter in `Population.__init__()`
  • Optional `seed` parameter in `ParallelEvaluator.__init__()` for reproducible parallel evaluation
  • Comprehensive documentation in `docs/reproducibility.rst`
  • Fully backward compatible: Existing code works without changes
  • New Examples:
  • Inverted Double Pendulum example using Gymnasium
  • + 2 more

📋 Changed

  • Switch to pyproject.toml instead of setup.py
  • Dropped support for Python 3.6 and 3.7; neat-python now requires Python 3.8 or newer
  • Modernized internal implementation to use Python 3 features (f-strings, type hints, etc.)

🐛 Fixed

  • Add-node mutation bias behavior: New nodes now start with zero bias for more neutral mutations
  • Checkpoint Generation Semantics: Clarified checkpoint numbering and generation alignment
  • Population Size Drift: Fixed population size mismatches
  • Orphaned Nodes Bug: Fixed handling of nodes with no incoming connections
  • For complete details, see the [CHANGELOG](https://github.com/CodeReclaimers/neat-python/blob/master/CHANGELOG.md).
  • ---
  • Install: `pip install neat-python==1.1.0`