CAD Viewer
/design renders the robot's 3D model in-browser — no CAD software required to inspect the chassis.
Interface
| Element | Behaviour |
|---|---|
| File list (sidebar / mobile dropdown) | Every uploaded design file, ordered by display_order |
| Viewer pane | Selected model, orbit-controllable (rotate/zoom/pan via mouse or touch), auto-rotating on load |
Supported Formats
| Extension | How it's rendered |
|---|---|
.glb, .gltf |
Native three.js loader (useGLTF) — fastest path, preferred for the primary model |
.stl |
STLLoader (three.js) |
.step, .stp |
Parsed client-side by occt-import-js (a WASM build of OpenCascade) into renderable geometry — no server round-trip |
.sldasm, .sldprt |
Cannot be previewed — the viewer shows "SolidWorks format cannot be previewed in browser. Export as STEP from SolidWorks first." These formats can still be uploaded and stored for reference/download, just not rendered |
STEP parsing runs entirely in the visitor's browser (the WASM module loads from /wasm/) — nothing is uploaded to a conversion service.
Adding a Model
Upload via Admin → Design (see Content Admin) — the file goes to R2, and a design_files row is created so it appears in the sidebar. There's no separate seed step like the code browser; each upload is immediately live.