A free, open-source and modern Chess Variant Analysis GUI for the 21st century
# install dependencies
npm install
# serve with hot reload at localhost:9080
node src/server/index.js
npm run dev
# build electron application for production
npm run build
# lint all JS/Vue component files in `src/`
npm run lint
-
Move
ffish.wasm
of packageml-research/liground/node_modules/ffish-es6
to the main directoryml-research/liground
. -
Download a binary of Multi-Variant-Stockfish or build it from scratch.
-
Rename the Multi-Variant-Stockfish binary to
stockfish
and move it toml-research/liground/src/server/engines
.
The following libraries or assets are used in LiGround:
Library | Description | Usage |
---|---|---|
ffish.js | A high performance WebAssembly chess variant library based on Fairy-Stockfish as a standard module. | Used in the back-end to parse the UCI replies of the active engine. |
ffish-es6.js | A high performance WebAssembly chess variant library based on Fairy-Stockfish as an ES6 module. | Used in the GUI for legal move generation, FEN parsing & validation, pocket pieces, ... |
ChessgroundX | A free/libre open source chess UI developed for lichess.org and pychess.org. | Used as the main UI board element. |
ornicar/lila | The forever free, adless and open source chess server | Many high quality assets from lichess.org (e.g. piece styles, board styles, chess fonts, ...) are used within this GUI. |
Vue.js | The Progressive JavaScript Framework | Used as the main JavaScript Framework. |
Electron | Build cross-platform desktop apps with JavaScript, HTML, and CSS | Used for exporting the GUI to the desktop. |
electron-vue | An Electron & Vue.js quick start boilerplate | Used for the boilerplate code. |
Projects that influenced the creation of LiGround:
Project | Description |
---|---|
tinyChessServer | An xboard server for playing bughouse games via websockets |
lichess.org/analysis | The forever free, adless and open source chess server |
vue-chessboard | Chessboard vue component to load positions, create positions and see threats |
cutechess | A graphical user interface, command-line interface and a library for playing chess. |
XBoard / WinBoard | A graphical user interface for chess in all its major forms. |
Nibbler | Leela Chess Zero (Lc0) interface. |
chess.js | A Javascript chess library for chess move generation/validation, piece placement/movement, and check/checkmate/draw detection |
This project was generated with electron-vue@45a3e22 using vue-cli. Documentation about the original structure can be found here.