Page 1 of 5

Chess Artist

Posted: Sat Oct 15, 2016 3:48 pm
by Ferdy
Version 0.1.0
A python script that can annotate chess games in pgn file with
static evaluation or search score of an engine, can annotate games
with cerebellum book moves using the Brainfish engine with its
Cerebellum_Light.bin book file, can annotate an epd file with acd,
acs, bm, and ce opcodes and can test engine with epd test suite.
Download.
https://github.com/fsmosca/chess-artist/releases


Sample annotated game.

[pgn]
[Event "New York"]
[Site "New York, NY USA"]
[Date "1927.03.13"]
[Round "15"]
[White "Aron Nimzowitsch"]
[Black "Jose Raul Capablanca"]
[Result "0-1"]
[EventDate "1927.02.19"]
[ECO "B12"]
[WhiteElo "?"]
[BlackElo "?"]
[PlyCount "92"]
[Annotator "Brainfish 280816 64 POPCNT"]

{Hash 32mb, Threads 1, @ 3.0s/pos}
1. e4 (1. e4 {cerebellum}) 1... c6 (1... e5 {cerebellum})
2. d4 (2. d4 {cerebellum}) 2... d5 (2... d5 {cerebellum})
3. e5 (3. Nc3 {cerebellum}) 3... Bf5 (3... c5 {cerebellum})
4. Bd3 (4. Nf3 {cerebellum}) 4... Bxd3 (4... Bxd3 {cerebellum})
5. Qxd3 (5. Qxd3 {cerebellum}) 5... e6 (5... e6 {cerebellum})
6. Nc3 (6. Nf3 {cerebellum}) 6... Qb6 (6... c5 {cerebellum})
7. Nge2 (7. Nf3 {cerebellum}) 7... c5 (7... c5 {cerebellum})
8. dxc5 (8. O-O {cerebellum}) 8... Bxc5 (8... Bxc5 {cerebellum})
9. O-O (9. O-O {cerebellum}) Ne7 $0 {+0.12}
10. Na4 $3 {+0.00} Qc6 $0 {+0.10}
11. Nxc5 $0 {+0.06} Qxc5 $0 {+0.12}
12. Be3 $0 {+0.17} Qc7 $0 {+0.02}
13. f4 $0 {+0.03} 13... Nf5 $6 {+0.22} ({Better is} 13...O-O 14. Rac1 Nbc6 15. c3 Rfd8 {+0.03 - Brainfish})
14. c3 $0 {+0.14} ({} 14. Bf2 {+0.22 - Brainfish}) Nc6 $1 {+0.18}
15. Rad1 $0 {+0.03} ({} 15. Bf2 h5 16. Rac1 O-O 17. Rfd1 {+0.18 - Brainfish}) 15... g6 $1 {+0.00} ({} 15...h5 16. Bf2 h4 17. c4 Nb4 {+0.03 - Brainfish})
16. g4 $0 {-0.05} ({Better is} 16. Bf2 h5 17. Ng3 Nxg3 18. Qxg3 {+0.20 - Brainfish}) Nxe3 $0 {-0.10}
17. Qxe3 $0 {-0.08} h5 $0 {+0.00}
18. g5 $0 {-0.09} 18... O-O $1 {-0.15} ({} 18...Kf8 19. a4 Kg7 20. Rc1 Rac8 {-0.09 - Brainfish})
19. Nd4 $6 {-0.34} ({Better is} 19. Kg2 Rfc8 20. Ra1 b5 21. Rac1 {-0.15 - Brainfish}) 19... Qb6 $0 {-0.19} ({Better is} 19...Nxd4 20. Rxd4 b5 21. a3 a5 {-0.34 - Brainfish})
20. Rf2 $1 {-0.17} ({} 20. Qe2 Rfc8 21. Kg2 Nxd4 22. Rxd4 {-0.19 - Brainfish}) Rfc8 $0 {-0.18}
21. a3 $3 {-0.29} 21... Rc7 $0 {-0.23} ({} 21...Kg7 22. h4 Nxd4 23. Rxd4 Rc4 {-0.29 - Brainfish})
22. Rd3 $1 {-0.20} ({} 22. Kg2 Kg7 23. Qe2 Nxd4 24. Rxd4 {-0.29 - Brainfish}) 22... Na5 $0 {-0.10} ({} 22...Nxd4 23. Rxd4 Kg7 24. Rfd2 a5 {-0.20 - Brainfish})
23. Re2 $6 {-0.17} ({} 23. Kg2 Kg7 24. h4 Nc6 25. Nf3 {-0.12 - Brainfish}) 23... Re8 $0 {-0.01} ({Better is} 23...Rac8 24. Qf2 Rc4 25. Red2 Nb3 {-0.17 - Brainfish})
24. Kg2 $0 {-0.11} ({} 24. a4 a6 25. b4 Nc6 26. a5 {-0.01 - Brainfish}) 24... Nc6 $0 {-0.06} ({} 24...a6 25. Nf5 Qxe3 26. Nxe3 Nb3 {-0.11 - Brainfish})
25. Red2 $0 {-0.15} ({} 25. Nf3 Qa6 26. Rd1 Qa4 27. Qd2 {-0.06 - Brainfish}) Rec8 $1 {-0.25}
26. Re2 $0 {-0.33} ({} 26. Nxc6 Qxc6 27. Qf3 Kg7 28. Rd4 {-0.25 - Brainfish}) 26... Ne7 $0 {-0.11} ({Better is} 26...Nxd4 27. Rxd4 Kg7 28. Kg3 a5 {-0.33 - Brainfish})
27. Red2 $6 {-0.18} ({} 27. Kg3 Rc4 28. Qf2 Nc6 29. Red2 {-0.11 - Brainfish}) 27... Rc4 $0 {-0.16} ({} 27...Nc6 28. Kg3 Nxd4 29. Qxd4 Qb5 {-0.18 - Brainfish})
28. Qh3 $1 {-0.09} ({} 28. Qe2 Nc6 29. Qf2 Nxd4 30. Rxd4 {-0.16 - Brainfish}) 28... Kg7 $1 {-0.33} ({} 28...Ra4 29. Qf3 Nc6 30. Qd1 Rc4 {-0.09 - Brainfish})
29. Rf2 $1 {+0.00} ({} 29. Qe3 Nc6 30. Qf2 Nxd4 31. Rxd4 {-0.33 - Brainfish}) 29... a5 $1 {-0.28} ({} 29...Rh8 30. Qe3 h4 31. h3 Qa6 {+0.00 - Brainfish})
30. Re2 $0 {-0.68} ({Better is} 30. Qe3 Qc5 31. Rfd2 a4 32. Rd1 {-0.28 - Brainfish}) 30... Nf5 $2 {+0.00} ({Better is} 30...Nc6 31. Qe3 Nxd4 32. Rxd4 Rxd4 {-0.68 - Brainfish})
31. Nxf5+ $0 {-0.16} gxf5 $0 {-0.06}
32. Qf3 $6 {-0.25} ({Better is} 32. Rf2 Rh8 33. Qh4 Qc7 34. Rd4 {-0.06 - Brainfish}) 32... Kg6 $0 {-0.20} ({} 32...Re4 33. Rdd2 h4 34. h3 Rh8 {-0.25 - Brainfish})
33. Red2 $0 {-0.34} ({} 33. Rf2 Re4 34. Qd1 h4 35. Qd2 {-0.20 - Brainfish}) Re4 $0 {-0.26}
34. Rd4 $0 {-0.66} ({Better is} 34. Qf1 h4 35. Rf2 Rh8 36. h3 {-0.26 - Brainfish}) 34... Rc4 $0 {-0.36} ({Better is} 34...Rxd4 35. cxd4 Rc1 36. Kg3 Rg1+ {-0.66 - Brainfish})
35. Qf2 $2 {-0.82} ({Better is} 35. Rxc4 Rxc4 36. h4 Re4 37. Qf2 {-0.36 - Brainfish}) 35... Qb5 $0 {-0.65} ({Better is} 35...Rcxd4 36. Rxd4 Qb5 37. Kf3 Rxd4 {-0.82 - Brainfish})
36. Kg3 $4 {-1.75} ({Excellent is} 36. Rxe4 Rxe4 37. Kf3 Qc4 38. Rd4 {-0.65 - Brainfish}) Rcxd4 $0 {-1.54}
37. cxd4 $0 {-1.75} 37... Qc4 $2 {-1.50} ({Better is} 37...Qb3+ 38. Kg2 Qe3 39. Qxe3 Rxe3 {-1.83 - Brainfish})
38. Kg2 $4 {-1.59} ({} 38. Kh3 Qb3+ 39. Kg2 b5 40. Qg3 {-1.50 - Brainfish}) b5 $0 {-1.53}
39. Kg1 $0 {-2.59} ({Excellent is} 39. h4 Qb3 40. Qf3 Qe3 41. Qxe3 {-1.53 - Brainfish}) 39... b4 $2 {-1.79} ({Excellent is} 39...Qc1+ 40. Kg2 Re1 41. h3 Qb1 {-2.59 - Brainfish})
40. axb4 $0 {-1.31} 40... axb4 $1 {-2.70} ({} 40...Qxb4 41. Kg2 Qb3 42. Qf3 Qe3 {-1.31 - Brainfish})
41. Kg2 $0 {-2.56} Qc1 $0 {-2.65}
42. Kg3 $0 {-2.82} Qh1 {-3.25} 43. Rd3 {-3.03} Re1 {-3.15}
44. Rf3 {-3.90} Rd1 {-3.42} 45. b3 {-3.87} Rc1 {-5.14}
46. Re3 {-21.81} Rf1 {-14.54} {[WhiteAveError=0.21, BlackAveError=0.07] [ratingDiff=33]} 0-1
[/pgn]

