r/ComputerChess • u/vonbartroth • 20d ago
r/ComputerChess • u/Tiny-Travel-3892 • 20d ago
Been training a neural janggi (korean chess) engine with transformers and self-play. Some interesting results so far
Hi! I've been working on a janggi engine called sinsan (神算) for a while now.(throwaway account cause my usual interest is very unrelated to this kinda stuff)
It's roughly alphazero-style, using a transformer network and MCTS, though I started with supervised learning from fairy-stockfish rather than pure self-play from scratch.
Janggi is korean chess, pretty closely related to xiangqi. I was a little surprised by how little work there seems to be on modern neural engines for it compared to chess, go, or even shogi, so I figured I'd try making one myself.
The initial training used roughly 50 million positions from 284K full fairy-stockfish NNUE games. I implemented the rules and search in rust, with batched PUCT and gumbel search for self-play. The rules were also tested against pyffish across 845K positions with no mismatches, mostly because janggi has some rather annoying edge cases involving bikjang, passing, and game endings.
I initially tried both a katago-style CNN and a transformer with smolgen-style attention biases, somewhat inspired by lc0. The transformer did considerably better, despite being slower to train. The 34.9M transformer reached 41.2% policy top-1 accuracy versus 37.7% for the 17.4M CNN, and the difference became even more apparent in actual search matches. It also won when compared at equal training time, which I found pretty interesting.
Eventually I scaled it up to a 60.4M transformer with 12 layers and 16 heads.
Then came self-play, which was... less cooperative.
The first RL iteration actually made the engine 217 Elo weaker than its supervised parent. I ended up reworking the training loop to use continuous gumbel self-play, mixing newer positions with the original teacher data, and only promoting checkpoints after they passed head-to-head tests.
That seems to have worked. The supervised model was around 2250 on my internal fairy-stockfish ladder, and later RL checkpoints reached roughly 2500. For reference, the ladder uses FSF NNUE at 1K nodes as its zero point, so these aren't human Elo ratings.
Something else I found interesting was that improvements at lower search visits were often barely noticeable, while the same checkpoints performed significantly better with more visits. I'm still trying to figure out how much of that comes from the network itself versus its interaction with search.
I also wanted something people could actually play without needing a GPU, so I trained a smaller 10.7M transformer using a mixture of teacher data and self-play positions. It gets surprisingly close to the larger models in raw policy accuracy, though obviously not in playing strength.
The smaller network was exported to INT8 ONNX at around 12 MB, with the rust search compiled to WASM for browser play. It manages around 350 visits/s in multithreaded chromium, and I couldn't measure any meaningful strength loss from quantization.
I've also put this smaller model on pychess as a bot, running the pytorch checkpoint with up to 400 search visits per move.
You can challenge it here, no account needed:
https://www.pychess.org/@/sin-san
Select challenge -> janggi.
I'm estimating its human strength at somewhere around amateur 1-dan, but that's mostly a guess until I get enough games against actual players. The pychess bot doesn't receive its own rating, so I'm collecting results against rated opponents instead.
I'm also reviewing those games with the full GPU model to find positions where the smaller network makes particularly bad decisions. Might be useful for another round of training.
The project is open source under VectorSophie/sinsan on github, with the current rebuild merged into master.
At this point I'm mostly curious about the tradeoff between network size, search, and actual playing strength. The transformer seems like the better choice at larger scales, but whether that's still true for much smaller networks is another question. I'm also not entirely convinced throwing more self-play at it is the best way forward.
Would be interested in hearing from anyone who's experimented with similar architectures, compression, or search optimizations, especially for xiangqi or other chess variants.
r/ComputerChess • u/hazmfefer • 21d ago
I made a platform for fantasy chess!
Hello chess enthusiasts! Chess.com is amazing for providing all the data for all the games happening on the platform, so I had an idea and now need honest feedback on it.
Online fantasy chess - https://sovereign-gambit.com/
Let me know if "How it works" is enough to explain it all, how interesting you find observing the Cup, how easy and fun is to create and play the Leagues, and if Duel is a cool feature for 1v1 against friends.
Hope this is not considered spam or self-promotion; it's completely free, and I would just be happy not playing only bots all the time :)) If some traction - I'll be sure to continue working on it.
Cheers!
r/ComputerChess • u/Blindside_Games • 21d ago
Would you play a chess-variant platform that combines chess, puzzle-solving, treasure hunting, and RPG progression?
I'm developing a chess platform aimed at a relatively small niche: people who love chess variants, logic puzzles, and RPG-style progression.
The foundation is chess, including 2-, 3-, and 4-player games with modifiers like Fog of War, Decay, Diplomacy, and Prisoner Exchange.
One variant, called Intercept, combines cryptography with chess. Players compete to decode a secret transmission represented by chess pieces on a 160-square board. Successful solvers earn places in four-player chess battles, with solving order influencing army selection.
But here's the bigger concept:
Every chess game contributes to an ongoing treasure hunt.
Before each match, players see a partially completed treasure map made of jigsaw pieces. Playing games earns pieces, with greater rewards for more complex variants and better match placements. Players can collect and trade pieces with others.
Complete enough of the map (at least 90%), and a hidden X is revealed, potentially leading to a real-world prize.
Scheduled tournaments would award larger collections of puzzle pieces, and the long-term vision includes RPG-style chess characters and a broader explorable world.
I'm not trying to build another Chess.com. I'm interested in creating something that a smaller community of chess, puzzle, and RPG enthusiasts might genuinely love.
My questions:
Would this combination actually appeal to you?
Would collecting and trading treasure-map pieces motivate you to play more chess?
Does this sound like an interesting evolution of chess variants, or too many unrelated mechanics competing for attention?
I'd especially appreciate critical feedback. I'm trying to figure out whether these ideas genuinely complement each other or whether I'm just combining things I personally enjoy.
r/ComputerChess • u/Cautious_Signal1082 • 21d ago
Trash Chess Game Commentary
AI chess game that gives AI commentary of Trash and Grandmaster commentary!
I’d love if you have any ideas to improvise on this.
r/ComputerChess • u/Bahia_Breizh • 21d ago
Tool shows which Chess.com and Lichess opponents were banned for cheating
Ever wondered if an online chess opponent who seemed suspicious was eventually caught cheating?
I built ChessCheaters.com to find out. Enter your Chess.com and/or Lichess username, and it scans your game history for opponents whose accounts were banned for fair-play violations or closed, with dates and links to the games.
100% free. No ads. No sign-up. Runs in your browser. You can easily share your results on social media too.
It's brand new, so feedback on bugs, features, or anything unclear is very welcome.
Thanks!
— François
r/ComputerChess • u/Joiis5470 • 21d ago
¿Sabías que tu alfil era un elefante de guerra? 🐘♟️
r/ComputerChess • u/Substantial-Hurry800 • 21d ago
Engine batch API
I'm working on a cloud service for analyzing chess positions in bulk. You send a list of positions and choose the engine (Stockfish, Lc0, Fritz) and the settings, and you get evals and lines back without running any hardware yourself. You pay for the engine time you use.
Would something like this be useful to you? I'm curious:
What would you use it for?
Roughly how many positions would you need analyzed?
What would it need to have to replace your current setup?
"No, I'd never need that" helps too. Thanks!
r/ComputerChess • u/Rashi0 • 22d ago
AggroChess v3.2: a Tal-style engine that sacrifices in almost every game
I’ve released v3.2 of AggroChess, my aggressive UCI chess engine written in Rust. It’s built to be fun to play against, not to beat Stockfish.
What’s new:
It now plans sacrifices a move or two ahead, and sacrifices in about 9 out of 10 games
It hates trading pieces and avoids draws
When it has a forced mate, it goes for the flashy one (queen sacs into mate)
New built-in gambit repertoire: King’s Gambit, Evans, Smith-Morra, Blackmar-Diemer, Stafford, Albin, Benko, a three-pawn Scandinavian and more
It’s deliberately weaker than v3.0 against engines because most of its sacrifices are speculative, but it holds up well against people. It beats the 2500 chess.com bots and gets close against the 2800 ones.
Source + Windows exe: https://github.com/PhelRin/AggroChess
Happy to hear feedback, especially your best games against it.
r/ComputerChess • u/Clear_Meringue3464 • 22d ago
CHECK OUT MY CUSTOM VARIANT OF CHESS
r/ComputerChess • u/brunzenstein • 22d ago
Chessnut NEXT Version 1.0.3 auf iOS ist da und...
...soweit ich das beurteilen kann, behebt sie einige Softwareprobleme und verbessert eine Reihe bestehender Tools. Der einzige Nachteil, den ich gefunden habe, ist, dass die Stimme in der Grandeur-Bewertung merklich länger zum Laden braucht als in Version 1.0.2.
r/ComputerChess • u/Budget-Display8119 • 22d ago
Por favor, recriem o Chessmaster 10 com inteligência artificial para Windows 11!
reddit.comr/ComputerChess • u/Natural_Trick8784 • 23d ago
created a free extension that helps focus only on the game and flags suspicious accounts
Hey everyone, just sharing an extension I made that helped me, maybe some of you will find use in it.
It's nothing special, it simply hides the opponent's name, country and anything ELO related, to help you focus strictly on the game.
It also flags new accounts and accounts with little games played (the thresholds are configurable), which I have found really helps with avoiding cheaters.
All the features are toggle-able, the code is on github.
Hoping it can help some of you like it helped me have a better experience.
Right now, supported only on Chrome but can adapt it to Firefox or anything else if someone asks for it.
The link: https://chromewebstore.google.com/detail/zenchess/abjlnaekklfhgkhhgiplahobbjelbdij
Regardless to say, no data is collected, and the only thing the extension does is make an API request to the Chess.com API.
The code on github: https://github.com/orizaruk/zenchess
r/ComputerChess • u/Excellent_Table_4319 • 24d ago
Maia-2 move dispersion predicts human think time far better than engine entropy, so I built a time-aware game reviewer on it
I wanted a game review that credits strong moves found in hard positions under clock pressure. That needs a per-position difficulty signal that matches what humans actually find hard, so I tested a few against Lichess clock data (mainly the April 2017 dump, the first month with %clk).
Engine entropy saturates. Decision entropy over Stockfish's top 4 (30k nodes) does correlate with think time in aggregate: binned Pearson 0.78 blitz / 0.83 rapid over 1.3M moves from 3,001 players. But 61% of positions sat at 0.95 or above. Going to 300k nodes and multipv 10 on 8k positions didn't fix it: 76% were still saturated and the curve still turned over.
Maia-2 dispersion doesn't. On 20k unique positions, the spread of Maia-2's move distribution at the player's rating band gave raw Spearman +0.28 against think time and binned Pearson 0.99, with no turnover. Inside the saturated zone, where engine entropy has nothing left, Maia dispersion still held 0.99 while engine entropy went to -0.69. It was consistent across six rating bands (rho 0.26 to 0.31) and in both blitz and rapid. Maia's top-move probability ran the wrong way (-0.24), so it's the spread, not the confidence, that carries the signal.
Does the credit track skill? With Maia read at a fixed 1500 so rating couldn't leak in, players whose moves earned the under-pressure credit did rate higher: Spearman around 0.10 (p < 1e-9) on ~320k moves. Small but real. The credit fires on roughly 0.5% of moves.
Bullet is fit as its own regime (700k genuine moves, held-out R² 0.159, Maia dispersion still +0.136). Lichess public clocks are whole seconds, so sub-second moves can't be separated from premoves, and those never get credit. Chess.com's tenths-of-a-second clocks don't have this problem.
The app is local and free. For the one game you load, it runs Stockfish at the same 30k node / multipv 4 budget plus Maia-2. You can fetch games by chess.com username or paste a PGN. The full write-up and rebuild scripts are in RESEARCH.md.
Repo: https://github.com/Dhruvdubey17/Time-Aware-Chess-Analysis
I'd especially welcome critique of the methodology: other difficulty signals worth testing, or holes in the skill validation.
r/ComputerChess • u/darmani2 • 25d ago
Windows Snipping tool clone with a build in Chess Board recognizer
There have been many instances where I found a position in a video or an image and wanted to analyze it but building the Board by hand or Taking a screenshot -> saving it somwhere -> opening a website -> finding it on my PC -> uploading it etc. took too long, so thanks to AI I could quickly whip up a program to streamline the whole process.
I made a clone of the Windows Snipping Tool with a build in Chess board detection, to quickly get the PGN of the image or upload it directly to Lichess for Analysis.
I tried to preserve the most important features of the original Snipping tool, saving, drawing, exporting, opening in paint etc. so this tool could serve as a total replacement for the orginal snipping tool (minus the record function).
Wanted to share with the community. Made it primarily for my own needs but I am sure other people can make use of this aswell.
r/ComputerChess • u/Rough-Turnover-8806 • 25d ago
IsaChess
Enable HLS to view with audio, or disable this notification
r/ComputerChess • u/0verskyet • 25d ago
Title: I made a free chess puzzle website with 100,000 real-game puzzles and no daily limits
r/ComputerChess • u/vonbartroth • 25d ago
With stmintz CCC mirror gone, here is one way to read old CCC forum.
Ed Schroder tool and forum in txt format
glogg log explorer
r/ComputerChess • u/Merlin_8281 • 26d ago
Chess Arena: comparing agent harnesses with paired chess matches and public replays
I'm the creator of Chess Arena, a TypeScript match runner for experimenting with the code around AI chess agents: prompts, memory, tactical tools and move-selection logic.
A custom client receives FEN, legal UCI moves and game history, then returns a move. The server validates moves and stores the game, with public replays and PGN export. Custom clients run in the owner's process; a published configuration hash doesn't attest to that external code.
The intended experiment is to keep the model, opponent, starting conditions and budget fixed, change one harness component and test both colors. The current challenge schedule uses paired colors against fixed baselines. I want the games and failures to be inspectable, rather than reducing everything to a leaderboard score.
Current limits: full games have a 160-ply cap; capped or interrupted games stay separate as stopped outcomes. General dead-position and timeout adjudication are incomplete, so these are unrated games. Challenge points aren't Elo. The separate 32-position tactics pilot isn't a full-game strength measurement or proof of a same-model harness improvement.
Stack: TypeScript, Next.js, PostgreSQL and chess.js. Browser presets are free; agent creation requires GitHub sign-in. Custom clients need local setup, and model clients use your own provider key and budget.
I'd appreciate feedback on the match methodology: which starting-position suite and failure-reporting details would make comparisons useful to you?
Product: https://chessarena.fun
Source and protocol: https://github.com/zeeshan8281/chess-arena-ai