[ANN] Chess.jl - A Julia chess programming library

I just published the first version of Chess.jl, a library for computer chess. This is my first Julia project, and I am not a real programmer, so much of the code probably looks amateurish, but it works and performs surprisingly well.

Notable features:

  • Efficient board representation with fast legal move generation.
  • Import and export of games in PGN format, including support for comments and recursive annotation variations.
  • Opening book trees generated from PGN databases.
  • Basic support for interacting with UCI chess engines like Stockfish.

My motivation for creating this was doing machine learning experiments with computer chess, but I think the library should also be suitable for most other types of chess related applications.

19 Likes

maybe try some reinforcement learning by copying the alphazero architecture using Flux.jl

If this is your first Julia project then I have to congratulate you! This seems well made and the documentation clear! Congrats (I am just a chess enthusiast, but don’t know much about using engines, etc.)

1 Like

That would be great fun, but unfortunately, lacking DeepMind’s immense hardware resources, that’s not a realistic project.

My current goals are more in the line of using deep learning as a tool to better understand typical human mistakes, both in general and for specific players (I am sure even the best chess players have some systematic weaknesses that they are not aware of). This could be used both to make computer opponents more fun and human-like to play against, and to generate exercises and other training material for human chess players.

I believe alphzero was traied using 4tpus 2years ago.modern high end gpu might do a decent job!

Unfortunately, this is wrong. It was playing on 4 TPUs, but it was trained on 5000 TPUs.

6 Likes

Oh, you are right! I had this misconception for 2 years. Thanks