···1212- browser STL viewing as a core interaction;
1313- Dioxus web UI backed by Rust and Jacquard 0.12.
14141515-STL viewer candidates:
1515+STL viewer (decided):
16161717-- `three-d` is a viable web/WASM candidate with a browser/WebGL-oriented API.
1818-- `kiss3d` also works on WASM and should be evaluated alongside `three-d`; choose based on STL loading, orbit controls, rendering quality, bundle/runtime costs, and Dioxus integration friction.
1717+- `three-d` is the chosen STL viewer (see the Confluence decision note). Renders STL on a Dioxus-owned canvas via WebGL2; the renderer session is retained across model switches and the STL loads on demand from `public/models/`.
1818+- `kiss3d` was evaluated and rejected: no WebGL2/WebGPU adapter surfaced at runtime in the browser target (PM-21).
19192020## Source of truth
2121···27272828## VCS
29293030-Use jj, not raw git, for normal development.
3030+Use jj, not raw git, for normal development. This repo commits large model assets (multi-MiB STL/STEP under `public/models/`), so a fresh clone needs `jj config set --repo snapshot.max-new-file-size 5242880` before snapshotting new large files (jj's default 1 MiB cap refuses them); already-committed assets check out fine without it.
31313232- Create isolated work with jj workspaces, and immediately start a fresh change before editing: `jj new -m "PM-12: concise summary"`.
3333- Use ticket-derived names like `pm-12-short-summary`.
+4-4
README.md
···14141515Jira project/Confluence space key: `PM`.
16161717-## STL viewer candidates
1717+## STL viewer
18181919-Tentative candidates:
1919+Decision: three-d.
20202121-- [`three-d`](https://github.com/asny/three-d): viable web/WASM candidate with a browser/WebGL-oriented API.
2222-- [`kiss3d`](https://github.com/dimforge/kiss3d): also works on WASM and should be evaluated alongside `three-d`, especially for STL loading, orbit controls, and Dioxus integration friction.
2121+- [`three-d`](https://github.com/asny/three-d): chosen STL viewer. Renders on a Dioxus-owned canvas via WebGL2; the renderer session is retained across model switches and STL assets load on demand from `public/models/`.
2222+- [`kiss3d`](https://github.com/dimforge/kiss3d): rejected — no WebGL2/WebGPU adapter surfaced at runtime in the browser target (PM-21).
23232424The viewer choice should be decided with a small spike that loads an STL, renders orbit controls, and fits cleanly into Dioxus.
2525