Sync physical chess to digital chess.
This allows you to use a physical chess board (nothing special) and play online chess on chess.com. It does this using 4 parts:
.env
file with the following contents:CHESS_USERNAME=YOUR_CHESSCOM_USERNAME
CHESS_PASSWORD=YOUR_CHESSCOM_PASSWORD
PORT=7870
PICOVOICE_ACCESS_KEY=YOUR_ACCESS_KEY
CHESS_USERNAME
and CHESS_PASSWORD
are from your chess.com account. You can leave PORT
as-is, and PICOVOICE_ACCESS_KEY
is your access key from https://picovoice.ai/.
npm install
to install required dependencies.Run these commands in order:
npm run start:server
to start the server.npm run start:wizard
to start the wizard, which creates a browser that observes the chess game, reports back the chess game state, and can interact with the chess game using information from the server (eg. when a physical piece is moved).npm run start:voice
to start the voice client, which listens for keypresses from the numpad to start voice recording and recognition. This is used for telling the system where a piece was moved so the computer can move it online.npm run start:frontend
to start the frontend display, which receives information from the server about the chess game state and displays graphics and animations based on the information (eg. flashes where to move opponent's pieces).To ensure that you can make things move along using your numpad, bind these keys:
In the video below, I share my livestream setup using this software. I'm able to play chess with anyone on the internet using my physical chess board. No need for screens! I'm also using a remapped wireless numpad to control specific aspects of the stream and game. I'm using a projector mounted above my chess board to project the game board on top of it with the timers and move indicators.
All this was done in a week, so if it looks a little scrappy, it was! 😅
Below, you can view my first livestream using this setup. While there were a couple bugs, it still worked pretty well (although it takes a while to complete a move!).