Algorithm and play guide
From seeded board to one proven exact cover.
1. Choose the puzzle contract
Select a board size from 5×5 through 8×8, an asymmetric board cut, a piece-size preset, and a difficulty. Rotations and reflections determine which transformations the solver and player may use. The seed makes the generation pass repeatable.
2. Generate connected pieces
A deterministic pseudorandom sequence grows connected regions over every active board cell. Small leftovers are merged only into touching regions, so every returned polyomino remains connected. The resulting shapes and their colors are original to that seed.
3. Enumerate to a second solution
For each labeled piece, MosaicProof normalizes the allowed rotations and reflections, removes duplicate symmetries, and lists every placement that stays inside the mask. The backtracker chooses the uncovered cell with the fewest compatible placements. Filling the board once is not enough: search continues until it finds a second exact cover or exhausts every branch. Only the exhausted one-solution case receives the verified badge.
4. Solve by drag or tap
Drag a piece card to the board. On touch devices, select a piece and tap its intended top-left anchor cell. Select a placed piece to move it. Rotating or reflecting a selected piece returns it to the tray, preventing a hidden overlap. Red cells indicate a conflict with the board edge, a cutout, or another piece.
5. Use help deliberately
Undo restores the previous piece state. The first hint highlights a useful cell, the second names a piece and its anchor, and the third places one correct piece while returning any overlap to the tray. Share seed URL recreates the generation settings rather than storing your progress. Print removes the controls and produces the board and piece tray.
If a seed cannot be proven within the node or time ceiling, it is unresolved—not unique. Try a different seed, use larger pieces, or disable one transform type.