{"id":15038703,"url":"https://github.com/codereclaimers/neat-python","last_synced_at":"2026-03-07T21:01:52.619Z","repository":{"id":1627674,"uuid":"43226304","full_name":"CodeReclaimers/neat-python","owner":"CodeReclaimers","description":"Python implementation of the NEAT neuroevolution algorithm","archived":false,"fork":false,"pushed_at":"2026-03-02T17:16:59.000Z","size":2655,"stargazers_count":1541,"open_issues_count":0,"forks_count":509,"subscribers_count":68,"default_branch":"master","last_synced_at":"2026-03-02T19:50:21.376Z","etag":null,"topics":["neuroevolution","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodeReclaimers.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"CodeReclaimers"}},"created_at":"2015-09-26T22:59:53.000Z","updated_at":"2026-03-02T17:11:40.000Z","dependencies_parsed_at":"2023-07-05T18:49:26.462Z","dependency_job_id":"2ebc6c60-f117-4ae5-a979-75f7c0e8fb62","html_url":"https://github.com/CodeReclaimers/neat-python","commit_stats":{"total_commits":635,"total_committers":24,"mean_commits":"26.458333333333332","dds":0.5952755905511811,"last_synced_commit":"4928381317213ee3285204ae1f2a086286aa3a10"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/CodeReclaimers/neat-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeReclaimers%2Fneat-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeReclaimers%2Fneat-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeReclaimers%2Fneat-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeReclaimers%2Fneat-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodeReclaimers","download_url":"https://codeload.github.com/CodeReclaimers/neat-python/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeReclaimers%2Fneat-python/sbom","scorecard":{"id":31495,"data":{"date":"2025-08-11","repo":{"name":"github.com/CodeReclaimers/neat-python","commit":"37bc8bb73fd6153a115001c2646f9f02bac3ad81"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 2/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 3 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-14T19:13:16.636Z","repository_id":1627674,"created_at":"2025-08-14T19:13:16.636Z","updated_at":"2025-08-14T19:13:16.636Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30231489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T19:01:10.287Z","status":"ssl_error","status_checked_at":"2026-03-07T18:59:58.103Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["neuroevolution","python"],"created_at":"2024-09-24T20:39:46.891Z","updated_at":"2026-03-07T21:01:52.612Z","avatar_url":"https://github.com/CodeReclaimers.png","language":"Python","readme":"[![Tests](https://github.com/CodeReclaimers/neat-python/actions/workflows/tests.yml/badge.svg)](https://github.com/CodeReclaimers/neat-python/actions/workflows/tests.yml)\n[![Docs](https://app.readthedocs.org/projects/neat-python/badge/?version=latest)](http://neat-python.readthedocs.io)\n[![Coverage Status](https://coveralls.io/repos/CodeReclaimers/neat-python/badge.svg?branch=master\u0026service=github)](https://coveralls.io/github/CodeReclaimers/neat-python?branch=master)\n[![Downloads](https://static.pepy.tech/personalized-badge/neat-python?period=total\u0026units=international_system\u0026left_color=grey\u0026right_color=blue\u0026left_text=Downloads)](https://pepy.tech/project/neat-python)\n\n## About ##\n\nNEAT (NeuroEvolution of Augmenting Topologies) is a method developed by Kenneth O. Stanley for evolving arbitrary neural\nnetworks. This project is a pure-Python implementation of NEAT with no dependencies beyond the standard library. It was\nforked from the excellent project by @MattKallada.\n\nFor further information regarding general concepts and theory, please see the [publications page](https://www.kenstanley.net/papers) of Stanley's current website.\n\n`neat-python` is licensed under the [3-clause BSD license](https://opensource.org/licenses/BSD-3-Clause).  It is\ncurrently only supported on Python 3.8 through 3.14, and pypy3.\n\n## What's New in 2.0 ##\n\nThe 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.\n\nThis 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.\n\nFor details on the change, its motivation, quantitative impact, and migration guide, see [CTRNN-CHANGES.pdf](examples/lorenz-ctrnn/docs/CTRNN-CHANGES.pdf).\n\n## Features ##\n\n* Pure Python implementation with no dependencies beyond the standard library\n* Supports Python 3.8-3.14 and PyPy 3\n* Reproducible evolution - Set random seeds for deterministic, repeatable experiments\n* Parallel fitness evaluation using multiprocessing\n* Network export to JSON format for interoperability\n* Comprehensive documentation and examples\n\n## Getting Started ##\n\nIf you want to try neat-python, please check out the repository, start playing with the examples (`examples/xor` is\na good place to start) and then try creating your own experiment.\n\nThe documentation is available on [Read The Docs](http://neat-python.readthedocs.io).\n\nYou can also ask questions via the [experimental support agent](https://neat-python.recursive.support)!\n\n## Network Export ##\n\nneat-python supports exporting trained networks to a JSON format that is framework-agnostic and human-readable. This allows you to:\n\n- Convert networks to other formats (ONNX, TensorFlow, PyTorch, etc.) using third-party tools (the beginnings of a conversion system can be found in the `examples/export` directory)\n- Inspect and debug network structure\n- Share networks across platforms and languages\n- Archive trained networks independently of neat-python\n\nExample:\n```python\nimport neat\nfrom neat.export import export_network_json\n\n# After training...\nwinner_net = neat.nn.FeedForwardNetwork.create(winner, config)\n\n# Export to JSON\nexport_network_json(\n    winner_net,\n    filepath='my_network.json',\n    metadata={'fitness': winner.fitness, 'generation': 42}\n)\n```\n\nSee [`docs/network-json-format.md`](docs/network-json-format.md) for complete format documentation and guidance for creating converters to other frameworks.\n\n## Citing ##\n\nHere are APA and Bibtex entries you can use to cite this project in a publication. The listed authors are the originators\nand/or maintainers of all iterations of the project up to this point.  If you have contributed and would like your name added \nto the citation, please submit an issue.\n\nAPA\n```\nMcIntyre, A., Kallada, M., Miguel, C. G., Feher de Silva, C., \u0026 Netto, M. L. neat-python [Computer software]\n```\n\nBibtex\n```\n@software{McIntyre_neat-python,\nauthor = {McIntyre, Alan and Kallada, Matt and Miguel, Cesar G. and Feher de Silva, Carolina and Netto, Marcio Lobo},\ntitle = {{neat-python}}\n}\n```\n\n## Thank you! ##\nMany thanks to the folks who have [cited this repository](https://scholar.google.com/scholar?start=0\u0026hl=en\u0026as_sdt=5,34\u0026sciodt=0,34\u0026cites=15315010889003730796\u0026scipsc=) in their own work. \n","funding_links":["https://github.com/sponsors/CodeReclaimers"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodereclaimers%2Fneat-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodereclaimers%2Fneat-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodereclaimers%2Fneat-python/lists"}