Project Cube: well-designed or not?

In a hurry? Skip to the live silhouette pair solver and start drawing card pairs.

Project Cube is a small wooden puzzle game by Alain Rivollet. Two players race to build a 3-D figure whose front silhouette matches one card and whose side silhouette matches another. The deck has fifteen cards.

A complete tower for one card pair, with the two satisfied silhouettes floating behind it. Drag to rotate.

The natural question — the one that started this — is: does every pair of cards have a stable solution?

My quest to solve it started with the obvious thought: well, how many possible configurations of the blocks are there? I picked Rust to implement this. After about thirty minutes I was stoked — the enumeration was done. The one thing I'd left as a TODO was the small matter of when does something balance? Little did I know that this was actually the difficult part — not the enumeration, but given a 3-D structure, decide whether it is stable. Once I'd worked that out, the rest fell into place: an analysis of the game, an answer to whether the deck could be extended with new cards, and a live solver you can reference during gameplay for whichever pair you've drawn.

Project Cube is © Alain Rivollet, all rights reserved. This post is an analysis, not a substitute. The fun bit of the puzzle is the head-to-head race against someone else — sitting across from a person staring at the same two cards, both finding a particular puzzle way more difficult than the other. That experience is in the box, not on this page. Right — now that the obligatory disclaimer's out of the way, on with the maths.