Brick Builder Studio is a free-form 5-by-5 grid construction toy in which every cell holds zero to four bricks drawn from three fictional visual labels — Clay, Sand, or Slate — and the score grows only through five disclosed activity milestones worth 200 points apiece. There is no required silhouette, no permit order, no budget, no finite inventory, no physics simulation, and no hidden solution; the board starts empty, stays editable across the entire session, and never blocks further edits after the maximum 1,000-point cap has been reached. Players stack bricks with the pointer, the touch surface, or the keyboard, then export the current local model to a 1,200-by-900 PNG that the browser redraws on a fresh canvas without uploading anything. Every action runs through shared pure reducers, the milestone ledger is preserved when bricks are removed, and only one button — Restart — clears the studio back to its deterministic empty state. The result is a sandbox focused on exploration rather than problem-solving, with a transparent scoring scheme that keeps the activity score visibly separate from any structural quality judgment.

What Brick Builder Studio Is and Who It Suits
Brick Builder Studio sits in a small niche of browser toys that trade puzzle logic for creative freedom. The player is not solving a hidden layout or matching a target silhouette; the player is filling a small empty grid with their own arrangement of three labeled brick types. That makes the tool useful for several kinds of readers. Beginners who want a forgiving sandbox with no fail state will find the empty starting board and the unlimited reset behavior welcoming. Tinkerers who enjoy rebuilding the same model in different materials can experiment with Clay, Sand, and Slate without ever running out of pieces. Players who care about transparent scoring will appreciate that every milestone is named, every threshold is fixed, and the cap of 1,000 points is published up front rather than hidden behind an opaque formula. Designers who want a clean reference image for a layout can rely on PNG export to deliver a 1,200-by-900 local file that exactly matches the on-screen model.
The studio is also deliberately not a building-design tool. The five-by-five grid, the four-layer stack limit, the three fictional labels, and the milestone thresholds are original product fixtures. They do not represent real brick dimensions, real load capacity, real construction codes, real architectural guidance, or any material performance data. Treat the whole experience as recreational creative software rather than as a structural or safety reference, and the tool becomes much easier to evaluate on its own terms.
Grid Mechanics: The 5×5 Board, Three Materials, and Four-Layer Stacks
The board is a flat 5-by-5 grid, twenty-five cells in total, that always starts empty. Each cell can hold zero, one, two, three, or four bricks stacked vertically, and each brick carries one of three visual labels: Clay, Sand, or Slate. A cell's current "top material" is whatever label sits on the highest brick; if the cell is empty, the top is undefined. There is no diagonal placement, no overhang, no floating brick, and no partial-stack preview — bricks either land on a real cell or they do not.
Selection and editing share the same rule for pointer, touch, and keyboard users: you pick a cell first, then take an explicit add or remove action. Selecting a cell on its own never places or removes a brick. Add brick places one new brick of the currently selected material on top of the chosen stack, so long as the cell is not already at the four-layer capacity. Remove top deletes only the highest brick in the chosen stack, regardless of which material that brick happens to be. There is no "Remove all" and no way to take a brick from the middle of a stack, which means the visible top of every stack is always the brick you would delete next.
Selecting a material is also explicit. Pointer and touch users pick Clay, Sand, or Slate from a visible selector; keyboard users press 1 for Clay, 2 for Sand, or 3 for Slate. The currently selected material persists across add operations until the player changes it, which means switching cells or switching tools does not silently change the label you are about to place.
How the 1,000-Point Milestone System Works
The score is built from exactly five activity milestones. Each one is worth 200 points, and each one can be earned at most once, so the published maximum is 5 × 200 = 1,000 points. The studio does not judge the layout, so a beautifully arranged model and a deliberately messy one can both reach the cap, and a partially completed layout can still score 200, 400, 600, or 800 if the right thresholds happen to be met.
| Milestone | Threshold | Points |
|---|---|---|
| Groundwork | Place the first brick | 200 |
| Footprint | Have four occupied cells at once | 200 |
| Tower | Have one stack at least three bricks high | 200 |
| Palette | Have all three material labels appear somewhere | 200 |
| Studio build | Have at least twelve bricks spread across at least eight cells | 200 |
| Cap | All five milestones earned | 1,000 |
Three behaviors of the milestone ledger are worth memorizing before you start placing bricks. First, once a milestone ID is recorded, it stays recorded — removing the brick that triggered it does not revoke the credit, so Footprint survives even if you later empty three of the four cells. Second, hitting 1,000 does not freeze the board; adding and removing bricks after the cap remains fully available, and the score simply stays at 1,000 rather than climbing further. Third, the live status area reports total bricks, occupied cells, tallest stack, distinct material count, earned milestones, and the running score, so you can read the threshold progress without guessing.
Build, Edit, and Export Your First Model
The fastest path from an empty board to a 1,000-point build with a saved PNG looks like this:
- Open Brick Builder Studio in your browser and wait for the empty 5-by-5 grid to appear.
- Pick a starting material — Clay is the default, but 2 selects Sand and 3 selects Slate on the keyboard.
- Move to a center cell and press Enter, Space, or click Add brick to drop your first brick; this immediately earns the Groundwork milestone and the first 200 points.
- Visit three more cells in any pattern and place at least one brick in each, bringing the occupied count to four and unlocking the Footprint milestone.
- Return to the first cell and keep adding bricks of the same material until that single stack reaches a height of three; this triggers the Tower milestone.
- Place at least one brick of each remaining material so all three labels appear somewhere in the model, earning the Palette milestone.
- Continue adding bricks until at least twelve bricks are spread across eight or more occupied cells, which completes the Studio build milestone and locks the score at 1,000.
- Keep editing freely — the score stays at 1,000 and milestones stay recorded while you shape the model.
- When you are happy with the arrangement, click Export PNG to redraw the current local model into a fresh 1,200-by-900 PNG saved as brick-builder-studio.png.
- Use Restart only if you want a clean slate; Restart is the one action that clears the model, the selected material, the milestones, and the score back to the deterministic empty state.
Keyboard and Pointer Controls Compared
The studio exposes identical logic to both pointer and keyboard paths through shared pure reducers, so the resulting model state never depends on which input you used. The table below summarizes the parallel actions.
| Action | Pointer or Touch Path | Keyboard Path |
|---|---|---|
| Move selection | Click or tap a cell | Arrow keys |
| Place a brick | Click Add brick | Enter or Space |
| Remove top brick | Click Remove top | Backspace or Delete |
| Select Clay | Pick Clay from the material selector | Press 1 |
| Select Sand | Pick Sand from the material selector | Press 2 |
| Select Slate | Pick Slate from the material selector | Press 3 |
| Export current build | Click Export PNG | No keyboard shortcut published |
| Restart session | Click Restart | No keyboard shortcut published |
Two subtleties make the comparison worth reading. Modified shortcuts — for example Ctrl+Enter or Shift+Backspace — are intentionally ignored, so a stray modifier never places or removes an unexpected brick. The keyboard focus on the grid uses a roving pattern, and every action control meets the shared touch-target size, which keeps the same controls accessible on narrow phone viewports where the board and milestone ledger stack vertically.
Editing After 1,000 and Restart Behavior
The studio's most useful design choice is that the score and the model are kept in separate state. The score is a function of milestone IDs that have already been awarded, while the model is a function of the current 25-cell arrangement. Because those two pieces of state are independent, reaching 1,000 does not freeze the layout, and rearranging the layout does not retroactively revoke already-earned milestones. You can rebuild the entire board from scratch after earning the cap and still read 1,000 in the status area; you can also remove every brick and watch the live counters drop while the milestone checkmarks stay lit.
Restart is the only action that breaks that separation. It clears the model, the selected material, every earned milestone, and the score, returning the studio to the deterministic empty state described in the product contract. If you want to keep a particular model intact, never click Restart; if you want a fresh start, do not expect Undo to recover the previous state, because no Undo control is published.
PNG Export: Local, Deterministic, No Upload
Export PNG is the only way to leave the browser with an image of the current model, and it is intentionally narrow in scope. When triggered, the browser creates a fresh 1,200-by-900 canvas, traverses the same tested row, column, stack level, and material snapshot that the game logic uses, and redraws the pure brick model onto that canvas. The result is offered as brick-builder-studio.png through a temporary local object URL. The export does not capture an unrelated page screenshot, does not fetch a remote image, does not load a remote font, does not call an API, and does not upload the model anywhere. If you want a second image after changing the layout, click Export PNG again to redraw the current state.
Because the export reflects the current model only, the moment you place or remove a brick after exporting, the saved image becomes out of date. Treat Export PNG as a snapshot tool: build to the arrangement you want to keep, then export, then keep editing without re-exporting unless you also save the new file. For deeper customization outside the published image dimensions, the studio does not provide a way to change the canvas size, the color of the three material labels, or the resolution, so the exported PNG is best thought of as a faithful record rather than as a configurable render.
If you want a structured walkthrough that focuses on the very first build, the companion guide Brick Builder Studio for Beginners: Your First Build covers the same milestones at a slower pace with additional description of the initial empty board.