

Boxed In is a first-person puzzle game about moving furniture out of rooms. Everything reduces to a grid-occupancy model with a small vocabulary of movement classes: heavy pieces slide endwise, pieces on casters slide freely, couches pivot around a corner pin installed on a lattice vertex (a playable cousin of the mathematical moving sofa problem, solved, delightfully, in 2024), and mattresses tip up onto an edge to fit through doors. The puzzle depth comes entirely from how those few verbs compose in tight spaces — including the ability to knock pieces over, which exists specifically because it can rescue states that would otherwise be dead.
The design tool I’m proudest of is the solver. A BFS over the full ruleset runs in CI on every push and audits the entire 63-level campaign: optimal move counts, which levels actually require pulling versus pushing, ablation columns that re-solve each level with a mechanic removed (no pivot, no tip, push-only) to prove the level teaches what I think it teaches, and a “forcedness” metric counting how many genuine path choices exist. It caught real problems — a mid-campaign level solvable in one move via an unintended pull, near-duplicate levels I’d designed weeks apart — and it powers the public Level Atlas, where every room’s floor plan is rendered from the same JSON the game ships, with spoiler-gated animated optimal solutions straight from the solver.

Roadmap
- Teaching rooms + demo roster
- Web export (Compatibility / WebGL 2)
- Full campaign on beta
- Hint economy that isn’t hand-holding