jhonnold / node-tlcv Goto Github PK
View Code? Open in Web Editor NEWTom's Live Chess Viewer for CCRL Broadcasts on the web!
Home Page: https://ccrl.live
License: MIT License
Tom's Live Chess Viewer for CCRL Broadcasts on the web!
Home Page: https://ccrl.live
License: MIT License
Graham says that you said that tlcv.net is dead. I'm trying to figure out what we can do to get it back up.
Livius has a link for you to go and see event schedule.
Would be really nice to have a similar link in the web-version of the broadcast
Just as you can click the FEN below the main board to copy it to the clipboard, it would be great to be able to click a PV board to acquire its FEN.
When playing, my UCI engine doesn't send the number of nodes alongside with PV, but reports it separately. For example, the output may look as follows:
go infinite
...
info depth 11 time 1160 pv d2d4 g8f6 b1c3 d7d5 g1f3 b8c6 e2e3 c8f5 f1d3 f5d3 d1d3 score cp 57
info depth 12 time 2996 pv e2e4 e7e5 g1f3 g8f6 b1c3 b8c6 f1d3 f8d6 e1g1 e8g8 c3b5 d6c5 score cp 16
info nodes 18567391 time 3010 nps 6166569
info depth 13 time 4993 pv e2e4 e7e5 g1f3 d7d5 f3e5 b8d7 e5d7 c8d7 e4d5 f8d6 f1c4 d8h4 d1e2 score cp 42
info nodes 36638104 time 6022 nps 6083159
info nodes 54337370 time 9004 nps 6034702
Still, web UI shows Nodes: 0.00
instead of the reported number.
I am not sure whether it's an issue in node-tlcv
or the underlying TLCV server.
Given that Schedule
takes you to this ordered lists of games to be played, it would be good to be able to see in the viewer a reference of which game is being played.
Use case for this is knowing when your engine plays (i.e. games # 30, 44, 58, etc.) and with a quick glance at the viewer being able to estimate how long until their next one.
An option to do that without thinking too much about the UI is by adding the game number at the beginning of the [Server]
message, so at least you can check the # of the previous game.
Current board size is too big for me.
Banner at top of each page saying what pair is playing on each port, and linking to that port.
Currently, the page title is only set when the page first loads, so the page title may indicate a different match to the one that is currently running if a new game has begun.
Hello.
It may benefit the viewers to see what Stockfish thinks of the game. Possibly, a 3-line PV showcase on the left?
In a 40/25 game, after move 40 I saw that the remaining time for an engine didn't get reset (Zahak was shown to have no time left), but as soon as I refreshed the page, the times got displayed correctly... some caching problem maybe?
blur
logic for the <input />
field seems to have been deleted.
so I can display the live game on my TV.
Thanks Jay!
Jay, might something like this work (in chess-game.ts)
it's javascript?
function maxString (string = '', max = 0) {
return string.substring(0, max)
}
public set pv(v: Array) {
this._pv = maxString(v, 64);
}
instead only M or -M gets shown without a number
please fix? :)
Graham has a set of engine logos.
Would be really cool if the logo of an engine would be shown next to its name in the web version of the broadcast
If there is mate score, show all pv moves, if not just show 5 plies.
It is odd number so I can analyze, like:
mymove, yourmove, mymove, yourmove, mymove -- then see the eval.
The final pv of an engine is usually not printed for users to see.
The pgns files in the PGNS section contain a game on a single line. The XBoard application cannot load it (line too long)
Hopefully you will see this request to replace the Pedantic logo. Thanks Jay.
pedantic.zip
In particular, the engine Cheers sends castling via uci Chess960 style (e1h1/e1a1), Algorhythm-sxv/Cheers#2, It appears that the viewer does not handle this meaning the view of the board gets out of sync with the actual game.
Why this would make sense: chess.js doesn't handle chess960. It parses moves by checking against a list of legal moves, and seeing if the string sent matches one. Since chess960 castling would not be a legal move, it would fail.
Why this wouldn't make sense: TLCV sends moves to the viewer in SAN format. Since TLCV/ChessGUI seems to understand and handle e1h1 as castling just fine, then wouldn't it send it to the viewer as "O-O"?
It may be worth adding a log statement before move parsing so can check what the viewer is actually receiving in these cases. Edit: nvm, there's a log message, Failed to parse, that should log this.
I also don't know if there's something the viewer could do better in the more general case of receiving a move it doesn't understand.
Can we get at a page with PGNs of the tourney played so far? Would be useful. At the moment there doesn't seem to be an easy way to get at, say, the penultimate game PGN, let alone all the other priors.
Provide a means for the engine developer to be notified (maybe email or text) when their engine is about to play or is starting to play.
Add engine tablebase while playing.
I suppose it's a plug-in for TLCV?
I like to replace it with my crappy one - http://rebel13.nl/pgn4web-3.05/live-test.html
I agree with Ferdy the board size is a little bit too big.
Hello.
It would be nice to have a dark mode. It's more comfortable for the eyes as well.
Could add the ability to post to discord webhooks on game start/result. Would want a way to keep the webhook urls out of GitHub tho
Livius prints the result of the game in the chat upon finishing, probably you can do the same in the webview
Its down right now.
The link at the bottom of the page, "Graham Banks, CCRL" goes to https://ccrl.chessdom.com/ccrl/4040/ which doesn't exist. It should instead go to https://computerchess.org.uk/ccrl/4040/
This is a very minor issue.
When opening the site with trailing '/' e.g. http://tlcv.net/16053/ the links inside the page are wrong and don't work.
Show the final position of the PV on a tiny board
Currently, users of Livius and Tom's Live Chess Viewer only see "tlcv.net" as spectator. It would be nice to know though, who's currently watching.
Some hacky solutions I could think of:
Sometimes, when I am watching a game, the variant boards will have two black kings and one white king, or vice versa, or an obvious material imbalance in a position with an even score, because one of the pieces was not properly blanked out. I am not sure if it is specific to Firefox, which is the browser I am using.
Moves are failing to parse when the board state is reset to 0 on a valid startpos move coming later in the game.
2023-07-11T09:17:51.382Z [DEBUG] [P16065] Message received from 122.58.163.86:16065: < 216619>FEN: rn1qk2r/pp2bppp/4pn2/3p4/4P3/3P1BP1/PP3P1P/RNBQ1RK1 b kq
2023-07-11T09:17:51.382Z [DEBUG] [P16065] Sending message ACK: 216619 to 122.58.163.86:16065
2023-07-11T09:17:51.382Z [DEBUG] [P16065] Message received from 122.58.163.86:16065: < 216620>WMOVE: 9. e4
2023-07-11T09:17:51.382Z [DEBUG] [P16065] Sending message ACK: 216620 to 122.58.163.86:16065
2023-07-11T09:17:51.382Z [DEBUG] [P16065] Message received from 122.58.163.86:16065: < 216621>FMR: 0
2023-07-11T09:17:51.382Z [DEBUG] [P16065] Sending message ACK: 216621 to 122.58.163.86:16065
2023-07-11T09:17:51.440Z [DEBUG] [P16065] Processing a total of 3 message(s)
2023-07-11T09:17:51.440Z [ INFO] [P16065] Updated game 16065 - FEN: rn1qk2r/pp2bppp/4pn2/3p4/4P3/3P1BP1/PP3P1P/RNBQ1RK1 b kq - 0 1
2023-07-11T09:17:51.441Z [ INFO] [P16065] Updated game 16065 - Color: white, Last Move: e4
2023-07-11T09:17:51.441Z [ INFO] [P16065] Requesting opening for game 16065 from https://explorer.lichess.ovh/master?play=e2e4
…
2023-07-11T09:18:06.943Z [ WARN] [P16065] Failed to parse dxe4 for game 16065, fen rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - 0 1! Loading from FEN…
My peers prefer the eyeball motif for the Pedantic logo and I want to oblige them. Here is a new logo file that isn't as meme-ish as the prior one. It is certainly not a priority to replace, but when you get a chance I would be much obliged.
pedantic.zip
A built-in game viewer where a user can view the history of moves made during a game, and navigate to the board state before a move has been played.
Visible in Firefox and also Edge under Windows and Linux
The engine boxes switching horizonatl scroll bar on/off with changing length of the pv. That makes the whole frame "unstable".
names like Jay - Berserk are not highlighted/displayed properly
probably related to split("-")
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.