brep-io-kernel 1.0.177 → 1.0.178

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/about.html +3 -66
  2. package/dist/apiExamples/BREP_Booleans.html +2 -2
  3. package/dist/apiExamples/BREP_Export.html +2 -2
  4. package/dist/apiExamples/BREP_Primitives.html +2 -2
  5. package/dist/apiExamples/BREP_Transforms.html +2 -2
  6. package/dist/apiExamples/Embeded_2D_Sketcher.html +2 -2
  7. package/dist/apiExamples/Embeded_CAD.html +2 -2
  8. package/dist/apiExamples/Embeded_CAD_Integration_Test.html +2 -2
  9. package/dist/assembly-constraint-capture.html +5 -5
  10. package/dist/assets/{AnnotationRegistry-CyI5mmDu.js → AnnotationRegistry-QZj3o2R6.js} +1 -1
  11. package/dist/assets/{AssemblyConstraintRegistry-3P1cpGjG.js → AssemblyConstraintRegistry-DJV0rHvz.js} +1 -1
  12. package/dist/assets/{FeatureRegistry-Cd-GX-Bm.js → FeatureRegistry-C7MrfKHF.js} +3 -3
  13. package/dist/assets/{PartHistory-DxsRIXx4.js → PartHistory-CyUoWFuO.js} +1 -1
  14. package/dist/assets/{Tube-bO80ROeR.js → Tube-TKgrLSLm.js} +1 -1
  15. package/dist/assets/{annUtils-D9TT7tgs.js → annUtils-Cv2fgMTB.js} +1 -1
  16. package/dist/assets/{apiExample_BREP_Booleans-p7pplM2w.js → apiExample_BREP_Booleans-CVUu-3pI.js} +1 -1
  17. package/dist/assets/{apiExample_BREP_Export-DcEboCzN.js → apiExample_BREP_Export-D3YICePi.js} +1 -1
  18. package/dist/assets/{apiExample_BREP_Primitives-mwn27Zyf.js → apiExample_BREP_Primitives-CB9GlLIq.js} +1 -1
  19. package/dist/assets/{apiExample_BREP_Transforms-DoxqJ6cS.js → apiExample_BREP_Transforms-BTbdOuJd.js} +1 -1
  20. package/dist/assets/{apiExample_Embeded_2D_Sketcher-D0UY5aPj.js → apiExample_Embeded_2D_Sketcher-jli62c46.js} +1 -1
  21. package/dist/assets/{apiExample_Embeded_CAD-CGA1Zguy.js → apiExample_Embeded_CAD-BBzOAW8d.js} +1 -1
  22. package/dist/assets/{apiExample_Embeded_CAD_Integration_Test-CdZX2cCy.js → apiExample_Embeded_CAD_Integration_Test-Dla62MVj.js} +1 -1
  23. package/dist/assets/{assemblyConstraintDialogs-Qq5KEM_o.js → assemblyConstraintDialogs-7PwUshmv.js} +1 -1
  24. package/dist/assets/{brep-kernel-DRr4NDNQ.js → brep-kernel-B2gzJr_I.js} +3 -10
  25. package/dist/assets/{browserTests-DI1pWDf6.js → browserTests-Rma8zWcv.js} +1 -1
  26. package/dist/assets/{chamfer-DdXNz6lz.js → chamfer-jmLT1RTy.js} +1 -1
  27. package/dist/assets/{dialogCapturePageFactory-DGBZ6PkY.js → dialogCapturePageFactory-l1BkjONQ.js} +1 -1
  28. package/dist/assets/{featureDialogs-CUWi02Qp.js → featureDialogs-Bas0NDXF.js} +3 -3
  29. package/dist/assets/{featureDialogs-CJ9OA-vL.js → featureDialogs-zsfh_u_t.js} +1 -1
  30. package/dist/assets/{fillet-CJey7GJP.js → fillet-Bzd1Xae9.js} +1 -1
  31. package/dist/assets/{index.es-X1ZhwpCY.js → index.es-tZ6V_7py.js} +1 -1
  32. package/dist/assets/{javascript-CHFzcwro.js → javascript-DU8Xgp6c.js} +1 -1
  33. package/dist/assets/{main-cad-bbPyIDxb.js → main-cad-J2VK-edE.js} +6 -6
  34. package/dist/assets/{pmiDialogs-BFqEnCKw.js → pmiDialogs-DtSa0QaG.js} +1 -1
  35. package/dist/assets/{test-XEjDO9UE.js → test-D-0BGqtx.js} +3 -3
  36. package/dist/cad.html +10 -10
  37. package/dist/feature-dialog-capture.html +7 -7
  38. package/dist/help/index.html +3 -66
  39. package/dist/help/search-index.json +1 -1
  40. package/dist/pmi-dialog-capture.html +5 -5
  41. package/dist/test.html +1 -1
  42. package/dist/viewer.html +10 -10
  43. package/dist-kernel/brep-kernel.js +3 -10
  44. package/dist-kernel/help/index.html +3 -66
  45. package/dist-kernel/help/search-index.json +1 -1
  46. package/package.json +2 -3
  47. package/src/BREP/setupManifold.js +2 -7
  48. package/src/generated/licenseBundle.js +1 -1
  49. package/src/generated/manifoldSource.js +0 -1
  50. package/dist/assets/manifold-B8h_vZ5O.js +0 -16
  51. package/dist/assets/manifold-D9yvTBHx.wasm +0 -0
