Skip to content
MCTS-based chess engine
Branch: master
Clone or download
Latest commit 718097f Jan 2, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
Cargo.lock update some dependencies Jan 2, 2019
Cargo.toml Initial commit May 10, 2018
LICENSE Create LICENSE May 10, 2018 clarify players May 10, 2018


This is a chess engine: a computer program which plays chess.

Most chess engines use alpha-beta search, but Sashimi uses Monte Carlo Tree Search (MCTS). It plays at the level of a strong amateur human (~1800-2000 Elo).

Sashimi is similar to AlphaZero in that it does not use rollouts. However, Sashimi is unlike AlphaZero in that Sashimi uses linear models for move selection and position evaluation rather than deep learning. Sashimi also does not use reinforcement learning: the models are obtained by training on a large dataset of human games from Lichess.

Example game

This is a game where I (~1400 Elo) play white against Sashimi, which plays black. Sashimi ran on my laptop with 10s per move. On my laptop this is equivalent to about 2 million playouts per move.

Example game

Jacob Jackson vs Sashimi, 0-1 (PGN)

How to play against Sashimi

Sashimi implements the UCI protocol, so you can use it with any chess GUI that speaks UCI. I used PyChess to test Sashimi.

You will need to build Sashimi in order to play against it. Sashimi requires nightly Rust.

git clone
cd sashimi
cargo build --release --all

cargo is the Rust package manager. If you don't have it, you can get it by installing Rust.

This should produce an executable target/release/sashimi whose path you can provide to your GUI in order to play against Sashimi.

You can’t perform that action at this time.