https://github.com/clarkerubber/irwin Skip to content Sign up * Product + Features + Mobile + Actions + Codespaces + Copilot + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Skills + GitHub Sponsors + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} clarkerubber / irwin Public * Notifications * Fork 31 * Star 301 irwin - the protector of lichess from all chess players villainous lichess.org License AGPL-3.0 license 301 stars 31 forks Star Notifications * Code * Issues 4 * Pull requests 4 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights clarkerubber/irwin This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 7 branches 0 tags Code Latest commit @clarkerubber clarkerubber Merge pull request #9 from lakinwecker/master ... bebf193 Nov 10, 2019 Merge pull request #9 from lakinwecker/master Numerous fixes to improve Irwin's stability bebf193 Git stats * 570 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time conf get training to pass runtime checks Jul 8, 2018 modules Only less than matters. Sep 29, 2019 utils lots of undocumented changes Sep 1, 2018 webapp Add a keepalive to the socket connection. Apr 13, 2019 .gitignore ignore .venv Oct 3, 2018 Env.py stream tensor building Sep 2, 2018 LICENSE add license May 7, 2017 Pipfile Add a keepalive to the socket connection. Apr 13, 2019 Pipfile.lock Add a keepalive to the socket connection. Apr 13, 2019 README.md lots more progress on implementing strict types Jul 6, 2018 app.py Add a keepalive to the socket connection. Apr 13, 2019 client.py Update client.py Nov 10, 2019 default_imports.py get analysis and reporting engine working Jul 12, 2018 lichess-listener.py Add a keepalive to the socket connection. Apr 13, 2019 tools.py remove GameStore import Sep 1, 2018 View code [ ] irwin Dependencies Python Libraries Database Configuring Create conf/ config.json Build a database of analysed players About README.md irwin irwin is the AI that learns cheating patterns, marks cheaters, and assists moderators in assessing potential cheaters. screenshot of Irwin report screenshot of companion WebApp Dependencies Compatible with Python 3.x Python Libraries pip3 install pymongo python-chess numpy requests * tensorflow : tensorflow installation guide Database * mongodb : mongodb installation guide Configuring Create conf/config.json { "api": { "url": "https://lichess.org/", "token": "token" }, "stockfish": { "threads": 4, "memory": 2048, "nodes": 4500000, "update": false }, "db": { "host": "localhost", "port": 27017, "authenticate": false, "authentication": { "username": "username", "password": "password" } }, "irwin": { "train": { "batchSize": 5000, "cycles": 80 } } } conf/config.json contains config for stockfish, mongodb, tensorflow, lichess (authentication token and URL), etc... Build a database of analysed players If you do not already have a database of analysed players, it will be necessary to analyse a few hundred players to train the neural networks on. python3 main.py --no-assess --no-report About Irwin (named after Steve Irwin, the Crocodile Hunter) started as the name of the server that the original cheatnet ran on (now deprecated). This is the successor to cheatnet. Similar to cheatnet, it works on a similar concept of analysing the available PVs of a game to determine the odds of cheating occurring. This bot makes improvements over cheatnet by taking a dramatically more modular approach to software design. modules/core contains most of the generic datatypes, BSON serialisation handlers and database interface layers. It is also significantly faster due to a simplified approach to using stockfish analysis. modules/irwin contains the brains of irwin, this is where the tensorflow learning and application takes place. Irwin has been designed so that modules/irwin can be replaced with other approaches to player assessment. Env.py contains all of the tools to interact with lichess, irwin, and the database handlers. main.py covers accessing the lichess API (modules/Api.py) via Env to get player data; pulling records from mongodb, analysing games using stockfish, assessing those games using tensorflow and then posting the final assessments. About irwin - the protector of lichess from all chess players villainous lichess.org Topics python machine-learning chess-engine chess ai mongodb tensorflow numpy python3 lichess-api lichess python-chess Resources Readme License AGPL-3.0 license Stars 301 stars Watchers 23 watching Forks 31 forks Releases No releases published Packages 0 No packages published Contributors 4 * @clarkerubber clarkerubber James Clarke * @lakinwecker lakinwecker Lakin Wecker * @isaacl isaacl Isaac Levy * @ddugovic ddugovic Daniel Dugovic Languages * Python 98.8% * JavaScript 1.2% Footer (c) 2022 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.