@@ -1 +1 @@
1
- var m=Object.defineProperty;var r=(t,o)=>m(t,"name",{value:o,configurable:!0});import"./modulepreload-polyfill-BdX5DvLD.js";import{c}from"./AnnotationRegistry-CyI5mmDu.js";import{r as p}from"./dialogCapturePageFactory-DGBZ6PkY.js";import"./deepClone-Dj59xCHB.js";import"./featureDialogs-CUWi02Qp.js";import"./browserStorage-CvgF8ovw.js";import"./preload-helper-ZNr0Qq7Q.js";import"./annUtils-D9TT7tgs.js";const f=c.list(),u=f.filter(Boolean).map(t=>{const o=s(t.longName,t.title,t.featureName,t.name,"Annotation"),n=s(t.shortName,t.featureShortName,t.type,o,"Annotation"),i=t&&typeof t.inputParamsSchema=="object"?t.inputParamsSchema:{},e=g(i,n);return{displayName:o,shortName:n,captureName:o,schema:i,initialParams:e}});p({title:"PMI Annotation Dialog Reference",description:"PMI annotation dialogs rendered directly from the annotation registry.",entries:u});function s(...t){for(const o of t){if(o==null&&o!==0)continue;const n=String(o).trim();if(n.length)return n}return"Annotation"}r(s,"pickName");function g(t,o){if(!t||typeof t!="object")return{};const n=Object.keys(t).find(e=>{const a=e.toLowerCase();return a==="id"||a==="annotationid"});if(!n)return{};const i=String(o||"annotation").replace(/[^a-z0-9._-]+/gi,"_");return{[n]:`${i}-annotation`}}r(g,"buildAnnotationParams");
1
+ var m=Object.defineProperty;var r=(t,o)=>m(t,"name",{value:o,configurable:!0});import"./modulepreload-polyfill-BdX5DvLD.js";import{c}from"./AnnotationRegistry-QZj3o2R6.js";import{r as p}from"./dialogCapturePageFactory-l1BkjONQ.js";import"./deepClone-Dj59xCHB.js";import"./featureDialogs-Bas0NDXF.js";import"./browserStorage-CvgF8ovw.js";import"./preload-helper-ZNr0Qq7Q.js";import"./annUtils-Cv2fgMTB.js";const f=c.list(),u=f.filter(Boolean).map(t=>{const o=s(t.longName,t.title,t.featureName,t.name,"Annotation"),n=s(t.shortName,t.featureShortName,t.type,o,"Annotation"),i=t&&typeof t.inputParamsSchema=="object"?t.inputParamsSchema:{},e=g(i,n);return{displayName:o,shortName:n,captureName:o,schema:i,initialParams:e}});p({title:"PMI Annotation Dialog Reference",description:"PMI annotation dialogs rendered directly from the annotation registry.",entries:u});function s(...t){for(const o of t){if(o==null&&o!==0)continue;const n=String(o).trim();if(n.length)return n}return"Annotation"}r(s,"pickName");function g(t,o){if(!t||typeof t!="object")return{};const n=Object.keys(t).find(e=>{const a=e.toLowerCase();return a==="id"||a==="annotationid"});if(!n)return{};const i=String(o||"annotation").replace(/[^a-z0-9._-]+/gi,"_");return{[n]:`${i}-annotation`}}r(g,"buildAnnotationParams");
@@ -1,6 +1,6 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/brep-kernel-DRr4NDNQ.js","assets/preload-helper-ZNr0Qq7Q.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/brep-kernel-B2gzJr_I.js","assets/preload-helper-ZNr0Qq7Q.js"])))=>i.map(i=>d[i]);
2
2
  var H=Object.defineProperty;var c=(e,t)=>H(e,"name",{value:t,configurable:!0});import"./modulepreload-polyfill-BdX5DvLD.js";import{_ as B}from"./preload-helper-ZNr0Qq7Q.js";const $=document.getElementById("status"),J=document.getElementById("log"),w=document.getElementById("btn-create"),V=document.getElementById("btn-destroy"),T=document.getElementById("btn-apply-css"),F=document.getElementById("btn-apply-theme"),L=document.getElementById("btn-export-svg"),G=document.getElementById("geometry-color"),_=document.getElementById("point-color"),N=document.getElementById("constraint-color"),A=document.getElementById("background-color"),P=document.getElementById("point-size-px"),O=document.getElementById("curve-thickness-px"),v=document.getElementById("sidebar-expanded"),g=document.getElementById("grid-visible"),R=document.getElementById("grid-spacing"),D=document.getElementById("css-input"),K=document.getElementById("sketch-status"),U=document.getElementById("sketch-host"),p=document.getElementById("event-output"),y=document.getElementById("svg-preview"),C=document.getElementById("path-output");let n=null,S=0,E=0,k=0;const W=5,a=c((...e)=>{const t=e.map(s=>{if(typeof s=="string")return s;try{return JSON.stringify(s)}catch{return String(s)}}).join(" ");J.textContent+=`${t}
3
3
  `,console.log(...e)},"log"),u=c((e,t)=>{$.textContent=e,$.className=`status ${t}`},"setStatus"),o=c(e=>{K.textContent=e},"setSketchStatus"),x=c(e=>{w.disabled=e,V.disabled=!e,T.disabled=!e,F.disabled=!e,L.disabled=!e},"setSketchButtons"),h=c((e,t=null)=>{const s=new Date().toLocaleTimeString(),i=t==null?`[${s}] ${e}`:`[${s}] ${e} ${JSON.stringify(t)}`,l=p.textContent==="(No sketch events yet)"?[]:p.textContent.split(`
4
4
  `).filter(Boolean),d=[i,...l].slice(0,W);p.textContent=d.length?d.join(`
5
- `):"(No sketch events yet)"},"pushEvent"),M=c(()=>({geometryColor:G.value,pointColor:_.value,constraintColor:N.value,backgroundColor:A.value,pointSizePx:Math.max(1,Number(P.value)||10),curveThicknessPx:Math.max(.5,Number(O.value)||2)}),"currentTheme"),b=c(()=>{const e=Number(R.value);return Number.isFinite(e)&&e>0?e:1},"currentGridSpacing"),X=c(async()=>{if(n)return;const{Sketcher2DEmbed:e}=await B(async()=>{const{Sketcher2DEmbed:t}=await import("./brep-kernel-DRr4NDNQ.js");return{Sketcher2DEmbed:t}},__vite__mapDeps([0,1]));n=new e({cssText:D.value,...M(),sidebarExpanded:v.checked,gridVisible:g.checked,gridSpacing:b(),onChange:c(t=>{S+=1;const s=Array.isArray(t?.geometries)?t.geometries.length:0;o(`Sketch updated (${S}). Geometries: ${s}`),h("onChange",{geometries:s})},"onChange"),onFinished:c(t=>{E+=1;const s=Array.isArray(t?.geometries)?t.geometries.length:0;o(`Sketch finished (${E}). Geometries: ${s}`),h("onFinished",{geometries:s}),j().catch(i=>{console.error(i),o(`Failed to export SVG after Finish: ${i?.message||String(i)}`)})},"onFinished"),onCancelled:c(()=>{k+=1,o(`Sketch cancelled (${k}).`),h("onCancelled")},"onCancelled")}),await n.mount(U),await n.getSketch(),x(!0),o("Sketcher iframe mounted. Draw geometry and click Export SVG Paths.")},"attachSketcher"),Y=c(async()=>{n&&(await n.destroy(),n=null,S=0,E=0,k=0,x(!1),o("Sketcher destroyed."),p.textContent="(No sketch events yet)",y.innerHTML="",C.textContent="")},"detachSketcher"),q=c(async()=>{n&&(await n.setCss(D.value),o("Custom CSS applied to iframe."))},"applySketchCss"),r=c(async()=>{n&&(await n.setTheme(M()),await n.setSidebarExpanded(v.checked),typeof n.setGrid=="function"?await n.setGrid({visible:g.checked,spacing:b()}):(typeof n.setGridVisible=="function"&&await n.setGridVisible(g.checked),typeof n.setGridSpacing=="function"&&await n.setGridSpacing(b())),o("Theme + sidebar + grid state applied to iframe."))},"applySketchTheme"),j=c(async()=>{if(!n)return;const e=await n.exportSVG({flipY:!0,precision:3,stroke:"#111111",strokeWidth:1.5,fill:"none",padding:12});await n.getSketch({preferCached:!0}),y.innerHTML=e.svg,C.textContent=e.paths.length?e.paths.map(t=>`id=${t.id} type=${t.type} d="${t.d}"`).join(`
6
- `):"(No sketch geometry to export)",o(`Exported ${e.paths.length} SVG paths.`),y.scrollIntoView({behavior:"smooth",block:"start"})},"exportSvg");w.addEventListener("click",()=>{X().catch(e=>{console.error(e),o(`Failed to create sketcher: ${e?.message||String(e)}`)})});V.addEventListener("click",()=>{Y().catch(e=>{console.error(e),o(`Failed to destroy sketcher: ${e?.message||String(e)}`)})});T.addEventListener("click",()=>{q().catch(e=>{console.error(e),o(`Failed to apply CSS: ${e?.message||String(e)}`)})});L.addEventListener("click",()=>{j().catch(e=>{console.error(e),o(`Failed to export SVG: ${e?.message||String(e)}`)})});F.addEventListener("click",()=>{r().catch(e=>{console.error(e),o(`Failed to apply theme: ${e?.message||String(e)}`)})});[G,_,N,A,P,O].forEach(e=>{e.addEventListener("input",()=>{n&&r().catch(t=>{console.error(t),o(`Failed to apply theme: ${t?.message||String(t)}`)})})});v.addEventListener("change",()=>{n&&r().catch(e=>{console.error(e),o(`Failed to apply sidebar state: ${e?.message||String(e)}`)})});g.addEventListener("change",()=>{n&&r().catch(e=>{console.error(e),o(`Failed to apply grid visibility: ${e?.message||String(e)}`)})});R.addEventListener("input",()=>{n&&r().catch(e=>{console.error(e),o(`Failed to apply grid spacing: ${e?.message||String(e)}`)})});x(!1);C.textContent="(No SVG exported yet)";(async()=>{u("Importing bundle...","pending");const e=await B(()=>import("./brep-kernel-DRr4NDNQ.js"),__vite__mapDeps([0,1]));a("Bundle exports:",Object.keys(e));const{BREP:t}=e;if(!t)throw new Error("BREP export missing from bundle");u("Running kernel checks...","pending");const s=new t.Cube({x:2,y:3,z:4,name:"Cube"}),i=s.volume();a("Cube volume:",i);const l=new t.Sphere({r:1,resolution:24,name:"Sphere"}),d=l.getTriangleCount();a("Sphere triangles:",d);const f=s.union(l),z=f.volume();a("Union volume:",z),a("Union triangles:",f.getTriangleCount());const m=24,I=Math.abs(i-m)<1e-6;if(a("Cube volume check:",I?"OK":"FAIL","(expected",m,")"),!I)throw new Error(`Cube volume mismatch: ${i} vs ${m}`);u("Success: bundle + WASM OK","ok")})().catch(e=>{console.error(e),a("ERROR:",e&&(e.stack||e.message||String(e))),u("Failed: see log","err")});
5
+ `):"(No sketch events yet)"},"pushEvent"),M=c(()=>({geometryColor:G.value,pointColor:_.value,constraintColor:N.value,backgroundColor:A.value,pointSizePx:Math.max(1,Number(P.value)||10),curveThicknessPx:Math.max(.5,Number(O.value)||2)}),"currentTheme"),b=c(()=>{const e=Number(R.value);return Number.isFinite(e)&&e>0?e:1},"currentGridSpacing"),X=c(async()=>{if(n)return;const{Sketcher2DEmbed:e}=await B(async()=>{const{Sketcher2DEmbed:t}=await import("./brep-kernel-B2gzJr_I.js");return{Sketcher2DEmbed:t}},__vite__mapDeps([0,1]));n=new e({cssText:D.value,...M(),sidebarExpanded:v.checked,gridVisible:g.checked,gridSpacing:b(),onChange:c(t=>{S+=1;const s=Array.isArray(t?.geometries)?t.geometries.length:0;o(`Sketch updated (${S}). Geometries: ${s}`),h("onChange",{geometries:s})},"onChange"),onFinished:c(t=>{E+=1;const s=Array.isArray(t?.geometries)?t.geometries.length:0;o(`Sketch finished (${E}). Geometries: ${s}`),h("onFinished",{geometries:s}),j().catch(i=>{console.error(i),o(`Failed to export SVG after Finish: ${i?.message||String(i)}`)})},"onFinished"),onCancelled:c(()=>{k+=1,o(`Sketch cancelled (${k}).`),h("onCancelled")},"onCancelled")}),await n.mount(U),await n.getSketch(),x(!0),o("Sketcher iframe mounted. Draw geometry and click Export SVG Paths.")},"attachSketcher"),Y=c(async()=>{n&&(await n.destroy(),n=null,S=0,E=0,k=0,x(!1),o("Sketcher destroyed."),p.textContent="(No sketch events yet)",y.innerHTML="",C.textContent="")},"detachSketcher"),q=c(async()=>{n&&(await n.setCss(D.value),o("Custom CSS applied to iframe."))},"applySketchCss"),r=c(async()=>{n&&(await n.setTheme(M()),await n.setSidebarExpanded(v.checked),typeof n.setGrid=="function"?await n.setGrid({visible:g.checked,spacing:b()}):(typeof n.setGridVisible=="function"&&await n.setGridVisible(g.checked),typeof n.setGridSpacing=="function"&&await n.setGridSpacing(b())),o("Theme + sidebar + grid state applied to iframe."))},"applySketchTheme"),j=c(async()=>{if(!n)return;const e=await n.exportSVG({flipY:!0,precision:3,stroke:"#111111",strokeWidth:1.5,fill:"none",padding:12});await n.getSketch({preferCached:!0}),y.innerHTML=e.svg,C.textContent=e.paths.length?e.paths.map(t=>`id=${t.id} type=${t.type} d="${t.d}"`).join(`
6
+ `):"(No sketch geometry to export)",o(`Exported ${e.paths.length} SVG paths.`),y.scrollIntoView({behavior:"smooth",block:"start"})},"exportSvg");w.addEventListener("click",()=>{X().catch(e=>{console.error(e),o(`Failed to create sketcher: ${e?.message||String(e)}`)})});V.addEventListener("click",()=>{Y().catch(e=>{console.error(e),o(`Failed to destroy sketcher: ${e?.message||String(e)}`)})});T.addEventListener("click",()=>{q().catch(e=>{console.error(e),o(`Failed to apply CSS: ${e?.message||String(e)}`)})});L.addEventListener("click",()=>{j().catch(e=>{console.error(e),o(`Failed to export SVG: ${e?.message||String(e)}`)})});F.addEventListener("click",()=>{r().catch(e=>{console.error(e),o(`Failed to apply theme: ${e?.message||String(e)}`)})});[G,_,N,A,P,O].forEach(e=>{e.addEventListener("input",()=>{n&&r().catch(t=>{console.error(t),o(`Failed to apply theme: ${t?.message||String(t)}`)})})});v.addEventListener("change",()=>{n&&r().catch(e=>{console.error(e),o(`Failed to apply sidebar state: ${e?.message||String(e)}`)})});g.addEventListener("change",()=>{n&&r().catch(e=>{console.error(e),o(`Failed to apply grid visibility: ${e?.message||String(e)}`)})});R.addEventListener("input",()=>{n&&r().catch(e=>{console.error(e),o(`Failed to apply grid spacing: ${e?.message||String(e)}`)})});x(!1);C.textContent="(No SVG exported yet)";(async()=>{u("Importing bundle...","pending");const e=await B(()=>import("./brep-kernel-B2gzJr_I.js"),__vite__mapDeps([0,1]));a("Bundle exports:",Object.keys(e));const{BREP:t}=e;if(!t)throw new Error("BREP export missing from bundle");u("Running kernel checks...","pending");const s=new t.Cube({x:2,y:3,z:4,name:"Cube"}),i=s.volume();a("Cube volume:",i);const l=new t.Sphere({r:1,resolution:24,name:"Sphere"}),d=l.getTriangleCount();a("Sphere triangles:",d);const f=s.union(l),z=f.volume();a("Union volume:",z),a("Union triangles:",f.getTriangleCount());const m=24,I=Math.abs(i-m)<1e-6;if(a("Cube volume check:",I?"OK":"FAIL","(expected",m,")"),!I)throw new Error(`Cube volume mismatch: ${i} vs ${m}`);u("Success: bundle + WASM OK","ok")})().catch(e=>{console.error(e),a("ERROR:",e&&(e.stack||e.message||String(e))),u("Failed: see log","err")});
package/dist/cad.html CHANGED
@@ -10,18 +10,18 @@
10
10
  <script type="module" crossorigin src="/assets/modulepreload-polyfill-BdX5DvLD.js"></script>
11
11
  <script type="module" crossorigin src="/assets/preload-helper-ZNr0Qq7Q.js"></script>
12
12
  <script type="module" crossorigin src="/assets/browserStorage-CvgF8ovw.js"></script>
13
- <script type="module" crossorigin src="/assets/featureDialogs-CUWi02Qp.js"></script>
13
+ <script type="module" crossorigin src="/assets/featureDialogs-Bas0NDXF.js"></script>
14
14
  <script type="module" crossorigin src="/assets/droppedWorkspaceFiles-8o-ZYOrf.js"></script>
15
- <script type="module" crossorigin src="/assets/Tube-bO80ROeR.js"></script>
16
- <script type="module" crossorigin src="/assets/chamfer-DdXNz6lz.js"></script>
17
- <script type="module" crossorigin src="/assets/fillet-CJey7GJP.js"></script>
15
+ <script type="module" crossorigin src="/assets/Tube-TKgrLSLm.js"></script>
16
+ <script type="module" crossorigin src="/assets/chamfer-jmLT1RTy.js"></script>
17
+ <script type="module" crossorigin src="/assets/fillet-Bzd1Xae9.js"></script>
18
18
  <script type="module" crossorigin src="/assets/deepClone-Dj59xCHB.js"></script>
19
- <script type="module" crossorigin src="/assets/FeatureRegistry-Cd-GX-Bm.js"></script>
20
- <script type="module" crossorigin src="/assets/annUtils-D9TT7tgs.js"></script>
21
- <script type="module" crossorigin src="/assets/AssemblyConstraintRegistry-3P1cpGjG.js"></script>
22
- <script type="module" crossorigin src="/assets/PartHistory-DxsRIXx4.js"></script>
23
- <script type="module" crossorigin src="/assets/AnnotationRegistry-CyI5mmDu.js"></script>
24
- <script type="module" crossorigin src="/assets/main-cad-bbPyIDxb.js"></script>
19
+ <script type="module" crossorigin src="/assets/FeatureRegistry-C7MrfKHF.js"></script>
20
+ <script type="module" crossorigin src="/assets/annUtils-Cv2fgMTB.js"></script>
21
+ <script type="module" crossorigin src="/assets/AssemblyConstraintRegistry-DJV0rHvz.js"></script>
22
+ <script type="module" crossorigin src="/assets/PartHistory-CyUoWFuO.js"></script>
23
+ <script type="module" crossorigin src="/assets/AnnotationRegistry-QZj3o2R6.js"></script>
24
+ <script type="module" crossorigin src="/assets/main-cad-J2VK-edE.js"></script>
25
25
  <link rel="stylesheet" crossorigin href="/assets/main-cad-C3E_anfF.css">
26
26
  </head>
27
27
 
@@ -13,17 +13,17 @@
13
13
  background: #05070d;
14
14
  }
15
15
  </style>
16
- <script type="module" crossorigin src="/assets/featureDialogs-CJ9OA-vL.js"></script>
16
+ <script type="module" crossorigin src="/assets/featureDialogs-zsfh_u_t.js"></script>
17
17
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-BdX5DvLD.js">
18
18
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-ZNr0Qq7Q.js">
19
19
  <link rel="modulepreload" crossorigin href="/assets/browserStorage-CvgF8ovw.js">
20
- <link rel="modulepreload" crossorigin href="/assets/featureDialogs-CUWi02Qp.js">
21
- <link rel="modulepreload" crossorigin href="/assets/Tube-bO80ROeR.js">
22
- <link rel="modulepreload" crossorigin href="/assets/chamfer-DdXNz6lz.js">
23
- <link rel="modulepreload" crossorigin href="/assets/fillet-CJey7GJP.js">
20
+ <link rel="modulepreload" crossorigin href="/assets/featureDialogs-Bas0NDXF.js">
21
+ <link rel="modulepreload" crossorigin href="/assets/Tube-TKgrLSLm.js">
22
+ <link rel="modulepreload" crossorigin href="/assets/chamfer-jmLT1RTy.js">
23
+ <link rel="modulepreload" crossorigin href="/assets/fillet-Bzd1Xae9.js">
24
24
  <link rel="modulepreload" crossorigin href="/assets/deepClone-Dj59xCHB.js">
25
- <link rel="modulepreload" crossorigin href="/assets/FeatureRegistry-Cd-GX-Bm.js">
26
- <link rel="modulepreload" crossorigin href="/assets/dialogCapturePageFactory-DGBZ6PkY.js">
25
+ <link rel="modulepreload" crossorigin href="/assets/FeatureRegistry-C7MrfKHF.js">
26
+ <link rel="modulepreload" crossorigin href="/assets/dialogCapturePageFactory-l1BkjONQ.js">
27
27
  </head>
28
28
  <body>
29
29
  <div id="app"></div>
@@ -402,7 +402,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
402
402
  </section>
403
403
 
404
404
  <h1>Licenses Report of libraries used in this package</h1>
405
- <div class="summary">40 packages • 6 license types</div>
405
+ <div class="summary">33 packages • 6 license types</div>
406
406
  <section class="license">
407
407
  <h2>(MIT AND Zlib) <span class="chip">2 packages</span></h2>
408
408
  <div class="pkg">
@@ -435,21 +435,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
435
435
  <a class="chip" href="https://github.com/Stuk/jszip.git" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
436
436
  </div>
437
437
  </div></section><section class="license">
438
- <h2>Apache-2.0 <span class="chip">2 packages</span></h2>
438
+ <h2>Apache-2.0 <span class="chip">1 package</span></h2>
439
439
  <div class="pkg">
440
440
  <div>
441
441
  <div class="name">manifold-3d <span class="chip">1 version</span></div>
442
442
  <div class="desc">Geometry library for topological robustness</div>
443
443
 
444
- </div>
445
- <div class="meta">
446
- <a class="chip" href="https://github.com/elalish/manifold#readme" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
447
- </div>
448
- </div><div class="pkg">
449
- <div>
450
- <div class="name">manifold-3d <span class="chip">1 version</span></div>
451
- <div class="desc">Geometry library for topological robustness</div>
452
-
453
444
  </div>
454
445
  <div class="meta">
455
446
  <a class="chip" href="https://github.com/elalish/manifold#readme" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
@@ -466,7 +457,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
466
457
  <a class="chip" href="git://github.com/isaacs/inherits" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
467
458
  </div>
468
459
  </div></section><section class="license">
469
- <h2>MIT <span class="chip">33 packages</span></h2>
460
+ <h2>MIT <span class="chip">27 packages</span></h2>
470
461
  <div class="pkg">
471
462
  <div>
472
463
  <div class="name">@babel/runtime <span class="chip">1 version</span></div>
@@ -476,42 +467,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
476
467
  <div class="meta">
477
468
  <a class="chip" href="https://babel.dev/docs/en/next/babel-runtime" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
478
469
  </div>
479
- </div><div class="pkg">
480
- <div>
481
- <div class="name">@jridgewell/resolve-uri <span class="chip">1 version</span></div>
482
- <div class="desc">Resolve a URI relative to an optional base URI</div>
483
- <div class="desc">Author: Justin Ridgewell &amp;lt;justin@ridgewell.name&amp;gt;</div>
484
- </div>
485
- <div class="meta">
486
- <a class="chip" href="https://github.com/jridgewell/resolve-uri" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
487
- </div>
488
- </div><div class="pkg">
489
- <div>
490
- <div class="name">@jridgewell/sourcemap-codec <span class="chip">1 version</span></div>
491
- <div class="desc">Encode/decode sourcemap mappings</div>
492
- <div class="desc">Author: Justin Ridgewell &amp;lt;justin@ridgewell.name&amp;gt;</div>
493
- </div>
494
- <div class="meta">
495
- <a class="chip" href="https://github.com/jridgewell/sourcemaps/tree/main/packages/sourcemap-codec" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
496
- </div>
497
- </div><div class="pkg">
498
- <div>
499
- <div class="name">@jridgewell/trace-mapping <span class="chip">1 version</span></div>
500
- <div class="desc">Trace the original position through a source map</div>
501
- <div class="desc">Author: Justin Ridgewell &amp;lt;justin@ridgewell.name&amp;gt;</div>
502
- </div>
503
- <div class="meta">
504
- <a class="chip" href="https://github.com/jridgewell/sourcemaps/tree/main/packages/trace-mapping" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
505
- </div>
506
- </div><div class="pkg">
507
- <div>
508
- <div class="name">@jscadui/3mf-export <span class="chip">1 version</span></div>
509
- <div class="desc">3mf export</div>
510
-
511
- </div>
512
- <div class="meta">
513
-
514
- </div>
515
470
  </div><div class="pkg">
516
471
  <div>
517
472
  <div class="name">@tarikjabiri/dxf <span class="chip">1 version</span></div>
@@ -539,15 +494,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
539
494
  <div class="meta">
540
495
  <a class="chip" href="https://github.com/niklasvh/base64-arraybuffer" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
541
496
  </div>
542
- </div><div class="pkg">
543
- <div>
544
- <div class="name">convert-source-map <span class="chip">1 version</span></div>
545
- <div class="desc">Converts a source-map from/to different formats and allows adding/changing properties.</div>
546
- <div class="desc">Author: Thorsten Lorenz &amp;lt;thlorenz@gmx.de&amp;gt;</div>
547
- </div>
548
- <div class="meta">
549
- <a class="chip" href="https://github.com/thlorenz/convert-source-map" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
550
- </div>
551
497
  </div><div class="pkg">
552
498
  <div>
553
499
  <div class="name">core-js <span class="chip">1 version</span></div>
@@ -575,15 +521,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
575
521
  <div class="meta">
576
522
  <a class="chip" href="https://github.com/niklasvh/css-line-break#readme" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
577
523
  </div>
578
- </div><div class="pkg">
579
- <div>
580
- <div class="name">esbuild-wasm <span class="chip">1 version</span></div>
581
- <div class="desc">The cross-platform WebAssembly binary for esbuild, a JavaScript bundler.</div>
582
-
583
- </div>
584
- <div class="meta">
585
- <a class="chip" href="git+https://github.com/evanw/esbuild.git" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
586
- </div>
587
524
  </div><div class="pkg">
588
525
  <div>
589
526
  <div class="name">fast-png <span class="chip">1 version</span></div>
@@ -447,7 +447,7 @@
447
447
  "title": "[BREP.io](https://BREP.io)",
448
448
  "href": "index.html",
449
449
  "summary": "BREP.io Source https://github.com/mmiscool/BREP NPM package: brep-io-kernel https://www.npmjs.com/package/brep-io-kernel Live API examples https://BREP.io/apiExamples/index.html Developer Discord https://discord.gg/R5KNAKrQ BREP.io is a bro...",
450
- "content": "BREP.io Source https://github.com/mmiscool/BREP NPM package: brep-io-kernel https://www.npmjs.com/package/brep-io-kernel Live API examples https://BREP.io/apiExamples/index.html Developer Discord https://discord.gg/R5KNAKrQ BREP.io is a browser-based CAD application and JavaScript kernel for feature-based solid modeling. At its core is a BREP-style modeler with explicit geometry/topology objects such as Solid , Face , Edge , and Vertex , paired with an editable feature-history pipeline. It also includes sketch workflows powered by a standalone 2D constraint solver, plus robust manifold booleans ( manifold-3d ), mesh repair/import tooling, assembly constraints, PMI annotations, and embeddable CAD/sketcher APIs. This project is in active development and APIs may continue to evolve. Workbenches Modeling Workbench Import Workbench Surfacing Workbench Sheet Metal Workbench Assemblies Workbench Wire Harness Workbench PMI Workbench All Workbench Screenshots Documentation Index General: Getting Started Developer Docs Index Bug Reporting and Repro Test Cases Highlights What's New API Examples Core APIs: BREP API Export Map BREP Kernel Reference Solid Methods Part History 2D Sketch Solver Embeddable CAD ( CadEmbed ) Embeddable Sketcher ( Sketcher2DEmbed ) System docs: History Systems Input Params Schema File Formats: Import and Export Plugins and Examples Inspector Inspector Improvements Mode guides: Modeling Mode Sketch Mode PMI Mode 2D Sheets Mode Modeling Feature Docs Feature index: All Feature Docs Primitives and setup: Primitive Cube Primitive Cylinder Primitive Cone Primitive Sphere Primitive Torus Primitive Pyramid Plane Datum Datium Sketch Spline Helix Solid operations: Extrude Sweep Tube Loft Revolve Mirror Boolean Fillet Chamfer Hole Offset Shell Remesh Transform Pattern, import, and generation: Pattern (Legacy Combined) Pattern Linear Pattern Radial Import 3D Model Image Heightmap Solid Image to Face Text to Face Assembly and sheet metal: Assembly Component Sheet Metal Tab Sheet Metal Contour Flange Sheet Metal Flange Additional implemented features in the codebase include collapse edge, edge smooth, offset face, overlap cleanup, sheet metal hem, and sheet metal cutout. Assembly Constraints Assembly Constraint Solver Coincident Distance Angle Parallel Touch Align Fixed PMI Annotation Docs PMI Annotations Index Linear Dimension Radial Dimension Angle Dimension Leader Note Hole Callout Explode Body Quick Start Prerequisites: Node.js 18+ pnpm git submodule update --init --recursive Emscripten SDK ( emcmake / emcc on PATH , or EMSDK installed at $HOME/emsdk ) Install and run locally: bash git submodule update --init --recursive pnpm install pnpm dev Then open the Vite URL shown in your terminal. Main app shell: /index.html Direct CAD workspace: /cad.html Build, Test, and Utility Commands Command Purpose pnpm dev Prepares fonts, builds the kernel bundle, then runs the Vite dev server. pnpm build Production build of the app into dist/ (includes kernel build step). pnpm build:manifoldPlus Builds the local manifold wasm/js bundle from the vendor/manifold3d submodule plus local custom bindings. pnpm build:kernel Builds the ESM kernel bundle into dist-kernel/ and syncs assets. pnpm use:manifold:npm Switches runtime/builds to the published manifold-3d npm package. pnpm use:manifold:local Switches runtime/builds to the locally compiled manifold bundle. pnpm which:manifold Prints the currently selected manifold source. pnpm test Runs the Node test suite ( src/tests/tests.js ), writing artifacts to tests/results/ . pnpm liveTesting Watches src/ and tests/ and reruns tests on change. pnpm capture Captures docs/dialog screenshots. pnpm generateLicenses Regenerates dependency and bundled-font license summaries. Build outputs: dist/ : static web app (ready for CDN/web hosting) dist-kernel/ : published kernel bundle artifacts CI and Pages Deployments The kernel build compiles a custom wasm bundle from the vendor/manifold3d git submodule. CI environments must: fetch submodules install Emscripten/EMSDK before running pnpm build This repo includes GitHub Actions workflows for: npm publishing with submodules + EMSDK Cloudflare Pages deployment via Wrangler Direct Upload For Cloudflare Pages, use the GitHub Actions deploy workflow instead of relying on Cloudflare's Git build container to compile the wasm bundle. Configure these repository settings before enabling the workflow: secret CLOUDFLARE_ACCOUNT_ID secret CLOUDFLARE_API_TOKEN variable CLOUDFLARE_PAGES_PROJECT_NAME Use as an NPM Package Package name: brep-io-kernel (ESM-only). Install: bash pnpm add brep-io-kernel Main imports: javascript import { BREP, PartHistory, AssemblyConstraintHistory, AssemblyConstraintRegistry, CadEmbed, Sketcher2DEmbed } from \"brep-io-kernel\" ; Subpath imports: javascript import { BREP } from \"brep-io-kernel/BREP\" ; import { PartHistory } from \"brep-io-kernel/PartHistory\" ; import { CadEmbed } from \"brep-io-kernel/CAD\" ; import { Sketcher2DEmbed } from \"brep-io-kernel/Sketcher2D\" ; import { ConstraintSolver, ConstraintEngine, constraints } from \"brep-io-kernel/SketchSolver2D\" ; Node examples: brep-io-kernel-examples/README.md CLI helper: bash npx brep-io-kernel npx brep-io-kernel --host 127.0.0.1 --port 4173 npx brep-io-kernel --help License helper APIs: javascript import { getPackageLicenseInfoString, getAllLicensesInfoString } from \"brep-io-kernel\" ; console.log(getPackageLicenseInfoString()); // package license info console.log(getAllLicensesInfoString()); // package + production dependencies CommonJS note: javascript const { BREP } = await import ( \"brep-io-kernel\" ); Repository Layout src/BREP : core solid/kernel implementation src/features : feature implementations and dialogs src/assemblyConstraints : assembly solver and constraints src/UI : CAD/sketcher UI and embedding bridges docs/ : markdown docs and screenshots apiExamples/ : standalone browser API demos tests/ and src/tests/ : test assets and test runner Contributing See CONTRIBUTING.md . License See LICENSE.md . This project uses a dual-licensing strategy managed by Autodrop3d LLC. Documentation API Examples Angle Constraint Coincident Constraint Distance Constraint Fixed Constraint Parallel Constraint Assembly Constraint Solver Touch Align Constraint BREP.js Export Map and Usage BREP Kernel Reference BREP Model and Classes Bug Reporting and Repro Test Cases Embeddable CAD App CONTRIBUTING C++ Solid Porting Cylindrical Face Radius Embedding Developer Docs Index Documentation Screenshots Radius Metadata for Extruded Sketches Feature Dimension Gizmos (Developer) Assembly Component Boolean Chamfer Collapse Edge Datium Datum Edge Smooth Extrude Fillet Helix Hole Image Editor (Shared) Image Heightmap Solid Image to Face Import 3D Model Features Loft Mirror NURBS Face Solid Offset Face Offset Shell Overlap Cleanup Pattern Linear Pattern Radial Pattern (Legacy) Plane Polygon Solid Primitive Cone Primitive Cube Primitive Cylinder Primitive Pyramid Primitive Sphere Primitive Torus Remesh Revolve Sheet Metal Contour Flange Sheet Metal Cutout Sheet Metal Flange Sheet Metal Hem Sheet Metal Tab Sketch Smooth With Subdivision Spline Sweep Text to Face Transform Tube File Formats: Import and Export Font Licenses Getting Started GitHub Repo Storage Highlights History Systems How It Works Input Params Schema Recent Inspector Improvements Inspector LICENSE Modeling Mode PMI Mode 2D Sheets Mode Sketch Mode PartHistory Reference Plugins and Examples Angle Dimension Explode Body Hole Callout PMI Annotations Leader Linear Dimension Note Radial Dimension Simplified Radial Dimension Interface 2D Sketch Solver (Standalone) Embeddable 2D Sketcher Solid Methods Reference UI Overview (Browser) What's New Workbench Implementation Plan All Workbench Assemblies Workbench Import Workbench Modeling Workbench PMI Workbench Sheet Metal Workbench Surfacing Workbench Wire Harness Workbench This project's license Copyright 2025 Autodrop3d LLC https://autodrop3d.com Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 1. Any modifications made to the Software must be submitted to Autodrop3d LLC with an irrevocable assignment of the copyright via git pull request. This is intended to allow Autodrop3d LLC to sell commercial licenses of the Software for use in proprietary products under a dual-licensing strategy. Failure to contribute back modifications without a commercial license purchased from Autodrop3d LLC voids all permissions granted by this license. 2. If Autodrop3d LLC is sold, merged, transferred, or otherwise succeeded by any entity or individual, all rights and obligations described in this license shall transfer automatically to that successor entity or individual. 3. If Autodrop3d LLC ceases operations or dissolves, and no successor entity or individual continues to publicly host the Software in a manner that allows the public to obtain the source code and submit contributions for a period of at least eighteen (18) consecutive months, then Clauses 1 and 2 of this license shall be automatically and irrevocably canceled. The above copyright notice and these permission notices shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Licenses Report of libraries used in this package 40 packages • 6 license types (MIT AND Zlib) 2 packages pako 1 version zlib port to javascript - fast, modularized, with browser support Repo / Homepage pako 1 version zlib port to javascript - fast, modularized, with browser support Repo / Homepage (MIT OR GPL-3.0-or-later) 1 package jszip 1 version Create, read and edit .zip files with JavaScript http://stuartk.com/jszip Author: Stuart Knightley <stuart@stuartk.com> Repo / Homepage Apache-2.0 2 packages manifold-3d 1 version Geometry library for topological robustness Repo / Homepage manifold-3d 1 version Geometry library for topological robustness Repo / Homepage ISC 1 package inherits 1 version Browser-friendly inheritance fully compatible with standard node.js inherits() Repo / Homepage MIT 33 packages @babel/runtime 1 version babel's modular runtime helpers Author: The Babel Team (https://babel.dev/team) Repo / Homepage @jridgewell/resolve-uri 1 version Resolve a URI relative to an optional base URI Author: Justin Ridgewell <justin@ridgewell.name> Repo / Homepage @jridgewell/sourcemap-codec 1 version Encode/decode sourcemap mappings Author: Justin Ridgewell <justin@ridgewell.name> Repo / Homepage @jridgewell/trace-mapping 1 version Trace the original position through a source map Author: Justin Ridgewell <justin@ridgewell.name> Repo / Homepage @jscadui/3mf-export 1 version 3mf export @tarikjabiri/dxf 1 version A JavaScript interface to Dxf written in TypeScript. Author: Tarik EL JABIRI Repo / Homepage @types/pako 1 version TypeScript definitions for pako Repo / Homepage base64-arraybuffer 1 version Encode/decode base64 data into ArrayBuffers Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage convert-source-map 1 version Converts a source-map from/to different formats and allows adding/changing properties. Author: Thorsten Lorenz <thlorenz@gmx.de> Repo / Homepage core-js 1 version Standard library Author: Denis Pushkarev <zloirock@zloirock.ru> Repo / Homepage core-util-is 1 version The `util.is*` functions introduced in Node v0.12. Author: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/) Repo / Homepage css-line-break 1 version Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage esbuild-wasm 1 version The cross-platform WebAssembly binary for esbuild, a JavaScript bundler. Repo / Homepage fast-png 1 version PNG image decoder and encoder written entirely in JavaScript Author: Michaël Zasso Repo / Homepage html2canvas 1 version Screenshots with JavaScript Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage immediate 1 version A cross browser microtask library Repo / Homepage iobuffer 1 version Read and write binary data on ArrayBuffers Author: Michaël Zasso Repo / Homepage isarray 1 version Array#isArray for older browsers Author: Julian Gruber <mail@juliangruber.com> Repo / Homepage jspdf 1 version PDF Document creation from JavaScript Repo / Homepage lie 1 version A basic but performant promise implementation Repo / Homepage marked 1 version A markdown parser built for speed Author: Christopher Jeffrey Repo / Homepage monaco-editor 1 version A browser based code editor Author: Microsoft Corporation Repo / Homepage pngjs 1 version PNG encoder/decoder in pure JS, supporting any bit size & interlace, async & sync with full test suite. Repo / Homepage process-nextick-args 1 version process.nextTick but always with args Repo / Homepage readable-stream 1 version Streams3, a user-land copy of the stream library from Node.js Repo / Homepage safe-buffer 1 version Safer Node.js Buffer API Author: Feross Aboukhadijeh <feross@feross.org> Repo / Homepage setimmediate 1 version A shim for the setImmediate efficient script yielding API Author: YuzuJS Repo / Homepage string_decoder 1 version The string_decoder module from Node core Repo / Homepage text-segmentation 1 version Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage three 1 version JavaScript 3D library Author: mrdoob Repo / Homepage three-mesh-bvh 1 version A BVH implementation to speed up raycasting against three.js meshes. Author: Garrett Johnson <garrett.kjohnson@gmail.com> Repo / Homepage util-deprecate 1 version The Node.js `util.deprecate()` function with browser support Author: Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/) Repo / Homepage utrie 1 version Unicode Trie Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage SGI-B-2.0 1 package tess2 1 version GLU tesselator ported to Javascript, performs polygon boolean operations and triangulation Author: Matt DesLauriers <dave.des@gmail.com> Repo / Homepage Font Licenses Bundled fonts are licensed separately from npm packages. Font license details Generated from installed node_modules graph (dependencies + optionalDependencies) + vendored third-party components ."
450
+ "content": "BREP.io Source https://github.com/mmiscool/BREP NPM package: brep-io-kernel https://www.npmjs.com/package/brep-io-kernel Live API examples https://BREP.io/apiExamples/index.html Developer Discord https://discord.gg/R5KNAKrQ BREP.io is a browser-based CAD application and JavaScript kernel for feature-based solid modeling. At its core is a BREP-style modeler with explicit geometry/topology objects such as Solid , Face , Edge , and Vertex , paired with an editable feature-history pipeline. It also includes sketch workflows powered by a standalone 2D constraint solver, plus robust manifold booleans ( manifold-3d ), mesh repair/import tooling, assembly constraints, PMI annotations, and embeddable CAD/sketcher APIs. This project is in active development and APIs may continue to evolve. Workbenches Modeling Workbench Import Workbench Surfacing Workbench Sheet Metal Workbench Assemblies Workbench Wire Harness Workbench PMI Workbench All Workbench Screenshots Documentation Index General: Getting Started Developer Docs Index Bug Reporting and Repro Test Cases Highlights What's New API Examples Core APIs: BREP API Export Map BREP Kernel Reference Solid Methods Part History 2D Sketch Solver Embeddable CAD ( CadEmbed ) Embeddable Sketcher ( Sketcher2DEmbed ) System docs: History Systems Input Params Schema File Formats: Import and Export Plugins and Examples Inspector Inspector Improvements Mode guides: Modeling Mode Sketch Mode PMI Mode 2D Sheets Mode Modeling Feature Docs Feature index: All Feature Docs Primitives and setup: Primitive Cube Primitive Cylinder Primitive Cone Primitive Sphere Primitive Torus Primitive Pyramid Plane Datum Datium Sketch Spline Helix Solid operations: Extrude Sweep Tube Loft Revolve Mirror Boolean Fillet Chamfer Hole Offset Shell Remesh Transform Pattern, import, and generation: Pattern (Legacy Combined) Pattern Linear Pattern Radial Import 3D Model Image Heightmap Solid Image to Face Text to Face Assembly and sheet metal: Assembly Component Sheet Metal Tab Sheet Metal Contour Flange Sheet Metal Flange Additional implemented features in the codebase include collapse edge, edge smooth, offset face, overlap cleanup, sheet metal hem, and sheet metal cutout. Assembly Constraints Assembly Constraint Solver Coincident Distance Angle Parallel Touch Align Fixed PMI Annotation Docs PMI Annotations Index Linear Dimension Radial Dimension Angle Dimension Leader Note Hole Callout Explode Body Quick Start Prerequisites: Node.js 18+ pnpm git submodule update --init --recursive Emscripten SDK ( emcmake / emcc on PATH , or EMSDK installed at $HOME/emsdk ) Install and run locally: bash git submodule update --init --recursive pnpm install pnpm dev Then open the Vite URL shown in your terminal. Main app shell: /index.html Direct CAD workspace: /cad.html Build, Test, and Utility Commands Command Purpose pnpm dev Prepares fonts, builds the kernel bundle, then runs the Vite dev server. pnpm build Production build of the app into dist/ (includes kernel build step). pnpm build:manifoldPlus Builds the local manifold wasm/js bundle from the vendor/manifold3d submodule plus local custom bindings. pnpm build:kernel Builds the ESM kernel bundle into dist-kernel/ and syncs assets. pnpm use:manifold:npm Switches runtime/builds to the published manifold-3d npm package. pnpm use:manifold:local Switches runtime/builds to the locally compiled manifold bundle. pnpm which:manifold Prints the currently selected manifold source. pnpm test Runs the Node test suite ( src/tests/tests.js ), writing artifacts to tests/results/ . pnpm liveTesting Watches src/ and tests/ and reruns tests on change. pnpm capture Captures docs/dialog screenshots. pnpm generateLicenses Regenerates dependency and bundled-font license summaries. Build outputs: dist/ : static web app (ready for CDN/web hosting) dist-kernel/ : published kernel bundle artifacts CI and Pages Deployments The kernel build compiles a custom wasm bundle from the vendor/manifold3d git submodule. CI environments must: fetch submodules install Emscripten/EMSDK before running pnpm build This repo includes GitHub Actions workflows for: npm publishing with submodules + EMSDK Cloudflare Pages deployment via Wrangler Direct Upload For Cloudflare Pages, use the GitHub Actions deploy workflow instead of relying on Cloudflare's Git build container to compile the wasm bundle. Configure these repository settings before enabling the workflow: secret CLOUDFLARE_ACCOUNT_ID secret CLOUDFLARE_API_TOKEN variable CLOUDFLARE_PAGES_PROJECT_NAME Use as an NPM Package Package name: brep-io-kernel (ESM-only). Install: bash pnpm add brep-io-kernel Main imports: javascript import { BREP, PartHistory, AssemblyConstraintHistory, AssemblyConstraintRegistry, CadEmbed, Sketcher2DEmbed } from \"brep-io-kernel\" ; Subpath imports: javascript import { BREP } from \"brep-io-kernel/BREP\" ; import { PartHistory } from \"brep-io-kernel/PartHistory\" ; import { CadEmbed } from \"brep-io-kernel/CAD\" ; import { Sketcher2DEmbed } from \"brep-io-kernel/Sketcher2D\" ; import { ConstraintSolver, ConstraintEngine, constraints } from \"brep-io-kernel/SketchSolver2D\" ; Node examples: brep-io-kernel-examples/README.md CLI helper: bash npx brep-io-kernel npx brep-io-kernel --host 127.0.0.1 --port 4173 npx brep-io-kernel --help License helper APIs: javascript import { getPackageLicenseInfoString, getAllLicensesInfoString } from \"brep-io-kernel\" ; console.log(getPackageLicenseInfoString()); // package license info console.log(getAllLicensesInfoString()); // package + production dependencies CommonJS note: javascript const { BREP } = await import ( \"brep-io-kernel\" ); Repository Layout src/BREP : core solid/kernel implementation src/features : feature implementations and dialogs src/assemblyConstraints : assembly solver and constraints src/UI : CAD/sketcher UI and embedding bridges docs/ : markdown docs and screenshots apiExamples/ : standalone browser API demos tests/ and src/tests/ : test assets and test runner Contributing See CONTRIBUTING.md . License See LICENSE.md . This project uses a dual-licensing strategy managed by Autodrop3d LLC. Documentation API Examples Angle Constraint Coincident Constraint Distance Constraint Fixed Constraint Parallel Constraint Assembly Constraint Solver Touch Align Constraint BREP.js Export Map and Usage BREP Kernel Reference BREP Model and Classes Bug Reporting and Repro Test Cases Embeddable CAD App CONTRIBUTING C++ Solid Porting Cylindrical Face Radius Embedding Developer Docs Index Documentation Screenshots Radius Metadata for Extruded Sketches Feature Dimension Gizmos (Developer) Assembly Component Boolean Chamfer Collapse Edge Datium Datum Edge Smooth Extrude Fillet Helix Hole Image Editor (Shared) Image Heightmap Solid Image to Face Import 3D Model Features Loft Mirror NURBS Face Solid Offset Face Offset Shell Overlap Cleanup Pattern Linear Pattern Radial Pattern (Legacy) Plane Polygon Solid Primitive Cone Primitive Cube Primitive Cylinder Primitive Pyramid Primitive Sphere Primitive Torus Remesh Revolve Sheet Metal Contour Flange Sheet Metal Cutout Sheet Metal Flange Sheet Metal Hem Sheet Metal Tab Sketch Smooth With Subdivision Spline Sweep Text to Face Transform Tube File Formats: Import and Export Font Licenses Getting Started GitHub Repo Storage Highlights History Systems How It Works Input Params Schema Recent Inspector Improvements Inspector LICENSE Modeling Mode PMI Mode 2D Sheets Mode Sketch Mode PartHistory Reference Plugins and Examples Angle Dimension Explode Body Hole Callout PMI Annotations Leader Linear Dimension Note Radial Dimension Simplified Radial Dimension Interface 2D Sketch Solver (Standalone) Embeddable 2D Sketcher Solid Methods Reference UI Overview (Browser) What's New Workbench Implementation Plan All Workbench Assemblies Workbench Import Workbench Modeling Workbench PMI Workbench Sheet Metal Workbench Surfacing Workbench Wire Harness Workbench This project's license Copyright 2025 Autodrop3d LLC https://autodrop3d.com Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 1. Any modifications made to the Software must be submitted to Autodrop3d LLC with an irrevocable assignment of the copyright via git pull request. This is intended to allow Autodrop3d LLC to sell commercial licenses of the Software for use in proprietary products under a dual-licensing strategy. Failure to contribute back modifications without a commercial license purchased from Autodrop3d LLC voids all permissions granted by this license. 2. If Autodrop3d LLC is sold, merged, transferred, or otherwise succeeded by any entity or individual, all rights and obligations described in this license shall transfer automatically to that successor entity or individual. 3. If Autodrop3d LLC ceases operations or dissolves, and no successor entity or individual continues to publicly host the Software in a manner that allows the public to obtain the source code and submit contributions for a period of at least eighteen (18) consecutive months, then Clauses 1 and 2 of this license shall be automatically and irrevocably canceled. The above copyright notice and these permission notices shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Licenses Report of libraries used in this package 33 packages • 6 license types (MIT AND Zlib) 2 packages pako 1 version zlib port to javascript - fast, modularized, with browser support Repo / Homepage pako 1 version zlib port to javascript - fast, modularized, with browser support Repo / Homepage (MIT OR GPL-3.0-or-later) 1 package jszip 1 version Create, read and edit .zip files with JavaScript http://stuartk.com/jszip Author: Stuart Knightley <stuart@stuartk.com> Repo / Homepage Apache-2.0 1 package manifold-3d 1 version Geometry library for topological robustness Repo / Homepage ISC 1 package inherits 1 version Browser-friendly inheritance fully compatible with standard node.js inherits() Repo / Homepage MIT 27 packages @babel/runtime 1 version babel's modular runtime helpers Author: The Babel Team (https://babel.dev/team) Repo / Homepage @tarikjabiri/dxf 1 version A JavaScript interface to Dxf written in TypeScript. Author: Tarik EL JABIRI Repo / Homepage @types/pako 1 version TypeScript definitions for pako Repo / Homepage base64-arraybuffer 1 version Encode/decode base64 data into ArrayBuffers Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage core-js 1 version Standard library Author: Denis Pushkarev <zloirock@zloirock.ru> Repo / Homepage core-util-is 1 version The `util.is*` functions introduced in Node v0.12. Author: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/) Repo / Homepage css-line-break 1 version Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage fast-png 1 version PNG image decoder and encoder written entirely in JavaScript Author: Michaël Zasso Repo / Homepage html2canvas 1 version Screenshots with JavaScript Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage immediate 1 version A cross browser microtask library Repo / Homepage iobuffer 1 version Read and write binary data on ArrayBuffers Author: Michaël Zasso Repo / Homepage isarray 1 version Array#isArray for older browsers Author: Julian Gruber <mail@juliangruber.com> Repo / Homepage jspdf 1 version PDF Document creation from JavaScript Repo / Homepage lie 1 version A basic but performant promise implementation Repo / Homepage marked 1 version A markdown parser built for speed Author: Christopher Jeffrey Repo / Homepage monaco-editor 1 version A browser based code editor Author: Microsoft Corporation Repo / Homepage pngjs 1 version PNG encoder/decoder in pure JS, supporting any bit size & interlace, async & sync with full test suite. Repo / Homepage process-nextick-args 1 version process.nextTick but always with args Repo / Homepage readable-stream 1 version Streams3, a user-land copy of the stream library from Node.js Repo / Homepage safe-buffer 1 version Safer Node.js Buffer API Author: Feross Aboukhadijeh <feross@feross.org> Repo / Homepage setimmediate 1 version A shim for the setImmediate efficient script yielding API Author: YuzuJS Repo / Homepage string_decoder 1 version The string_decoder module from Node core Repo / Homepage text-segmentation 1 version Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage three 1 version JavaScript 3D library Author: mrdoob Repo / Homepage three-mesh-bvh 1 version A BVH implementation to speed up raycasting against three.js meshes. Author: Garrett Johnson <garrett.kjohnson@gmail.com> Repo / Homepage util-deprecate 1 version The Node.js `util.deprecate()` function with browser support Author: Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/) Repo / Homepage utrie 1 version Unicode Trie Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage SGI-B-2.0 1 package tess2 1 version GLU tesselator ported to Javascript, performs polygon boolean operations and triangulation Author: Matt DesLauriers <dave.des@gmail.com> Repo / Homepage Font Licenses Bundled fonts are licensed separately from npm packages. Font license details Generated from installed node_modules graph (dependencies + optionalDependencies) + vendored third-party components ."
451
451
  },
452
452
  {
453
453
  "title": "Input Params Schema",
@@ -13,15 +13,15 @@
13
13
  background: #05070d;
14
14
  }
15
15
  </style>
16
- <script type="module" crossorigin src="/assets/pmiDialogs-BFqEnCKw.js"></script>
16
+ <script type="module" crossorigin src="/assets/pmiDialogs-DtSa0QaG.js"></script>
17
17
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-BdX5DvLD.js">
18
18
  <link rel="modulepreload" crossorigin href="/assets/deepClone-Dj59xCHB.js">
19
19
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-ZNr0Qq7Q.js">
20
20
  <link rel="modulepreload" crossorigin href="/assets/browserStorage-CvgF8ovw.js">
21
- <link rel="modulepreload" crossorigin href="/assets/featureDialogs-CUWi02Qp.js">
22
- <link rel="modulepreload" crossorigin href="/assets/annUtils-D9TT7tgs.js">
23
- <link rel="modulepreload" crossorigin href="/assets/AnnotationRegistry-CyI5mmDu.js">
24
- <link rel="modulepreload" crossorigin href="/assets/dialogCapturePageFactory-DGBZ6PkY.js">
21
+ <link rel="modulepreload" crossorigin href="/assets/featureDialogs-Bas0NDXF.js">
22
+ <link rel="modulepreload" crossorigin href="/assets/annUtils-Cv2fgMTB.js">
23
+ <link rel="modulepreload" crossorigin href="/assets/AnnotationRegistry-QZj3o2R6.js">
24
+ <link rel="modulepreload" crossorigin href="/assets/dialogCapturePageFactory-l1BkjONQ.js">
25
25
  </head>
26
26
  <body>
27
27
  <div id="app"></div>
package/dist/test.html CHANGED
@@ -167,7 +167,7 @@
167
167
  font-size: 13px;
168
168
  }
169
169
  </style>
170
- <script type="module" crossorigin src="/assets/test-XEjDO9UE.js"></script>
170
+ <script type="module" crossorigin src="/assets/test-D-0BGqtx.js"></script>
171
171
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-BdX5DvLD.js">
172
172
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-ZNr0Qq7Q.js">
173
173
  </head>
package/dist/viewer.html CHANGED
@@ -10,18 +10,18 @@
10
10
  <script type="module" crossorigin src="/assets/modulepreload-polyfill-BdX5DvLD.js"></script>
11
11
  <script type="module" crossorigin src="/assets/preload-helper-ZNr0Qq7Q.js"></script>
12
12
  <script type="module" crossorigin src="/assets/browserStorage-CvgF8ovw.js"></script>
13
- <script type="module" crossorigin src="/assets/featureDialogs-CUWi02Qp.js"></script>
13
+ <script type="module" crossorigin src="/assets/featureDialogs-Bas0NDXF.js"></script>
14
14
  <script type="module" crossorigin src="/assets/droppedWorkspaceFiles-8o-ZYOrf.js"></script>
15
- <script type="module" crossorigin src="/assets/Tube-bO80ROeR.js"></script>
16
- <script type="module" crossorigin src="/assets/chamfer-DdXNz6lz.js"></script>
17
- <script type="module" crossorigin src="/assets/fillet-CJey7GJP.js"></script>
15
+ <script type="module" crossorigin src="/assets/Tube-TKgrLSLm.js"></script>
16
+ <script type="module" crossorigin src="/assets/chamfer-jmLT1RTy.js"></script>
17
+ <script type="module" crossorigin src="/assets/fillet-Bzd1Xae9.js"></script>
18
18
  <script type="module" crossorigin src="/assets/deepClone-Dj59xCHB.js"></script>
19
- <script type="module" crossorigin src="/assets/FeatureRegistry-Cd-GX-Bm.js"></script>
20
- <script type="module" crossorigin src="/assets/annUtils-D9TT7tgs.js"></script>
21
- <script type="module" crossorigin src="/assets/AssemblyConstraintRegistry-3P1cpGjG.js"></script>
22
- <script type="module" crossorigin src="/assets/PartHistory-DxsRIXx4.js"></script>
23
- <script type="module" crossorigin src="/assets/AnnotationRegistry-CyI5mmDu.js"></script>
24
- <script type="module" crossorigin src="/assets/main-cad-bbPyIDxb.js"></script>
19
+ <script type="module" crossorigin src="/assets/FeatureRegistry-C7MrfKHF.js"></script>
20
+ <script type="module" crossorigin src="/assets/annUtils-Cv2fgMTB.js"></script>
21
+ <script type="module" crossorigin src="/assets/AssemblyConstraintRegistry-DJV0rHvz.js"></script>
22
+ <script type="module" crossorigin src="/assets/PartHistory-CyUoWFuO.js"></script>
23
+ <script type="module" crossorigin src="/assets/AnnotationRegistry-QZj3o2R6.js"></script>
24
+ <script type="module" crossorigin src="/assets/main-cad-J2VK-edE.js"></script>
25
25
  <link rel="stylesheet" crossorigin href="/assets/main-cad-C3E_anfF.css">
26
26
  </head>
27
27
 
@@ -114973,7 +114973,7 @@ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
114973
114973
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
114974
114974
 
114975
114975
  Third-party licenses (production dependencies)
114976
- 40 packages • 6 license types
114976
+ 33 packages • 6 license types
114977
114977
  Generated from: installed node_modules graph (dependencies + optionalDependencies) + vendored third-party components
114978
114978
 
114979
114979
  (MIT AND Zlib) (2 packages)
@@ -114983,27 +114983,20 @@ Generated from: installed node_modules graph (dependencies + optionalDependencie
114983
114983
  (MIT OR GPL-3.0-or-later) (1 package)
114984
114984
  - jszip@3.10.1 — Create, read and edit .zip files with JavaScript http://stuartk.com/jszip — Author: Stuart Knightley <stuart@stuartk.com> — https://github.com/Stuk/jszip.git
114985
114985
 
114986
- Apache-2.0 (2 packages)
114987
- - manifold-3d@3.3.2 — Geometry library for topological robustness — https://github.com/elalish/manifold#readme
114986
+ Apache-2.0 (1 package)
114988
114987
  - manifold-3d@3.4.0 — Geometry library for topological robustness — https://github.com/elalish/manifold#readme
114989
114988
 
114990
114989
  ISC (1 package)
114991
114990
  - inherits@2.0.4 — Browser-friendly inheritance fully compatible with standard node.js inherits() — git://github.com/isaacs/inherits
114992
114991
 
114993
- MIT (33 packages)
114992
+ MIT (27 packages)
114994
114993
  - @babel/runtime@7.28.6 — babel's modular runtime helpers — Author: The Babel Team (https://babel.dev/team) — https://babel.dev/docs/en/next/babel-runtime
114995
- - @jridgewell/resolve-uri@3.1.2 — Resolve a URI relative to an optional base URI — Author: Justin Ridgewell <justin@ridgewell.name> — https://github.com/jridgewell/resolve-uri
114996
- - @jridgewell/sourcemap-codec@1.5.5 — Encode/decode sourcemap mappings — Author: Justin Ridgewell <justin@ridgewell.name> — https://github.com/jridgewell/sourcemaps/tree/main/packages/sourcemap-codec
114997
- - @jridgewell/trace-mapping@0.3.31 — Trace the original position through a source map — Author: Justin Ridgewell <justin@ridgewell.name> — https://github.com/jridgewell/sourcemaps/tree/main/packages/trace-mapping
114998
- - @jscadui/3mf-export@0.5.0 — 3mf export
114999
114994
  - @tarikjabiri/dxf@2.8.9 — A JavaScript interface to Dxf written in TypeScript. — Author: Tarik EL JABIRI — https://dxf.vercel.app
115000
114995
  - @types/pako@2.0.4 — TypeScript definitions for pako — https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/pako
115001
114996
  - base64-arraybuffer@1.0.2 — Encode/decode base64 data into ArrayBuffers — Author: Niklas von Hertzen <niklasvh@gmail.com> — https://github.com/niklasvh/base64-arraybuffer
115002
- - convert-source-map@2.0.0 — Converts a source-map from/to different formats and allows adding/changing properties. — Author: Thorsten Lorenz <thlorenz@gmx.de> — https://github.com/thlorenz/convert-source-map
115003
114997
  - core-js@3.48.0 — Standard library — Author: Denis Pushkarev <zloirock@zloirock.ru> — https://core-js.io
115004
114998
  - core-util-is@1.0.3 — The \`util.is*\` functions introduced in Node v0.12. — Author: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/) — git://github.com/isaacs/core-util-is
115005
114999
  - css-line-break@2.1.0 — Author: Niklas von Hertzen <niklasvh@gmail.com> — https://github.com/niklasvh/css-line-break#readme
115006
- - esbuild-wasm@0.25.12 — The cross-platform WebAssembly binary for esbuild, a JavaScript bundler. — git+https://github.com/evanw/esbuild.git
115007
115000
  - fast-png@6.4.0 — PNG image decoder and encoder written entirely in JavaScript — Author: Michaël Zasso — https://github.com/image-js/fast-png#readme
115008
115001
  - html2canvas@1.4.1 — Screenshots with JavaScript — Author: Niklas von Hertzen <niklasvh@gmail.com> — https://html2canvas.hertzen.com
115009
115002
  - immediate@3.0.6 — A cross browser microtask library — git://github.com/calvinmetcalf/immediate.git
@@ -402,7 +402,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
402
402
  </section>
403
403
 
404
404
  <h1>Licenses Report of libraries used in this package</h1>
405
- <div class="summary">40 packages • 6 license types</div>
405
+ <div class="summary">33 packages • 6 license types</div>
406
406
  <section class="license">
407
407
  <h2>(MIT AND Zlib) <span class="chip">2 packages</span></h2>
408
408
  <div class="pkg">
@@ -435,21 +435,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
435
435
  <a class="chip" href="https://github.com/Stuk/jszip.git" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
436
436
  </div>
437
437
  </div></section><section class="license">
438
- <h2>Apache-2.0 <span class="chip">2 packages</span></h2>
438
+ <h2>Apache-2.0 <span class="chip">1 package</span></h2>
439
439
  <div class="pkg">
440
440
  <div>
441
441
  <div class="name">manifold-3d <span class="chip">1 version</span></div>
442
442
  <div class="desc">Geometry library for topological robustness</div>
443
443
 
444
- </div>
445
- <div class="meta">
446
- <a class="chip" href="https://github.com/elalish/manifold#readme" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
447
- </div>
448
- </div><div class="pkg">
449
- <div>
450
- <div class="name">manifold-3d <span class="chip">1 version</span></div>
451
- <div class="desc">Geometry library for topological robustness</div>
452
-
453
444
  </div>
454
445
  <div class="meta">
455
446
  <a class="chip" href="https://github.com/elalish/manifold#readme" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
@@ -466,7 +457,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
466
457
  <a class="chip" href="git://github.com/isaacs/inherits" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
467
458
  </div>
468
459
  </div></section><section class="license">
469
- <h2>MIT <span class="chip">33 packages</span></h2>
460
+ <h2>MIT <span class="chip">27 packages</span></h2>
470
461
  <div class="pkg">
471
462
  <div>
472
463
  <div class="name">@babel/runtime <span class="chip">1 version</span></div>
@@ -476,42 +467,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
476
467
  <div class="meta">
477
468
  <a class="chip" href="https://babel.dev/docs/en/next/babel-runtime" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
478
469
  </div>
479
- </div><div class="pkg">
480
- <div>
481
- <div class="name">@jridgewell/resolve-uri <span class="chip">1 version</span></div>
482
- <div class="desc">Resolve a URI relative to an optional base URI</div>
483
- <div class="desc">Author: Justin Ridgewell &amp;lt;justin@ridgewell.name&amp;gt;</div>
484
- </div>
485
- <div class="meta">
486
- <a class="chip" href="https://github.com/jridgewell/resolve-uri" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
487
- </div>
488
- </div><div class="pkg">
489
- <div>
490
- <div class="name">@jridgewell/sourcemap-codec <span class="chip">1 version</span></div>
491
- <div class="desc">Encode/decode sourcemap mappings</div>
492
- <div class="desc">Author: Justin Ridgewell &amp;lt;justin@ridgewell.name&amp;gt;</div>
493
- </div>
494
- <div class="meta">
495
- <a class="chip" href="https://github.com/jridgewell/sourcemaps/tree/main/packages/sourcemap-codec" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
496
- </div>
497
- </div><div class="pkg">
498
- <div>
499
- <div class="name">@jridgewell/trace-mapping <span class="chip">1 version</span></div>
500
- <div class="desc">Trace the original position through a source map</div>
501
- <div class="desc">Author: Justin Ridgewell &amp;lt;justin@ridgewell.name&amp;gt;</div>
502
- </div>
503
- <div class="meta">
504
- <a class="chip" href="https://github.com/jridgewell/sourcemaps/tree/main/packages/trace-mapping" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
505
- </div>
506
- </div><div class="pkg">
507
- <div>
508
- <div class="name">@jscadui/3mf-export <span class="chip">1 version</span></div>
509
- <div class="desc">3mf export</div>
510
-
511
- </div>
512
- <div class="meta">
513
-
514
- </div>
515
470
  </div><div class="pkg">
516
471
  <div>
517
472
  <div class="name">@tarikjabiri/dxf <span class="chip">1 version</span></div>
@@ -539,15 +494,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
539
494
  <div class="meta">
540
495
  <a class="chip" href="https://github.com/niklasvh/base64-arraybuffer" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
541
496
  </div>
542
- </div><div class="pkg">
543
- <div>
544
- <div class="name">convert-source-map <span class="chip">1 version</span></div>
545
- <div class="desc">Converts a source-map from/to different formats and allows adding/changing properties.</div>
546
- <div class="desc">Author: Thorsten Lorenz &amp;lt;thlorenz@gmx.de&amp;gt;</div>
547
- </div>
548
- <div class="meta">
549
- <a class="chip" href="https://github.com/thlorenz/convert-source-map" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
550
- </div>
551
497
  </div><div class="pkg">
552
498
  <div>
553
499
  <div class="name">core-js <span class="chip">1 version</span></div>
@@ -575,15 +521,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
575
521
  <div class="meta">
576
522
  <a class="chip" href="https://github.com/niklasvh/css-line-break#readme" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
577
523
  </div>
578
- </div><div class="pkg">
579
- <div>
580
- <div class="name">esbuild-wasm <span class="chip">1 version</span></div>
581
- <div class="desc">The cross-platform WebAssembly binary for esbuild, a JavaScript bundler.</div>
582
-
583
- </div>
584
- <div class="meta">
585
- <a class="chip" href="git+https://github.com/evanw/esbuild.git" target="_blank" rel="noopener noreferrer">Repo / Homepage</a>
586
- </div>
587
524
  </div><div class="pkg">
588
525
  <div>
589
526
  <div class="name">fast-png <span class="chip">1 version</span></div>
@@ -447,7 +447,7 @@
447
447
  "title": "[BREP.io](https://BREP.io)",
448
448
  "href": "index.html",
449
449
  "summary": "BREP.io Source https://github.com/mmiscool/BREP NPM package: brep-io-kernel https://www.npmjs.com/package/brep-io-kernel Live API examples https://BREP.io/apiExamples/index.html Developer Discord https://discord.gg/R5KNAKrQ BREP.io is a bro...",
450
- "content": "BREP.io Source https://github.com/mmiscool/BREP NPM package: brep-io-kernel https://www.npmjs.com/package/brep-io-kernel Live API examples https://BREP.io/apiExamples/index.html Developer Discord https://discord.gg/R5KNAKrQ BREP.io is a browser-based CAD application and JavaScript kernel for feature-based solid modeling. At its core is a BREP-style modeler with explicit geometry/topology objects such as Solid , Face , Edge , and Vertex , paired with an editable feature-history pipeline. It also includes sketch workflows powered by a standalone 2D constraint solver, plus robust manifold booleans ( manifold-3d ), mesh repair/import tooling, assembly constraints, PMI annotations, and embeddable CAD/sketcher APIs. This project is in active development and APIs may continue to evolve. Workbenches Modeling Workbench Import Workbench Surfacing Workbench Sheet Metal Workbench Assemblies Workbench Wire Harness Workbench PMI Workbench All Workbench Screenshots Documentation Index General: Getting Started Developer Docs Index Bug Reporting and Repro Test Cases Highlights What's New API Examples Core APIs: BREP API Export Map BREP Kernel Reference Solid Methods Part History 2D Sketch Solver Embeddable CAD ( CadEmbed ) Embeddable Sketcher ( Sketcher2DEmbed ) System docs: History Systems Input Params Schema File Formats: Import and Export Plugins and Examples Inspector Inspector Improvements Mode guides: Modeling Mode Sketch Mode PMI Mode 2D Sheets Mode Modeling Feature Docs Feature index: All Feature Docs Primitives and setup: Primitive Cube Primitive Cylinder Primitive Cone Primitive Sphere Primitive Torus Primitive Pyramid Plane Datum Datium Sketch Spline Helix Solid operations: Extrude Sweep Tube Loft Revolve Mirror Boolean Fillet Chamfer Hole Offset Shell Remesh Transform Pattern, import, and generation: Pattern (Legacy Combined) Pattern Linear Pattern Radial Import 3D Model Image Heightmap Solid Image to Face Text to Face Assembly and sheet metal: Assembly Component Sheet Metal Tab Sheet Metal Contour Flange Sheet Metal Flange Additional implemented features in the codebase include collapse edge, edge smooth, offset face, overlap cleanup, sheet metal hem, and sheet metal cutout. Assembly Constraints Assembly Constraint Solver Coincident Distance Angle Parallel Touch Align Fixed PMI Annotation Docs PMI Annotations Index Linear Dimension Radial Dimension Angle Dimension Leader Note Hole Callout Explode Body Quick Start Prerequisites: Node.js 18+ pnpm git submodule update --init --recursive Emscripten SDK ( emcmake / emcc on PATH , or EMSDK installed at $HOME/emsdk ) Install and run locally: bash git submodule update --init --recursive pnpm install pnpm dev Then open the Vite URL shown in your terminal. Main app shell: /index.html Direct CAD workspace: /cad.html Build, Test, and Utility Commands Command Purpose pnpm dev Prepares fonts, builds the kernel bundle, then runs the Vite dev server. pnpm build Production build of the app into dist/ (includes kernel build step). pnpm build:manifoldPlus Builds the local manifold wasm/js bundle from the vendor/manifold3d submodule plus local custom bindings. pnpm build:kernel Builds the ESM kernel bundle into dist-kernel/ and syncs assets. pnpm use:manifold:npm Switches runtime/builds to the published manifold-3d npm package. pnpm use:manifold:local Switches runtime/builds to the locally compiled manifold bundle. pnpm which:manifold Prints the currently selected manifold source. pnpm test Runs the Node test suite ( src/tests/tests.js ), writing artifacts to tests/results/ . pnpm liveTesting Watches src/ and tests/ and reruns tests on change. pnpm capture Captures docs/dialog screenshots. pnpm generateLicenses Regenerates dependency and bundled-font license summaries. Build outputs: dist/ : static web app (ready for CDN/web hosting) dist-kernel/ : published kernel bundle artifacts CI and Pages Deployments The kernel build compiles a custom wasm bundle from the vendor/manifold3d git submodule. CI environments must: fetch submodules install Emscripten/EMSDK before running pnpm build This repo includes GitHub Actions workflows for: npm publishing with submodules + EMSDK Cloudflare Pages deployment via Wrangler Direct Upload For Cloudflare Pages, use the GitHub Actions deploy workflow instead of relying on Cloudflare's Git build container to compile the wasm bundle. Configure these repository settings before enabling the workflow: secret CLOUDFLARE_ACCOUNT_ID secret CLOUDFLARE_API_TOKEN variable CLOUDFLARE_PAGES_PROJECT_NAME Use as an NPM Package Package name: brep-io-kernel (ESM-only). Install: bash pnpm add brep-io-kernel Main imports: javascript import { BREP, PartHistory, AssemblyConstraintHistory, AssemblyConstraintRegistry, CadEmbed, Sketcher2DEmbed } from \"brep-io-kernel\" ; Subpath imports: javascript import { BREP } from \"brep-io-kernel/BREP\" ; import { PartHistory } from \"brep-io-kernel/PartHistory\" ; import { CadEmbed } from \"brep-io-kernel/CAD\" ; import { Sketcher2DEmbed } from \"brep-io-kernel/Sketcher2D\" ; import { ConstraintSolver, ConstraintEngine, constraints } from \"brep-io-kernel/SketchSolver2D\" ; Node examples: brep-io-kernel-examples/README.md CLI helper: bash npx brep-io-kernel npx brep-io-kernel --host 127.0.0.1 --port 4173 npx brep-io-kernel --help License helper APIs: javascript import { getPackageLicenseInfoString, getAllLicensesInfoString } from \"brep-io-kernel\" ; console.log(getPackageLicenseInfoString()); // package license info console.log(getAllLicensesInfoString()); // package + production dependencies CommonJS note: javascript const { BREP } = await import ( \"brep-io-kernel\" ); Repository Layout src/BREP : core solid/kernel implementation src/features : feature implementations and dialogs src/assemblyConstraints : assembly solver and constraints src/UI : CAD/sketcher UI and embedding bridges docs/ : markdown docs and screenshots apiExamples/ : standalone browser API demos tests/ and src/tests/ : test assets and test runner Contributing See CONTRIBUTING.md . License See LICENSE.md . This project uses a dual-licensing strategy managed by Autodrop3d LLC. Documentation API Examples Angle Constraint Coincident Constraint Distance Constraint Fixed Constraint Parallel Constraint Assembly Constraint Solver Touch Align Constraint BREP.js Export Map and Usage BREP Kernel Reference BREP Model and Classes Bug Reporting and Repro Test Cases Embeddable CAD App CONTRIBUTING C++ Solid Porting Cylindrical Face Radius Embedding Developer Docs Index Documentation Screenshots Radius Metadata for Extruded Sketches Feature Dimension Gizmos (Developer) Assembly Component Boolean Chamfer Collapse Edge Datium Datum Edge Smooth Extrude Fillet Helix Hole Image Editor (Shared) Image Heightmap Solid Image to Face Import 3D Model Features Loft Mirror NURBS Face Solid Offset Face Offset Shell Overlap Cleanup Pattern Linear Pattern Radial Pattern (Legacy) Plane Polygon Solid Primitive Cone Primitive Cube Primitive Cylinder Primitive Pyramid Primitive Sphere Primitive Torus Remesh Revolve Sheet Metal Contour Flange Sheet Metal Cutout Sheet Metal Flange Sheet Metal Hem Sheet Metal Tab Sketch Smooth With Subdivision Spline Sweep Text to Face Transform Tube File Formats: Import and Export Font Licenses Getting Started GitHub Repo Storage Highlights History Systems How It Works Input Params Schema Recent Inspector Improvements Inspector LICENSE Modeling Mode PMI Mode 2D Sheets Mode Sketch Mode PartHistory Reference Plugins and Examples Angle Dimension Explode Body Hole Callout PMI Annotations Leader Linear Dimension Note Radial Dimension Simplified Radial Dimension Interface 2D Sketch Solver (Standalone) Embeddable 2D Sketcher Solid Methods Reference UI Overview (Browser) What's New Workbench Implementation Plan All Workbench Assemblies Workbench Import Workbench Modeling Workbench PMI Workbench Sheet Metal Workbench Surfacing Workbench Wire Harness Workbench This project's license Copyright 2025 Autodrop3d LLC https://autodrop3d.com Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 1. Any modifications made to the Software must be submitted to Autodrop3d LLC with an irrevocable assignment of the copyright via git pull request. This is intended to allow Autodrop3d LLC to sell commercial licenses of the Software for use in proprietary products under a dual-licensing strategy. Failure to contribute back modifications without a commercial license purchased from Autodrop3d LLC voids all permissions granted by this license. 2. If Autodrop3d LLC is sold, merged, transferred, or otherwise succeeded by any entity or individual, all rights and obligations described in this license shall transfer automatically to that successor entity or individual. 3. If Autodrop3d LLC ceases operations or dissolves, and no successor entity or individual continues to publicly host the Software in a manner that allows the public to obtain the source code and submit contributions for a period of at least eighteen (18) consecutive months, then Clauses 1 and 2 of this license shall be automatically and irrevocably canceled. The above copyright notice and these permission notices shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Licenses Report of libraries used in this package 40 packages • 6 license types (MIT AND Zlib) 2 packages pako 1 version zlib port to javascript - fast, modularized, with browser support Repo / Homepage pako 1 version zlib port to javascript - fast, modularized, with browser support Repo / Homepage (MIT OR GPL-3.0-or-later) 1 package jszip 1 version Create, read and edit .zip files with JavaScript http://stuartk.com/jszip Author: Stuart Knightley <stuart@stuartk.com> Repo / Homepage Apache-2.0 2 packages manifold-3d 1 version Geometry library for topological robustness Repo / Homepage manifold-3d 1 version Geometry library for topological robustness Repo / Homepage ISC 1 package inherits 1 version Browser-friendly inheritance fully compatible with standard node.js inherits() Repo / Homepage MIT 33 packages @babel/runtime 1 version babel's modular runtime helpers Author: The Babel Team (https://babel.dev/team) Repo / Homepage @jridgewell/resolve-uri 1 version Resolve a URI relative to an optional base URI Author: Justin Ridgewell <justin@ridgewell.name> Repo / Homepage @jridgewell/sourcemap-codec 1 version Encode/decode sourcemap mappings Author: Justin Ridgewell <justin@ridgewell.name> Repo / Homepage @jridgewell/trace-mapping 1 version Trace the original position through a source map Author: Justin Ridgewell <justin@ridgewell.name> Repo / Homepage @jscadui/3mf-export 1 version 3mf export @tarikjabiri/dxf 1 version A JavaScript interface to Dxf written in TypeScript. Author: Tarik EL JABIRI Repo / Homepage @types/pako 1 version TypeScript definitions for pako Repo / Homepage base64-arraybuffer 1 version Encode/decode base64 data into ArrayBuffers Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage convert-source-map 1 version Converts a source-map from/to different formats and allows adding/changing properties. Author: Thorsten Lorenz <thlorenz@gmx.de> Repo / Homepage core-js 1 version Standard library Author: Denis Pushkarev <zloirock@zloirock.ru> Repo / Homepage core-util-is 1 version The `util.is*` functions introduced in Node v0.12. Author: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/) Repo / Homepage css-line-break 1 version Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage esbuild-wasm 1 version The cross-platform WebAssembly binary for esbuild, a JavaScript bundler. Repo / Homepage fast-png 1 version PNG image decoder and encoder written entirely in JavaScript Author: Michaël Zasso Repo / Homepage html2canvas 1 version Screenshots with JavaScript Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage immediate 1 version A cross browser microtask library Repo / Homepage iobuffer 1 version Read and write binary data on ArrayBuffers Author: Michaël Zasso Repo / Homepage isarray 1 version Array#isArray for older browsers Author: Julian Gruber <mail@juliangruber.com> Repo / Homepage jspdf 1 version PDF Document creation from JavaScript Repo / Homepage lie 1 version A basic but performant promise implementation Repo / Homepage marked 1 version A markdown parser built for speed Author: Christopher Jeffrey Repo / Homepage monaco-editor 1 version A browser based code editor Author: Microsoft Corporation Repo / Homepage pngjs 1 version PNG encoder/decoder in pure JS, supporting any bit size & interlace, async & sync with full test suite. Repo / Homepage process-nextick-args 1 version process.nextTick but always with args Repo / Homepage readable-stream 1 version Streams3, a user-land copy of the stream library from Node.js Repo / Homepage safe-buffer 1 version Safer Node.js Buffer API Author: Feross Aboukhadijeh <feross@feross.org> Repo / Homepage setimmediate 1 version A shim for the setImmediate efficient script yielding API Author: YuzuJS Repo / Homepage string_decoder 1 version The string_decoder module from Node core Repo / Homepage text-segmentation 1 version Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage three 1 version JavaScript 3D library Author: mrdoob Repo / Homepage three-mesh-bvh 1 version A BVH implementation to speed up raycasting against three.js meshes. Author: Garrett Johnson <garrett.kjohnson@gmail.com> Repo / Homepage util-deprecate 1 version The Node.js `util.deprecate()` function with browser support Author: Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/) Repo / Homepage utrie 1 version Unicode Trie Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage SGI-B-2.0 1 package tess2 1 version GLU tesselator ported to Javascript, performs polygon boolean operations and triangulation Author: Matt DesLauriers <dave.des@gmail.com> Repo / Homepage Font Licenses Bundled fonts are licensed separately from npm packages. Font license details Generated from installed node_modules graph (dependencies + optionalDependencies) + vendored third-party components ."
450
+ "content": "BREP.io Source https://github.com/mmiscool/BREP NPM package: brep-io-kernel https://www.npmjs.com/package/brep-io-kernel Live API examples https://BREP.io/apiExamples/index.html Developer Discord https://discord.gg/R5KNAKrQ BREP.io is a browser-based CAD application and JavaScript kernel for feature-based solid modeling. At its core is a BREP-style modeler with explicit geometry/topology objects such as Solid , Face , Edge , and Vertex , paired with an editable feature-history pipeline. It also includes sketch workflows powered by a standalone 2D constraint solver, plus robust manifold booleans ( manifold-3d ), mesh repair/import tooling, assembly constraints, PMI annotations, and embeddable CAD/sketcher APIs. This project is in active development and APIs may continue to evolve. Workbenches Modeling Workbench Import Workbench Surfacing Workbench Sheet Metal Workbench Assemblies Workbench Wire Harness Workbench PMI Workbench All Workbench Screenshots Documentation Index General: Getting Started Developer Docs Index Bug Reporting and Repro Test Cases Highlights What's New API Examples Core APIs: BREP API Export Map BREP Kernel Reference Solid Methods Part History 2D Sketch Solver Embeddable CAD ( CadEmbed ) Embeddable Sketcher ( Sketcher2DEmbed ) System docs: History Systems Input Params Schema File Formats: Import and Export Plugins and Examples Inspector Inspector Improvements Mode guides: Modeling Mode Sketch Mode PMI Mode 2D Sheets Mode Modeling Feature Docs Feature index: All Feature Docs Primitives and setup: Primitive Cube Primitive Cylinder Primitive Cone Primitive Sphere Primitive Torus Primitive Pyramid Plane Datum Datium Sketch Spline Helix Solid operations: Extrude Sweep Tube Loft Revolve Mirror Boolean Fillet Chamfer Hole Offset Shell Remesh Transform Pattern, import, and generation: Pattern (Legacy Combined) Pattern Linear Pattern Radial Import 3D Model Image Heightmap Solid Image to Face Text to Face Assembly and sheet metal: Assembly Component Sheet Metal Tab Sheet Metal Contour Flange Sheet Metal Flange Additional implemented features in the codebase include collapse edge, edge smooth, offset face, overlap cleanup, sheet metal hem, and sheet metal cutout. Assembly Constraints Assembly Constraint Solver Coincident Distance Angle Parallel Touch Align Fixed PMI Annotation Docs PMI Annotations Index Linear Dimension Radial Dimension Angle Dimension Leader Note Hole Callout Explode Body Quick Start Prerequisites: Node.js 18+ pnpm git submodule update --init --recursive Emscripten SDK ( emcmake / emcc on PATH , or EMSDK installed at $HOME/emsdk ) Install and run locally: bash git submodule update --init --recursive pnpm install pnpm dev Then open the Vite URL shown in your terminal. Main app shell: /index.html Direct CAD workspace: /cad.html Build, Test, and Utility Commands Command Purpose pnpm dev Prepares fonts, builds the kernel bundle, then runs the Vite dev server. pnpm build Production build of the app into dist/ (includes kernel build step). pnpm build:manifoldPlus Builds the local manifold wasm/js bundle from the vendor/manifold3d submodule plus local custom bindings. pnpm build:kernel Builds the ESM kernel bundle into dist-kernel/ and syncs assets. pnpm use:manifold:npm Switches runtime/builds to the published manifold-3d npm package. pnpm use:manifold:local Switches runtime/builds to the locally compiled manifold bundle. pnpm which:manifold Prints the currently selected manifold source. pnpm test Runs the Node test suite ( src/tests/tests.js ), writing artifacts to tests/results/ . pnpm liveTesting Watches src/ and tests/ and reruns tests on change. pnpm capture Captures docs/dialog screenshots. pnpm generateLicenses Regenerates dependency and bundled-font license summaries. Build outputs: dist/ : static web app (ready for CDN/web hosting) dist-kernel/ : published kernel bundle artifacts CI and Pages Deployments The kernel build compiles a custom wasm bundle from the vendor/manifold3d git submodule. CI environments must: fetch submodules install Emscripten/EMSDK before running pnpm build This repo includes GitHub Actions workflows for: npm publishing with submodules + EMSDK Cloudflare Pages deployment via Wrangler Direct Upload For Cloudflare Pages, use the GitHub Actions deploy workflow instead of relying on Cloudflare's Git build container to compile the wasm bundle. Configure these repository settings before enabling the workflow: secret CLOUDFLARE_ACCOUNT_ID secret CLOUDFLARE_API_TOKEN variable CLOUDFLARE_PAGES_PROJECT_NAME Use as an NPM Package Package name: brep-io-kernel (ESM-only). Install: bash pnpm add brep-io-kernel Main imports: javascript import { BREP, PartHistory, AssemblyConstraintHistory, AssemblyConstraintRegistry, CadEmbed, Sketcher2DEmbed } from \"brep-io-kernel\" ; Subpath imports: javascript import { BREP } from \"brep-io-kernel/BREP\" ; import { PartHistory } from \"brep-io-kernel/PartHistory\" ; import { CadEmbed } from \"brep-io-kernel/CAD\" ; import { Sketcher2DEmbed } from \"brep-io-kernel/Sketcher2D\" ; import { ConstraintSolver, ConstraintEngine, constraints } from \"brep-io-kernel/SketchSolver2D\" ; Node examples: brep-io-kernel-examples/README.md CLI helper: bash npx brep-io-kernel npx brep-io-kernel --host 127.0.0.1 --port 4173 npx brep-io-kernel --help License helper APIs: javascript import { getPackageLicenseInfoString, getAllLicensesInfoString } from \"brep-io-kernel\" ; console.log(getPackageLicenseInfoString()); // package license info console.log(getAllLicensesInfoString()); // package + production dependencies CommonJS note: javascript const { BREP } = await import ( \"brep-io-kernel\" ); Repository Layout src/BREP : core solid/kernel implementation src/features : feature implementations and dialogs src/assemblyConstraints : assembly solver and constraints src/UI : CAD/sketcher UI and embedding bridges docs/ : markdown docs and screenshots apiExamples/ : standalone browser API demos tests/ and src/tests/ : test assets and test runner Contributing See CONTRIBUTING.md . License See LICENSE.md . This project uses a dual-licensing strategy managed by Autodrop3d LLC. Documentation API Examples Angle Constraint Coincident Constraint Distance Constraint Fixed Constraint Parallel Constraint Assembly Constraint Solver Touch Align Constraint BREP.js Export Map and Usage BREP Kernel Reference BREP Model and Classes Bug Reporting and Repro Test Cases Embeddable CAD App CONTRIBUTING C++ Solid Porting Cylindrical Face Radius Embedding Developer Docs Index Documentation Screenshots Radius Metadata for Extruded Sketches Feature Dimension Gizmos (Developer) Assembly Component Boolean Chamfer Collapse Edge Datium Datum Edge Smooth Extrude Fillet Helix Hole Image Editor (Shared) Image Heightmap Solid Image to Face Import 3D Model Features Loft Mirror NURBS Face Solid Offset Face Offset Shell Overlap Cleanup Pattern Linear Pattern Radial Pattern (Legacy) Plane Polygon Solid Primitive Cone Primitive Cube Primitive Cylinder Primitive Pyramid Primitive Sphere Primitive Torus Remesh Revolve Sheet Metal Contour Flange Sheet Metal Cutout Sheet Metal Flange Sheet Metal Hem Sheet Metal Tab Sketch Smooth With Subdivision Spline Sweep Text to Face Transform Tube File Formats: Import and Export Font Licenses Getting Started GitHub Repo Storage Highlights History Systems How It Works Input Params Schema Recent Inspector Improvements Inspector LICENSE Modeling Mode PMI Mode 2D Sheets Mode Sketch Mode PartHistory Reference Plugins and Examples Angle Dimension Explode Body Hole Callout PMI Annotations Leader Linear Dimension Note Radial Dimension Simplified Radial Dimension Interface 2D Sketch Solver (Standalone) Embeddable 2D Sketcher Solid Methods Reference UI Overview (Browser) What's New Workbench Implementation Plan All Workbench Assemblies Workbench Import Workbench Modeling Workbench PMI Workbench Sheet Metal Workbench Surfacing Workbench Wire Harness Workbench This project's license Copyright 2025 Autodrop3d LLC https://autodrop3d.com Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 1. Any modifications made to the Software must be submitted to Autodrop3d LLC with an irrevocable assignment of the copyright via git pull request. This is intended to allow Autodrop3d LLC to sell commercial licenses of the Software for use in proprietary products under a dual-licensing strategy. Failure to contribute back modifications without a commercial license purchased from Autodrop3d LLC voids all permissions granted by this license. 2. If Autodrop3d LLC is sold, merged, transferred, or otherwise succeeded by any entity or individual, all rights and obligations described in this license shall transfer automatically to that successor entity or individual. 3. If Autodrop3d LLC ceases operations or dissolves, and no successor entity or individual continues to publicly host the Software in a manner that allows the public to obtain the source code and submit contributions for a period of at least eighteen (18) consecutive months, then Clauses 1 and 2 of this license shall be automatically and irrevocably canceled. The above copyright notice and these permission notices shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Licenses Report of libraries used in this package 33 packages • 6 license types (MIT AND Zlib) 2 packages pako 1 version zlib port to javascript - fast, modularized, with browser support Repo / Homepage pako 1 version zlib port to javascript - fast, modularized, with browser support Repo / Homepage (MIT OR GPL-3.0-or-later) 1 package jszip 1 version Create, read and edit .zip files with JavaScript http://stuartk.com/jszip Author: Stuart Knightley <stuart@stuartk.com> Repo / Homepage Apache-2.0 1 package manifold-3d 1 version Geometry library for topological robustness Repo / Homepage ISC 1 package inherits 1 version Browser-friendly inheritance fully compatible with standard node.js inherits() Repo / Homepage MIT 27 packages @babel/runtime 1 version babel's modular runtime helpers Author: The Babel Team (https://babel.dev/team) Repo / Homepage @tarikjabiri/dxf 1 version A JavaScript interface to Dxf written in TypeScript. Author: Tarik EL JABIRI Repo / Homepage @types/pako 1 version TypeScript definitions for pako Repo / Homepage base64-arraybuffer 1 version Encode/decode base64 data into ArrayBuffers Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage core-js 1 version Standard library Author: Denis Pushkarev <zloirock@zloirock.ru> Repo / Homepage core-util-is 1 version The `util.is*` functions introduced in Node v0.12. Author: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/) Repo / Homepage css-line-break 1 version Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage fast-png 1 version PNG image decoder and encoder written entirely in JavaScript Author: Michaël Zasso Repo / Homepage html2canvas 1 version Screenshots with JavaScript Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage immediate 1 version A cross browser microtask library Repo / Homepage iobuffer 1 version Read and write binary data on ArrayBuffers Author: Michaël Zasso Repo / Homepage isarray 1 version Array#isArray for older browsers Author: Julian Gruber <mail@juliangruber.com> Repo / Homepage jspdf 1 version PDF Document creation from JavaScript Repo / Homepage lie 1 version A basic but performant promise implementation Repo / Homepage marked 1 version A markdown parser built for speed Author: Christopher Jeffrey Repo / Homepage monaco-editor 1 version A browser based code editor Author: Microsoft Corporation Repo / Homepage pngjs 1 version PNG encoder/decoder in pure JS, supporting any bit size & interlace, async & sync with full test suite. Repo / Homepage process-nextick-args 1 version process.nextTick but always with args Repo / Homepage readable-stream 1 version Streams3, a user-land copy of the stream library from Node.js Repo / Homepage safe-buffer 1 version Safer Node.js Buffer API Author: Feross Aboukhadijeh <feross@feross.org> Repo / Homepage setimmediate 1 version A shim for the setImmediate efficient script yielding API Author: YuzuJS Repo / Homepage string_decoder 1 version The string_decoder module from Node core Repo / Homepage text-segmentation 1 version Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage three 1 version JavaScript 3D library Author: mrdoob Repo / Homepage three-mesh-bvh 1 version A BVH implementation to speed up raycasting against three.js meshes. Author: Garrett Johnson <garrett.kjohnson@gmail.com> Repo / Homepage util-deprecate 1 version The Node.js `util.deprecate()` function with browser support Author: Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/) Repo / Homepage utrie 1 version Unicode Trie Author: Niklas von Hertzen <niklasvh@gmail.com> Repo / Homepage SGI-B-2.0 1 package tess2 1 version GLU tesselator ported to Javascript, performs polygon boolean operations and triangulation Author: Matt DesLauriers <dave.des@gmail.com> Repo / Homepage Font Licenses Bundled fonts are licensed separately from npm packages. Font license details Generated from installed node_modules graph (dependencies + optionalDependencies) + vendored third-party components ."
451
451
  },
452
452
  {
453
453
  "title": "Input Params Schema",