{"id":21896634,"url":"https://github.com/dmeybohm/wisdom-chess","last_synced_at":"2026-04-09T08:37:15.876Z","repository":{"id":36984797,"uuid":"378204304","full_name":"dmeybohm/wisdom-chess","owner":"dmeybohm","description":"Simple multiplatform C++ chess program.","archived":false,"fork":false,"pushed_at":"2025-05-16T04:44:46.000Z","size":3629,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-16T05:22:22.998Z","etag":null,"topics":["chess","chess-engine","chess-engine-gui"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmeybohm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-06-18T16:12:49.000Z","updated_at":"2025-05-16T04:44:49.000Z","dependencies_parsed_at":"2023-02-14T17:15:30.430Z","dependency_job_id":"c67618ba-5e1b-4541-bd5d-7b7fef5bb688","html_url":"https://github.com/dmeybohm/wisdom-chess","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dmeybohm/wisdom-chess","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmeybohm%2Fwisdom-chess","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmeybohm%2Fwisdom-chess/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmeybohm%2Fwisdom-chess/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmeybohm%2Fwisdom-chess/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmeybohm","download_url":"https://codeload.github.com/dmeybohm/wisdom-chess/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmeybohm%2Fwisdom-chess/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265068500,"owners_count":23706465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["chess","chess-engine","chess-engine-gui"],"created_at":"2024-11-28T13:46:53.960Z","updated_at":"2026-04-09T08:37:15.870Z","avatar_url":"https://github.com/dmeybohm.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eWisdom Chess\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/dmeybohm/wisdom-chess/main/src/wisdom-chess/ui/qml/images/wisdom-chess-animate.gif\" /\u003e\n\u003c/p\u003e\n\n----\n\nWisdom Chess is a multiplatform chess engine written in C++20 with multiple front-ends:\n- **Web**: React frontend with WebAssembly chess engine\n- **Web (QML)**: Qt QML application compiled to WebAssembly\n- **Desktop**: Qt QML application for Windows, macOS, and Linux\n- **Mobile**: Qt QML application for Android\n- **Console**: Command-line interface\n\n🌐 **[Play online at wisdom-chess.netlify.app](https://wisdom-chess.netlify.app)**\n\n## Features\n\n- Full chess engine with move validation and game rules\n- Configurable search depth and time limits for engine strength\n- Clean, modern user interfaces across all platforms\n- WebAssembly for high-performance web chess\n- Cross-platform compatibility\n\n## Building\n\n### Prerequisites\n\n- **C++ Compiler**: GCC, Clang, or MSVC with C++20 support\n- **CMake**: Version 3.20 or higher\n- **Optional**: Qt 6.x for desktop/mobile GUI\n- **Optional**: Emscripten SDK for web version\n- **Optional**: Node.js for React frontend development\n\n### Quick Start (Console Version)\n\nThe simplest way to try Wisdom Chess:\n\n```bash\ngit clone https://github.com/dmeybohm/wisdom-chess.git\ncd wisdom-chess\nmkdir build \u0026\u0026 cd build\ncmake .. -DCMAKE_BUILD_TYPE=Release\ncmake --build . -j8\n./src/wisdom-chess/ui/console/wisdom-chess-console\n```\n\n### Web Version (React + WebAssembly)\n\n1. **Install Emscripten SDK**:\n   ```bash\n   git clone https://github.com/emscripten-core/emsdk.git\n   cd emsdk\n   ./emsdk install latest\n   ./emsdk activate latest\n   source ./emsdk_env.sh\n   ```\n\n2. **Build WebAssembly + React (Integrated)**:\n   ```bash\n   mkdir build-web \u0026\u0026 cd build-web\n   emcmake cmake .. -DCMAKE_BUILD_TYPE=Release\n   cmake --build . --target wisdom-chess-react\n   ```\n\n   This automatically:\n   - Builds the WebAssembly chess engine\n   - Runs `npm install` for React dependencies\n   - Builds the production React frontend\n   - Output is in `src/wisdom-chess/ui/react/dist/`\n\n3. **Development server**:\n   ```bash\n   cmake --build . --target wisdom-chess-react-dev\n   ```\n   Starts development server at `http://localhost:5173`\n\n### Desktop Version (Qt QML)\n\n1. **Install Qt 6.x** from [qt.io](https://www.qt.io/)\n\n2. **Build with Qt**:\n   ```bash\n   mkdir build-desktop \u0026\u0026 cd build-desktop\n   cmake .. -DWISDOM_CHESS_QT_DIR=~/Qt/6.9.2/gcc_64 -DCMAKE_BUILD_TYPE=Release\n   cmake --build . --target WisdomChessQml\n   ./src/wisdom-chess/ui/qml/WisdomChessQml\n   ```\n\n### Web Version (Qt QML + WebAssembly)\n\nThe Qt QML interface can also be compiled to WebAssembly:\n\n```bash\n# Setup Emscripten (see web version instructions above)\nsource ./emsdk_env.sh\n\nmkdir build-qml-wasm \u0026\u0026 cd build-qml-wasm\nemcmake cmake .. -DWISDOM_CHESS_QT_DIR=~/Qt/6.9.2/wasm_multithread -DCMAKE_BUILD_TYPE=Release\ncmake --build . --target WisdomChessQml\n# Serve the generated files with a web server\n```\n\nNote: Requires Qt for WebAssembly, which is a separate Qt installation.\n\n### Android Version\n\nUse Qt Creator with Android NDK configured. See [Qt Android documentation](https://doc.qt.io/qt-6/android-getting-started.html) for setup details.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/dmeybohm/wisdom-chess/main/src/wisdom-chess/ui/qml/images/wisdom-chess-android.png\" /\u003e\n\u003c/p\u003e\n\n### Building with FIL-C\n\n[FIL-C](https://github.com/pizlonator/fil-c) is auto-detected at configure time via the `__PIZLONATOR_WAS_HERE__` preprocessor macro. When detected, `WISDOM_CHESS_FILC_COMPAT` is automatically enabled, which disables POSIX signals in doctest (unsupported by FIL-C).\n\n```bash\n# Set FILC_ROOT to your FIL-C installation (adjust path as needed):\nexport FILC_ROOT=/usr/local/filc-0.678-linux-x86_64\n\nmkdir build-filc \u0026\u0026 cd build-filc\ncmake .. \\\n  -DCMAKE_CXX_COMPILER=$FILC_ROOT/build/bin/fil++ \\\n  -DCMAKE_BUILD_TYPE=Release\ncmake --build . -j8\n```\n\nIf binaries fail to find FIL-C runtime libraries at execution time, add an rpath via linker flags:\n```bash\ncmake .. \\\n  -DCMAKE_CXX_COMPILER=$FILC_ROOT/build/bin/fil++ \\\n  -DCMAKE_BUILD_TYPE=Release \\\n  -DCMAKE_EXE_LINKER_FLAGS=\"-Wl,-rpath,$FILC_ROOT/pizfix/lib\"\n```\n\nTo manually override the FIL-C compatibility setting:\n```bash\ncmake .. -DWISDOM_CHESS_FILC_COMPAT=OFF  # Force disable\ncmake .. -DWISDOM_CHESS_FILC_COMPAT=ON   # Force enable\n```\n\n## Build Options\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `WISDOM_CHESS_QML_UI` | AUTO | Qt QML UI: AUTO/ON/OFF |\n| `WISDOM_CHESS_REACT_BUILD_INTEGRATED` | ON (web), OFF (others) | Integrate Node.js build |\n| `WISDOM_CHESS_FAST_TESTS` | ON | Build fast test suite |\n| `WISDOM_CHESS_SLOW_TESTS` | OFF | Build comprehensive test suite |\n\n### Examples:\n```bash\n# Force Qt GUI even if not found (fails if Qt missing)\ncmake .. -DWISDOM_CHESS_QML_UI=ON\n\n# Disable Qt GUI completely\ncmake .. -DWISDOM_CHESS_QML_UI=OFF\n\n# Enable slow tests for thorough validation\ncmake .. -DWISDOM_CHESS_SLOW_TESTS=ON\n```\n\n## Running Tests\n\n```bash\n# Fast tests (runs in seconds)\n./src/wisdom-chess/engine/test/wisdom-chess-fast-tests\n\n# Slow tests (comprehensive, takes longer)\ncmake .. -DWISDOM_CHESS_SLOW_TESTS=ON\ncmake --build .\n./src/wisdom-chess/engine/test/wisdom-chess-slow-tests\n```\n\n## Screenshots\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/dmeybohm/wisdom-chess/main/src/wisdom-chess/ui/qml/images/windows-wisdom-chess.png\" /\u003e\n\u003c/p\u003e\n\n## Contributing\n\nSee `CLAUDE.md` for development guidelines including code style, build instructions, and architecture notes.\n\n## License\n\nCopyright © Dave Meybohm\n\nThe chess engine and applications are released under the MIT License.\n\n### Third-Party Assets\n\n- Chess piece images: Copyright Colin M.L. Burnett, used under [Creative Commons BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/)\n- UI icons: From [Boxicons](https://boxicons.com/), used under [Creative Commons 4.0](https://creativecommons.org/licenses/by/4.0/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmeybohm%2Fwisdom-chess","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmeybohm%2Fwisdom-chess","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmeybohm%2Fwisdom-chess/lists"}