From-Scratch Build · Tangible Gaming
A board game with no screen and no controller: you move real physical pieces on a table, a projector draws the game world around them, and every move is recorded on a blockchain ledger. I built this from scratch to learn how tracking, projection and distributed records fit into a single playable system.
What it is
This is a tangible game: the playing surface is a real table, the pieces are real objects you grasp and slide, and the "display" is a short-throw projector pointing straight down. A motion-capture system tracks each piece, an agent-based simulation runs the rules of the game, and the result is projected back onto the same table — so the digital board and the physical pieces share one space.
It supports both player-versus-player and player-versus-AI, and it adds something unusual: a blockchain layer that stores checkpoints, scores and in-game transactions. I was curious whether a tamper-proof ledger could make a tabletop game's history trustworthy and easy to customise.
The core idea I wanted to learn: a tangible game is three subsystems pretending to be one. Sensing, simulation and actuation each run independently, and the game only feels seamless if they agree on where every piece is, frame after frame.
The stack
The point of this rebuild was the toolchain. Here is what each piece actually does in the system.
Cameras track marker holders attached to each game piece and report their position and orientation in real time.
3D-printed mounts carrying a unique pattern of reflective markers, so every piece gets its own identity on the table.
A message bus that takes raw capture data and forwards clean pose information to the game engine over UDP.
The game engine: it holds the board state, applies the rules, and decides what should be drawn for each piece.
Mounted above the table, it paints the board, effects and scores onto the surface around the physical pieces.
A distributed ledger records checkpoints, scores and in-game transactions so game history is tamper-proof and shareable.
Pipeline
The game loop is a sense-process-actuate cycle, with the ledger hanging off the side to record what happened.
Motion capture locates each marked piece and reports its pose.
A ROS node cleans the data and streams poses to the engine over UDP.
The agent-based engine updates the board state from the new piece positions and applies the game rules.
The engine renders the board and effects, projected back onto the table around the pieces.
Key events — scores, checkpoints, transactions — are written to the blockchain ledger.
Reading the ledger back to reconstruct or remix a past game. Left as future work.
Why the ledger
The ledger sounded like a gimmick until I built it. A few concrete things fall out of recording game events on a distributed ledger:
In my rebuild I focused on the sense-simulate-project loop first, then attached a lightweight event recorder so each move leaves a durable trace.
Reflection