Bricksy
A collection of spatial games built around one loop: predict a transformation, commit to it, and watch the result unfold in 3D.
What it is
Bricksy asks players to see the result in their head before moving anything. Its games explore different spatial skills: turning a shape, seeing inside a solid, folding a net, predicting a shadow, or planning a route.
Daily puzzles provide a shared starting point, while endless modes extend the difficulty. Tight Fit connects several operations into moving-day jobs involving one persistent item.
The loop it has to make believable
- 01
Queue a transformation before seeing it execute, then compare the result with the prediction you committed to.
- 02
Carry one item's orientation through Tight Fit's loading, doorway, and corner stages, so earlier choices affect later steps.
How it’s built
The geometry is independent of Three.js. Integer rotations and graph search make turn distances exact, while pure models handle packing, folding, movement, and collision. Generator tests cover many seeds and difficulty levels.
Rendering is loaded per game. The PWA layer caches game pages, local storage holds progress and logs, and exported events support reconstruction and playtest analysis.
Architecture
- Geometry
- Integer lattice rotations and breadth-first search over cube orientations establish exact turn distances
- Presentation
- Three.js scenes animate committed predictions; game modules load on demand
- Generation
- Seeded daily puzzles and difficulty-aware generators checked across levels and seeds
- Continuity
- Local progress, shareable results, service-worker caching, and exportable playtest logs
What has to hold up
- Keep logical rotations exact and test puzzle generation separately from rendering and animation.
- Record enough puzzle state and action history to reconstruct a run; keep progress available locally without an account.
Current boundaries
Progress and streaks are per device, with no server accounts or cross-device sync. Playtest logs are local; the project does not establish that playing transfers to broader spatial ability.
The repository's September 25 status note reports a GitHub Actions billing block and an older hosted build. The browser demo may therefore differ from the current source; consult docs/STATUS.md when reviewing it.
Proof
VerifyRepository, checks, stack, status
- 01
Try Pack and a second spatial game in the browser demo, then compare their prediction and reveal loops.
- 02
Run the current source locally to inspect Tight Fit and features that may not be in the hosted build.
- 03
Read polycube.ts, the pure game models, and their tests; run npm test and npm run build.
- 04
Inspect exported playtest logs and docs/STATUS.md for evidence and remaining limitations.
- Role
- Game design, geometry, procedural generation, Three.js interaction, and PWA implementation
- Scope
- Touch-first spatial games, a connected delivery game, and offline browser support
- Proof
- Pure-model tests, generator sweeps, replayable logs, and deployment status notes
- Stack
- TypeScript, Three.js, Vite, Service Worker, GitHub Pages
- Loop
- Predict → commit → reveal
- Puzzles
- Seeded daily + endless
- Geometry
- Exact lattice rotations
- Progress
- Local to each device