Re: Chess Artist

Posted: Sat Oct 15, 2016 4:27 pm
by Henk
Currently you can only use computers to find tactical mistakes.

Re: Chess Artist

Posted: Sat Oct 15, 2016 8:54 pm
by gbtami
Congrats on first github release!

Re: Chess Artist

Posted: Sun Oct 16, 2016 1:55 am
by Ferdy
Henk wrote:Currently you can only use computers to find tactical mistakes.
When someone is no longer that competitive, it is just better to let the computer find the best move for us :).

Re: Chess Artist

Posted: Sun Oct 16, 2016 2:07 am
by Ferdy
gbtami wrote:Congrats on first github release!
Thanks. I actually screwed everything from commit, pull request, up to my locat git repo, this .ignore file is giving the most headache of what it is :).

In the release there is a source code downloadable file, but it automatically includes my other directories which is not a source code :shock:.

Re: Chess Artist

Posted: Sun Oct 16, 2016 4:11 am
by swami
Very good choice of a program name. :-)

Regards,
Swami

Re: Chess Artist

Posted: Sun Oct 16, 2016 6:00 am
by Ferdy
swami wrote:Very good choice of a program name. :-)

Regards,
Swami
Analysis and annotate were already taken :)

Re: Chess Artist

Posted: Sun Oct 16, 2016 6:31 am
by tpoppins
"YodaChess" a much better name would be - at all those "better is" just look! And not taken by anyone yet it is, I bet. ;)

Re: Chess Artist

Posted: Sun Oct 16, 2016 11:45 am
by supersharp77
Ferdy wrote:
Henk wrote:Currently you can only use computers to find tactical mistakes.
When someone is no longer that competitive, it is just better to let the computer find the best move for us :).

If it really works...it's a stroke of "Pure Genius".....Congrats...AR :D :wink:

Re: Chess Artist

Posted: Mon Oct 17, 2016 1:33 am
by zenpawn
This is a great program! I've yet to take advantage of all the impressive new features you've been adding, but even right out of the gate, it's been one of my favorite tools.

One request, if I may. Currently, the evals are from white's point of view when annotating a game, but from the STM when adding ce scores to an EPD. Could you maybe add a flag that would let the user decide whether the score in either case is for the STM or white's perspective?

Thanks,
-Erin