Mate1
A chess engine written from scratch in Rust, playing live on Lichess at around a 2071 Blitz rating, with seven thousand games of data behind it and a neural net hybrid on the roadmap.
Mate1 is a chess engine I am building from scratch in Rust. It plays live on Lichess as mate1-bot, currently around a 2071 Blitz rating, and the account has played over 7,000 games since it came online. What follows is what the engine is … what the data says after a few thousand games … and where it goes from here.

The rating history above is the engine’s whole life in one line. It came in hot, settled, and spent time climbing while I fixed what the losses exposed. The exact number matters less than the fact that the line went up while the opponent pool got harder.
How it thinks
Mate1 is a classical engine. No neural network, no reinforcement learning, nothing trained. Evaluation is material counting and piece-square tables, the kind of thing you could read out of a book, plus a search that prunes hard and does not ask permission.
The search is iterative-deepening negamax with alpha-beta. Iterative deepening means it searches to depth 1, then 2, then 3, and so on until the clock runs out, always holding a complete answer at every moment. On top of that sits a transposition table, the engine’s memory of positions it has already solved, plus null-move pruning, late move reductions, and a quiescence search that refuses to evaluate noisy positions. Move ordering follows the standard hierarchy, with one detail I care about. The engine knows the difference between its own search tree and the actual game being played, because the real move history is threaded into every search call. That is what lets it shuffle away from a repetition when it is winning, and steer into one when it is losing. Both behaviors have unit tests, and both came from games it lost.
The evaluation is material plus piece-square tables, tapered between middlegame and endgame weights by a phase counter. It is simple on purpose. Every loss says something about what the eval could not see. That is the data a naive engine needs before it earns anything fancier.
What the games say

The lifetime record is the scoreboard. Thousands of rated games against a stream of opponents that got stronger as the bot’s rating rose. A bot account plays whoever accepts, so there is no cherry-picking here. The pool is what it is.

The rolling form chart is the one I watch. It smooths the noise into stretches, and the stretches line up with what I was doing to the code. When I added a search improvement, the wave turned. When I broke something, it turned first. Seven thousand games of A/B data, run by strangers.

Activity has been steady because the bot runs unattended in a supervised loop, and it reconnects, restarts, and keeps playing whether anyone is watching or not. An engine that plays you at 4am while you sleep teaches you more about its consistency than any test suite.

Opponent strength rounds it out. The distribution sits where a bot at this level should find itself, trading games with humans who carry real ratings. No sandbagging accounts … the rating number carries weight.
Where it goes next
I have found the ceiling on piece-square evaluation. The next phase is a hybrid: keeping the alpha-beta search, the transposition table, and all the pruning machinery intact, and replacing the hand-written evaluation with a small neural network.
The plan is incremental. First, supervised evaluation learned from engine-generated data, a net that reads the position the way the tapered tables do but with more room to express what they cannot. The search stays classical because it is proven and debuggable, and I want any strength gain to be attributable to exactly one change. If the hybrid plays better than the classical eval at the same nodes-per-second, the number will say so on these charts.
Further out sits the harder question of what a trained network does to a search tuned for a hand-written eval. The two were never designed for each other. That collision is the research. The highest number is a distraction from it.
The charts on this page regenerate from the live game archive. The next update is a bigger engine, or a smarter net, or a loss that teaches me something neither of them could.
Links
Play on Lichess →