Modeling what makes paper-folding puzzles hard

https://news.ycombinator.com/rss Hits: 6
Summary

You've probably done this as a kid. Take a piece of paper, fold it a couple of times, punch a hole through the layers, then unfold it and see where all the holes ended up. It's fun. It's also, as it turns out, a standardized cognitive test.The paper folding test shows up in real psychometric testing. The most direct version is Ekstrom et al.'s VZ-2 “Paper Folding Test” from their 1976 Kit of Factor-Referenced Cognitive Tests. It measures spatial visualization, your ability to mentally manipulate 2D objects through sequences of transformations. When I started building, I assumed difficulty would scale with grid size and fold count. After a lot of playtesting, that turned out to be only part of the story.I turned this into Daily Unfold, a daily puzzle game. Three difficulties each day: easy is a 4x4 grid with one fold, medium is 6x6 with two folds, hard is 6x6 with three folds and two punch holes. The game generates puzzles deterministically from the date, so everyone in the world gets the same three puzzles. But making that difficulty curve feel right? That was the real problem.Simulating the foldsThe core engine runs a forward simulation. For every cell in the original unfolded grid, it traces that cell through each fold one by one. If a cell is on the folding side, its coordinate gets mirrored across the fold line:// For a horizontal fold at position p: if (row <= p) { row = 2 * p + 1 - row; // mirror } row = row - (p + 1); // shift to new originThe smaller side always folds onto the larger side. After mirroring, coordinates get shifted so the remaining visible portion starts at zero. Each fold shrinks the effective grid, and the next fold operates on whatever is left.Once all folds are applied, the engine checks if the cell's final position matches any punch location. If so, that cell has a hole in the unfolded paper. With three folds, a single punch can go through up to 2³ = 8 layers, producing up to 8 holes.Fold at center→Punch through layers→Unfolded: 2 holesA ...

First seen: 2026-03-29 03:47

Last seen: 2026-03-29 08:50