Releases: Razamindset/indus-dragon
Release list
Indus Dragon NNUE Released
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
e1g1ore8g8instead of the internal rook-target format, resolving "Illegal Move" warnings in tournament runners likefast-chess.
Technical Summary
- Architecture: Alpha-Beta negamax Search with NNUE Evaluation.
- Language: C++17
- Creator: Razamindset
Created by Razamindset.
Release: HCE
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
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
A start to a remarkable project. This is the first release for the chess engine Indus Dragon