https://github.com/jack-mil/chess-3d
Interactive 3D scene with chess engine integration (basic demo)
https://github.com/jack-mil/chess-3d
3d-graphics chess cmake cpp20 imgui ogre3d opengl proof-of-concept stockfish
Last synced: 4 months ago
JSON representation
Interactive 3D scene with chess engine integration (basic demo)
- Host: GitHub
- URL: https://github.com/jack-mil/chess-3d
- Owner: jack-mil
- License: bsd-3-clause
- Created: 2024-11-24T21:18:14.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2024-12-10T23:02:08.000Z (10 months ago)
- Last Synced: 2025-04-02T11:49:28.676Z (6 months ago)
- Topics: 3d-graphics, chess, cmake, cpp20, imgui, ogre3d, opengl, proof-of-concept, stockfish
- Language: C++
- Homepage: https://github.com/jack-mil/chess-3d/
- Size: 12.3 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [Chess 3D](https://github.com/jack-mil/chess-3d)
Quick and dirty 3D scene rendering with `stockfish` chess engine integration for a required course project.
### Controls
- LMB: Orbit Camera
- RMB: Pan Camera
- Scroll: Zoom in/out### Building
- Required: Cmake and a C++20 std library capable compiler (e.g. GCC > 9 )
- Configure: `$ cmake -B build`
- Compile: `$ cmake --build build --target chess3d`Output is `./build/chess3d`.
The [`stockfish`](https://stockfishchess.org/) chess engine binary is required at runtime (available on $PATH).
### Dependencies
Developed on Arch Linux using [Ogre 3D](https://www.ogre3d.org/) (`ogre` package).
Other dependencies are cloned and compiled by CMake at build-time ([`fmt`](https://github.com/fmtlib/fmt), [`chess-library`](https://github.com/Disservin/chess-library), [`uciadaptor`](https://gitlab.com/manzerbredes/uciadapter.git))Targets in the `examples/` subfolder were just me getting used to the various libraries I was going to use.
The CMakePresets.json contains options specific to my machine and toolchain (Ninja Multi-Config, [Mold linker](https://gitlab.com/manzerbredes/uciadapter.git), [ccache](https://ccache.dev/), parallel jobs, etc.)
### Reference
- The Console widget from: [Dear ImGUI demo widgets](https://github.com/ocornut/imgui/blob/master/imgui_demo.cpp).
- Similar Dear ImGui example from: [MPV Debug plugin](https://github.com/tsl0922/mpv-debug-plugin).
- ImGui color theme from: [Basic electrical simulation software (BESS)](https://github.com/shivang51/bess/blob/main/Bess/src/settings/themes.cpp)

