Skip to content

Releases: Razamindset/indus-dragon

Indus Dragon NNUE Released

Choose a tag to compare

@Razamindset Razamindset released this 19 Apr 19:29
7c31505

Indus Dragon v1.0.0 - Release Notes

I am thrilled to announce the official release of Indus Dragon v1.0.0, a major milestone in the engine's development. This version brings a significant leap in playing strength through a custom-trained NNUE.

ELO Gains (Self-Play)

Based on extensive testing against previous versions:

  • STC (10s + 0.1s): +125 ± 20 ELO
  • LTC (40s + 1.0s): +200 ± 20 ELO

Training & Architecture

🧠 Network Architecture

Indus Dragon v1.0.0 uses a highly efficient and lightweight NNUE architecture designed for maximum performance on modern CPUs:

  • Input Layer: 768 inputs (representing every piece on every square from both perspectives).
  • Hidden Layer: 256 neurons using ReLU activation.
  • Output Layer: Single value represents the probability of winning from the side-to-move perspective.
  • Quantization: Weights are quantized to 16-bit integers for high-precision inference.

🏋️ Training Procedure

The network was trained using a custom pipeline focused on the engine's specific search characteristics:

  • Data Generation: 25 million positions were generated through self-play games played by the Indus Dragon engine.
  • Training Framework: The model was trained in Python using the PyTorch deep learning framework.
  • Optimization: The training objective was to minimize the cross-entropy loss between the network's predicted win probability and the actual game results.

UCI Compliance

  • Castling Output Fix: Corrected the move notation for castling in the PV (Principal Variation) output. Castling is now correctly reported as e1g1 or e8g8 instead of the internal rook-target format, resolving "Illegal Move" warnings in tournament runners like fast-chess.

Technical Summary

  • Architecture: Alpha-Beta negamax Search with NNUE Evaluation.
  • Language: C++17
  • Creator: Razamindset

Created by Razamindset.

Release: HCE

Choose a tag to compare

@Razamindset Razamindset released this 27 Sep 20:52

This release reintroduces a custom HCE function.

I had mentioned earlier that I want to train custom networks and now I have a clear path starting form this release. The HCE version needs more polishing before we can move on to datagen. It was nice to see how much a good evaluation function can bring to a game like chess. Trying out and old stockfish net taught me a lot of things in general and I hope not to make those mistakes again.

From now on the target is to gain couple hundred ELO points by improving the search, memory usage and evaluation. I would estimate the current ELO to be around 2000+ blitz.

Along with a custom HCE this release fixes a lot of bugs, simplifies time management and code.
If u find a bug or just wanna chat open and issue or a discussion or ping me on discord. I am more than happy to chat.

Thanks for reading. We will meet again in the next release

Release: NNUE based evaluation

Choose a tag to compare

@Razamindset Razamindset released this 21 Aug 19:43

With this release indus dragon will start using a nnue for board evaluation. Some people criticize this kind of decision in chess community but whatever u do u will have to take this path or train your own networks for which I lack the resources. This project will use the provided nnue file until I am successful with training its own networks. Also I am working on some other techniques so stuff is not hard codded. The project is all about fun and learning. If u have suggestions open an issue or ping me on discord I will be more than happy to answer.
Stay tuned for updates.

Indus Dragon Released

Choose a tag to compare

@Razamindset Razamindset released this 26 Jun 16:38

A start to a remarkable project. This is the first release for the chess engine Indus Dragon