♞Kuikma

Research · Viveka v3.0

Viveka v3: where to look, then what to play

Sigmoid Vedanta Technologies · October 2026 · Supersedes v2 (archived) and v1 (archived) · Companion to the calculator

Abstract

We split the board into four quadrants, seen from the side to move, and ask two questions in order: where should the move be made, and which move there. Each question gets one equation with at most three variables and a fitted constant, so that both can be computed at the board:

Φ(q) = U(q) + T · ln(1 + N(q)),    S(m) = M(m) + α · K(m) + β · C(m)

Φ is a free energy: material at stake in the quadrant (U) plus T times the log of the number of moves into it (N). S is a utility in pawns: material won after the exchange (M), check (K), and centralisation (C). The constants were fitted on 12,141 Stockfish positions and rounded to T = 1.5, α = 1.25, β = 0.25. On 5,587 positions from 21 openings never used in fitting:

1. Why a third version

v2 reached 65 cp on this test set, but at a cost: an eight-pattern scan of every legal move, an eleven-term score and a safety check. That is more arithmetic than a player can do at the board. v3 starts from three constraints:

  1. at most three variables per equation;
  2. the player's own intuition proposes the candidates, and the method only localises and ranks;
  3. positions with fewer than eight men are excluded; those endgames are better served by technique than by a scoring rule.

Each equation also gets a single named constant, fitted once and then fixed, in the way a physical law carries one.

2. Data

The data are the Stockfish 19 engine positions of v2: every legal move scored at depth 15, and the engine's top three at depth 22. As before, the best move and the loss of every move come from the hybrid label (depth 22 for the top three, depth 15 below them), and the loss is capped at 1,000 cp. Excluding positions with fewer than eight men leaves 12,141 training positions and 5,587 test positions (2,100 opening, 2,040 middlegame, 1,447 endgame). The test openings are the same 21 held out since v1. No human games are used.

Quadrants. Seen from the side to move: Q1 is our half on the queenside (files a–d), Q2 our half on the kingside (e–h), Q3 their half on the queenside, Q4 their half on the kingside. A move belongs to the quadrant of its destination square. For each position and quadrant we computed 23 candidate variables: pieces and pawns of each side, loose and hanging material, attacks, control, kings, passed pawns, checks, captures, moves into the quadrant, and the squares of the opponent's last move.

3. Where the best move lands

Across the training positions the depth-22 best move lands in:

Our own half dominates in the opening (development, castling) and the enemy half grows in the endgame (Figure 1). Three further observations shaped the equations.

  1. A fixed quadrant is not enough, and neither is the right one. Always looking only at the most common quadrant, the best move available there is still 99 cp worse on average than the true best. Even when told the right quadrant (about 11 moves), the v2 formula choosing among its moves loses 56 cp. Candidates matter as much as location.
  2. Material at stake is the best single signal. Ranked one variable at a time, enemy material we can win comes first (43% accuracy), followed by the count of loose targets and the number of our moves into the quadrant.
  3. Opportunity and danger point to the same place. Our own hanging material is the next material signal (40% on its own), because the best move often rescues a piece. Both are material at stake, and the search below pairs them.
Figure 1. Where Stockfish's best move lands, from the side to move, by phase (training openings).
Figure 1. Where Stockfish's best move lands, from the side to move, by phase (training openings).

4. The quadrant equation

Search. We first searched every combination of one, two and three of the 23 variables, fitting each as a conditional logit over the four quadrants with 5-fold cross-validation by opening. The criterion was the loss of the best move left in the chosen quadrant. The best three were enemy loose material, our hanging material and our moves into the quadrant:

VariablesTop quadrant correctBest move left there (cp)
enemy material you can win (U, part 1)43%63
enemy material you can win (U, part 1) + your moves into the quadrant (N)47%46
enemy material you can win (U, part 1) + your material they can win (U, part 2) + your moves into the quadrant (N)48%41
All 23 variables (linear ceiling)50%38

Twenty more variables buy only 3 cp, so three is close to what any linear rule over these variables can do. The binding limit is having one quadrant. With the top two the loss of the best move left falls to 13 cp.

Theory. Treat each quadrant as a macrostate of the position. It has an energy, E = −U: the material that can change hands there is a well the game tends to fall into. It also has an entropy, S = ln Ω, where Ω = 1 + N counts the ways to act there (N moves, or none). In statistical mechanics the most probable macrostate is the one with the lowest Helmholtz free energy F = E − T·S, and its probability is proportional to e−F/τ. The quadrant equation is the negative free energy:

Φ(q) = −F(q) = U(q) + T · ln(1 + N(q)),   P(best move in q) ∝ eΦ(q)/τ
(1)

with U = enemy loose material + our hanging material, both in pawns (1, 3, 3, 5, 9), counting a piece as loose when it can be won by an exchange. ln(1 + N) is the Boltzmann entropy of the quadrant (k = 1). The constant T is a temperature: the exchange rate between a pawn at stake and options. Because 1.5·ln 2 ≈ 1.04, at T = 1.5 each doubling of the moves into a quadrant is worth about one pawn at stake. This also makes the term easy to compute: 1.5·ln(1 + N) ≈ log2(1 + N), that is 1, 2, 3, 4 for N = 1, 3, 7, 15.

Equation (1) fixes the ratio of the two material weights at 1 and the shape of the options term at a logarithm. The free fit gave a larger weight to loose than to hanging material and a linear N. The cost of the constraint is small:

Quadrant rule (training openings, out of fold)Best move left, top quadrantTop two quadrants
Options only, ln(1 + N)6623
Material at stake only, U5014
Free energy, T = 1.54514
Free linear fit (3 weights)4113

T was chosen on the training openings for the two-quadrant step, from a grid of eight values (Figure 2). The curve is flat between 0.75 and 2. In 62% of positions nothing is at stake anywhere, and Φ then reduces to ranking quadrants by the number of moves into them.

Figure 2. The one constant of the quadrant equation: loss of the best move left in the chosen quadrant(s) against T.
Figure 2. The one constant of the quadrant equation: loss of the best move left in the chosen quadrant(s) against T.

How much it narrows. Because Φ favours busy quadrants, the top quadrant holds 13 of the 32 legal moves on average and the top two hold 24 (77%). The quadrant step is less a filter than an order of attention: look here first.

5. The move equation

Setting. Within the chosen quadrants the player proposes three candidates. We modelled three levels of intuition, all generated from the engine's own ranking of the moves in those quadrants: strong (the three best), good (the best plus two of the next seven) and club (three of the eight best, so the best move is often missing). The move equation was searched and fitted on good-intuition candidate sets in the top two quadrants, and tested on all three.

Search. Every combination of one, two and three move variables that can be judged at a glance or counted was tried (5-fold cross-validation by opening, conditional logit with soft targets from winning chances):

VariablesCV loss, good intuition (cp)strong (cp)
material won after the exchange, minus what is left hanging (M)5842
rings closer to the centre (C) + material won after the exchange, minus what is left hanging (M)5339
gives check (K) + rings closer to the centre (C) + material won after the exchange, minus what is left hanging (M)5038

The same three variables won under both intuition models. Allowing variables that need short calculation, the tier v2 relied on, picks enemy pieces attacked after the move; material after resolving every exchange on the board; the opponent's safe replies, and loses 44 cp instead of 50. We kept the glance-level set: resolving every exchange and counting the opponent's safe replies is calculation, not mental arithmetic, and it is what made v2 too heavy.

Theory. S is a utility measured in pawns:

S(m) = M(m) + α · K(m) + β · C(m)
(2)

6. The three constants

ConstantFittedUsedMeaning
T (temperature)grid1.5a doubling of options in a quadrant ≈ one pawn at stake
α (check)1.131.25a check is worth about a pawn and a quarter
β (centre)0.210.25four rings of centralisation ≈ one pawn

α and β were fitted on all training openings and rounded to the nearest quarter. Rounding changed the training loss from 51.0 to 51.1 cp.

7. Results

Held-out openings, 5,587 positions. Each cell is the average loss in centipawns of the move chosen by S among three candidates in the top quadrants by Φ. Cells inside the 30 cp target are marked.

CandidatesTop quadrantTop 2Top 3All 4
Strong: the region's three best moves71362622
Good: its best move + two of its next seven83473733
Club: three of its eight best, at random1371038781
Figure 3. Average loss against the number of quadrants examined, for three levels of intuition.
Figure 3. Average loss against the number of quadrants examined, for three levels of intuition.

The picker. To separate the picker from the candidates, the same candidate sets were given to other pickers. With strong candidates in the top two quadrants:

S recovers most of what the larger formulas do with a fraction of the arithmetic. With S, 79% of choices are within 30 cp of the best move and 8.1% lose more than a pawn. In three quadrants: 84% and 5.6%.

Figure 4. Same candidates, different pickers.
Figure 4. Same candidates, different pickers.

8. Where it falls short

9. In the trainer: automatic prediction and live validation

After every move in the trainer, the site shows what the method would have played. That requires an automatic stand-in for step 2, which the method leaves to the player. We compared candidate rules on the 5,494 held-out positions, each with every legal move evaluated, using the site's own code:

Candidates, then the highest SMean loss≤ 30 cp> 100 cp
A random legal move (no S)361.1 cp20%62%
Every legal move (no quadrant step)88.3 cp56%22%
Every move in the top two quadrants: no intuition98.1 cp54%24%
The glance scan's top 5 in the top two quadrants100.7 cp54%24%
Stockfish's top 3 anywhere20.2 cp88%4%
Stockfish's top 3 within the top two quadrants: strong shortlist24.9 cp85%5%

The trainer reports the two highlighted rules side by side: with a strong shortlist and with no intuition at all. A player's own result with the method lies between them, and the gap is the value of candidate-finding. Three details keep the comparison fair. Ties in S go to the move the glance scan ranks first, never to the engine's order: engine order would have flattered the strong shortlist by 2.7 cp. Every move is evaluated exactly as the trainee's own move is, from the stored depth-22 line or a search of that move from the same root. Positions with fewer than eight men are recorded but kept out of the figures.

Restricting a strong shortlist to the top two quadrants costs about 5 cp, because the best move lies outside them in about one position in five. For a player, the quadrant step pays for itself by making the search smaller; for an engine-made shortlist it is a small handicap, and we report it rather than hide it.

Validation. The trainer's prediction code was checked against an independent implementation of both rules on all 17,369 positions of the practice pool: 2,08,428 checks (same quadrants, shortlist and picks; the pick has the highest S; ties go to the first move in scan order; deterministic output), with 0 failures.

A running record. Every training move stores the position, all four quadrants' U, N and Φ, the shortlist with its scores, the player's move in the method's terms, every loss, the player's rating and time, and the study's reference labels, under a pseudonymous key. The live figures on the method page come from these records. They also give what this study lacked: real players' candidate choices, to test the intuition models of Section 7 and to refit T, α and β.

10. Reproducibility and versions

The pipeline is Python with fixed seeds: quadrant variables (quadrant_data.py), the excluded-endgame dataset (quad_prep.py), the insights, the exhaustive quadrant and move searches, the free-energy temperature scan, and the final fit and test (quad_final.py). The calculator and drills use a TypeScript port of both equations, checked against the Python values on 300 positions (1,130 quadrants, 9,470 moves, no mismatches). v1 and v2 and their book editions are archived unchanged at /research/viveka/v1 and /research/viveka/v2. Code and data are available to researchers on request (sigmoidvedantatechnologies@gmail.com).

Try both equations on any position, or drill them daily.

CalculatorDrills