A browser-based parametric 3D-printable enclosure generator. Drag sliders to size a box and its lid, place standoffs and cutouts, add embossed or debossed text labels, then export STL or 3MF directly from your browser. No CAD install needed.
Try it live: https://boxmaker.dcity.org
- Parametric box body and lid with snap-fit clips (per-wall toggles, tunable nub geometry, lid lead-in chamfer)
- Standoffs (PCB mounts) on the floor or hanging from the lid -- optional screw hole and base fillet per standoff
- Round and rectangular cutouts on any face, with optional corner fillet
- Embossed and debossed text labels with bundled fonts (Atkinson Hyperlegible,
JetBrains Mono, Open Sans) or any uploaded
.ttf/.otf - Separate-body text labels become distinct objects in 3MF export for multi-material slicing
- Save / Load designs as portable JSON; share via URL hash
- Undo / redo with rapid-write coalescing
- Live 3D preview with orbit controls, six orthographic view shortcuts,
ViewCube widget, and Blender-style numpad bindings (
1/3/7etc.)
One of the built-in starter designs. Load it from the Load Example... dropdown in the sidebar, tweak it, and 3D-print the result. Click any image to see it full-size.
![]() |
![]() |
![]() |
![]() |
npm install
npm run devThen open http://localhost:3000.
- Next.js 14 (App Router) + React 18 + TypeScript
- Tailwind CSS 3.4
- Zustand for state
@react-three/fiber+@react-three/dreifor the 3D viewportmanifold-3d(WebAssembly) for boolean geometryopentype.jsfor font parsing and glyph outline extraction
Static site; no backend. Manifold runs in the browser via WASM. Push to Vercel for free-tier hosting -- no configuration needed beyond connecting the repo.
The full end-user reference -- textarea syntax for standoffs / cutouts / text labels, coordinate frames per surface, font handling, export details, 3D-printing tips, and FAQ -- lives in the app itself. Click the ? button in the sidebar header, or just open https://boxmaker.dcity.org and click ? to read it without leaving your browser.




