docs: update ROADMAP.md + USD plan after Phase B completion

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-11 21:51:38 +01:00
parent d938c4db1b
commit 4f0fe2c8c7
2 changed files with 79 additions and 37 deletions
+10 -1
View File
@@ -8,12 +8,21 @@
## Prerequisites
- [ ] Priority 1 complete (step_tasks.py decomposed, blender_render.py decomposed)
- [x] `step_tasks.py` decomposition is already done; `backend/app/tasks/step_tasks.py` is now a compatibility shim over `backend/app/domains/pipeline/tasks/*`
- [ ] `blender_render.py` decomposition is still pending; current file remains monolithic
- [ ] Legacy STL-era cleanup is still pending (`stl_quality`, STL endpoints, orphaned directories)
- [x] Decision: USD authoring library → **`usd-core` (pip)** — provides `pxr` module, no GPU tools needed, pip-installable in render-worker
- [x] Decision: seam/sharp payload encoding → **index-space primvars** (`primvars:schaeffler:seamEdgeVertexPairs`, `primvars:schaeffler:sharpEdgeVertexPairs`) — survives transforms, no KD-tree needed
- [x] Decision: preview GLB derivation → **co-author from same tessellation pass** during migration (avoid round-trip loss from USD→GLB export)
- [x] Decision: single-file vs override layers → **Option B: canonical geometry layer + material override layer, flattened via `UsdUtils.FlattenLayerStack()` for delivery** — preserves hierarchy AND allows instancing later (`FlattenLayerStack` keeps `instanceable` prims; `UsdStage.Flatten` would expand them). Note: Phase 1 uses no instancing (matching current GLB pipeline), but the delivery path is already instancing-safe.
## Current Baseline
- No USD exporter exists yet in `render-worker/scripts/`
- No `usd_master` asset type or scene-manifest endpoint exists yet in backend/frontend code
- No `partKey` payload exists yet in the GLB export/viewer contract
- No `gmsh` tessellation wiring exists yet; Phase 1 should assume current OCC tessellation unless Priority 3 is pulled forward
---
## Phase 1 — Dual-Write USD Beside GLB (Priority 2, M1M2)