I wasn’t looking for a chess application.
I’ve been experimenting with local AI models on an NVIDIA RTX 5090, running them under WSL.
One was a 2-billion-parameter Jev-Style decision model. Instead of generating a conversational answer, it evaluates a set of possible actions and ranks them.
I wanted to see what it could do.
Then I thought about Brilliancy.
What should a chess coach do next?
Imagine a player rated 920 who keeps missing knight forks. They’ve made the same mistake several times. Their mastery of the pattern is poor, and they have exercises due for review.
Should the coach explain the mistake? Give another puzzle? Schedule practice? Switch activities? Or simply let them continue?
I gave the model the player’s context and five possible coaching actions. Then I changed the scenario to a player rated 1250 with strong fork mastery.
| Action | Player A920 · Struggling with forks | Player B1250 · Strong fork mastery |
|---|---|---|
| Explain | 40.0% | 3.1% |
| ReviewSchedule practice | 34.5% | 7.8% |
| Retry | 16.9% | 10.7% |
| Switch | 5.1% | 2.2% |
| Continue | 3.4% | 76.2% |
| Decision time | 14.3 ms | 13.6 ms |
The model ranked different actions for different player contexts. That was interesting. It didn’t establish that either recommendation was right.
Then I changed just the learning history.
The first two scenarios differed in several ways. I wanted to know whether the model was responding to the player’s learning history.
In a more controlled test, the chess situation and rating stayed the same. Only the player’s mastery and history changed.
The model changed its recommended action in response.
That gave me a more specific observation to follow up: the same chess situation could lead to a different coaching choice depending on what the player had already learned.
A decision in milliseconds.
The playground lets me inspect the session state, the candidate actions and the raw response from the local model.
The model ranked “explain” first. That does not mean the system should automatically act on it.
In this example, the gate blocks the selected action because the distribution does not meet its configured confidence thresholds. Ranking an option and deciding whether to act are separate decisions.
These are model-assigned probabilities. They aren’t calibrated confidence in a coaching decision, or evidence that the advice will help someone learn.
This screenshot is a separate run showing 145 ms total execution time. The earlier 13–14 ms figures are decision measurements; they aren’t interchangeable with that total.
What if Brilliancy had a coaching brain?
The experiment suggested an architecture that combines several specialised capabilities rather than asking one model to do everything.
An LLM could interpret the game, plan the coaching and explain it. Jev-Style could help rank the possible interventions. Both would need verified chess evidence and a useful picture of the player.
Game PGN
Moves · Positions · Game history
Player context
Mastery · Weaknesses · Progress · Goals
The coaching brain
LLM-led reasoning
and orchestration
LLM / Queen
Interpret · Plan · Explain
Jev-Style
Score choices · Rank · Prioritise
Iterative decisions when more evidence is needed.
Grounded in
Stockfish
Verified chess evidence
Player model
Learning history and progress
Personalised coaching result
Game insights · Prioritised lessons · Exercises · Next steps
Would it actually make someone a better chess player?
The early results are encouraging. But selecting a plausible action isn’t the same as improving someone’s learning.
The next test is whether a coaching system using this decision model makes better choices than a simpler LLM-led approach.
That means testing against real games, real player histories and eventually real learners.
The architecture is a hypothesis, not a finished Brilliancy feature.
An experiment found somewhere to go.
I started the morning testing a model I didn’t have a use for.
A few tests later, I had a new idea for Brilliancy.
Whether it helps someone become a better chess player is still an open question.
That’s what I want to test next.
