Uploading & versioning STL files
How STL, OBJ, and 3DM files are stored, versioned, and served via Supabase + CDN.
Overview
STL is the lingua franca of 3D printing and lost-wax casting. Katura's file manager treats STL (and OBJ, 3DM, STEP) as first-class citizens with versioning, preview, and sharing built in.
Where files live
CAD files are stored in a private Supabase Storage bucket called cad. They are not served publicly by default. Two access paths are provided:
/api/admin/cad/proxy?path=...β admin-only, gated byrequireKaturaAdmin. Used by the design file manager and by the customer-facing proposal viewer (which signs a short-lived token)./api/public-cad/[asset]β public, but only for slugs explicitly added to a server-side whitelist. Used for marketing pages where you want a live, embeddable, cached 3D model with no auth.
Uploading
- Open
/admin/designand navigate to the project folder. - Drag the
.stlfile onto the drop zone. Multiple files are fine. - Each upload is automatically previewed in the embedded 3D viewer. If the file is malformed, you'll see an error before it's saved.
- Add a one-line note (e.g. βv3 β thinner shank per client requestβ) and save.
Versioning
Files in the same folder with the same base name are grouped into a version stack.homage-ring-v1.stl, homage-ring-v2.stl, and so on appear as one row with a version dropdown. Older versions are kept forever; the newest one is what feeds price, viewer, and proposal links unless you explicitly pin an earlier version.
Supported formats & conversion
| Format | Upload | Preview | Use for pricing |
|---|---|---|---|
| STL (ASCII or binary) | β | β | β |
| OBJ | β | β | β (auto-converted) |
| 3DM (Rhino) | β | preview only | convert to STL first |
| STEP | β | β | convert to STL first |
| JPG / PNG renders | β | β | β |
Warning
STL is a triangulated surface. For pricing to be accurate, the mesh must be watertight (every edge shared by exactly two triangles). Katura checks this on upload and will warn you if a file is non-manifold.
