@metamesh/modeling 0.18.0 → 0.19.0

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 (843) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +73 -57
  3. package/dist/api/engine.d.ts +7 -47
  4. package/dist/api/export-3mf.d.ts +2 -0
  5. package/dist/api/export-glb.d.ts +2 -0
  6. package/dist/api/export-stl.d.ts +2 -0
  7. package/dist/api/export.d.ts +160 -0
  8. package/dist/api/geometry.d.ts +7 -7
  9. package/dist/api/index.d.ts +85 -35
  10. package/dist/api/mesh.d.ts +35 -6
  11. package/dist/docs/guides/concepts.md +32 -535
  12. package/dist/docs/guides/fonts.md +4 -4
  13. package/dist/docs/guides/generation.md +52 -45
  14. package/dist/docs/guides/geometry-values.md +193 -0
  15. package/dist/docs/guides/hosting.md +53 -30
  16. package/dist/docs/guides/profiles-and-extrusion.md +252 -0
  17. package/dist/docs/guides/recipes.md +33 -780
  18. package/dist/docs/guides/resolution-and-inspection.md +133 -0
  19. package/dist/docs/guides/solid-joins.md +126 -0
  20. package/dist/docs/guides/standalone-model.md +1 -1
  21. package/dist/docs/guides/svg-and-text.md +215 -0
  22. package/dist/docs/guides/sweeps-and-lofts.md +179 -0
  23. package/dist/docs/guides/transforms-and-placement.md +313 -0
  24. package/dist/docs/manifest.json +2818 -5862
  25. package/dist/docs/reference/engine/GenerationOptions.md +10 -4
  26. package/dist/docs/reference/engine/GeometryResource.md +8 -2
  27. package/dist/docs/reference/engine/ModelDependencies.md +9 -3
  28. package/dist/docs/reference/engine/ModelEngine.md +9 -3
  29. package/dist/docs/reference/engine/ModelEngineOptions.md +9 -3
  30. package/dist/docs/reference/engine/ModelPart.md +9 -3
  31. package/dist/docs/reference/engine/ModelResult.md +8 -2
  32. package/dist/docs/reference/engine/ModelRunArguments.md +7 -1
  33. package/dist/docs/reference/engine/ModelRunOptions.md +10 -4
  34. package/dist/docs/reference/engine/ModelSession.md +7 -1
  35. package/dist/docs/reference/engine/SessionOptions.md +10 -4
  36. package/dist/docs/reference/engine/categories/host-lifecycle.md +3 -8
  37. package/dist/docs/reference/engine/checkModel.md +7 -1
  38. package/dist/docs/reference/engine/createModelEngine.md +10 -3
  39. package/dist/docs/reference/engine/defaultModelingLimits.md +9 -3
  40. package/dist/docs/reference/engine/modelingWasmUrl.md +7 -1
  41. package/dist/docs/reference/engine.md +7 -7
  42. package/dist/docs/reference/export/Export3mfOptions.md +24 -0
  43. package/dist/docs/reference/export/ExportDiagnostic.md +59 -0
  44. package/dist/docs/reference/export/ExportFormat.md +25 -0
  45. package/dist/docs/reference/export/ExportGeometry.md +39 -0
  46. package/dist/docs/reference/export/ExportGlbOptions.md +118 -0
  47. package/dist/docs/reference/export/ExportLimits.md +83 -0
  48. package/dist/docs/reference/export/ExportMaterial.md +47 -0
  49. package/dist/docs/reference/export/ExportOptions.md +94 -0
  50. package/dist/docs/reference/export/ExportPart.md +88 -0
  51. package/dist/docs/reference/export/ExportReport.md +82 -0
  52. package/dist/docs/reference/export/ExportSink.md +39 -0
  53. package/dist/docs/reference/export/ExportStlOptions.md +24 -0
  54. package/dist/docs/reference/export/ExportedFile.md +110 -0
  55. package/dist/docs/reference/export/categories/mesh-serialization.md +47 -0
  56. package/dist/docs/reference/export/defaultExportLimits.md +20 -0
  57. package/dist/docs/reference/export/export3mf.md +64 -0
  58. package/dist/docs/reference/export/exportGlb.md +68 -0
  59. package/dist/docs/reference/export/exportStl.md +64 -0
  60. package/dist/docs/reference/export/write3mf.md +71 -0
  61. package/dist/docs/reference/export/writeGlb.md +75 -0
  62. package/dist/docs/reference/export/writeStl.md +71 -0
  63. package/dist/docs/reference/export.md +21 -0
  64. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +16 -2
  65. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +7 -1
  66. package/dist/docs/reference/geometry/Anchor3-type.md +13 -3
  67. package/dist/docs/reference/geometry/ArcCurve2.md +8 -2
  68. package/dist/docs/reference/geometry/ArcCurve3.md +8 -2
  69. package/dist/docs/reference/geometry/AttachOptions.md +13 -3
  70. package/dist/docs/reference/geometry/AxisAngleRotation3.md +9 -3
  71. package/dist/docs/reference/geometry/Bevel.md +16 -2
  72. package/dist/docs/reference/geometry/BevelSize.md +16 -2
  73. package/dist/docs/reference/geometry/Bounds2-type.md +18 -4
  74. package/dist/docs/reference/geometry/Bounds2Data.md +22 -4
  75. package/dist/docs/reference/geometry/Bounds2Input.md +18 -4
  76. package/dist/docs/reference/geometry/Bounds2Options.md +14 -4
  77. package/dist/docs/reference/geometry/Bounds3-type.md +18 -4
  78. package/dist/docs/reference/geometry/Bounds3Data.md +18 -4
  79. package/dist/docs/reference/geometry/Bounds3Input.md +18 -4
  80. package/dist/docs/reference/geometry/Bounds3Options.md +14 -4
  81. package/dist/docs/reference/geometry/BoundsFit2.md +10 -4
  82. package/dist/docs/reference/geometry/BoundsFit3.md +10 -4
  83. package/dist/docs/reference/geometry/BoundsFitOptions.md +10 -4
  84. package/dist/docs/reference/geometry/BoxAnchorFace.md +9 -3
  85. package/dist/docs/reference/geometry/BoxAnchorOptions.md +9 -3
  86. package/dist/docs/reference/geometry/BoxEdge.md +11 -1
  87. package/dist/docs/reference/geometry/BoxEdgeSelection.md +11 -1
  88. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +11 -1
  89. package/dist/docs/reference/geometry/BoxOptions.md +11 -1
  90. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +16 -2
  91. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +16 -2
  92. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +11 -1
  93. package/dist/docs/reference/geometry/CircleContourOptions.md +12 -2
  94. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +15 -1
  95. package/dist/docs/reference/geometry/CircularResolutionOptions.md +7 -1
  96. package/dist/docs/reference/geometry/CircularSampling.md +7 -1
  97. package/dist/docs/reference/geometry/CircularSamplingOptions.md +7 -1
  98. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +8 -2
  99. package/dist/docs/reference/geometry/ClearanceHoleFit.md +8 -2
  100. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +8 -2
  101. package/dist/docs/reference/geometry/Contour.md +12 -2
  102. package/dist/docs/reference/geometry/ContourCurve.md +8 -2
  103. package/dist/docs/reference/geometry/ContourPoint.md +8 -2
  104. package/dist/docs/reference/geometry/ContourSegment.md +8 -2
  105. package/dist/docs/reference/geometry/CorrespondingComponent.md +12 -2
  106. package/dist/docs/reference/geometry/CorrespondingContour.md +12 -2
  107. package/dist/docs/reference/geometry/CorrespondingProfile.md +12 -2
  108. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +12 -2
  109. package/dist/docs/reference/geometry/CubicBezierCurve2.md +8 -2
  110. package/dist/docs/reference/geometry/CubicBezierCurve3.md +8 -2
  111. package/dist/docs/reference/geometry/Curve2.md +8 -2
  112. package/dist/docs/reference/geometry/Curve3.md +8 -2
  113. package/dist/docs/reference/geometry/CurveSamplingOptions.md +16 -2
  114. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +16 -2
  115. package/dist/docs/reference/geometry/CylinderAnchorFace.md +9 -3
  116. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +9 -3
  117. package/dist/docs/reference/geometry/CylinderOptions.md +11 -1
  118. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +8 -2
  119. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +8 -2
  120. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +8 -2
  121. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +8 -2
  122. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +8 -2
  123. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +8 -2
  124. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +8 -2
  125. package/dist/docs/reference/geometry/CylindricalGearSpec.md +8 -2
  126. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +7 -1
  127. package/dist/docs/reference/geometry/EdgeTreatment.md +11 -1
  128. package/dist/docs/reference/geometry/EllipseContourOptions.md +12 -2
  129. package/dist/docs/reference/geometry/EndTreatments.md +12 -2
  130. package/dist/docs/reference/geometry/ExtrudeMeshOptions.md +16 -2
  131. package/dist/docs/reference/geometry/ExtrudeOptions.md +13 -3
  132. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +16 -2
  133. package/dist/docs/reference/geometry/FittedTextLayout.md +8 -2
  134. package/dist/docs/reference/geometry/Frame3.md +16 -2
  135. package/dist/docs/reference/geometry/GeometryError.md +11 -1
  136. package/dist/docs/reference/geometry/GeometryErrorCode.md +11 -1
  137. package/dist/docs/reference/geometry/GeometryErrorContext.md +11 -1
  138. package/dist/docs/reference/geometry/GeometryResolution.md +15 -1
  139. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +16 -2
  140. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +15 -1
  141. package/dist/docs/reference/geometry/GridPatternOptions.md +12 -2
  142. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +12 -2
  143. package/dist/docs/reference/geometry/HeightfieldOptions.md +16 -2
  144. package/dist/docs/reference/geometry/HeightfieldPreflight.md +12 -2
  145. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +9 -3
  146. package/dist/docs/reference/geometry/ImmutableBuffer-type.md +16 -14
  147. package/dist/docs/reference/geometry/ImmutableTriangleMesh.md +17 -3
  148. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +12 -2
  149. package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +12 -2
  150. package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +8 -2
  151. package/dist/docs/reference/geometry/KnuckleHingeInterval.md +8 -2
  152. package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +12 -2
  153. package/dist/docs/reference/geometry/KnuckleHingeSpec.md +12 -2
  154. package/dist/docs/reference/geometry/LineCurve2.md +8 -2
  155. package/dist/docs/reference/geometry/LineCurve3.md +8 -2
  156. package/dist/docs/reference/geometry/LinearPatternOptions.md +12 -2
  157. package/dist/docs/reference/geometry/LoftCorrespondence.md +16 -2
  158. package/dist/docs/reference/geometry/LoftMeshStation.md +12 -2
  159. package/dist/docs/reference/geometry/LoftOptions.md +16 -2
  160. package/dist/docs/reference/geometry/LoftPlacement.md +16 -2
  161. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +8 -2
  162. package/dist/docs/reference/geometry/MatchProfilesOptions.md +12 -2
  163. package/dist/docs/reference/geometry/MetricFastenerSize.md +8 -2
  164. package/dist/docs/reference/geometry/MetricFastenerStandard.md +8 -2
  165. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +8 -2
  166. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +8 -2
  167. package/dist/docs/reference/geometry/ModelingLimits.md +19 -1
  168. package/dist/docs/reference/geometry/NumericArray.md +16 -2
  169. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +8 -2
  170. package/dist/docs/reference/geometry/Path2-type.md +16 -2
  171. package/dist/docs/reference/geometry/Path2Data.md +16 -2
  172. package/dist/docs/reference/geometry/Path2Input.md +16 -2
  173. package/dist/docs/reference/geometry/Path3-type.md +16 -2
  174. package/dist/docs/reference/geometry/Path3Data.md +16 -2
  175. package/dist/docs/reference/geometry/Path3Input.md +16 -2
  176. package/dist/docs/reference/geometry/PathFrame.md +8 -2
  177. package/dist/docs/reference/geometry/PathLocation.md +16 -2
  178. package/dist/docs/reference/geometry/PathNormalGuide.md +16 -2
  179. package/dist/docs/reference/geometry/PathOptions.md +12 -2
  180. package/dist/docs/reference/geometry/PathPatternOptions.md +12 -2
  181. package/dist/docs/reference/geometry/PathPlacement.md +8 -2
  182. package/dist/docs/reference/geometry/PathResamplingOptions.md +16 -2
  183. package/dist/docs/reference/geometry/Pivot2Options.md +17 -3
  184. package/dist/docs/reference/geometry/Pivot3Options.md +17 -3
  185. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +12 -2
  186. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +12 -2
  187. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +12 -2
  188. package/dist/docs/reference/geometry/PlanarPatchQuality.md +12 -2
  189. package/dist/docs/reference/geometry/PolygonData.md +12 -2
  190. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +8 -2
  191. package/dist/docs/reference/geometry/PrimitiveAttachment.md +11 -1
  192. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +11 -1
  193. package/dist/docs/reference/geometry/PrintableThreadFit.md +12 -2
  194. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +12 -2
  195. package/dist/docs/reference/geometry/Profile.md +8 -2
  196. package/dist/docs/reference/geometry/ProfileComponent2.md +12 -2
  197. package/dist/docs/reference/geometry/ProfileContour2.md +12 -2
  198. package/dist/docs/reference/geometry/ProfileSpan2.md +12 -2
  199. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +11 -1
  200. package/dist/docs/reference/geometry/RackPitchDimensions.md +8 -2
  201. package/dist/docs/reference/geometry/RackPitchSpec.md +8 -2
  202. package/dist/docs/reference/geometry/RadialPatternOptions.md +12 -2
  203. package/dist/docs/reference/geometry/RadialSizing.md +11 -1
  204. package/dist/docs/reference/geometry/RadialSizingOptions.md +11 -1
  205. package/dist/docs/reference/geometry/RectangleContourOptions.md +12 -2
  206. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +12 -2
  207. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +12 -2
  208. package/dist/docs/reference/geometry/RectangleProfileOptions.md +8 -2
  209. package/dist/docs/reference/geometry/RegionData.md +12 -2
  210. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +8 -2
  211. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +7 -1
  212. package/dist/docs/reference/geometry/RevolveOptions.md +16 -2
  213. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +11 -1
  214. package/dist/docs/reference/geometry/RowLayoutOptions.md +10 -4
  215. package/dist/docs/reference/geometry/SampleContourOptions.md +8 -2
  216. package/dist/docs/reference/geometry/SampleHelixOptions.md +8 -2
  217. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +8 -2
  218. package/dist/docs/reference/geometry/SampledCurve2.md +8 -2
  219. package/dist/docs/reference/geometry/SampledCurve3.md +8 -2
  220. package/dist/docs/reference/geometry/SampledThreadHelices.md +8 -2
  221. package/dist/docs/reference/geometry/SideProfileCurve.md +8 -2
  222. package/dist/docs/reference/geometry/SideProfilePoint.md +8 -2
  223. package/dist/docs/reference/geometry/SideProfileSegment.md +8 -2
  224. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +11 -1
  225. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +12 -2
  226. package/dist/docs/reference/geometry/SphereOptions.md +11 -1
  227. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +16 -2
  228. package/dist/docs/reference/geometry/StarContourOptions.md +12 -2
  229. package/dist/docs/reference/geometry/StrokeCap.md +12 -2
  230. package/dist/docs/reference/geometry/StrokeJoin.md +12 -2
  231. package/dist/docs/reference/geometry/StrokeOptions.md +12 -2
  232. package/dist/docs/reference/geometry/SvgImportOptions.md +8 -2
  233. package/dist/docs/reference/geometry/SvgRegionPreflight.md +8 -2
  234. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +8 -2
  235. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +8 -2
  236. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +8 -2
  237. package/dist/docs/reference/geometry/SweepOptions.md +16 -2
  238. package/dist/docs/reference/geometry/SweepOrientation.md +16 -2
  239. package/dist/docs/reference/geometry/ThreadBevelOptions.md +12 -2
  240. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +8 -2
  241. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +8 -2
  242. package/dist/docs/reference/geometry/ThreadEndStyle.md +16 -2
  243. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +16 -2
  244. package/dist/docs/reference/geometry/ThreadHandedness.md +16 -2
  245. package/dist/docs/reference/geometry/ThreadHelixOptions.md +8 -2
  246. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +16 -2
  247. package/dist/docs/reference/geometry/ThreadLeadInShape.md +16 -2
  248. package/dist/docs/reference/geometry/ThreadProfile-type.md +16 -2
  249. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +16 -2
  250. package/dist/docs/reference/geometry/ThreadProfileSpec.md +16 -2
  251. package/dist/docs/reference/geometry/ThreadRidgeOptions.md +16 -2
  252. package/dist/docs/reference/geometry/ThreadRole.md +8 -2
  253. package/dist/docs/reference/geometry/ThreadSolidOptions.md +12 -2
  254. package/dist/docs/reference/geometry/ThreadSolidPreflight.md +16 -2
  255. package/dist/docs/reference/geometry/ThreadedNutOptions.md +12 -2
  256. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +12 -2
  257. package/dist/docs/reference/geometry/ThreadedNutShape.md +12 -2
  258. package/dist/docs/reference/geometry/ThreadedRodOptions.md +12 -2
  259. package/dist/docs/reference/geometry/TorusOptions.md +11 -1
  260. package/dist/docs/reference/geometry/Transform2-type.md +17 -3
  261. package/dist/docs/reference/geometry/Transform2Data.md +17 -3
  262. package/dist/docs/reference/geometry/Transform2Input.md +17 -3
  263. package/dist/docs/reference/geometry/Transform3-type.md +17 -3
  264. package/dist/docs/reference/geometry/Transform3Data.md +17 -3
  265. package/dist/docs/reference/geometry/Transform3Input.md +17 -3
  266. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +16 -2
  267. package/dist/docs/reference/geometry/TriangleMesh.md +20 -2
  268. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +16 -2
  269. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +12 -2
  270. package/dist/docs/reference/geometry/TriangleMeshInput.md +12 -2
  271. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +16 -2
  272. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +12 -2
  273. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +12 -2
  274. package/dist/docs/reference/geometry/TriangleMeshSignature.md +12 -2
  275. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +12 -2
  276. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +12 -2
  277. package/dist/docs/reference/geometry/TriangleMeshTopologyAnalysis.md +16 -2
  278. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +12 -2
  279. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +16 -2
  280. package/dist/docs/reference/geometry/TubeOptions.md +11 -1
  281. package/dist/docs/reference/geometry/Vector2-type.md +17 -3
  282. package/dist/docs/reference/geometry/Vector2Data.md +21 -3
  283. package/dist/docs/reference/geometry/Vector2Input.md +17 -3
  284. package/dist/docs/reference/geometry/Vector3-type.md +17 -3
  285. package/dist/docs/reference/geometry/Vector3Data.md +17 -3
  286. package/dist/docs/reference/geometry/Vector3Input.md +17 -3
  287. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +12 -2
  288. package/dist/docs/reference/geometry/VectorTextLayout.md +16 -2
  289. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +12 -2
  290. package/dist/docs/reference/geometry/VectorTextMetrics.md +16 -2
  291. package/dist/docs/reference/geometry/VectorTextOptions.md +12 -2
  292. package/dist/docs/reference/geometry/add2.md +9 -3
  293. package/dist/docs/reference/geometry/add3.md +9 -3
  294. package/dist/docs/reference/geometry/anchor3.md +9 -3
  295. package/dist/docs/reference/geometry/anchorFrame3.md +8 -2
  296. package/dist/docs/reference/geometry/applyTransformDirection3.md +9 -3
  297. package/dist/docs/reference/geometry/applyTransformPoint3.md +9 -3
  298. package/dist/docs/reference/geometry/attachmentTransform3.md +9 -3
  299. package/dist/docs/reference/geometry/bounds2.md +16 -6
  300. package/dist/docs/reference/geometry/bounds3.md +16 -6
  301. package/dist/docs/reference/geometry/boundsCenter.md +10 -4
  302. package/dist/docs/reference/geometry/boundsSize.md +10 -4
  303. package/dist/docs/reference/geometry/boxAnchor3.md +9 -3
  304. package/dist/docs/reference/geometry/categories/bounds-layout.md +4 -4
  305. package/dist/docs/reference/geometry/categories/curves-paths.md +2 -2
  306. package/dist/docs/reference/geometry/categories/mechanical.md +2 -2
  307. package/dist/docs/reference/geometry/categories/meshes.md +3 -3
  308. package/dist/docs/reference/geometry/categories/pattern-placement.md +2 -2
  309. package/dist/docs/reference/geometry/categories/primitive-options.md +2 -2
  310. package/dist/docs/reference/geometry/categories/profiles-regions.md +2 -2
  311. package/dist/docs/reference/geometry/categories/resolution-errors.md +1 -1
  312. package/dist/docs/reference/geometry/categories/transforms-math.md +3 -3
  313. package/dist/docs/reference/geometry/categories/vector-import.md +2 -2
  314. package/dist/docs/reference/geometry/circleContour.md +8 -2
  315. package/dist/docs/reference/geometry/closeToAxis.md +8 -2
  316. package/dist/docs/reference/geometry/compensateThreadDiameters.md +8 -2
  317. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +8 -2
  318. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +8 -2
  319. package/dist/docs/reference/geometry/composeTransform3.md +9 -3
  320. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +8 -2
  321. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +8 -2
  322. package/dist/docs/reference/geometry/contourContainsPoint.md +8 -2
  323. package/dist/docs/reference/geometry/cross2.md +9 -3
  324. package/dist/docs/reference/geometry/cross3.md +9 -3
  325. package/dist/docs/reference/geometry/cylinderAnchor3.md +9 -3
  326. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +8 -2
  327. package/dist/docs/reference/geometry/distance2.md +9 -3
  328. package/dist/docs/reference/geometry/distance3.md +9 -3
  329. package/dist/docs/reference/geometry/distributeAlongPath.md +8 -2
  330. package/dist/docs/reference/geometry/dot2.md +9 -3
  331. package/dist/docs/reference/geometry/dot3.md +9 -3
  332. package/dist/docs/reference/geometry/ellipseContour.md +8 -2
  333. package/dist/docs/reference/geometry/eulerTransform3.md +9 -3
  334. package/dist/docs/reference/geometry/fitBounds.md +10 -4
  335. package/dist/docs/reference/geometry/fitTextLayout.md +8 -2
  336. package/dist/docs/reference/geometry/frameTransform3.md +9 -3
  337. package/dist/docs/reference/geometry/getMetricClearanceHoleDiameter.md +8 -2
  338. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +8 -2
  339. package/dist/docs/reference/geometry/gridPatternTransforms.md +8 -2
  340. package/dist/docs/reference/geometry/immutableBuffer.md +12 -2
  341. package/dist/docs/reference/geometry/inverseTransform3.md +9 -3
  342. package/dist/docs/reference/geometry/isGeometryError.md +11 -1
  343. package/dist/docs/reference/geometry/layoutRow.md +10 -4
  344. package/dist/docs/reference/geometry/length2.md +9 -3
  345. package/dist/docs/reference/geometry/length3.md +9 -3
  346. package/dist/docs/reference/geometry/lerp2.md +9 -3
  347. package/dist/docs/reference/geometry/lerp3.md +9 -3
  348. package/dist/docs/reference/geometry/linearPatternTransforms.md +8 -2
  349. package/dist/docs/reference/geometry/matchProfiles.md +8 -2
  350. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +8 -2
  351. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +8 -2
  352. package/dist/docs/reference/geometry/normalize2.md +9 -3
  353. package/dist/docs/reference/geometry/normalize3.md +9 -3
  354. package/dist/docs/reference/geometry/normalizeContour.md +8 -2
  355. package/dist/docs/reference/geometry/normalizePolygon.md +8 -2
  356. package/dist/docs/reference/geometry/normalizeRegion.md +8 -2
  357. package/dist/docs/reference/geometry/path2.md +12 -2
  358. package/dist/docs/reference/geometry/path3.md +12 -2
  359. package/dist/docs/reference/geometry/pathPatternTransforms.md +8 -2
  360. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +8 -2
  361. package/dist/docs/reference/geometry/preflightSvgRegion.md +8 -2
  362. package/dist/docs/reference/geometry/preflightThreadedNut.md +8 -2
  363. package/dist/docs/reference/geometry/preflightThreadedRod.md +8 -2
  364. package/dist/docs/reference/geometry/projectOntoPlane3.md +9 -3
  365. package/dist/docs/reference/geometry/radialPatternTransforms.md +8 -2
  366. package/dist/docs/reference/geometry/rectangleContour.md +8 -2
  367. package/dist/docs/reference/geometry/rectangleProfile.md +8 -2
  368. package/dist/docs/reference/geometry/regionArea.md +8 -2
  369. package/dist/docs/reference/geometry/regionBounds.md +8 -2
  370. package/dist/docs/reference/geometry/regularPolygonContour.md +8 -2
  371. package/dist/docs/reference/geometry/resamplePolyline2.md +8 -2
  372. package/dist/docs/reference/geometry/resamplePolyline3.md +8 -2
  373. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +7 -1
  374. package/dist/docs/reference/geometry/resolveArcSegments.md +7 -1
  375. package/dist/docs/reference/geometry/resolveCircularSampling.md +7 -1
  376. package/dist/docs/reference/geometry/resolveCircularSegments.md +7 -1
  377. package/dist/docs/reference/geometry/resolveCylindricalGear.md +8 -2
  378. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +8 -2
  379. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +8 -2
  380. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +8 -2
  381. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +7 -1
  382. package/dist/docs/reference/geometry/resolveKnuckleHinge.md +8 -2
  383. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +8 -2
  384. package/dist/docs/reference/geometry/resolveRackPitch.md +8 -2
  385. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +8 -2
  386. package/dist/docs/reference/geometry/rotate2.md +9 -3
  387. package/dist/docs/reference/geometry/rotationTransform3.md +9 -3
  388. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +8 -2
  389. package/dist/docs/reference/geometry/sampleContour.md +8 -2
  390. package/dist/docs/reference/geometry/sampleCurve2.md +8 -2
  391. package/dist/docs/reference/geometry/sampleCurve3.md +8 -2
  392. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +8 -2
  393. package/dist/docs/reference/geometry/sampleHelix.md +8 -2
  394. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +8 -2
  395. package/dist/docs/reference/geometry/sampleRackToothPath.md +8 -2
  396. package/dist/docs/reference/geometry/sampleSideProfile.md +8 -2
  397. package/dist/docs/reference/geometry/sampleTextContours.md +8 -2
  398. package/dist/docs/reference/geometry/sampleThreadHelices.md +8 -2
  399. package/dist/docs/reference/geometry/scale2.md +9 -3
  400. package/dist/docs/reference/geometry/scale3.md +9 -3
  401. package/dist/docs/reference/geometry/scaleTransform3.md +9 -3
  402. package/dist/docs/reference/geometry/signedContourArea.md +8 -2
  403. package/dist/docs/reference/geometry/starContour.md +8 -2
  404. package/dist/docs/reference/geometry/strokeRegionData.md +8 -2
  405. package/dist/docs/reference/geometry/subtract2.md +9 -3
  406. package/dist/docs/reference/geometry/subtract3.md +9 -3
  407. package/dist/docs/reference/geometry/threadProfile.md +8 -2
  408. package/dist/docs/reference/geometry/transform2.md +13 -3
  409. package/dist/docs/reference/geometry/transform3.md +13 -3
  410. package/dist/docs/reference/geometry/transformDeterminant3.md +9 -3
  411. package/dist/docs/reference/geometry/transformRegionData.md +8 -2
  412. package/dist/docs/reference/geometry/translationTransform3.md +9 -3
  413. package/dist/docs/reference/geometry/triangulateContour.md +8 -2
  414. package/dist/docs/reference/geometry/validateRigidTransform3.md +9 -3
  415. package/dist/docs/reference/geometry/validateTransform3.md +9 -3
  416. package/dist/docs/reference/geometry/vector2.md +13 -3
  417. package/dist/docs/reference/geometry/vector3.md +13 -3
  418. package/dist/docs/reference/geometry.md +2 -2
  419. package/dist/docs/reference/mesh/MeshRenderOptions.md +28 -0
  420. package/dist/docs/reference/mesh/RenderMesh.md +68 -0
  421. package/dist/docs/reference/mesh/analyze.md +12 -6
  422. package/dist/docs/reference/mesh/analyzeQuality.md +11 -5
  423. package/dist/docs/reference/mesh/bounds.md +10 -4
  424. package/dist/docs/reference/mesh/categories/operations.md +5 -95
  425. package/dist/docs/reference/mesh/centroid.md +10 -4
  426. package/dist/docs/reference/mesh/extrude.md +11 -5
  427. package/dist/docs/reference/mesh/heightfield.md +11 -5
  428. package/dist/docs/reference/mesh/immutable.md +13 -9
  429. package/dist/docs/reference/mesh/join.md +10 -4
  430. package/dist/docs/reference/mesh/loft.md +11 -5
  431. package/dist/docs/reference/mesh/optimizePlanarPatches.md +11 -5
  432. package/dist/docs/reference/mesh/preflightHeightfield.md +11 -5
  433. package/dist/docs/reference/mesh/preflightThreadSolid.md +10 -4
  434. package/dist/docs/reference/mesh/render.md +57 -0
  435. package/dist/docs/reference/mesh/reverse.md +10 -4
  436. package/dist/docs/reference/mesh/revolve.md +11 -5
  437. package/dist/docs/reference/mesh/signature.md +11 -5
  438. package/dist/docs/reference/mesh/sweep.md +12 -6
  439. package/dist/docs/reference/mesh/threadRidge.md +10 -4
  440. package/dist/docs/reference/mesh/threadSolid.md +10 -4
  441. package/dist/docs/reference/mesh/transform.md +11 -5
  442. package/dist/docs/reference/mesh/validate.md +10 -4
  443. package/dist/docs/reference/mesh/validateSolid.md +10 -4
  444. package/dist/docs/reference/mesh.md +1 -1
  445. package/dist/docs/reference/model/CircleOptions.md +13 -7
  446. package/dist/docs/reference/model/DiagnosticOptions.md +7 -1
  447. package/dist/docs/reference/model/EllipseOptions.md +13 -7
  448. package/dist/docs/reference/model/GenerateCallback.md +7 -1
  449. package/dist/docs/reference/model/GenerateContext.md +14 -39
  450. package/dist/docs/reference/model/GenerationDiagnostic.md +7 -1
  451. package/dist/docs/reference/model/GenerationError.md +8 -2
  452. package/dist/docs/reference/model/HoleCutterOptions.md +17 -10
  453. package/dist/docs/reference/model/HoleCutterOverrun.md +10 -3
  454. package/dist/docs/reference/model/HoleCutterRecess.md +10 -3
  455. package/dist/docs/reference/model/HullOptions.md +13 -6
  456. package/dist/docs/reference/model/ImmutableValue.md +7 -1
  457. package/dist/docs/reference/model/ImplicitOptions.md +12 -6
  458. package/dist/docs/reference/model/JoinOptions.md +76 -0
  459. package/dist/docs/reference/model/JoinTransition.md +54 -0
  460. package/dist/docs/reference/model/KnuckleHinge-type.md +9 -3
  461. package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +7 -1
  462. package/dist/docs/reference/model/KnuckleHingeOptions.md +10 -4
  463. package/dist/docs/reference/model/KnuckleHingeWeb.md +7 -1
  464. package/dist/docs/reference/model/LoftStation.md +16 -9
  465. package/dist/docs/reference/model/Memo.md +54 -0
  466. package/dist/docs/reference/model/ModelProgram.md +7 -1
  467. package/dist/docs/reference/model/PartDeclaration.md +11 -6
  468. package/dist/docs/reference/model/PartGeometry.md +10 -4
  469. package/dist/docs/reference/model/PartOptions.md +11 -6
  470. package/dist/docs/reference/model/PatternSource.md +10 -4
  471. package/dist/docs/reference/model/PlaneOptions.md +11 -4
  472. package/dist/docs/reference/model/PolygonOptions.md +20 -14
  473. package/dist/docs/reference/model/Profile.md +10 -4
  474. package/dist/docs/reference/model/RectangleOptions.md +28 -22
  475. package/dist/docs/reference/model/RegularPolygonOptions.md +13 -7
  476. package/dist/docs/reference/model/Section.md +68 -74
  477. package/dist/docs/reference/model/SectionHullOptions.md +13 -6
  478. package/dist/docs/reference/model/SectionInspection.md +10 -4
  479. package/dist/docs/reference/model/SectionOffsetJoin.md +10 -4
  480. package/dist/docs/reference/model/SectionOffsetOptions.md +12 -6
  481. package/dist/docs/reference/model/Solid.md +101 -53
  482. package/dist/docs/reference/model/SolidInspection.md +10 -4
  483. package/dist/docs/reference/model/SolidSegmentHit.md +11 -5
  484. package/dist/docs/reference/model/StarOptions.md +24 -18
  485. package/dist/docs/reference/model/SvgOrigin.md +10 -4
  486. package/dist/docs/reference/model/SvgPathSectionOptions.md +14 -8
  487. package/dist/docs/reference/model/SvgSectionOptions.md +16 -10
  488. package/dist/docs/reference/model/TextSectionOptions.md +14 -8
  489. package/dist/docs/reference/model/box.md +18 -11
  490. package/dist/docs/reference/model/categories/boolean-operations.md +8 -2
  491. package/dist/docs/reference/model/categories/bounded-surfaces.md +1 -7
  492. package/dist/docs/reference/model/categories/explicit-profiles.md +1 -14
  493. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +6 -20
  494. package/dist/docs/reference/model/categories/generation.md +5 -10
  495. package/dist/docs/reference/model/categories/hinges.md +1 -4
  496. package/dist/docs/reference/model/categories/mesh-inspection.md +2 -6
  497. package/dist/docs/reference/model/categories/primitives.md +5 -21
  498. package/dist/docs/reference/model/categories/sections.md +4 -15
  499. package/dist/docs/reference/model/categories/threads.md +2 -39
  500. package/dist/docs/reference/model/categories/transforms-placement.md +4 -33
  501. package/dist/docs/reference/model/circle.md +10 -4
  502. package/dist/docs/reference/model/cylinder.md +13 -6
  503. package/dist/docs/reference/model/ellipse.md +10 -4
  504. package/dist/docs/reference/model/extrude.md +26 -19
  505. package/dist/docs/reference/model/generate.md +8 -2
  506. package/dist/docs/reference/model/gridPattern.md +15 -9
  507. package/dist/docs/reference/model/heightfield.md +10 -4
  508. package/dist/docs/reference/model/holeCutter.md +10 -3
  509. package/dist/docs/reference/model/hull.md +9 -2
  510. package/dist/docs/reference/model/implicit.md +9 -3
  511. package/dist/docs/reference/model/internalThreadCutter.md +23 -17
  512. package/dist/docs/reference/model/intersect.md +9 -2
  513. package/dist/docs/reference/model/join.md +89 -0
  514. package/dist/docs/reference/model/knuckleHinge.md +7 -1
  515. package/dist/docs/reference/model/linearPattern.md +15 -9
  516. package/dist/docs/reference/model/loft.md +31 -24
  517. package/dist/docs/reference/model/matchProfiles.md +14 -8
  518. package/dist/docs/reference/model/minkowskiSum.md +9 -2
  519. package/dist/docs/reference/model/pathPattern.md +25 -19
  520. package/dist/docs/reference/model/polygon.md +13 -7
  521. package/dist/docs/reference/model/preflightInternalThreadCutter.md +25 -19
  522. package/dist/docs/reference/model/preflightThreadedNut.md +29 -23
  523. package/dist/docs/reference/model/preflightThreadedRod.md +25 -19
  524. package/dist/docs/reference/model/radialPattern.md +15 -9
  525. package/dist/docs/reference/model/rectangle.md +14 -8
  526. package/dist/docs/reference/model/regularPolygon.md +10 -4
  527. package/dist/docs/reference/model/revolve.md +22 -15
  528. package/dist/docs/reference/model/solidFromMesh.md +12 -6
  529. package/dist/docs/reference/model/sphere.md +13 -6
  530. package/dist/docs/reference/model/star.md +12 -6
  531. package/dist/docs/reference/model/stroke.md +21 -15
  532. package/dist/docs/reference/model/svgPathSection.md +12 -6
  533. package/dist/docs/reference/model/svgSection.md +13 -7
  534. package/dist/docs/reference/model/sweep.md +27 -20
  535. package/dist/docs/reference/model/textSection.md +15 -9
  536. package/dist/docs/reference/model/threadRidge.md +21 -15
  537. package/dist/docs/reference/model/threadedNut.md +27 -21
  538. package/dist/docs/reference/model/threadedRod.md +23 -17
  539. package/dist/docs/reference/model/torus.md +20 -13
  540. package/dist/docs/reference/model/tube.md +13 -6
  541. package/dist/docs/reference/model/union.md +9 -2
  542. package/dist/docs/reference/model.md +3 -8
  543. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +7 -1
  544. package/dist/docs/reference/text/VectorFont.md +39 -33
  545. package/dist/docs/reference/text/VectorFontOptions.md +7 -1
  546. package/dist/docs/reference/text/categories/font-preparation.md +1 -13
  547. package/dist/docs/reference/text/prepareVectorFont.md +7 -1
  548. package/dist/docs/reference/text.md +1 -1
  549. package/dist/engine/finalization.js +2 -74
  550. package/dist/engine/index.js +2 -2
  551. package/dist/engine/native/construction-mesh.js +41 -0
  552. package/dist/engine/native/material-components.js +2 -51
  553. package/dist/engine/native/mesh-observation.js +55 -0
  554. package/dist/engine/native/regions.js +2 -1
  555. package/dist/engine/operations/context.js +2 -0
  556. package/dist/engine/operations/extrusion-finishing.js +17 -16
  557. package/dist/engine/operations/join-collar-profile.js +120 -0
  558. package/dist/engine/operations/join.js +508 -0
  559. package/dist/engine/recipe-realization.js +1 -1
  560. package/dist/engine/session/dependencies.js +89 -42
  561. package/dist/engine/session/graph.js +319 -342
  562. package/dist/engine/session/native-cache.js +1 -1
  563. package/dist/engine/session/session.js +5 -5
  564. package/dist/engine/session/snapshot-cache.js +2 -2
  565. package/dist/export/3mf.js +190 -0
  566. package/dist/export/capture.js +178 -0
  567. package/dist/export/glb.js +209 -0
  568. package/dist/export/index.js +5 -0
  569. package/dist/export/limits.js +18 -0
  570. package/dist/export/stl.js +105 -0
  571. package/dist/export/types.js +1 -0
  572. package/dist/export/writer.js +54 -0
  573. package/dist/geometry/bounds-value.js +4 -4
  574. package/dist/geometry/immutable-buffer.js +4 -6
  575. package/dist/geometry/join-geometry.js +839 -0
  576. package/dist/geometry/mesh/mesh-render.js +205 -0
  577. package/dist/geometry/mesh/mesh-solid-intersections.js +43 -17
  578. package/dist/geometry/mesh/mesh-solid.js +6 -2
  579. package/dist/geometry/mesh-api.js +1 -0
  580. package/dist/geometry/region-offset.js +278 -0
  581. package/dist/geometry/regions.js +11 -1
  582. package/dist/model/execution-binding.js +3 -3
  583. package/dist/model/generation.js +2 -2
  584. package/dist/model/immutable-generation-data.js +13 -13
  585. package/dist/model/join.js +1 -0
  586. package/dist/model/operations.js +20 -0
  587. package/dist/model/recipe-declaration.js +1 -0
  588. package/dist/model/shape-handles.js +1 -0
  589. package/package.json +18 -1
  590. package/dist/docs/reference/engine/Export3mfOptions.md +0 -46
  591. package/dist/docs/reference/engine/ExportMeshPart.md +0 -31
  592. package/dist/docs/reference/engine/ModelingLimits.md +0 -121
  593. package/dist/docs/reference/engine/export3mf.md +0 -55
  594. package/dist/docs/reference/mesh/AcmeThreadProfileSpec.md +0 -79
  595. package/dist/docs/reference/mesh/Bevel.md +0 -18
  596. package/dist/docs/reference/mesh/BevelSize.md +0 -14
  597. package/dist/docs/reference/mesh/Bounds2.md +0 -125
  598. package/dist/docs/reference/mesh/Bounds2Data.md +0 -43
  599. package/dist/docs/reference/mesh/Bounds2Input.md +0 -19
  600. package/dist/docs/reference/mesh/Bounds3.md +0 -125
  601. package/dist/docs/reference/mesh/Bounds3Data.md +0 -43
  602. package/dist/docs/reference/mesh/Bounds3Input.md +0 -19
  603. package/dist/docs/reference/mesh/ButtressPressureFlankSide.md +0 -14
  604. package/dist/docs/reference/mesh/ButtressThreadProfileSpec.md +0 -97
  605. package/dist/docs/reference/mesh/CircularPrimitiveOptions.md +0 -60
  606. package/dist/docs/reference/mesh/CurveSamplingOptions.md +0 -69
  607. package/dist/docs/reference/mesh/CustomThreadProfileSpec.md +0 -77
  608. package/dist/docs/reference/mesh/ExtrudeMeshOptions.md +0 -129
  609. package/dist/docs/reference/mesh/ExtrusionSamplingOptions.md +0 -81
  610. package/dist/docs/reference/mesh/Frame3.md +0 -62
  611. package/dist/docs/reference/mesh/GeometryResolution.md +0 -74
  612. package/dist/docs/reference/mesh/GeometrySamplingLimits.md +0 -66
  613. package/dist/docs/reference/mesh/GeometryToleranceOptions.md +0 -46
  614. package/dist/docs/reference/mesh/HeightfieldMeshLimits.md +0 -18
  615. package/dist/docs/reference/mesh/HeightfieldOptions.md +0 -72
  616. package/dist/docs/reference/mesh/HeightfieldPreflight.md +0 -58
  617. package/dist/docs/reference/mesh/ImmutableBuffer.md +0 -108
  618. package/dist/docs/reference/mesh/ImmutableTriangleMesh.md +0 -43
  619. package/dist/docs/reference/mesh/LoftCorrespondence.md +0 -24
  620. package/dist/docs/reference/mesh/LoftMeshStation.md +0 -31
  621. package/dist/docs/reference/mesh/LoftOptions.md +0 -88
  622. package/dist/docs/reference/mesh/LoftPlacement.md +0 -70
  623. package/dist/docs/reference/mesh/ModelingLimits.md +0 -130
  624. package/dist/docs/reference/mesh/NumericArray.md +0 -14
  625. package/dist/docs/reference/mesh/Path2.md +0 -197
  626. package/dist/docs/reference/mesh/Path2Data.md +0 -50
  627. package/dist/docs/reference/mesh/Path2Input.md +0 -20
  628. package/dist/docs/reference/mesh/Path3.md +0 -197
  629. package/dist/docs/reference/mesh/Path3Data.md +0 -50
  630. package/dist/docs/reference/mesh/Path3Input.md +0 -20
  631. package/dist/docs/reference/mesh/PathLocation.md +0 -69
  632. package/dist/docs/reference/mesh/PathNormalGuide.md +0 -43
  633. package/dist/docs/reference/mesh/PathResamplingOptions.md +0 -84
  634. package/dist/docs/reference/mesh/Pivot2Options.md +0 -26
  635. package/dist/docs/reference/mesh/Pivot3Options.md +0 -26
  636. package/dist/docs/reference/mesh/PlanarMeshOptimizationFallbackReason.md +0 -14
  637. package/dist/docs/reference/mesh/PlanarMeshOptimizationOptions.md +0 -160
  638. package/dist/docs/reference/mesh/PlanarMeshOptimizationResult.md +0 -124
  639. package/dist/docs/reference/mesh/PlanarPatchQuality.md +0 -194
  640. package/dist/docs/reference/mesh/RevolveOptions.md +0 -91
  641. package/dist/docs/reference/mesh/SolidMeshValidationOptions.md +0 -38
  642. package/dist/docs/reference/mesh/SquareThreadProfileSpec.md +0 -79
  643. package/dist/docs/reference/mesh/SweepOptions.md +0 -113
  644. package/dist/docs/reference/mesh/SweepOrientation.md +0 -113
  645. package/dist/docs/reference/mesh/ThreadEndStyle.md +0 -14
  646. package/dist/docs/reference/mesh/ThreadEndTreatmentOptions.md +0 -117
  647. package/dist/docs/reference/mesh/ThreadHandedness.md +0 -14
  648. package/dist/docs/reference/mesh/ThreadLeadInEnvelope.md +0 -14
  649. package/dist/docs/reference/mesh/ThreadLeadInShape.md +0 -14
  650. package/dist/docs/reference/mesh/ThreadProfile.md +0 -86
  651. package/dist/docs/reference/mesh/ThreadProfileBaseSpec.md +0 -53
  652. package/dist/docs/reference/mesh/ThreadProfileSpec.md +0 -23
  653. package/dist/docs/reference/mesh/ThreadRidgeOptions.md +0 -145
  654. package/dist/docs/reference/mesh/ThreadSolidOptions.md +0 -222
  655. package/dist/docs/reference/mesh/ThreadSolidPreflight.md +0 -58
  656. package/dist/docs/reference/mesh/Transform2.md +0 -256
  657. package/dist/docs/reference/mesh/Transform2Data.md +0 -14
  658. package/dist/docs/reference/mesh/Transform2Input.md +0 -19
  659. package/dist/docs/reference/mesh/Transform3.md +0 -296
  660. package/dist/docs/reference/mesh/Transform3Data.md +0 -17
  661. package/dist/docs/reference/mesh/Transform3Input.md +0 -19
  662. package/dist/docs/reference/mesh/TrapezoidalThreadProfileSpec.md +0 -96
  663. package/dist/docs/reference/mesh/TriangleMesh.md +0 -34
  664. package/dist/docs/reference/mesh/TriangleMeshAnalysis.md +0 -129
  665. package/dist/docs/reference/mesh/TriangleMeshAnalysisOptions.md +0 -79
  666. package/dist/docs/reference/mesh/TriangleMeshInput.md +0 -19
  667. package/dist/docs/reference/mesh/TriangleMeshMeasurements.md +0 -79
  668. package/dist/docs/reference/mesh/TriangleMeshQualityOptions.md +0 -43
  669. package/dist/docs/reference/mesh/TriangleMeshQualityReport.md +0 -194
  670. package/dist/docs/reference/mesh/TriangleMeshSignature.md +0 -111
  671. package/dist/docs/reference/mesh/TriangleMeshSignatureOptions.md +0 -46
  672. package/dist/docs/reference/mesh/TriangleMeshSignatureTolerances.md +0 -34
  673. package/dist/docs/reference/mesh/TriangleMeshTopologyAnalysis.md +0 -131
  674. package/dist/docs/reference/mesh/TriangleMeshValidationOptions.md +0 -55
  675. package/dist/docs/reference/mesh/TriangularThreadProfileSpec.md +0 -95
  676. package/dist/docs/reference/mesh/Vector2.md +0 -270
  677. package/dist/docs/reference/mesh/Vector2Data.md +0 -14
  678. package/dist/docs/reference/mesh/Vector2Input.md +0 -19
  679. package/dist/docs/reference/mesh/Vector3.md +0 -282
  680. package/dist/docs/reference/mesh/Vector3Data.md +0 -14
  681. package/dist/docs/reference/mesh/Vector3Input.md +0 -19
  682. package/dist/docs/reference/model/AcmeThreadProfileSpec.md +0 -80
  683. package/dist/docs/reference/model/Anchor3.md +0 -55
  684. package/dist/docs/reference/model/AttachOptions.md +0 -69
  685. package/dist/docs/reference/model/Bevel.md +0 -19
  686. package/dist/docs/reference/model/BevelSize.md +0 -15
  687. package/dist/docs/reference/model/Bounds2-type.md +0 -125
  688. package/dist/docs/reference/model/Bounds2Data.md +0 -44
  689. package/dist/docs/reference/model/Bounds2Input.md +0 -19
  690. package/dist/docs/reference/model/Bounds2Options.md +0 -110
  691. package/dist/docs/reference/model/Bounds3-type.md +0 -125
  692. package/dist/docs/reference/model/Bounds3Data.md +0 -44
  693. package/dist/docs/reference/model/Bounds3Input.md +0 -19
  694. package/dist/docs/reference/model/Bounds3Options.md +0 -110
  695. package/dist/docs/reference/model/BoxEdge.md +0 -15
  696. package/dist/docs/reference/model/BoxEdgeSelection.md +0 -19
  697. package/dist/docs/reference/model/BoxEdgeTreatments.md +0 -20
  698. package/dist/docs/reference/model/BoxOptions.md +0 -92
  699. package/dist/docs/reference/model/ButtressPressureFlankSide.md +0 -15
  700. package/dist/docs/reference/model/ButtressThreadProfileSpec.md +0 -98
  701. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +0 -35
  702. package/dist/docs/reference/model/CircleContourOptions.md +0 -21
  703. package/dist/docs/reference/model/CircularPrimitiveOptions.md +0 -62
  704. package/dist/docs/reference/model/Computed.md +0 -44
  705. package/dist/docs/reference/model/ComputedValue.md +0 -24
  706. package/dist/docs/reference/model/Contour.md +0 -24
  707. package/dist/docs/reference/model/CorrespondingComponent.md +0 -46
  708. package/dist/docs/reference/model/CorrespondingContour.md +0 -46
  709. package/dist/docs/reference/model/CorrespondingProfile.md +0 -22
  710. package/dist/docs/reference/model/CorrespondingProfileStation.md +0 -27
  711. package/dist/docs/reference/model/CurveSamplingOptions.md +0 -68
  712. package/dist/docs/reference/model/CustomThreadProfileSpec.md +0 -78
  713. package/dist/docs/reference/model/CylinderOptions.md +0 -58
  714. package/dist/docs/reference/model/EdgeTreatment.md +0 -22
  715. package/dist/docs/reference/model/EllipseContourOptions.md +0 -21
  716. package/dist/docs/reference/model/EndTreatments.md +0 -39
  717. package/dist/docs/reference/model/ExtrudeMeshOptions.md +0 -133
  718. package/dist/docs/reference/model/ExtrudeOptions.md +0 -149
  719. package/dist/docs/reference/model/ExtrusionSamplingOptions.md +0 -84
  720. package/dist/docs/reference/model/Frame3.md +0 -63
  721. package/dist/docs/reference/model/GeometryError.md +0 -102
  722. package/dist/docs/reference/model/GeometryErrorCode.md +0 -15
  723. package/dist/docs/reference/model/GeometryErrorContext.md +0 -35
  724. package/dist/docs/reference/model/GeometryResolution.md +0 -70
  725. package/dist/docs/reference/model/GeometrySamplingLimits.md +0 -62
  726. package/dist/docs/reference/model/GeometryToleranceOptions.md +0 -46
  727. package/dist/docs/reference/model/GridPatternOptions.md +0 -50
  728. package/dist/docs/reference/model/HeightfieldOptions.md +0 -68
  729. package/dist/docs/reference/model/ImmutableBuffer-type.md +0 -108
  730. package/dist/docs/reference/model/ImmutableTriangleMesh.md +0 -43
  731. package/dist/docs/reference/model/InternalThreadCutterOptions.md +0 -216
  732. package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +0 -77
  733. package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +0 -47
  734. package/dist/docs/reference/model/KnuckleHingeSpec.md +0 -18
  735. package/dist/docs/reference/model/LinearPatternOptions.md +0 -39
  736. package/dist/docs/reference/model/LoftCorrespondence.md +0 -27
  737. package/dist/docs/reference/model/LoftOptions.md +0 -91
  738. package/dist/docs/reference/model/LoftPlacement.md +0 -73
  739. package/dist/docs/reference/model/MatchProfilesOptions.md +0 -35
  740. package/dist/docs/reference/model/ModelingLimits.md +0 -126
  741. package/dist/docs/reference/model/NumericArray.md +0 -14
  742. package/dist/docs/reference/model/Path2-type.md +0 -196
  743. package/dist/docs/reference/model/Path2Data.md +0 -50
  744. package/dist/docs/reference/model/Path2Input.md +0 -20
  745. package/dist/docs/reference/model/Path3-type.md +0 -196
  746. package/dist/docs/reference/model/Path3Data.md +0 -50
  747. package/dist/docs/reference/model/Path3Input.md +0 -20
  748. package/dist/docs/reference/model/PathLocation.md +0 -69
  749. package/dist/docs/reference/model/PathNormalGuide.md +0 -46
  750. package/dist/docs/reference/model/PathOptions.md +0 -38
  751. package/dist/docs/reference/model/PathPatternOptions.md +0 -48
  752. package/dist/docs/reference/model/PathResamplingOptions.md +0 -84
  753. package/dist/docs/reference/model/Pivot2Options.md +0 -28
  754. package/dist/docs/reference/model/Pivot3Options.md +0 -28
  755. package/dist/docs/reference/model/PolygonData.md +0 -44
  756. package/dist/docs/reference/model/PrimitiveAttachment.md +0 -39
  757. package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +0 -110
  758. package/dist/docs/reference/model/PrintableThreadFit.md +0 -15
  759. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +0 -51
  760. package/dist/docs/reference/model/ProfileComponent2.md +0 -46
  761. package/dist/docs/reference/model/ProfileContour2.md +0 -36
  762. package/dist/docs/reference/model/ProfileSpan2.md +0 -47
  763. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +0 -41
  764. package/dist/docs/reference/model/RadialPatternOptions.md +0 -59
  765. package/dist/docs/reference/model/RadialSizing.md +0 -15
  766. package/dist/docs/reference/model/RadialSizingOptions.md +0 -40
  767. package/dist/docs/reference/model/RectangleContourOptions.md +0 -72
  768. package/dist/docs/reference/model/RectangleCornerTreatment.md +0 -40
  769. package/dist/docs/reference/model/RectangleCornerTreatments.md +0 -20
  770. package/dist/docs/reference/model/RegionData.md +0 -19
  771. package/dist/docs/reference/model/RevolveOptions.md +0 -94
  772. package/dist/docs/reference/model/RoundedEdgeTreatment.md +0 -96
  773. package/dist/docs/reference/model/SmoothEdgeTreatment.md +0 -76
  774. package/dist/docs/reference/model/SphereOptions.md +0 -20
  775. package/dist/docs/reference/model/SquareThreadProfileSpec.md +0 -80
  776. package/dist/docs/reference/model/StarContourOptions.md +0 -81
  777. package/dist/docs/reference/model/StrokeCap.md +0 -16
  778. package/dist/docs/reference/model/StrokeJoin.md +0 -16
  779. package/dist/docs/reference/model/StrokeOptions.md +0 -91
  780. package/dist/docs/reference/model/SweepOptions.md +0 -116
  781. package/dist/docs/reference/model/SweepOrientation.md +0 -116
  782. package/dist/docs/reference/model/ThreadBevelOptions.md +0 -35
  783. package/dist/docs/reference/model/ThreadEndStyle.md +0 -15
  784. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +0 -118
  785. package/dist/docs/reference/model/ThreadHandedness.md +0 -15
  786. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +0 -15
  787. package/dist/docs/reference/model/ThreadLeadInShape.md +0 -15
  788. package/dist/docs/reference/model/ThreadProfile.md +0 -87
  789. package/dist/docs/reference/model/ThreadProfileBaseSpec.md +0 -54
  790. package/dist/docs/reference/model/ThreadProfileSpec.md +0 -24
  791. package/dist/docs/reference/model/ThreadRidgeOptions.md +0 -141
  792. package/dist/docs/reference/model/ThreadSolidPreflight.md +0 -59
  793. package/dist/docs/reference/model/ThreadedNutOptions.md +0 -263
  794. package/dist/docs/reference/model/ThreadedNutPreflight.md +0 -111
  795. package/dist/docs/reference/model/ThreadedNutShape.md +0 -15
  796. package/dist/docs/reference/model/ThreadedRodOptions.md +0 -216
  797. package/dist/docs/reference/model/TorusOptions.md +0 -110
  798. package/dist/docs/reference/model/Transform2-type.md +0 -257
  799. package/dist/docs/reference/model/Transform2Data.md +0 -16
  800. package/dist/docs/reference/model/Transform2Input.md +0 -21
  801. package/dist/docs/reference/model/Transform3-type.md +0 -297
  802. package/dist/docs/reference/model/Transform3Data.md +0 -19
  803. package/dist/docs/reference/model/Transform3Input.md +0 -21
  804. package/dist/docs/reference/model/TrapezoidalThreadProfileSpec.md +0 -97
  805. package/dist/docs/reference/model/TriangleMesh.md +0 -34
  806. package/dist/docs/reference/model/TriangleMeshAnalysis.md +0 -129
  807. package/dist/docs/reference/model/TriangleMeshMeasurements.md +0 -79
  808. package/dist/docs/reference/model/TriangleMeshTopologyAnalysis.md +0 -131
  809. package/dist/docs/reference/model/TriangularThreadProfileSpec.md +0 -96
  810. package/dist/docs/reference/model/TubeOptions.md +0 -67
  811. package/dist/docs/reference/model/Vector2-type.md +0 -271
  812. package/dist/docs/reference/model/Vector2Data.md +0 -15
  813. package/dist/docs/reference/model/Vector2Input.md +0 -21
  814. package/dist/docs/reference/model/Vector3-type.md +0 -283
  815. package/dist/docs/reference/model/Vector3Data.md +0 -15
  816. package/dist/docs/reference/model/Vector3Input.md +0 -21
  817. package/dist/docs/reference/model/VectorTextLayout.md +0 -40
  818. package/dist/docs/reference/model/VectorTextMetrics.md +0 -100
  819. package/dist/docs/reference/model/bounds2.md +0 -37
  820. package/dist/docs/reference/model/bounds3.md +0 -37
  821. package/dist/docs/reference/model/categories/bounds.md +0 -38
  822. package/dist/docs/reference/model/categories/contracts.md +0 -16
  823. package/dist/docs/reference/model/categories/core-values-errors.md +0 -44
  824. package/dist/docs/reference/model/categories/paths.md +0 -42
  825. package/dist/docs/reference/model/categories/resolution.md +0 -20
  826. package/dist/docs/reference/model/immutableBuffer.md +0 -49
  827. package/dist/docs/reference/model/isGeometryError.md +0 -34
  828. package/dist/docs/reference/model/path2.md +0 -54
  829. package/dist/docs/reference/model/path3.md +0 -49
  830. package/dist/docs/reference/model/transform2.md +0 -46
  831. package/dist/docs/reference/model/transform3.md +0 -48
  832. package/dist/docs/reference/model/vector2.md +0 -40
  833. package/dist/docs/reference/model/vector3.md +0 -47
  834. package/dist/docs/reference/text/Bounds2Data.md +0 -34
  835. package/dist/docs/reference/text/Vector2Data.md +0 -7
  836. package/dist/docs/reference/text/VectorTextArcBaseline.md +0 -53
  837. package/dist/docs/reference/text/VectorTextLayout.md +0 -34
  838. package/dist/docs/reference/text/VectorTextLayoutOptions.md +0 -111
  839. package/dist/docs/reference/text/VectorTextMetrics.md +0 -94
  840. package/dist/docs/reference/text/VectorTextOptions.md +0 -50
  841. package/dist/engine/export-3mf.js +0 -23
  842. package/dist/engine/serialize-3mf.js +0 -116
  843. /package/dist/{engine → geometry/mesh}/mesh-view-cache.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # @metamesh/modeling
