{"data":{"slug":"pbatch-camerachessweb","name":"CameraChessWeb","tagline":"Record chess games live and upload to Lichess using camera","github_url":"https://github.com/Pbatch/CameraChessWeb","owner":"Pbatch","repo":"CameraChessWeb","owner_avatar_url":"https://avatars.githubusercontent.com/u/37177749?v=4","primary_language":"TypeScript","stars":266,"forks":41,"topics":["ai","chess","chess-ai","chess-board","computer-vision","edge-computing","machine-learning","tensorflowjs","yolov8"],"archived":false,"github_pushed_at":"2026-09-11T02:31:45+00:00","maintenance_label":"Active","stars_delta_30d":3,"url":"https://www.graphcanon.com/tools/pbatch-camerachessweb","markdown_url":"https://www.graphcanon.com/tools/pbatch-camerachessweb.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/pbatch-camerachessweb","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=pbatch-camerachessweb","description":"Record a chess game live and upload the PGN to Lichess","homepage_url":"https://www.chesscam.net","license":"AGPL-3.0","open_issues":15,"watchers":6,"ai_summary":"Develops an application for recording chess games in real time with a phone camera and uploading the game notation (PGN) to Lichess website, utilizing computer vision techniques.","readme_excerpt":"<div align=\"center\">\n\n📌 This app is under active development and may experience minor issues.  \nPlease report any bugs on Discord, and we will fix them promptly.\n\n<table>\n  <tr>\n    <td align=center>\n      <img src=\"https://github.com/user-attachments/assets/f7e73c25-36f6-42b7-aae9-e970e7bcebeb\" alt=\"ChessCam\" width=\"512\">\n    </td>\n  </tr>\n</table>\n\n\n\n\nReplace Chess eBoards with your phone camera using ChessCam (https://www.chesscam.net).\n\nDo you have ideas, bugs to report or training footage? Join our [Discord Server](https://discord.gg/3yQth8YBp8).\n\n</div>\n\n## Demo\n[<img src=\"https://raw.githubusercontent.com/wiki/Pbatch/CameraChessWeb/images/thumbnail.png\" width=\"100%\">](https://youtu.be/AAs4EX372bc)\n\n## Roadmap\n\n* Raise an alert when an illegal move is played (currently they're just ignored)\n* Add sounds for the opponents moves in \"/play\"\n* Add support for variants\n* Develop a testing framework for different board + piece sets\n* ... Your next big idea?\n\n## Models, Data, Reports and Scripts\n\nPlease post in the Issues tab if you need any help with:\n* Running inference\n* Exporting models to different formats\n* Training on data of varying resolutions (I.e. 640x640)\n* etc. etc.\n\n### Pieces\n\n| Name | Description | Link |\n| :---: | :---: | :---: |\n| 480M_leyolo_pieces.onnx | LeYOLO ONNX model| https://drive.google.com/file/d/1-80xp_nly9i6s3o0mF0mU9OZGEzUAlGj/view?usp=sharing |\n| 480M_leyolo_pieces.pt | LeYOLO pt model | https://drive.google.com/file/d/1L6PZbSdT-peCmiJGNwmgHJN5MTpfAM-0/view?usp=sharing |\n| pieces.tar.gz | Train/test data in YOLOv5 format | https://drive.google.com/file/d/12-Y3AJckAsFiDTlhQV8R50AK5ilM0s_Z/view?usp=sharing |\n| Report | Weights & Biases report from the LeYOLO training run | https://api.wandb.ai/links/pbatch/g2rcvycv |\n\n### Xcorners\n\n| Name | Description | Link |\n| :---: | :---: | :---: |\n| 480L_leyolo_xcorners.onnx | LeYOLO ONNX model | https://drive.google.com/file/d/1-2wodbiXag9UQ44e2AYAmoRN6jVpxy83/view?usp=sharing |\n| 480L_leyolo_xcorners.pt | LeYOLO pt model | https://drive.google.com/file/d/173orSe8eaytN8nin_HOvd2sEfP_wtOUW/view?usp=sharing |\n| xcorners.tar.gz | Train/test data in YOLOv5 format | https://drive.google.com/file/d/15Liy-vMcujSZak4YRPeC2TpVjIA3AwVM/view?usp=sharing |\n| Report | Weights & Biases report from the LeYOLO training run | https://api.wandb.ai/links/pbatch/ziwur3gr |\n\n### Google Colab scripts\n\n* LeYOLO Training + ONNX export - https://gist.github.com/Pbatch/dccc680ac2f852d4f258e4b6f1997a7b\n* TFJS export - https://gist.github.com/Pbatch/46d958df7e0363e42561bda50163a57a\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\n\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/ConorShepherd\"><img src=\"https://avatars.githubusercontent.com/u/75845466?v=4?s=100\" width=\"100px;\" alt=\"Conor Shepherd\"/><br /><sub><b>Conor Shepherd</b></sub></a><br /><a href=\"#research-ConorShepherd\" title=\"Research\">🔬</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/tdr24008\"><img src=\"https://avatars.githubusercontent.com/u/109679977?v=4?s=100\" width=\"100px;\" alt=\"tdr24008\"/><br /><sub><b>tdr24008</b></sub></a><br /><a href=\"#research-tdr24008\" title=\"Research\">🔬</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/DakshHandeCode\"><img src=\"https://avatars.githubusercontent.com/u/153603746?v=4?s=100\" width=\"100px;\" alt=\"DakshHandeCode\"/><br /><sub><b>DakshHandeCode</b></sub></a><br /><a href=\"#design-DakshHandeCode\" title=\"Design\">🎨</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/ChessScholar\"><img src=\"https://avatars.githubusercontent.com/u/65353254?v=4?s=100\" width=\"100px;\" alt=\"ChessScholar\"/><br /><sub><b>ChessScholar</b></sub></a><br /><a href=\"https://github.com/Pbatch/CameraChessWeb/issues?q=author%3AChessScholar\" title=\"Bug reports\">🐛</a></td>","github_created_at":"2023-06-28T23:07:09+00:00","created_at":"2026-07-11T12:32:33.762673+00:00","updated_at":"2026-09-25T06:00:22.705513+00:00","categories":[{"slug":"computer-vision","name":"Computer Vision","url":"https://www.graphcanon.com/categories/computer-vision","markdown_url":"https://www.graphcanon.com/categories/computer-vision.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/computer-vision"},{"slug":"model-training","name":"Model Training","url":"https://www.graphcanon.com/categories/model-training","markdown_url":"https://www.graphcanon.com/categories/model-training.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/model-training"}],"tags":[{"slug":"ai","name":"ai"},{"slug":"chess-ai","name":"chess-ai"},{"slug":"tensorflowjs","name":"tensorflowjs"},{"slug":"yolov8","name":"yolov8"}],"trust":{"provenance":{"is_fork":false,"github_id":659945744,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-25T06:00:21.440Z","maintenance":{"label":"Active","score":82,"methodology":"github_public_v1","releases_90d":0,"days_since_push":14,"last_release_at":null,"stars_delta_30d":3,"open_issues_delta_30d":6},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T12:32:42.388Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"mcp":{"source":"repo_scan","observed_at":"2026-09-25T06:00:22.115Z","server_manifest":false},"scan":{"source":"repo_scan","observed_at":"2026-09-25T06:00:22.115Z"},"has_cli":{"value":true,"source":"package.json:bin|scripts","observed_at":"2026-09-25T06:00:22.115Z"},"languages":{"value":["typescript","javascript"],"source":"github.language+package.json","observed_at":"2026-09-25T06:00:22.115Z"},"license_spdx":{"value":"AGPL-3.0","source":"github.license","observed_at":"2026-09-25T06:00:22.115Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["When you need a tool specifically designed for recording real-time chess games with a phone camera","If uploading PGN directly to the Lichess platform is essential"],"when_not_to_use":["Avoid if seeking full support for chess variants not yet included in CameraChessWeb","Not suitable if you require comprehensive bug fixes or stability, given it's under active development with known minor issues"],"source":"enrich:decision_facts","observed_at":"2026-07-17T03:15:13.396Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"CameraChessWeb records chess games live via camera and uploads game notation to Lichess using computer vision techniques."}]}}