Implement the first real bin plugins against the C1 framework + the anonymous-app UI (type selector + schema-driven param form), reusing the R3F preview and STL/ZIP/3MF export with no export-core changes.
Key tasks
openBin (walls/floor from computeBinFootprint; dividers, scoop fillet, label tab, stacking lip, magnet/screw base holes).
storageBox (closed/lid-ready; optional Lite/Eco mode: no magnets, thin walls, gridded floor).
toolTraced (subtract a given contour polyline; geometry only — no image/AI pipeline).
- Generalize
design.ts BaseplateDesign → discriminated WorkbenchItem (itemType) carrying schemaVersion + plugin id + params (persist params, never meshes — recompute on load).
See docs/ROADMAP.md → Phase C2–C3.
Implement the first real bin plugins against the C1 framework + the anonymous-app UI (type selector + schema-driven param form), reusing the R3F preview and STL/ZIP/3MF export with no export-core changes.
Key tasks
openBin(walls/floor fromcomputeBinFootprint; dividers, scoop fillet, label tab, stacking lip, magnet/screw base holes).storageBox(closed/lid-ready; optional Lite/Eco mode: no magnets, thin walls, gridded floor).toolTraced(subtract a given contour polyline; geometry only — no image/AI pipeline).design.tsBaseplateDesign→ discriminatedWorkbenchItem(itemType) carryingschemaVersion+ plugin id + params (persist params, never meshes — recompute on load).See
docs/ROADMAP.md→ Phase C2–C3.