3D-print softwarePrototype2026
Real CAD for charm bracelets: configure in the browser, export STL for printing or STEP for engineers.
- export formats from one model
- STL + STEP
- export formats from one model
- built-in charm shapes
- 8
- built-in charm shapes
- print-in-place vertical clearance
- 0.25 mm
- print-in-place vertical clearance
- services in the local stack
- 6
- services in the local stack
The problem
What people put up with
Most bracelet generators can only give you a mesh. That's fine for printing, but a maker who wants to edit the design in Fusion or FreeCAD, or a shop that needs exact dimensions, gets a pile of triangles they can't change.
The odd angle
The insight
If the geometry comes from a proper CAD kernel, the same model can leave as an STL for the printer or a STEP file for engineers. Build the bracelet from parametric parts (a male pin, a C-shaped jaw, a link body) and let the tolerance be one number the user can turn.
The approach
How we built it
- 1
Parametric parts in CadQuery
Each link is a male pin and a female C-jaw on a shared body, scaled by a tolerance multiplier, with 0.25 mm of vertical clearance so the chain prints in place. The links are then arranged in a circle to the chosen diameter.
- 2
Slow geometry off the request path
Solid modelling can take seconds. Exports go into a Redis queue and an RQ worker builds the model, so the web app never waits on the CAD kernel.
- 3
Built for a campaign
Accounts, saved designs, Stripe checkout and backer tokens are part of the data model from day one, so crowdfunding backers can redeem their reward straight into an account.
What it does
Features
- Live Three.js preview with diameter, shape, colour and tolerance controls
- Charm library: heart, star, cat, moon, D20, sword, pizza and coffee
- STL and STEP export through a background job queue
- Import and clean up your own STL charms
- JWT accounts, saved designs, Stripe checkout and backer-token redemption
- One-command local stack with Docker Compose
The hard parts
What fought back
Server-side CAD versus a live preview
A real B-rep kernel gives perfect solids but runs on the server, so the preview and the final file are built in different places. That trade-off is the main thing CharmForge taught us. Bracelet Studio takes the other path and runs its geometry kernel in the browser, so the preview and the exported file always match.
What's next
On the roadmap
- Compare print results against Bracelet Studio's in-browser kernel
- STEP export for Bracelet Studio's seller tier