Skip to content

Latest commit

 

History

374 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

justbot_logo

JustBot Chess Engine

License: AGPL v3.0 GitHub Release

JustBot is a competitive chess engine written in Rust, it's my attempt at learning the language while simultaneously working on something interesting to me; it has been a lot of fun and a huge learning experience and I hope to be able to continue working on it. This project has only been possible thanks to the wonderful open-source community. JustBot contains no LLM generated code.

Releases

Version CCRL 40/15 CCRL Blitz COPE Bullet COPE Rapid
JustBot v0.4.0 3500* 3600*
JustBot v0.3.0 3400* 3400* 3426 [#37] 3467 [#40]
JustBot v0.2.0 3124 [#226] 3000*
JustBot v0.1.0 2400* 2400*

Note

*Elo is only an estimate

You can find precompiled binaries for Linux, Windows and macOS here

  • avx512: The fastest build, only compatible with newer CPUs
  • avx2: Usable on most modern CPUs
  • generic: The slowest build, should run on any x86-64 CPU.

Building the project

To build the project, you need a working installation of Rust and Cargo, once the repository is cloned, you can run:

cargo build --release
# ./target/release/justbot

Otherwise, if you have GNU make installed you can just run:

make
# ./justbot

Features

Search

  • Alpha-Beta Search
  • Quiescence Search
    • Check Evasions
  • Principal Variation Search
  • Time management
    • Hard/Soft Bounds
    • Node Scaling
  • SEE Pruning
  • Iterative Deepening
  • Null Move Pruning
  • Reverse Futility Pruning
  • Aspiration Windows
  • Late Move Reductions
  • Late Move Pruning
  • Futility Pruning
  • Clustered Transposition Table
  • Improving Modifier
  • Singular Extensions
    • Negative Extensions
    • Double Extensions
  • History Pruning
  • Razoring

Evaluation

  • NNUE
    • Standard 768 Inputs
    • Dual Perspective
    • 768 HL
    • 8 Output Buckets
    • Horizontally Mirrored
    • 3 Input Buckets
    • Fused Updates
    • Finny Tables
    • Lazy Updates

Move Ordering

  • Noisy History
  • Quiet History
  • 1 and 2 Ply Continuation Histories

Supported UCI Options

Name Default Max Description
Hash 16 1048576 Sets the size of the transposition table in MB
Clear Hash --- --- Clears all entries in the transposition table
Threads 1 512 Sets the number of threads to use during search
UCI_Chess960 false --- Enables Chess960 support

Acknowledgments

Additionally, the following engines have been huge sources of ideas and inspiration:

About

UCI Chess engine written in Rust

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages