- Blind mode tutorial
lichess.org
Donate

Are the peak main eval command lines solid or reproducible?

For practical purposes, the trunk of a tree is typically assumed to be solid. So I assumed that the eval generated by the engines to be solid too. After a bit of research: The static evaluation (eval command) in Stockfish 17 is consistent when using the same
NNUE files (nn-1111cefa1111.nnue and nn-37f18f62d772.nnue), because the evaluation is deterministic and doesn't depend on search depth or hardware specifics. Static evaluation is a quick estimate based on the current board state.

So I decided to make a bash script to play out a game using only the peak static eval result per move. When my local eval function said: "Final evaluation: none (in check)", I manually pasted the FEN on lichess analysis board to get a (cloud depth) from SF 17 · 79MB NNUE. The better alternate is to look one move deeper. It ensures you always get a meaningful static evaluation

Most of the time the moves that had none did not affect my move choice because the cP was far from being useful. I truncated the list of legal moves to shorten the post, but I can display them on demand. The next post will show the lichess chess board. Ply7 static eval is a blunder and I really don't understand why. I might of made a mistake.

SF17NN_TREE.csv with results:
Ply,#Legal_Moves
UCI_Moves,Eval,FEN

Ply0, 20 legal move, Current move sequence: Initial position with legal moves.
e2e4,0.34,rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - 0 1
d2d4,0.21,rnbqkbnr/pppppppp/8/8/3P4/8/PPP1PPPP/RNBQKBNR b KQkq - 0 1
c2c4,0.13,rnbqkbnr/pppppppp/8/8/2P5/8/PP1PPPPP/RNBQKBNR b KQkq - 0 1
g1f3,0.09,rnbqkbnr/pppppppp/8/8/8/5N2/PPPPPPPP/RNBQKB1R b KQkq - 1 1
e2e3,0.09,rnbqkbnr/pppppppp/8/8/8/4P3/PPPP1PPP/RNBQKBNR b KQkq - 0 1
White to move (Using highest eval): e2e4

Ply1, 20 legal moves, Current move sequence: e2e4
e7e5,0.13,rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2
d7d5,0.17,rnbqkbnr/ppp1pppp/8/3p4/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2
c7c5,0.30,rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2
b8c6,0.34,r1bqkbnr/pppppppp/2n5/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 1 2
e7e6,0.34,rnbqkbnr/pppp1ppp/4p3/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2
Black to move (Using lowest eval): e7e5

Ply2, 29 legal moves, Current move sequence: e2e4 e7e5
d2d4,0.31,rnbqkbnr/pppp1ppp/8/4p3/3PP3/8/PPP2PPP/RNBQKBNR b KQkq - 0 2
f1c4,0.26,rnbqkbnr/pppp1ppp/8/4p3/2B1P3/8/PPPP1PPP/RNBQK1NR b KQkq - 1 2
g1f3,0.21,rnbqkbnr/pppp1ppp/8/4p3/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2
b1c3,0.13,rnbqkbnr/pppp1ppp/8/4p3/4P3/2N5/PPPP1PPP/R1BQKBNR b KQkq - 1 2
d2d3,0.05,rnbqkbnr/pppp1ppp/8/4p3/4P3/3P4/PPP2PPP/RNBQKBNR b KQkq - 0 2
White to move (Using highest eval): d2d4

Ply3,30 legal moves, Current move sequence: e2e4 e7e5 d2d4
e5d4,-0.04,rnbqkbnr/pppp1ppp/8/8/3pP3/8/PPP2PPP/RNBQKBNR w KQkq - 0 3
g8f6,0.22,rnbqkb1r/pppp1ppp/5n2/4p3/3PP3/8/PPP2PPP/RNBQKBNR w KQkq - 1 3
d7d5,0.31,rnbqkbnr/ppp2ppp/8/3pp3/3PP3/8/PPP2PPP/RNBQKBNR w KQkq - 0 3
d7d6,0.47,rnbqkbnr/ppp2ppp/3p4/4p3/3PP3/8/PPP2PPP/RNBQKBNR w KQkq - 0 3
b8c6,0.48,r1bqkbnr/pppp1ppp/2n5/4p3/3PP3/8/PPP2PPP/RNBQKBNR w KQkq - 1 3
f8b4,1.40 (depth 20),rnbqk1nr/pppp1ppp/8/4p3/1b1PP3/8/PPP2PPP/RNBQKBNR w KQkq - 1 3
Black to move (Using lowest eval): e5d4

Ply4, 38 legal moves, Current move sequence: e2e4 e7e5 d2d4 e5d4
d1d4,0.09,rnbqkbnr/pppp1ppp/8/8/3QP3/8/PPP2PPP/RNB1KBNR b KQkq - 0 3
g1f3,0.00,rnbqkbnr/pppp1ppp/8/8/3pP3/5N2/PPP2PPP/RNBQKB1R b KQkq - 1 3
f1c4,0.00,rnbqkbnr/pppp1ppp/8/8/2BpP3/8/PPP2PPP/RNBQK1NR b KQkq - 1 3
g1e2,-0.04,rnbqkbnr/pppp1ppp/8/8/3pP3/8/PPP1NPPP/RNBQKB1R b KQkq - 1 3
f1d3,-0.04,rnbqkbnr/pppp1ppp/8/8/3pP3/3B4/PPP2PPP/RNBQK1NR b KQkq - 1 3
White to move (Using highest eval): d1d4

If you're curious to see the next moves and the blunder, say something ...

For practical purposes, the trunk of a tree is typically assumed to be solid. So I assumed that the eval generated by the engines to be solid too. After a bit of research: The static evaluation (eval command) in Stockfish 17 is consistent when using the same NNUE files (nn-1111cefa1111.nnue and nn-37f18f62d772.nnue), because the evaluation is deterministic and doesn't depend on search depth or hardware specifics. Static evaluation is a quick estimate based on the current board state. So I decided to make a bash script to play out a game using only the peak static eval result per move. When my local eval function said: "Final evaluation: none (in check)", I manually pasted the FEN on lichess analysis board to get a (cloud depth) from SF 17 · 79MB NNUE. The better alternate is to look one move deeper. It ensures you always get a meaningful static evaluation Most of the time the moves that had none did not affect my move choice because the cP was far from being useful. I truncated the list of legal moves to shorten the post, but I can display them on demand. The next post will show the lichess chess board. Ply7 static eval is a blunder and I really don't understand why. I might of made a mistake. SF17NN_TREE.csv with results: Ply,#Legal_Moves UCI_Moves,Eval,FEN Ply0, 20 legal move, Current move sequence: Initial position with legal moves. e2e4,0.34,rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - 0 1 d2d4,0.21,rnbqkbnr/pppppppp/8/8/3P4/8/PPP1PPPP/RNBQKBNR b KQkq - 0 1 c2c4,0.13,rnbqkbnr/pppppppp/8/8/2P5/8/PP1PPPPP/RNBQKBNR b KQkq - 0 1 g1f3,0.09,rnbqkbnr/pppppppp/8/8/8/5N2/PPPPPPPP/RNBQKB1R b KQkq - 1 1 e2e3,0.09,rnbqkbnr/pppppppp/8/8/8/4P3/PPPP1PPP/RNBQKBNR b KQkq - 0 1 White to move (Using highest eval): e2e4 Ply1, 20 legal moves, Current move sequence: e2e4 e7e5,0.13,rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2 d7d5,0.17,rnbqkbnr/ppp1pppp/8/3p4/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2 c7c5,0.30,rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2 b8c6,0.34,r1bqkbnr/pppppppp/2n5/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 1 2 e7e6,0.34,rnbqkbnr/pppp1ppp/4p3/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2 Black to move (Using lowest eval): e7e5 Ply2, 29 legal moves, Current move sequence: e2e4 e7e5 d2d4,0.31,rnbqkbnr/pppp1ppp/8/4p3/3PP3/8/PPP2PPP/RNBQKBNR b KQkq - 0 2 f1c4,0.26,rnbqkbnr/pppp1ppp/8/4p3/2B1P3/8/PPPP1PPP/RNBQK1NR b KQkq - 1 2 g1f3,0.21,rnbqkbnr/pppp1ppp/8/4p3/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2 b1c3,0.13,rnbqkbnr/pppp1ppp/8/4p3/4P3/2N5/PPPP1PPP/R1BQKBNR b KQkq - 1 2 d2d3,0.05,rnbqkbnr/pppp1ppp/8/4p3/4P3/3P4/PPP2PPP/RNBQKBNR b KQkq - 0 2 White to move (Using highest eval): d2d4 Ply3,30 legal moves, Current move sequence: e2e4 e7e5 d2d4 e5d4,-0.04,rnbqkbnr/pppp1ppp/8/8/3pP3/8/PPP2PPP/RNBQKBNR w KQkq - 0 3 g8f6,0.22,rnbqkb1r/pppp1ppp/5n2/4p3/3PP3/8/PPP2PPP/RNBQKBNR w KQkq - 1 3 d7d5,0.31,rnbqkbnr/ppp2ppp/8/3pp3/3PP3/8/PPP2PPP/RNBQKBNR w KQkq - 0 3 d7d6,0.47,rnbqkbnr/ppp2ppp/3p4/4p3/3PP3/8/PPP2PPP/RNBQKBNR w KQkq - 0 3 b8c6,0.48,r1bqkbnr/pppp1ppp/2n5/4p3/3PP3/8/PPP2PPP/RNBQKBNR w KQkq - 1 3 f8b4,1.40 (depth 20),rnbqk1nr/pppp1ppp/8/4p3/1b1PP3/8/PPP2PPP/RNBQKBNR w KQkq - 1 3 Black to move (Using lowest eval): e5d4 Ply4, 38 legal moves, Current move sequence: e2e4 e7e5 d2d4 e5d4 d1d4,0.09,rnbqkbnr/pppp1ppp/8/8/3QP3/8/PPP2PPP/RNB1KBNR b KQkq - 0 3 g1f3,0.00,rnbqkbnr/pppp1ppp/8/8/3pP3/5N2/PPP2PPP/RNBQKB1R b KQkq - 1 3 f1c4,0.00,rnbqkbnr/pppp1ppp/8/8/2BpP3/8/PPP2PPP/RNBQK1NR b KQkq - 1 3 g1e2,-0.04,rnbqkbnr/pppp1ppp/8/8/3pP3/8/PPP1NPPP/RNBQKB1R b KQkq - 1 3 f1d3,-0.04,rnbqkbnr/pppp1ppp/8/8/3pP3/3B4/PPP2PPP/RNBQK1NR b KQkq - 1 3 White to move (Using highest eval): d1d4 If you're curious to see the next moves and the blunder, say something ...

can you define solid. what tree, and what is the trunk. That would help put in context the data list. I am more curious about the thinking above the data. and before the engine use part. Then I can maybe look at that part in that context, which is more interesting to me.

Also, I suggest being careful with the word evaluation. different tribes will have different entendre.

dev tribe might head static leaf evaluation function.

but people on lichess who don't care or are not alowed to see the leaves of the PVs, or don,t ask for it, because it is never shown, some kind of ignorance bliss circular mechanics in place here, but the lid of this is ignorance bliss).

I use score for the back-bubble min-max input position (root) "evaluation" (or its version ratatinée of modern time effecient post-AB engine, NNue or not). And evaluation I restrict to lealf positions, as those are the only ones that actually getr the maximal positoin information contribution to the eveluation function anywhere in the engine single root positin search analysis.

The determinism of the leaf evaluation, you mean the function is a direct flat function of the intput vector and does not need any recursive or iteration (other than the CPU having some bandwidth issues and preferring nibbling on flat input coming its way, a la queue leu leu s'il vous plait)..

I think when SF in its repro.sh test is talking about reproducibiliity, it is about the whole post-AB magics. and the notion of uncertainty of the cloud of leafs evaluatations that the whole searched tree from a single root search, if it had been debug traced for all of its visited nodes and all leafs, instead of surfing on it with just the bare minimum because of ancestral tournament habits and UCI solid bank architecture immobllity aura, you know ancient greek columnades to inspire it was there and will always be so. don,t even think to think otherwise. you punk!

I remember you telling me that in such cases where there was uncertainty at depth (which is, I bet or hunch, or suggest, a double problem of input resolution, output resolution and definiton of expected position wilderness "diameters" for shortness and concision, and mystery, compromission with my usual trying to explain in vain... just ask what that means. and I will oblige).

is that what you are exloring? solid? as in what? certain, absolute unbiased. agnostic truth over all possible input positon in some set of positoin we never ever talk about? (I do, in my musing far from the lobby).

can you define solid. what tree, and what is the trunk. That would help put in context the data list. I am more curious about the thinking above the data. and before the engine use part. Then I can maybe look at that part in that context, which is more interesting to me. Also, I suggest being careful with the word evaluation. different tribes will have different entendre. dev tribe might head static leaf evaluation function. but people on lichess who don't care or are not alowed to see the leaves of the PVs, or don,t ask for it, because it is never shown, some kind of ignorance bliss circular mechanics in place here, but the lid of this is ignorance bliss). I use score for the back-bubble min-max input position (root) "evaluation" (or its version ratatinée of modern time effecient post-AB engine, NNue or not). And evaluation I restrict to lealf positions, as those are the only ones that actually getr the maximal positoin information contribution to the eveluation function anywhere in the engine single root positin search analysis. The determinism of the leaf evaluation, you mean the function is a direct flat function of the intput vector and does not need any recursive or iteration (other than the CPU having some bandwidth issues and preferring nibbling on flat input coming its way, a la queue leu leu s'il vous plait).. I think when SF in its repro.sh test is talking about reproducibiliity, it is about the whole post-AB magics. and the notion of uncertainty of the cloud of leafs evaluatations that the whole searched tree from a single root search, if it had been debug traced for all of its visited nodes and all leafs, instead of surfing on it with just the bare minimum because of ancestral tournament habits and UCI solid bank architecture immobllity aura, you know ancient greek columnades to inspire it was there and will always be so. don,t even think to think otherwise. you punk! I remember you telling me that in such cases where there was uncertainty at depth (which is, I bet or hunch, or suggest, a double problem of input resolution, output resolution and definiton of expected position wilderness "diameters" for shortness and concision, and mystery, compromission with my usual trying to explain in vain... just ask what that means. and I will oblige). is that what you are exloring? solid? as in what? certain, absolute unbiased. agnostic truth over all possible input positon in some set of positoin we never ever talk about? (I do, in my musing far from the lobby).

The eval command provides a consistent, reproducible static evaluation of a position, when using the same version and NNUE files. The eval command gives an immediate assessment of the current position without considering future moves or dynamic aspects. The eval command doesn't involve search depth, unlike the analysis you might have done on a GUI that refreshes and changes. Well I now believe the static eval can have inaccuracies and even blunders, compared to a deep search analysis. My ply 7 will show that. The eval command serves me well as a learning tool, by comparing static evals with cloud depth centipawn (cP) analysis. It permits me to identify positions where significant differences occurred. This gives me hints to which piece i should be paying attention to.

Ply5,#29,Current move sequence: e2e4 e7e5 d2d4 e5d4 d1d4
1 b8c6,-0.13,r1bqkbnr/pppp1ppp/2n5/8/3QP3/8/PPP2PPP/RNB1KBNR w KQkq - 1 4
2 g8f6,0.00,rnbqkb1r/pppp1ppp/5n2/8/3QP3/8/PPP2PPP/RNB1KBNR w KQkq - 1 4
3 f8c5,0.13,rnbqk1nr/pppp1ppp/8/2b5/3QP3/8/PPP2PPP/RNB1KBNR w KQkq - 1 4
4 d7d5,0.18,rnbqkbnr/ppp2ppp/8/3p4/3QP3/8/PPP2PPP/RNB1KBNR w KQkq - 0 4
5 c7c5,0.22,rnbqkbnr/pp1p1ppp/8/2p5/3QP3/8/PPP2PPP/RNB1KBNR w KQkq - 0 4
6 f8b4,4.70 (depth 22),rnbqk1nr/pppp1ppp/8/8/1b1QP3/8/PPP2PPP/RNB1KBNR w KQkq - 1 4
Black to move (Using lowest eval): b8c6

Ply6,#49,Current move sequence: e2e4 e7e5 d2d4 e5d4 d1d4 b8c6
1 d4g7,0.13,r1bqkbnr/pppp1pQp/2n5/8/4P3/8/PPP2PPP/RNB1KBNR b KQkq - 0 4
2 g1f3,0.05,r1bqkbnr/pppp1ppp/2n5/8/3QP3/5N2/PPP2PPP/RNB1KB1R b KQkq - 2 4
3 d4d1,0.00,r1bqkbnr/pppp1ppp/2n5/8/4P3/8/PPP2PPP/RNBQKBNR b KQkq - 2 4
4 c1e3,0.00,r1bqkbnr/pppp1ppp/2n5/8/3QP3/4B3/PPP2PPP/RN2KBNR b KQkq - 2 4
5 g1e2,-0.04,r1bqkbnr/pppp1ppp/2n5/8/3QP3/8/PPP1NPPP/RNB1KB1R b KQkq - 2 4
6 d4e5,-7.10 (depth 21),r1bqkbnr/pppp1ppp/2n5/4Q3/4P3/8/PPP2PPP/RNB1KBNR b KQkq - 2 4
7 d4d7,-7.40 (depth 20),r1bqkbnr/pppQ1ppp/2n5/8/4P3/8/PPP2PPP/RNB1KBNR b KQkq - 0 4
White to move (Using highest eval): d4g7

Ply7,#31,Current move sequence: e2e4 e7e5 d2d4 e5d4 d1d4 b8c6 d4g7
1 f8g7,-6.81,r1bqk1nr/pppp1pbp/2n5/8/4P3/8/PPP2PPP/RNB1KBNR w KQkq - 0 5
2 g8f6,-0.43,r1bqkb1r/pppp1pQp/2n2n2/8/4P3/8/PPP2PPP/RNB1KBNR w KQkq - 1 5
3 d7d5,0.35,r1bqkbnr/ppp2pQp/2n5/3p4/4P3/8/PPP2PPP/RNB1KBNR w KQkq - 0 5
4 c6b4,0.47,r1bqkbnr/pppp1pQp/8/8/1n2P3/8/PPP2PPP/RNB1KBNR w KQkq - 1 5
5 d8e7,0.56,r1b1kbnr/ppppqpQp/2n5/8/4P3/8/PPP2PPP/RNB1KBNR w KQkq - 1 5
6 f8b4,4.60 (depth 18),r1bqk1nr/pppp1pQp/2n5/8/1b2P3/8/PPP2PPP/RNB1KBNR w KQkq - 1 5
Black to move (Using lowest eval): f8g7

Ply8,#32,Current move sequence: e2e4 e7e5 d2d4 e5d4 d1d4 b8c6 d4g7 f8g7
1 c1g5,-6.43,r1bqk1nr/pppp1pbp/2n5/6B1/4P3/8/PPP2PPP/RN2KBNR b KQkq - 1 5
2 b1c3,-6.61,r1bqk1nr/pppp1pbp/2n5/8/4P3/2N5/PPP2PPP/R1B1KBNR b KQkq - 1 5
3 c1h6,-6.73,r1bqk1nr/pppp1pbp/2n4B/8/4P3/8/PPP2PPP/RN2KBNR b KQkq - 1 5
4 c1e3,-6.90,r1bqk1nr/pppp1pbp/2n5/8/4P3/4B3/PPP2PPP/RN2KBNR b KQkq - 1 5
5 c1f4,-6.95,r1bqk1nr/pppp1pbp/2n5/8/4PB2/8/PPP2PPP/RN2KBNR b KQkq - 1 5
White to move (Using highest eval): c1g5

  1. e4 e5 2. d4 exd4 3. Qxd4 Nc6 4. Qxg7 Bxg7 5. Bg5 Qxg5 6. Nc3 Bxc3+ 7. bxc3 Qh6 8. h4 Rb8

https://lichess.org/GSbHqDWL

The eval command provides a consistent, reproducible static evaluation of a position, when using the same version and NNUE files. The eval command gives an immediate assessment of the current position without considering future moves or dynamic aspects. The eval command doesn't involve search depth, unlike the analysis you might have done on a GUI that refreshes and changes. Well I now believe the static eval can have inaccuracies and even blunders, compared to a deep search analysis. My ply 7 will show that. The eval command serves me well as a learning tool, by comparing static evals with cloud depth centipawn (cP) analysis. It permits me to identify positions where significant differences occurred. This gives me hints to which piece i should be paying attention to. Ply5,#29,Current move sequence: e2e4 e7e5 d2d4 e5d4 d1d4 1 b8c6,-0.13,r1bqkbnr/pppp1ppp/2n5/8/3QP3/8/PPP2PPP/RNB1KBNR w KQkq - 1 4 2 g8f6,0.00,rnbqkb1r/pppp1ppp/5n2/8/3QP3/8/PPP2PPP/RNB1KBNR w KQkq - 1 4 3 f8c5,0.13,rnbqk1nr/pppp1ppp/8/2b5/3QP3/8/PPP2PPP/RNB1KBNR w KQkq - 1 4 4 d7d5,0.18,rnbqkbnr/ppp2ppp/8/3p4/3QP3/8/PPP2PPP/RNB1KBNR w KQkq - 0 4 5 c7c5,0.22,rnbqkbnr/pp1p1ppp/8/2p5/3QP3/8/PPP2PPP/RNB1KBNR w KQkq - 0 4 6 f8b4,4.70 (depth 22),rnbqk1nr/pppp1ppp/8/8/1b1QP3/8/PPP2PPP/RNB1KBNR w KQkq - 1 4 Black to move (Using lowest eval): b8c6 Ply6,#49,Current move sequence: e2e4 e7e5 d2d4 e5d4 d1d4 b8c6 1 d4g7,0.13,r1bqkbnr/pppp1pQp/2n5/8/4P3/8/PPP2PPP/RNB1KBNR b KQkq - 0 4 2 g1f3,0.05,r1bqkbnr/pppp1ppp/2n5/8/3QP3/5N2/PPP2PPP/RNB1KB1R b KQkq - 2 4 3 d4d1,0.00,r1bqkbnr/pppp1ppp/2n5/8/4P3/8/PPP2PPP/RNBQKBNR b KQkq - 2 4 4 c1e3,0.00,r1bqkbnr/pppp1ppp/2n5/8/3QP3/4B3/PPP2PPP/RN2KBNR b KQkq - 2 4 5 g1e2,-0.04,r1bqkbnr/pppp1ppp/2n5/8/3QP3/8/PPP1NPPP/RNB1KB1R b KQkq - 2 4 6 d4e5,-7.10 (depth 21),r1bqkbnr/pppp1ppp/2n5/4Q3/4P3/8/PPP2PPP/RNB1KBNR b KQkq - 2 4 7 d4d7,-7.40 (depth 20),r1bqkbnr/pppQ1ppp/2n5/8/4P3/8/PPP2PPP/RNB1KBNR b KQkq - 0 4 White to move (Using highest eval): d4g7 Ply7,#31,Current move sequence: e2e4 e7e5 d2d4 e5d4 d1d4 b8c6 d4g7 1 f8g7,-6.81,r1bqk1nr/pppp1pbp/2n5/8/4P3/8/PPP2PPP/RNB1KBNR w KQkq - 0 5 2 g8f6,-0.43,r1bqkb1r/pppp1pQp/2n2n2/8/4P3/8/PPP2PPP/RNB1KBNR w KQkq - 1 5 3 d7d5,0.35,r1bqkbnr/ppp2pQp/2n5/3p4/4P3/8/PPP2PPP/RNB1KBNR w KQkq - 0 5 4 c6b4,0.47,r1bqkbnr/pppp1pQp/8/8/1n2P3/8/PPP2PPP/RNB1KBNR w KQkq - 1 5 5 d8e7,0.56,r1b1kbnr/ppppqpQp/2n5/8/4P3/8/PPP2PPP/RNB1KBNR w KQkq - 1 5 6 f8b4,4.60 (depth 18),r1bqk1nr/pppp1pQp/2n5/8/1b2P3/8/PPP2PPP/RNB1KBNR w KQkq - 1 5 Black to move (Using lowest eval): f8g7 Ply8,#32,Current move sequence: e2e4 e7e5 d2d4 e5d4 d1d4 b8c6 d4g7 f8g7 1 c1g5,-6.43,r1bqk1nr/pppp1pbp/2n5/6B1/4P3/8/PPP2PPP/RN2KBNR b KQkq - 1 5 2 b1c3,-6.61,r1bqk1nr/pppp1pbp/2n5/8/4P3/2N5/PPP2PPP/R1B1KBNR b KQkq - 1 5 3 c1h6,-6.73,r1bqk1nr/pppp1pbp/2n4B/8/4P3/8/PPP2PPP/RN2KBNR b KQkq - 1 5 4 c1e3,-6.90,r1bqk1nr/pppp1pbp/2n5/8/4P3/4B3/PPP2PPP/RN2KBNR b KQkq - 1 5 5 c1f4,-6.95,r1bqk1nr/pppp1pbp/2n5/8/4PB2/8/PPP2PPP/RN2KBNR b KQkq - 1 5 White to move (Using highest eval): c1g5 1. e4 e5 2. d4 exd4 3. Qxd4 Nc6 4. Qxg7 Bxg7 5. Bg5 Qxg5 6. Nc3 Bxc3+ 7. bxc3 Qh6 8. h4 Rb8 https://lichess.org/GSbHqDWL

In this post I will show you how I now prepare my fen codes for a static eval and perft 1.

In each ply below, there will be two distinct differences in the FEN strings and it's active colour indicators (w/b) and the temporal difference of who's turn it is to play. This method allows for an evaluation from both White's and Black's perspectives without altering the board position.

If the eval shows a big difference then it will be a position to analyse with a go depth command.
This is what I looked at:

NNUE network contributions (White to move)
NNUE evaluation +0.07 (white side)
Final evaluation +0.09 (white side) [with scaled NNUE, ...]

NNUE network contributions (Black to move)
NNUE evaluation -0.07 (white side)
Final evaluation -0.09 (white side) [with scaled NNUE, ...]

I don't know of any other way besides using a differnet engine to produce the black side final evaluations:
Final evaluation -0.09 (black side) [with scaled NNUE, ...]

This method evaluates from both sides of the position and shows the difference in cP static position. Playing out the moves that had the least difference in evals might have avoid the static blunders. I have not played out a full game using this method. I'm looking forward to reviewing a game using this method (without the assistance of a depth analysis).

An example of method used to get my totals: [(-0.24)+(+0.4)] = 0.16

Ply0: Initial position
Original, White to play, NNUE (+0.07) Final (-0.9): rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
Opposite view, Black to play (-0.9): rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR b KQkq - 0 1
Total: NNUE (0.0) Final (0.0)

Ply1: White moved
Original, Black to play, NNUE(-0.24) Final(-0.31): rnbqkbnr/pppppppp/8/8/6P1/8/PPPPPP1P/RNBQKBNR b KQkq - 0 1
Opposite view, White to play, NNUE(+0.04) Final(+0.05): rnbqkbnr/pppppppp/8/8/6P1/8/PPPPPP1P/RNBQKBNR w KQkq - 0
Total: NNUE (+0.16) Final (+0.19)

Ply2: Black moved
Original, White to play, NNUE(-0.38) Final(-0.48): rnbqkbnr/pppp1ppp/8/4p3/6P1/8/PPPPPP1P/RNBQKBNR w KQkq - 0 2
Opposite view, Black to play, NNUE(-0.94) Final(-1.21): rnbqkbnr/pppp1ppp/8/4p3/6P1/8/PPPPPP1P/RNBQKBNR b KQkq - 0 2
Total: NNUE (-1.32) Final (-1.69)

Ply3: Quickest Checkmate with a -3.15 final advantage.
Original, Black to play, NNUE(-1.62) Final(-2.11): rnbqkbnr/pppp1ppp/8/4p3/6P1/5P2/PPPPP2P/RNBQKBNR b KQkq - 0 2
Opposite view, White to play, NNUE(-0.79) Final(-1.04): rnbqkbnr/pppp1ppp/8/4p3/6P1/5P2/PPPPP2P/RNBQKBNR w KQkq - 0 2
Total: NNUE (-2.41) Final (-3.15)

In conclusion, we can now view an immediate progress change using total evals from both sides.
"It takes 3.15 centipawns to win."

In this post I will show you how I now prepare my fen codes for a static eval and perft 1. In each ply below, there will be two distinct differences in the FEN strings and it's active colour indicators (w/b) and the temporal difference of who's turn it is to play. This method allows for an evaluation from both White's and Black's perspectives without altering the board position. If the eval shows a big difference then it will be a position to analyse with a go depth command. This is what I looked at: NNUE network contributions (White to move) NNUE evaluation +0.07 (white side) Final evaluation +0.09 (white side) [with scaled NNUE, ...] NNUE network contributions (Black to move) NNUE evaluation -0.07 (white side) Final evaluation -0.09 (white side) [with scaled NNUE, ...] I don't know of any other way besides using a differnet engine to produce the black side final evaluations: Final evaluation -0.09 (black side) [with scaled NNUE, ...] This method evaluates from both sides of the position and shows the difference in cP static position. Playing out the moves that had the least difference in evals might have avoid the static blunders. I have not played out a full game using this method. I'm looking forward to reviewing a game using this method (without the assistance of a depth analysis). An example of method used to get my totals: [(-0.24)+(+0.4)] = 0.16 Ply0: Initial position Original, White to play, NNUE (+0.07) Final (-0.9): rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 Opposite view, Black to play (-0.9): rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR b KQkq - 0 1 Total: NNUE (0.0) Final (0.0) Ply1: White moved Original, Black to play, NNUE(-0.24) Final(-0.31): rnbqkbnr/pppppppp/8/8/6P1/8/PPPPPP1P/RNBQKBNR b KQkq - 0 1 Opposite view, White to play, NNUE(+0.04) Final(+0.05): rnbqkbnr/pppppppp/8/8/6P1/8/PPPPPP1P/RNBQKBNR w KQkq - 0 Total: NNUE (+0.16) Final (+0.19) Ply2: Black moved Original, White to play, NNUE(-0.38) Final(-0.48): rnbqkbnr/pppp1ppp/8/4p3/6P1/8/PPPPPP1P/RNBQKBNR w KQkq - 0 2 Opposite view, Black to play, NNUE(-0.94) Final(-1.21): rnbqkbnr/pppp1ppp/8/4p3/6P1/8/PPPPPP1P/RNBQKBNR b KQkq - 0 2 Total: NNUE (-1.32) Final (-1.69) Ply3: Quickest Checkmate with a -3.15 final advantage. Original, Black to play, NNUE(-1.62) Final(-2.11): rnbqkbnr/pppp1ppp/8/4p3/6P1/5P2/PPPPP2P/RNBQKBNR b KQkq - 0 2 Opposite view, White to play, NNUE(-0.79) Final(-1.04): rnbqkbnr/pppp1ppp/8/4p3/6P1/5P2/PPPPP2P/RNBQKBNR w KQkq - 0 2 Total: NNUE (-2.41) Final (-3.15) In conclusion, we can now view an immediate progress change using total evals from both sides. "It takes 3.15 centipawns to win."

Sorry ... If you copy paste and enter it in a spreadsheet it will be much more viewable.

Ply,Color,Perft1,Perft2,Perft3,Perft4,Subtotal,FEN
1,W,20,400,8902,197281,206603,rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
,B,20,598,12639,383029,396286,rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR b KQkq - 0 1
2,W,20,421,9328,214048,223817,rnbqkbnr/pppppppp/8/8/6P1/8/PPPPPP1P/RNBQKBNR b KQkq - 0 1
,B,21,419,9643,212655,222738,rnbqkbnr/pppppppp/8/8/6P1/8/PPPPPP1P/RNBQKBNR w KQkq - 0
3,W,21,628,14217,433317,448183,rnbqkbnr/pppp1ppp/8/4p3/6P1/8/PPPPPP1P/RNBQKBNR w KQkq - 0 2
,B,21,419,9643,383029,393112,rnbqkbnr/pppp1ppp/8/4p3/6P1/8/PPPPPP1P/RNBQKBNR b KQkq - 0 2
4,W,30,575,17519,369157,387281,rnbqkbnr/pppp1ppp/8/4p3/6P1/5P2/PPPPP2P/RNBQKBNR b KQkq - 0
,B,20,598,12639,383029,396286,rnbqkbnr/pppp1ppp/8/4p3/6P1/5P2/PPPPP2P/RNBQKBNR w KQkq - 0
,,,,,,,
Ply,Color,Perft1,Perft2,Perft3,Perft4,Grand,Complexity
,,Avg1,Avg2,Avg3,Avg4,Total,
All,W,22.75,506,12491.5,303450.75,1265884,
All,B,20.5,508.5,11141,340435.5,1408422,Black had more nodes to search

In conclusion, just changing who's turn it is to play will change the node search results.
That's how important a node search is. It cannot be just evaluated from white's perspective.

Sorry ... If you copy paste and enter it in a spreadsheet it will be much more viewable. Ply,Color,Perft1,Perft2,Perft3,Perft4,Subtotal,FEN 1,W,20,400,8902,197281,206603,rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 ,B,20,598,12639,383029,396286,rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR b KQkq - 0 1 2,W,20,421,9328,214048,223817,rnbqkbnr/pppppppp/8/8/6P1/8/PPPPPP1P/RNBQKBNR b KQkq - 0 1 ,B,21,419,9643,212655,222738,rnbqkbnr/pppppppp/8/8/6P1/8/PPPPPP1P/RNBQKBNR w KQkq - 0 3,W,21,628,14217,433317,448183,rnbqkbnr/pppp1ppp/8/4p3/6P1/8/PPPPPP1P/RNBQKBNR w KQkq - 0 2 ,B,21,419,9643,383029,393112,rnbqkbnr/pppp1ppp/8/4p3/6P1/8/PPPPPP1P/RNBQKBNR b KQkq - 0 2 4,W,30,575,17519,369157,387281,rnbqkbnr/pppp1ppp/8/4p3/6P1/5P2/PPPPP2P/RNBQKBNR b KQkq - 0 ,B,20,598,12639,383029,396286,rnbqkbnr/pppp1ppp/8/4p3/6P1/5P2/PPPPP2P/RNBQKBNR w KQkq - 0 ,,,,,,, Ply,Color,Perft1,Perft2,Perft3,Perft4,Grand,Complexity ,,Avg1,Avg2,Avg3,Avg4,Total, All,W,22.75,506,12491.5,303450.75,1265884, All,B,20.5,508.5,11141,340435.5,1408422,Black had more nodes to search In conclusion, just changing who's turn it is to play will change the node search results. That's how important a node search is. It cannot be just evaluated from white's perspective.

This method allows for an evaluation from both White's and Black's perspectives without altering the board position.

This is good idea. and good practice. But I think, it helps when being that exact minded, to allow more words into the language.

In this case, position needs to be called diagram. leaving alone the full position to also include the turn flag (which you used 2 forumlations I find either to be good and exact:

active colour indicators (w/b) and the temporal difference of who's turn it is to play

The "and" looks like it could be an "or". Else, I did not understand the "active" in the color indicator. There is also "color to move"

I use for my own needs in studies. w2m. and b2m.. for the chapters. it helps when flying through many chapters.. to get a sense of the many chapters object. (for own study construction needs or if another's study were having a story at that level).

Secret of pawn endings also uses such pedagogical or communication strategy, because in endgame the chess to be learned does not care about legal position turn, it matters more the diagram issues, and knowing the mutation effect of a turn color shift or turn shift, or turn pass, is really the nature of endgame chess, when near critical play. The diagram might itself be on some critical boundary, and the turn might be the flipping switch change.

i will come back for the procedural aspect. Also "eval command" is less slippery. thanks.

> This method allows for an evaluation from both White's and Black's perspectives without altering the board position. This is good idea. and good practice. But I think, it helps when being that exact minded, to allow more words into the language. In this case, position needs to be called diagram. leaving alone the full position to also include the turn flag (which you used 2 forumlations I find either to be good and exact: > active colour indicators (w/b) and the temporal difference of who's turn it is to play The "and" looks like it could be an "or". Else, I did not understand the "active" in the color indicator. There is also "color to move" I use for my own needs in studies. w2m. and b2m.. for the chapters. it helps when flying through many chapters.. to get a sense of the many chapters object. (for own study construction needs or if another's study were having a story at that level). Secret of pawn endings also uses such pedagogical or communication strategy, because in endgame the chess to be learned does not care about legal position turn, it matters more the diagram issues, and knowing the mutation effect of a turn color shift or turn shift, or turn pass, is really the nature of endgame chess, when near critical play. The diagram might itself be on some critical boundary, and the turn might be the flipping switch change. i will come back for the procedural aspect. Also "eval command" is less slippery. thanks.

This topic has been archived and can no longer be replied to.