After failing at instant Twitch fame (see below post), I thought something to help me play better chess would be a better goal. So, I decided to look into the Lichess Board API, which lets one play a game on lichess using one's own software/hardware.
I extended the simple pub/sub networking setup used for the previous project, and will likely integrate ideas learned from seeing the lichess protocol at some point.
I use a projective warp (homography) to correct for the casually-aligned projector.
Four markers are projected, and manually positioned on the chessboard outer corners, establishing the four points needed for the DLT algorithm (see Harley and Zisserman). (This only works to correct for display on the board itself: projections meant for the board can be caught by or obscured by pieces.)
If I ever clean up the code into something presentable I'll probably release it. The projections are handled by Godot, and the chess-related code is written in Python3 with python-chess, async-lichess-sdk, and asyncio-nats-client libraries. I wrote Godot plugins for networking and warping.