2
2
 
3
+ ## 0.19.0
4
+
5
+ ### Minor Changes
6
+
7
+ - c9de510: Extend straight extrusion end finishing to concave outlines, holes, and disconnected regions.
8
+ Add independent-solid `join` with a feature datum and a smooth (default) or straight width/height
9
+ transition against validated planar, angled, and curved sampled support patches. Both profiles use
10
+ the same support, collar, and whole-volume containment proofs.
11
+
12
+ Breaking: compiled Generators require Modeling runtime major 12. Rebuild packages for the new
13
+ host contract; old compiled runtimes are rejected. Joining preserves the supplied operands and
14
+ does not promise a circular fillet radius or perform automatic placement.
15
+
16
+ Replace named lazy `computed` readers with eager `memo(fn, ...args)` values. Stable pure helpers
17
+ reuse immutable arguments and tracked current params/context reads, with bounded recent histories
18
+ and native geometry retention. Update Studio diagnostics to warn about fresh function identities.
19
+ All authored and compiled callers must use the new API; there is no compatibility surface.
20
+
21
+ - de3d234: Add runtime-neutral STL, 3MF, and GLB export under `@metamesh/modeling/export`, with isolated
22
+ format entry points and backpressure-aware streaming writers. All formats consume captured local
23
+ geometry, placement, and appearance, with independent limits, cancellation, and structured
24
+ information-loss diagnostics. Standard 3MF color groups carry appearance, while base materials
25
+ and multiproperties retain explicit material identities independently of RGB values. These
26
+ properties do not assign slicer filaments or physical device trays. Add `mesh.render()` for
27
+ shared crease-aware display buffers that preserve exact triangle coordinates.
28
+
29
+ Breaking: remove `export3mf` and export types from `/engine`, remove SDK export request protocols
30
+ and `toWorldMeshes`, and return owned `Uint8Array` bytes with format metadata from the shared
31
+ exporters. Studio uses one export worker for every format. CLI captures use format version 3;
32
+ replace `run --export-3mf` with `metamesh export RUN_DIRECTORY --format 3mf --output model.3mf`.
33
+ Captured-run export also supports STL and GLB without rerunning source. No legacy export paths
34
+ or capture readers are retained.
35
+
3
36
  ## 0.18.0
4
37
 
5
38
  ### Minor Changes
package/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # `@metamesh/modeling`
2
2
 
3
- Build parametric 3D models in TypeScript. Compose immutable shapes with a fluent API, run them in
4
- Node or browser Workers, and work with the resulting geometry in your own application.
3
+ Build parametric 3D models in TypeScript. Combine shapes, add holes and threads, and change the
4
+ dimensions without rewriting the model. Run it in Node.js or a browser Worker. Use the resulting
5
+ meshes in your own application or export them for printing.
5
6
 
6
7
  > **Preview:** `0.x` minor releases may break compatibility. Patches remain compatible within the
7
8
  > same minor line.
@@ -16,12 +17,14 @@ The package publishes ES modules only. Use Node.js 24 or newer. TypeScript consu
16
17
  TypeScript 6.0 or newer, `strict` checking, and `NodeNext` or `Bundler` module resolution.
17
18
  Browser hosts need an ES2023-compatible runtime and WebAssembly; run the engine in a Worker.
18
19
 
19
- Modeling works independently of Studio and the Generator SDK. Add the SDK when you need Generator
20
- controls and presets, Testkit for testing helpers, or the CLI for local authoring tools.
20
+ Use Modeling on its own, or add the [Generator SDK](https://github.com/JasonKoolman/metamesh/blob/main/packages/generator-sdk/README.md)
21
+ for controls and presets, [Testkit](https://github.com/JasonKoolman/metamesh/blob/main/packages/testkit/README.md)
22
+ for tests, and the [CLI](https://github.com/JasonKoolman/metamesh/blob/main/packages/cli/README.md)
23
+ to check, run, and render local source. Studio isn't required.
21
24
 
22
25
  ## Start modeling
23
26
 
24
- Define a plate with an adjustable width and a through hole, then build it with the engine:
27
+ This Node.js example builds a plate with an adjustable width and a through hole:
25
28
 
26
29
  ```ts
27
30
  import { box, cylinder, generate } from "@metamesh/modeling";
@@ -39,42 +42,34 @@ const result = engine.run(model, { width: 30 }, { resolution: { maxChordError: 0
39
42
  console.log(result.bounds, result.stats.signedVolume, result.stats.generateMs);
40
43
  ```
41
44
 
42
- `generate` receives typed parameters and returns named parts. Use ordinary TypeScript functions,
43
- conditionals, and loops to organize the model. `result.parts` contains its manufacturing meshes,
44
- placement, colors, and measurements; `result.part("plate")` looks up a part by its semantic ID.
45
- Authored output uses `PartDeclaration`; completed engine output uses `ModelPart` and `ModelResult`
46
- from `/engine`. A completed part's top-level buffers are in world coordinates; `part.geometry`
47
- holds reusable local geometry.
48
- `stats.byteCount` counts finalized world-space position and index buffer bytes, counting shared
49
- buffers once; it does not measure local resources, transfer size, or total working memory.
50
- Both local and world-space completed measurements include `shellCount` and `edgeCount`;
51
- unlike optional topology analysis of arbitrary meshes, these counts are always available.
52
-
53
- Lengths use millimetres and rotations use degrees. Mesh and aggregate measurements use
54
- `signedVolume` in mm³ and `surfaceArea` in mm². Engine durations use `buildMs`, `finalizeMs`,
55
- and `generateMs`; `generateMs` includes cleanup. Physical curve resolution applies to both
56
- preview and manufacturing output. Browser hosts also configure the WASM asset; see the
45
+ The generation callback reads typed values through `params` and returns named parts. Organize the
46
+ model with ordinary TypeScript functions, conditionals, and loops. `result.part("plate")` finds the plate by its ID;
47
+ `result.parts` contains all the completed parts, with their meshes, placement, colors, and measurements.
48
+
49
+ Lengths use millimetres and rotations use degrees. `maxChordError` controls physical curve
50
+ sampling in both preview and manufacturing output. Browser hosts also configure the WebAssembly
51
+ asset and run the engine in a Worker; see the
57
52
  [hosting guide](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/engine/hosting.mdx).
58
53
 
59
54
  ## Modeling capabilities
60
55
 
61
- | Area | Capabilities |
62
- | --------------------- | --------------------------------------------------------------------------------------------------------------------- |
63
- | Shapes and sections | Solid primitives, filled 2D shapes with holes, Booleans, hulls, 2D offsets, splitting, and primitive edge treatments. |
64
- | Sweeps and surfaces | Extrusion, revolution, sweeps, lofts with explicit profile correspondence, heightfields, and implicit surfaces. |
65
- | Paths and placement | Immutable vectors, paths, transforms, and bounds; anchors, layout, and linear, radial, grid, and path patterns. |
66
- | SVG and text | Bounded SVG fills and strokes, prepared font outlines, and vector text layout. |
67
- | Mechanical geometry | Printable threads, knuckle joints, gear profiles, fastener standards, and fit calculations. |
68
- | Meshes and inspection | Indexed mesh construction and conversion, measurements, spatial queries, topology checks, and bounded preflight. |
56
+ | Area | Capabilities |
57
+ | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
58
+ | Shapes and sections | Solid primitives, filled 2D shapes with holes, Booleans, hulls, 2D offsets, splitting, edge treatments, and controlled solid joins. |
59
+ | Sweeps and surfaces | Extrusion, revolution, sweeps, lofts with explicit profile correspondence, heightfields, and implicit surfaces. |
60
+ | Paths and placement | Immutable vectors, paths, transforms, and bounds; anchors, layout, and linear, radial, grid, and path patterns. |
61
+ | SVG and text | Bounded SVG fills and strokes, prepared font outlines, and vector text layout. |
62
+ | Mechanical geometry | Printable threads, knuckle joints, gear profiles, fastener standards, and fit calculations. |
63
+ | Meshes and inspection | Indexed mesh construction and conversion, measurements, spatial queries, topology checks, and bounded preflight. |
69
64
 
70
- The [concepts guide](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/develop/geometry-package.mdx)
65
+ The [geometry values guide](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/develop/geometry-values.mdx)
71
66
  helps you choose a representation. The [recipes](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/develop/geometry-recipes.mdx)
72
67
  show how these capabilities fit together.
73
68
 
74
69
  ## Pure triangle meshes
75
70
 
76
- Import the mesh module as `mesh` from `@metamesh/modeling/geometry/mesh` to construct and process triangle
77
- buffers without an engine:
71
+ Use `@metamesh/modeling/geometry/mesh` when you want to construct and process triangle buffers
72
+ without an engine:
78
73
 
79
74
  ```ts
80
75
  import { rectangleContour, transform3 } from "@metamesh/modeling/geometry";
@@ -85,24 +80,25 @@ const positioned = mesh.transform(plate, transform3().translate([10, 0, 0]));
85
80
  const facts = mesh.analyze(positioned, { requireClosed: true });
86
81
  ```
87
82
 
88
- Constructors return ordinary `TriangleMesh` values with `positions` and `indices`.
89
- `mesh.join` concatenates meshes; overlapping geometry remains overlapping.
90
- `mesh.optimizePlanarPatches` returns the optimized mesh and its report.
91
- Use `mesh.threadRidge` for a helical ridge, `mesh.threadSolid` for a complete threaded cylinder,
92
- and `mesh.preflightThreadSolid` for its conservative sampling and allocation estimate.
93
- `mesh.loft(stations)` uses direct correspondence by default, retaining the supplied seams and vertices.
83
+ Constructors return `TriangleMesh` values with `positions` and `indices`. `mesh.join` concatenates
84
+ buffers; it doesn't perform a solid union, so overlapping geometry remains overlapping.
85
+ `mesh.loft(stations)` retains the supplied seams and vertices through direct correspondence by default.
86
+ `mesh.optimizePlanarPatches` returns an optimized mesh together with its report.
87
+
88
+ For threads, use `mesh.threadRidge` for a helical ridge or `mesh.threadSolid` for a complete threaded
89
+ cylinder. `mesh.preflightThreadSolid` estimates sampling and allocation before construction.
94
90
 
95
- Use `mesh.immutable` to capture mesh buffers in computed data. Primitive contour constructors
96
- return frozen arrays of frozen points, suitable for explicit `computed` dependencies. To edit a
91
+ Use `mesh.immutable` to capture mesh buffers in memoized data. Primitive contour constructors
92
+ return frozen arrays of frozen points, suitable for `memo` arguments. To edit a
97
93
  contour, create owned points first: `contour.map(([x, y]) => [x, y])`.
98
94
 
99
95
  Import the mesh module directly so bundlers can remove unused operations and their dependencies.
100
96
 
101
97
  ## Reuse unchanged work
102
98
 
103
- Shape constructors and fluent methods create immutable recipes; they leave their inputs unchanged.
104
- Construction needs no engine. Generation and geometry observations run synchronously in a host
105
- execution, which owns native allocations and cleanup.
99
+ Shape constructors and fluent methods create immutable recipes, leaving their inputs unchanged.
100
+ You can declare shapes before creating an engine. The engine evaluates them during a synchronous
101
+ run and manages native allocations and cleanup.
106
102
 
107
103
  Use shape methods for fluent modeling: `body.union(boss).subtract(bore).intersect(envelope)`.
108
104
  Each Boolean method accepts one same-dimensional shape or a readonly array; an empty array preserves
@@ -115,28 +111,31 @@ Prefer `section.extrude(options)` in a modeling sequence. Imported `extrude(prof
115
111
  `Section | CorrespondingProfile` for reusable profile functions; `revolve` and `sweep` follow the same
116
112
  convention. Use `mesh.extrude(contour, options)` for pure triangle-buffer construction.
117
113
 
118
- Use `engine.run()` for an isolated build and `engine.createSession()` for repeated edits that reuse
119
- computations. `computed` caches expensive geometry or data: read parameters inside its callback for
120
- automatic tracking, and list changing outer captures explicitly. Keep final part placement separate
121
- from local geometry to move instances without rebuilding them. Both run methods return durable
122
- immutable results; dispose only reusable sessions when finished. Existing results remain usable.
114
+ Use `engine.run()` for a single build and `engine.createSession()` for repeated edits.
115
+ Inside generation, `memo(fn, ...args)` reuses expensive pure calculations. Define helpers outside
116
+ generation, pass immutable inputs, and pass the current `params` to track the fields a helper reads.
117
+ Keep final part placement separate from local geometry so moving a part can reuse its mesh.
118
+ Results are immutable and remain usable after later runs. Call `session.dispose()` when you're
119
+ finished with a session; individual results need no disposal.
123
120
 
124
121
  Use `part(id, { geometry, transform: transform3().rotate([0, 0, 90]).translate([20, 0, 0]) })`
125
122
  for final placement. The transform accepts a fluent value or row-major 16-number matrix, including
126
123
  pattern and attachment outputs; omission means identity. Only translation and proper rotation are
127
124
  allowed. Completed parts expose the copied frozen matrix as `part.transform`.
128
125
 
129
- Parameters and computed results expose `ImmutableValue<T>`: nested objects, arrays, and tuples are
130
- readonly, matching their captured runtime data. Copy data before editing it; fluent value methods
131
- and explicit buffer `copy()` methods retain their ordinary return types.
126
+ ### Parameters and validation
127
+
128
+ Parameters and memo results use `ImmutableValue<T>`: nested objects, arrays, and tuples are
129
+ readonly. Copy data before editing it. Fluent methods and explicit buffer `copy()` methods keep
130
+ their ordinary return types.
132
131
 
133
132
  Parameters use an object map; named interfaces and nested arrays or tuples remain supported.
134
133
  Each run recaptures mutable caller data, including mutable children of frozen objects. Sessions
135
134
  reuse unchanged complex parameter identities only when their complete data graph is immutable.
136
- Execution checks that values are capturable data. Ordinary class instances such as `Date`, functions,
135
+ Values must be data the engine can capture. Ordinary class instances such as `Date`, functions,
137
136
  and mutable typed arrays reject at runtime; use scalar dates, prepared services, or explicit
138
- `immutableBuffer` captures as appropriate. TypeScript's structural object constraint rejects scalar
139
- parameter types but does not prove that an arbitrary object has a plain-data prototype.
137
+ `immutableBuffer` captures as appropriate. TypeScript types alone don't establish that an object
138
+ contains supported data.
140
139
 
141
140
  The context's `assert` reports generation diagnostics; it does not act as a TypeScript narrowing
142
141
  assertion. When narrowing is needed, use a conditional guard such as
@@ -145,13 +144,29 @@ assertion. When narrowing is needed, use a conditional guard such as
145
144
  Use `session.check(parameters)` or standalone `checkModel(program, parameters)` to check declarations
146
145
  and reached assertions without finalizing output. Use `run()` to evaluate and finalize geometry.
147
146
  Checks return expected assertion errors and warnings; unexpected execution and geometry failures throw.
148
- Export captured parts with standalone `export3mf(parts, options)` from `/engine`; it needs no engine
149
- and never blocks generation. Export limits are explicit. Immutable result buffers support standard
150
- iteration and `.at(index)` for reads, or `.copy()` for owned typed arrays.
151
147
 
152
148
  See [generation and caching](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/develop/code-project-contract.mdx)
153
149
  for dependency rules, immutable data, and session ownership.
154
150
 
151
+ ## Inspect and export parts
152
+
153
+ Authored parts use `PartDeclaration`; completed output uses `ModelPart` and `ModelResult` from
154
+ `/engine`. A completed part's top-level buffers contain world coordinates; `part.geometry` holds
155
+ reusable local geometry. Read immutable buffers through iteration or `.at(index)`, or use `.copy()`
156
+ to get an owned typed array.
157
+
158
+ Local and world-space measurements include `signedVolume` in mm³, `surfaceArea` in mm²,
159
+ `shellCount`, and `edgeCount`. Completed parts always include the topology counts, even when
160
+ optional topology analysis of an arbitrary mesh would omit them.
161
+
162
+ Result statistics include `buildMs`, `finalizeMs`, and `generateMs`; `generateMs` includes cleanup.
163
+ `stats.byteCount` counts finalized world-space position and index buffer bytes, counting shared
164
+ buffers once. It doesn't measure local resources, transfer size, or total working memory.
165
+
166
+ Export `result.parts` as STL, 3MF, or GLB with `@metamesh/modeling/export`. Export needs no engine.
167
+ The [hosting guide](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/engine/hosting.mdx#export-the-completed-result)
168
+ covers saving files and choosing a format.
169
+
155
170
  ## API discovery and ownership
156
171
 
157
172
  | Import | Responsibility |
@@ -159,7 +174,8 @@ for dependency rules, immutable data, and session ownership.
159
174
  | [`@metamesh/modeling`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/model/index.mdx) | Shapes, fluent values, modeling operations, and generation programs. |
160
175
  | [`@metamesh/modeling/geometry`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/geometry/index.mdx) | Pure TypeScript geometry, sampling, numerical helpers, and mesh contracts without a native engine. |
161
176
  | [`@metamesh/modeling/geometry/mesh`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/mesh/index.mdx) | Triangle mesh construction, processing, and inspection through direct `mesh.*` imports. |
162
- | [`@metamesh/modeling/engine`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/engine/index.mdx) | Host initialization, execution, resource limits, and 3MF export. |
177
+ | [`@metamesh/modeling/engine`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/engine/index.mdx) | Host initialization, execution, and resource limits. |
178
+ | [`@metamesh/modeling/export`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/export/index.mdx) | STL, 3MF, and GLB export. |
163
179
  | [`@metamesh/modeling/text`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/text/index.mdx) | Optional font preparation and reusable vector layouts from supplied bytes. |
164
180
 
165
181
  Font preparation requires the optional `fontkit` peer; add `woff2-encoder` for WOFF2 input. Models
@@ -1,5 +1,4 @@
1
1
  import type { ImmutableTriangleMesh } from "@metamesh/modeling/geometry";
2
- import type { TriangleMeshInput } from "@metamesh/modeling/geometry";
3
2
  import type {
4
3
  Bounds3Data,
5
4
  GenerationDiagnostic,
@@ -147,22 +146,22 @@ export interface ModelResult {
147
146
  }
148
147
  /** Known dependencies for inspection; plain JavaScript bindings do not reveal their parameter origin. */
149
148
  export interface ModelDependencies {
150
- /** Parameter keys read outside computed callbacks, affecting structure or ordinary code. */
149
+ /** Parameter keys read outside memo functions, affecting structure or ordinary code. */
151
150
  readonly modelParameters: readonly string[];
152
151
  /** Direct dependencies recorded by successfully evaluated computations. */
153
152
  readonly computations: readonly {
154
- /** Session-local computation identity. */
153
+ /** Revision-local diagnostic memo identity; it is not a cache key. */
155
154
  readonly id: string;
156
155
  /** Direct top-level parameter reads. */
157
156
  readonly parameters: readonly string[];
158
- /** Direct computed-reader dependencies. */
157
+ /** Known object-value dependencies between memo calls; scalar origins are not observable. */
159
158
  readonly computations: readonly string[];
160
159
  }[];
161
- /** Part reader roots and known transitive parameter dependencies. */
160
+ /** Known memo origins of part geometry and placement, and their parameter dependencies. */
162
161
  readonly parts: readonly {
163
162
  /** Stable semantic output part identity. */
164
163
  readonly id: string;
165
- /** Computed readers supplied as geometry or placement roots. */
164
+ /** Memo calls known to contribute object values to geometry or placement. */
166
165
  readonly computations: readonly string[];
167
166
  /** Known transitive parameter dependencies through these roots. */
168
167
  readonly parameters: readonly string[];
@@ -187,26 +186,6 @@ export interface ModelSession<P extends object> {
187
186
  /** Releases session ownership; idempotent, returned results remain usable. */
188
187
  dispose(): void;
189
188
  }
190
- /**
191
- * Manufacturing buffers accepted by the standalone mesh exporter.
192
- */
193
- export type ExportMeshPart = TriangleMeshInput & {
194
- /** Stable canonical lowercase identity; unique within the containing topology or output. */
195
- readonly id: string;
196
- /** Optional six-digit hex RGB display color. */
197
- readonly color?: string;
198
- };
199
- /**
200
- * Completed-mesh serialization settings; filename selection belongs to the host.
201
- */
202
- export interface Export3mfOptions {
203
- /** Trusted export allocation and aggregate output ceilings; omitted fields use package defaults. */
204
- readonly limits?: Partial<ModelingLimits>;
205
- /** Optional bounded geometric solid checks on captured buffers; defaults to indexed topology validation. */
206
- readonly meshValidation?: "topology" | "solid";
207
- /** Document display name; defaults to MetaMesh model. */
208
- readonly name?: string;
209
- }
210
189
  /** Kernel asset initialization. Networking and Worker ownership remain with the host. */
211
190
  export interface ModelEngineOptions {
212
191
  /** Fixed kernel WASM asset URL; defaults to the package asset. Browser hosts supply their emitted URL. */
@@ -215,27 +194,7 @@ export interface ModelEngineOptions {
215
194
  readonly limits?: Partial<ModelingLimits>;
216
195
  }
217
196
 
218
- /**
219
- * Serializes captured manufacturing meshes as millimetre 3MF without initializing an engine.
220
- * Captures input arrays and options before awaiting; later mutations, runs and session cleanup
221
- * cannot change the exported geometry. Trusted limits default to the package output ceilings.
222
- *
223
- * @example Export a pure mesh without an engine
224
- * ```ts
225
- * import { export3mf } from "@metamesh/modeling/engine";
226
- * import * as mesh from "@metamesh/modeling/geometry/mesh";
227
- * import { rectangleContour } from "@metamesh/modeling/geometry";
228
- * const plate = mesh.extrude(rectangleContour({ size: [30, 20] }), { height: 6 });
229
- * const bytes = await export3mf([{ id: "plate", ...plate }], { name: "Plate" });
230
- * ```
231
- */
232
- export declare function export3mf(
233
- parts: readonly ExportMeshPart[],
234
- options?: Export3mfOptions,
235
- ): Promise<ArrayBuffer>;
236
-
237
197
  export { defaultModelingLimits };
238
-
239
198
  /** URL of the package's pinned WASM asset; browser bundlers may replace it with their emitted URL. */
240
199
  export declare const modelingWasmUrl: string;
241
200
 
@@ -255,7 +214,8 @@ export declare function checkModel<P extends object, S>(
255
214
  * @example Build a box in a host application
256
215
  * ```ts
257
216
  * import { box, generate } from "@metamesh/modeling";
258
- * import { createModelEngine, export3mf } from "@metamesh/modeling/engine";
217
+ * import { createModelEngine } from "@metamesh/modeling/engine";
218
+ * import { export3mf } from "@metamesh/modeling/export";
259
219
  *
260
220
  * const engine = await createModelEngine();
261
221
  * const model = generate<Record<never, never>>(({ part }) => [part("body", box({ size: [30, 20, 8] }))]);
@@ -0,0 +1,2 @@
1
+ export { export3mf, write3mf } from "./export.js";
2
+ export type { ExportDiagnostic, ExportFormat, ExportGeometry, ExportLimits, ExportMaterial, ExportOptions, ExportPart, ExportReport, ExportedFile, ExportSink, Export3mfOptions } from "./export.js";
@@ -0,0 +1,2 @@
1
+ export { exportGlb, writeGlb } from "./export.js";
2
+ export type { ExportDiagnostic, ExportFormat, ExportGeometry, ExportLimits, ExportMaterial, ExportOptions, ExportPart, ExportReport, ExportedFile, ExportSink, ExportGlbOptions } from "./export.js";
@@ -0,0 +1,2 @@
1
+ export { exportStl, writeStl } from "./export.js";
2
+ export type { ExportDiagnostic, ExportFormat, ExportGeometry, ExportLimits, ExportMaterial, ExportOptions, ExportPart, ExportReport, ExportedFile, ExportSink, ExportStlOptions } from "./export.js";
@@ -0,0 +1,160 @@
1
+ import type {
2
+ ImmutableBuffer,
3
+ TriangleMeshInput,
4
+ Transform3Data,
5
+ } from "@metamesh/modeling/geometry";
6
+
7
+ /** Local millimetre, Z-up indexed geometry; optional unit normals describe display shading only. */
8
+ export type ExportGeometry = TriangleMeshInput & {
9
+ /** One finite unit XYZ normal per position; omitted normals are derived for GLB. */
10
+ readonly normals?: Float32Array | ImmutableBuffer<Float32Array>;
11
+ };
12
+ /** A semantic part referencing reusable local geometry, with placement and appearance kept separate. */
13
+ export interface ExportPart {
14
+ /** Unique canonical lowercase kebab-case identity, at most 64 characters. */
15
+ readonly id: string;
16
+ /** Local geometry; engine results and decoded Worker parts are accepted directly. */
17
+ readonly geometry: ExportGeometry;
18
+ /** Proper rigid row-major local-to-world matrix; translations are millimetres. Defaults to identity. */
19
+ readonly transform?: Transform3Data;
20
+ /** Six-digit sRGB display color; overrides the assigned material's suggested display color. */
21
+ readonly color?: string;
22
+ /** Stable print material identity from options.materials; never inferred from display color. */
23
+ readonly materialId?: string;
24
+ }
25
+ /** Portable print material intent. Equal display colors do not merge different identities. */
26
+ export interface ExportMaterial {
27
+ /** Unique canonical lowercase kebab-case identity, preserved by 3MF as the base-material name. */
28
+ readonly id: string;
29
+ /** Suggested six-digit sRGB display color; does not select filament, extruder, or physical tray. */
30
+ readonly color: string;
31
+ }
32
+ /** Supported completed-mesh file formats. */
33
+ export type ExportFormat = "3mf" | "stl" | "glb";
34
+ /** Independent trusted export ceilings; output limits also apply to streaming writers. */
35
+ export interface ExportLimits {
36
+ /** Maximum selected semantic parts. */
37
+ readonly maxParts: number;
38
+ /** Maximum aggregate input vertices across selected instances. */
39
+ readonly maxVertices: number;
40
+ /** Maximum aggregate input triangles across selected instances. */
41
+ readonly maxTriangles: number;
42
+ /** Maximum captured unique numeric buffer-view bytes, including authored normals. */
43
+ readonly maxBytes: number;
44
+ /** Maximum encoded file bytes; defaults to 512 MiB. */
45
+ readonly maxOutputBytes: number;
46
+ }
47
+ /** Shared serialization policy; hosts own scheduling, filenames, and delivery. */
48
+ export interface ExportOptions {
49
+ /** Display name, one through 1024 valid XML characters; defaults to MetaMesh model. */
50
+ readonly name?: string;
51
+ /** Explicit export ceilings, independent of engine/session configuration. */
52
+ readonly limits?: Partial<ExportLimits>;
53
+ /** Topology validation by default; solid additionally checks bounded intersections and shell nesting. */
54
+ readonly meshValidation?: "topology" | "solid";
55
+ /** Portable material identities referenced by parts. No slicer or device mapping is implied. */
56
+ readonly materials?: readonly ExportMaterial[];
57
+ /** Cancellation checked between bounded writing tasks; browser hosts should schedule CPU work in a Worker. */
58
+ readonly signal?: AbortSignal;
59
+ }
60
+ /** 3MF serialization of closed manufacturing meshes in millimetres; colored output uses the standard Materials extension. */
61
+ export type Export3mfOptions = ExportOptions;
62
+ /** Binary STL serialization in millimetres; open triangle surfaces are permitted by default. */
63
+ export type ExportStlOptions = ExportOptions;
64
+ /** Uncompressed glTF 2.0 binary serialization; converts millimetres/Z-up to metres/Y-up. */
65
+ export interface ExportGlbOptions extends ExportOptions {
66
+ /** Normal smoothing threshold in degrees from zero through 180; defaults to 20. Authored normals take precedence. */
67
+ readonly creaseAngle?: number;
68
+ }
69
+ /** Expected information loss imposed by the selected file format. */
70
+ export interface ExportDiagnostic {
71
+ /** Stable category; human-readable wording is not an API contract. */
72
+ readonly code:
73
+ | "APPEARANCE_DROPPED"
74
+ | "MATERIAL_ASSIGNMENTS_DROPPED"
75
+ | "PART_NAMES_DROPPED";
76
+ /** Description of the information the selected format cannot preserve. */
77
+ readonly message: string;
78
+ /** Affected semantic part identities, in input order. */
79
+ readonly partIds: readonly string[];
80
+ }
81
+ /** Completed writer metadata; successful completion means the sink accepted every chunk. */
82
+ export interface ExportReport {
83
+ /** Registered file media type. */
84
+ readonly mediaType: string;
85
+ /** File extension without a leading dot. */
86
+ readonly extension: ExportFormat;
87
+ /** Expected format losses; invalid input and failed delivery reject instead. */
88
+ readonly diagnostics: readonly ExportDiagnostic[];
89
+ /** Encoded bytes delivered to the sink. */
90
+ readonly byteLength: number;
91
+ }
92
+ /** Owned file bytes and format metadata, usable in both Node and browsers. */
93
+ export interface ExportedFile extends ExportReport {
94
+ /** Fresh mutable bytes; never aliases the input snapshot. */
95
+ readonly bytes: Uint8Array<ArrayBuffer>;
96
+ }
97
+ /** Receives owned chunks in order. Writers await each call for backpressure; the host closes its destination. */
98
+ export type ExportSink = (chunk: Uint8Array) => void | Promise<void>;
99
+
100
+ /** Default standalone export policy: 64 parts, one million vertices, two million triangles, 96 MiB input, 512 MiB output. */
101
+ export declare const defaultExportLimits: ExportLimits;
102
+
103
+ /**
104
+ * Serializes a captured model as binary STL in millimetres and Z-up coordinates.
105
+ * Placement is baked into triangles. Diagnostics describe dropped names, appearance and materials.
106
+ * Mutable input is captured before the first await; no engine or renderer is needed.
107
+ */
108
+ export declare function exportStl(
109
+ parts: readonly ExportPart[],
110
+ options?: ExportStlOptions,
111
+ ): Promise<ExportedFile>;
112
+ /**
113
+ * Writes owned binary STL chunks to a sink, awaiting backpressure after each bounded chunk.
114
+ * The host owns sink completion and recovery after failure. Honors cancellation and output limits.
115
+ */
116
+ export declare function writeStl(
117
+ parts: readonly ExportPart[],
118
+ sink: ExportSink,
119
+ options?: ExportStlOptions,
120
+ ): Promise<ExportReport>;
121
+
122
+ /**
123
+ * Writes 3MF with local mesh reuse, semantic parts, rigid placement, and standard color groups.
124
+ * Colored output requires the Materials extension. Explicit material IDs remain distinct base-material
125
+ * names, combined with appearance through multiproperties; display colors never select filament.
126
+ * Captures mutable inputs before awaiting and awaits each owned output chunk for backpressure.
127
+ * The host owns destination closing and cleanup of partial output after rejection.
128
+ */
129
+ export declare function write3mf(
130
+ parts: readonly ExportPart[],
131
+ sink: ExportSink,
132
+ options?: Export3mfOptions,
133
+ ): Promise<ExportReport>;
134
+ /** Serializes selected completed meshes as an owned 3MF file without initializing an engine. */
135
+ export declare function export3mf(
136
+ parts: readonly ExportPart[],
137
+ options?: Export3mfOptions,
138
+ ): Promise<ExportedFile>;
139
+
140
+ /**
141
+ * Serializes captured local meshes as uncompressed glTF 2.0 binary, in metres and Y-up.
142
+ * Preserves named parts, placement, shared geometry and display appearance. Authored normals take
143
+ * precedence over crease-aware shading; no engine, renderer or optional compression codec is loaded.
144
+ */
145
+ export declare function exportGlb(
146
+ parts: readonly ExportPart[],
147
+ options?: ExportGlbOptions,
148
+ ): Promise<ExportedFile>;
149
+ /**
150
+ * Writes owned GLB chunks with backpressure, cancellation and explicit output limits.
151
+ * Plans accessor and container lengths before writing, then emits bounded binary chunks.
152
+ * Hosts own sink completion, scheduling and recovery after a partially written failure.
153
+ */
154
+ export declare function writeGlb(
155
+ parts: readonly ExportPart[],
156
+ sink: ExportSink,
157
+ options?: ExportGlbOptions,
158
+ ): Promise<ExportReport>;
159
+
160
+ /** Runtime-independent completed-mesh export. All input coordinates are millimetres, right-handed, and Z-up. @packageDocumentation */
@@ -229,8 +229,8 @@ export declare interface Bounds2 extends Bounds2Data {
229
229
  * Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
230
230
  * overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
231
231
  * Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
232
- * Compiled Generator packages passing these values to host recipes or computed data require
233
- * runtime 10.0.0 or newer in major 10.
232
+ * Compiled Generator packages passing these values to host recipes or memo data require
233
+ * the current Modeling runtime.
234
234
  */
235
235
  export declare function bounds2(input: Bounds2Options | Bounds2): Bounds2;
236
236
 
@@ -286,8 +286,8 @@ export declare interface Bounds3 extends Bounds3Data {
286
286
  * Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
287
287
  * overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
288
288
  * Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
289
- * Compiled Generator packages passing these values to host recipes or computed data require
290
- * runtime 10.0.0 or newer in major 10.
289
+ * Compiled Generator packages passing these values to host recipes or memo data require
290
+ * the current Modeling runtime.
291
291
  */
292
292
  export declare function bounds3(input: Bounds3Options | Bounds3): Bounds3;
293
293
 
@@ -1078,7 +1078,7 @@ export declare type EllipseContourOptions = CircularPrimitiveOptions &
1078
1078
  );
1079
1079
 
1080
1080
  /**
1081
- * Independent inward finishing on primitive or straight convex extrusion ends.
1081
+ * Independent inward finishing on primitive or source-corresponding straight extrusion ends.
1082
1082
  * Zero amounts leave the end untreated, including when all ends are disabled.
1083
1083
  */
1084
1084
  export declare interface EndTreatments {
@@ -1114,7 +1114,7 @@ export declare interface ExtrudeMeshOptions extends ExtrusionSamplingOptions {
1114
1114
 
1115
1115
  /** Native +Z extrusion with optional inward end treatments. */
1116
1116
  export declare interface ExtrudeOptions extends ExtrudeMeshOptions {
1117
- /** Independent inward end treatments on straight convex single-contour extrusions. */
1117
+ /** Independent inward treatments on every material rim of a straight, topology-preserving extrusion. */
1118
1118
  readonly ends?: EndTreatments;
1119
1119
  }
1120
1120
 
@@ -1440,7 +1440,7 @@ export declare function immutableBuffer<T extends NumericArray>(
1440
1440
 
1441
1441
  declare const immutableBufferBrand: unique symbol;
1442
1442
 
1443
- /** Immutable local XYZ positions and triangle indices, suitable for a computed value or part. */
1443
+ /** Immutable local XYZ positions and triangle indices, suitable for a memo result or part. */
1444
1444
  export declare interface ImmutableTriangleMesh {
1445
1445
  /** Packed XYZ coordinates in millimetres. */
1446
1446
  readonly positions: ImmutableBuffer<Float32Array>;