@metamesh/modeling 0.12.0 → 0.13.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 (629) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +60 -72
  3. package/dist/api/engine.d.ts +123 -97
  4. package/dist/api/geometry.d.ts +3896 -3307
  5. package/dist/api/index.d.ts +2489 -2268
  6. package/dist/api/text.d.ts +119 -107
  7. package/dist/docs/guides/concepts.md +197 -0
  8. package/dist/docs/guides/fonts.md +51 -0
  9. package/dist/docs/guides/fundamentals.md +135 -0
  10. package/dist/docs/guides/generation.md +221 -0
  11. package/dist/docs/guides/hosting.md +88 -0
  12. package/dist/docs/guides/recipes.md +668 -0
  13. package/dist/docs/manifest.json +9851 -0
  14. package/dist/docs/reference/engine/Export3mfOptions.md +29 -0
  15. package/dist/docs/reference/engine/ExportMeshPart.md +65 -0
  16. package/dist/docs/reference/engine/GenerationOptions.md +62 -0
  17. package/dist/docs/reference/engine/GeometryResource.md +77 -0
  18. package/dist/docs/reference/engine/ModelDependencies.md +41 -0
  19. package/dist/docs/reference/engine/ModelEngine.md +103 -0
  20. package/dist/docs/reference/engine/ModelEngineOptions.md +33 -0
  21. package/dist/docs/reference/engine/ModelSession.md +96 -0
  22. package/dist/docs/reference/engine/ModelSnapshot.md +173 -0
  23. package/dist/docs/reference/engine/SessionOptions.md +123 -0
  24. package/dist/docs/reference/engine/SnapshotPart.md +130 -0
  25. package/dist/docs/reference/engine/categories/host-lifecycle.md +37 -0
  26. package/dist/docs/reference/engine/createModelEngine.md +56 -0
  27. package/dist/docs/reference/engine/defaultModelingLimits.md +7 -0
  28. package/dist/docs/reference/engine/modelingWasmUrl.md +7 -0
  29. package/dist/docs/reference/engine/validateModel.md +48 -0
  30. package/dist/docs/reference/engine.md +25 -0
  31. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +75 -0
  32. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +79 -0
  33. package/dist/docs/reference/geometry/Anchor3.md +49 -0
  34. package/dist/docs/reference/geometry/ArcCurve2.md +70 -0
  35. package/dist/docs/reference/geometry/ArcCurve3.md +94 -0
  36. package/dist/docs/reference/geometry/AttachTransformOptions.md +58 -0
  37. package/dist/docs/reference/geometry/AxisAngleRotation3.md +61 -0
  38. package/dist/docs/reference/geometry/Bounds2.md +39 -0
  39. package/dist/docs/reference/geometry/Bounds3.md +39 -0
  40. package/dist/docs/reference/geometry/BoundsFit2.md +52 -0
  41. package/dist/docs/reference/geometry/BoundsFit3.md +52 -0
  42. package/dist/docs/reference/geometry/BoundsFitOptions.md +23 -0
  43. package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +23 -0
  44. package/dist/docs/reference/geometry/BoxAnchorFace.md +7 -0
  45. package/dist/docs/reference/geometry/BoxAnchorOptions.md +59 -0
  46. package/dist/docs/reference/geometry/BoxEdge.md +7 -0
  47. package/dist/docs/reference/geometry/BoxEdgeSelection.md +14 -0
  48. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +15 -0
  49. package/dist/docs/reference/geometry/BoxOptions.md +87 -0
  50. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +7 -0
  51. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +93 -0
  52. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +29 -0
  53. package/dist/docs/reference/geometry/CircleContourOptions.md +15 -0
  54. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +59 -0
  55. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +41 -0
  56. package/dist/docs/reference/geometry/ClearanceHoleFit.md +7 -0
  57. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +53 -0
  58. package/dist/docs/reference/geometry/Contour.md +17 -0
  59. package/dist/docs/reference/geometry/ContourCurve.md +35 -0
  60. package/dist/docs/reference/geometry/ContourPoint.md +29 -0
  61. package/dist/docs/reference/geometry/ContourSegment.md +86 -0
  62. package/dist/docs/reference/geometry/CorrespondingComponent.md +46 -0
  63. package/dist/docs/reference/geometry/CorrespondingContour.md +46 -0
  64. package/dist/docs/reference/geometry/CorrespondingProfile.md +22 -0
  65. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +27 -0
  66. package/dist/docs/reference/geometry/CubicBezierCurve2.md +70 -0
  67. package/dist/docs/reference/geometry/CubicBezierCurve3.md +70 -0
  68. package/dist/docs/reference/geometry/Curve2.md +16 -0
  69. package/dist/docs/reference/geometry/Curve3.md +16 -0
  70. package/dist/docs/reference/geometry/CurveSamplingOptions.md +64 -0
  71. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +73 -0
  72. package/dist/docs/reference/geometry/CylinderAnchorFace.md +7 -0
  73. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +83 -0
  74. package/dist/docs/reference/geometry/CylinderOptions.md +53 -0
  75. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +209 -0
  76. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +7 -0
  77. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +71 -0
  78. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +82 -0
  79. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +34 -0
  80. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +41 -0
  81. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +47 -0
  82. package/dist/docs/reference/geometry/CylindricalGearSpec.md +82 -0
  83. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +7 -0
  84. package/dist/docs/reference/geometry/EdgeTreatment.md +17 -0
  85. package/dist/docs/reference/geometry/EllipseContourOptions.md +15 -0
  86. package/dist/docs/reference/geometry/EndTreatments.md +34 -0
  87. package/dist/docs/reference/geometry/ExtrudeOptions.md +134 -0
  88. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +77 -0
  89. package/dist/docs/reference/geometry/FittedTextLayout.md +60 -0
  90. package/dist/docs/reference/geometry/Frame3.md +58 -0
  91. package/dist/docs/reference/geometry/GeometryError.md +97 -0
  92. package/dist/docs/reference/geometry/GeometryErrorCode.md +7 -0
  93. package/dist/docs/reference/geometry/GeometryErrorContext.md +29 -0
  94. package/dist/docs/reference/geometry/GeometryResolution.md +65 -0
  95. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +62 -0
  96. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +41 -0
  97. package/dist/docs/reference/geometry/GridPatternOptions.md +42 -0
  98. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +14 -0
  99. package/dist/docs/reference/geometry/HeightfieldOptions.md +67 -0
  100. package/dist/docs/reference/geometry/HeightfieldPreflight.md +53 -0
  101. package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +141 -0
  102. package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +265 -0
  103. package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +53 -0
  104. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +14 -0
  105. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +242 -0
  106. package/dist/docs/reference/geometry/LineCurve2.md +46 -0
  107. package/dist/docs/reference/geometry/LineCurve3.md +46 -0
  108. package/dist/docs/reference/geometry/LinearPatternOptions.md +30 -0
  109. package/dist/docs/reference/geometry/LoftCorrespondence.md +19 -0
  110. package/dist/docs/reference/geometry/LoftMeshStation.md +27 -0
  111. package/dist/docs/reference/geometry/LoftOptions.md +84 -0
  112. package/dist/docs/reference/geometry/LoftPlacement.md +66 -0
  113. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +18 -0
  114. package/dist/docs/reference/geometry/MatchProfilesOptions.md +35 -0
  115. package/dist/docs/reference/geometry/MetricFastenerSize.md +7 -0
  116. package/dist/docs/reference/geometry/MetricFastenerStandard.md +72 -0
  117. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +29 -0
  118. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +41 -0
  119. package/dist/docs/reference/geometry/ModelingLimits.md +126 -0
  120. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +17 -0
  121. package/dist/docs/reference/geometry/Path2.md +14 -0
  122. package/dist/docs/reference/geometry/Path3.md +14 -0
  123. package/dist/docs/reference/geometry/PathFrame.md +46 -0
  124. package/dist/docs/reference/geometry/PathNormalGuide.md +38 -0
  125. package/dist/docs/reference/geometry/PathPatternOptions.md +46 -0
  126. package/dist/docs/reference/geometry/PathPlacement.md +34 -0
  127. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +7 -0
  128. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +156 -0
  129. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +120 -0
  130. package/dist/docs/reference/geometry/PlanarPatchQuality.md +190 -0
  131. package/dist/docs/reference/geometry/Polygon.md +38 -0
  132. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +92 -0
  133. package/dist/docs/reference/geometry/PrimitivePlacement.md +31 -0
  134. package/dist/docs/reference/geometry/PrimitivePlacementOptions.md +83 -0
  135. package/dist/docs/reference/geometry/PrintableThreadFit.md +7 -0
  136. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +45 -0
  137. package/dist/docs/reference/geometry/Profile.md +22 -0
  138. package/dist/docs/reference/geometry/ProfileComponent2.md +46 -0
  139. package/dist/docs/reference/geometry/ProfileContour2.md +34 -0
  140. package/dist/docs/reference/geometry/ProfileSpan2.md +47 -0
  141. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +36 -0
  142. package/dist/docs/reference/geometry/RackPitchDimensions.md +113 -0
  143. package/dist/docs/reference/geometry/RackPitchSpec.md +77 -0
  144. package/dist/docs/reference/geometry/RadialPatternOptions.md +62 -0
  145. package/dist/docs/reference/geometry/RadialSizing.md +7 -0
  146. package/dist/docs/reference/geometry/RadialSizingOptions.md +40 -0
  147. package/dist/docs/reference/geometry/RectangleContourOptions.md +66 -0
  148. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +34 -0
  149. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +14 -0
  150. package/dist/docs/reference/geometry/RectangleProfileOptions.md +94 -0
  151. package/dist/docs/reference/geometry/Region.md +14 -0
  152. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +84 -0
  153. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +65 -0
  154. package/dist/docs/reference/geometry/RevolveOptions.md +82 -0
  155. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +91 -0
  156. package/dist/docs/reference/geometry/RowLayoutOptions.md +23 -0
  157. package/dist/docs/reference/geometry/SampleContourOptions.md +71 -0
  158. package/dist/docs/reference/geometry/SampleHelixOptions.md +95 -0
  159. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +71 -0
  160. package/dist/docs/reference/geometry/SampledCurve2.md +34 -0
  161. package/dist/docs/reference/geometry/SampledCurve3.md +34 -0
  162. package/dist/docs/reference/geometry/SampledThreadHelices.md +58 -0
  163. package/dist/docs/reference/geometry/SideProfileCurve.md +35 -0
  164. package/dist/docs/reference/geometry/SideProfilePoint.md +29 -0
  165. package/dist/docs/reference/geometry/SideProfileSegment.md +86 -0
  166. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +71 -0
  167. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +34 -0
  168. package/dist/docs/reference/geometry/SphereOptions.md +15 -0
  169. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +75 -0
  170. package/dist/docs/reference/geometry/StrokePathCap.md +7 -0
  171. package/dist/docs/reference/geometry/StrokePathJoin.md +7 -0
  172. package/dist/docs/reference/geometry/StrokePathRegionOptions.md +85 -0
  173. package/dist/docs/reference/geometry/SvgImportOptions.md +60 -0
  174. package/dist/docs/reference/geometry/SvgRegionPreflight.md +61 -0
  175. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +118 -0
  176. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +65 -0
  177. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +53 -0
  178. package/dist/docs/reference/geometry/SweepOptions.md +109 -0
  179. package/dist/docs/reference/geometry/SweepOrientation.md +109 -0
  180. package/dist/docs/reference/geometry/ThreadBevelOptions.md +53 -0
  181. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +100 -0
  182. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +73 -0
  183. package/dist/docs/reference/geometry/ThreadEndStyle.md +7 -0
  184. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +113 -0
  185. package/dist/docs/reference/geometry/ThreadHandedness.md +7 -0
  186. package/dist/docs/reference/geometry/ThreadHelixOptions.md +120 -0
  187. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +7 -0
  188. package/dist/docs/reference/geometry/ThreadLeadInShape.md +7 -0
  189. package/dist/docs/reference/geometry/ThreadProfile.md +82 -0
  190. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +49 -0
  191. package/dist/docs/reference/geometry/ThreadProfileSpec.md +19 -0
  192. package/dist/docs/reference/geometry/ThreadRole.md +7 -0
  193. package/dist/docs/reference/geometry/ThreadedNutBevel.md +7 -0
  194. package/dist/docs/reference/geometry/ThreadedNutOptions.md +269 -0
  195. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +94 -0
  196. package/dist/docs/reference/geometry/ThreadedNutShape.md +7 -0
  197. package/dist/docs/reference/geometry/ThreadedRodOptions.md +242 -0
  198. package/dist/docs/reference/geometry/TorusOptions.md +105 -0
  199. package/dist/docs/reference/geometry/Transform3.md +12 -0
  200. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +91 -0
  201. package/dist/docs/reference/geometry/TriangleMesh.md +34 -0
  202. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +119 -0
  203. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +75 -0
  204. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +75 -0
  205. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +39 -0
  206. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +190 -0
  207. package/dist/docs/reference/geometry/TriangleMeshSignature.md +107 -0
  208. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +41 -0
  209. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +29 -0
  210. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +51 -0
  211. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +91 -0
  212. package/dist/docs/reference/geometry/TubeOptions.md +138 -0
  213. package/dist/docs/reference/geometry/Vector2.md +7 -0
  214. package/dist/docs/reference/geometry/Vector3.md +7 -0
  215. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +53 -0
  216. package/dist/docs/reference/geometry/VectorTextLayout.md +39 -0
  217. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +111 -0
  218. package/dist/docs/reference/geometry/VectorTextMetrics.md +94 -0
  219. package/dist/docs/reference/geometry/VectorTextOptions.md +50 -0
  220. package/dist/docs/reference/geometry/add3.md +38 -0
  221. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +57 -0
  222. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +52 -0
  223. package/dist/docs/reference/geometry/anchorFrame3.md +40 -0
  224. package/dist/docs/reference/geometry/applyTransformDirection3.md +41 -0
  225. package/dist/docs/reference/geometry/applyTransformPoint3.md +39 -0
  226. package/dist/docs/reference/geometry/attachTransform.md +73 -0
  227. package/dist/docs/reference/geometry/boundsCenter.md +62 -0
  228. package/dist/docs/reference/geometry/boundsFromSize.md +83 -0
  229. package/dist/docs/reference/geometry/boundsSize.md +62 -0
  230. package/dist/docs/reference/geometry/boxAnchor3.md +48 -0
  231. package/dist/docs/reference/geometry/buildHelicalThreadRidgeMesh.md +68 -0
  232. package/dist/docs/reference/geometry/buildHelicalThreadSolidMesh.md +102 -0
  233. package/dist/docs/reference/geometry/categories/bounds-layout.md +35 -0
  234. package/dist/docs/reference/geometry/categories/curves-paths.md +63 -0
  235. package/dist/docs/reference/geometry/categories/mechanical.md +101 -0
  236. package/dist/docs/reference/geometry/categories/meshes.md +73 -0
  237. package/dist/docs/reference/geometry/categories/pattern-placement.md +34 -0
  238. package/dist/docs/reference/geometry/categories/primitive-options.md +36 -0
  239. package/dist/docs/reference/geometry/categories/profiles-regions.md +74 -0
  240. package/dist/docs/reference/geometry/categories/resolution-errors.md +46 -0
  241. package/dist/docs/reference/geometry/categories/transforms-math.md +63 -0
  242. package/dist/docs/reference/geometry/categories/vector-import.md +40 -0
  243. package/dist/docs/reference/geometry/circleContour.md +33 -0
  244. package/dist/docs/reference/geometry/closeToAxis.md +34 -0
  245. package/dist/docs/reference/geometry/compensateThreadDiameters.md +51 -0
  246. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +42 -0
  247. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +56 -0
  248. package/dist/docs/reference/geometry/composeTransform3.md +40 -0
  249. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +45 -0
  250. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +47 -0
  251. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +31 -0
  252. package/dist/docs/reference/geometry/containsBounds.md +72 -0
  253. package/dist/docs/reference/geometry/contourContainsPoint.md +33 -0
  254. package/dist/docs/reference/geometry/createAnchor3.md +63 -0
  255. package/dist/docs/reference/geometry/createThreadProfile.md +37 -0
  256. package/dist/docs/reference/geometry/createTriangleMeshSignature.md +60 -0
  257. package/dist/docs/reference/geometry/cross3.md +38 -0
  258. package/dist/docs/reference/geometry/cumulativePathLengths.md +33 -0
  259. package/dist/docs/reference/geometry/cylinderAnchor3.md +56 -0
  260. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +14 -0
  261. package/dist/docs/reference/geometry/distributeAlongPath.md +51 -0
  262. package/dist/docs/reference/geometry/dot3.md +38 -0
  263. package/dist/docs/reference/geometry/ellipseContour.md +33 -0
  264. package/dist/docs/reference/geometry/eulerTransform3.md +38 -0
  265. package/dist/docs/reference/geometry/extrudeMesh.md +73 -0
  266. package/dist/docs/reference/geometry/fitBounds.md +95 -0
  267. package/dist/docs/reference/geometry/fitTextLayout.md +57 -0
  268. package/dist/docs/reference/geometry/frameTransform3.md +44 -0
  269. package/dist/docs/reference/geometry/getMetricClearanceHole.md +33 -0
  270. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +27 -0
  271. package/dist/docs/reference/geometry/gridPatternTransforms.md +31 -0
  272. package/dist/docs/reference/geometry/heightfieldMesh.md +43 -0
  273. package/dist/docs/reference/geometry/inverseTransform3.md +30 -0
  274. package/dist/docs/reference/geometry/isGeometryError.md +26 -0
  275. package/dist/docs/reference/geometry/joinTriangleMeshes.md +36 -0
  276. package/dist/docs/reference/geometry/layoutRow.md +43 -0
  277. package/dist/docs/reference/geometry/length3.md +26 -0
  278. package/dist/docs/reference/geometry/lerp3.md +38 -0
  279. package/dist/docs/reference/geometry/linearPatternTransforms.md +31 -0
  280. package/dist/docs/reference/geometry/loftMesh.md +72 -0
  281. package/dist/docs/reference/geometry/matchProfiles.md +51 -0
  282. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +47 -0
  283. package/dist/docs/reference/geometry/measureTriangleMesh.md +55 -0
  284. package/dist/docs/reference/geometry/meshBounds.md +35 -0
  285. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +29 -0
  286. package/dist/docs/reference/geometry/normalize3.md +32 -0
  287. package/dist/docs/reference/geometry/normalizeContour.md +45 -0
  288. package/dist/docs/reference/geometry/normalizePolygon.md +37 -0
  289. package/dist/docs/reference/geometry/normalizeRegion.md +33 -0
  290. package/dist/docs/reference/geometry/optimizePlanarPatches.md +91 -0
  291. package/dist/docs/reference/geometry/pathLength.md +33 -0
  292. package/dist/docs/reference/geometry/pathPatternTransforms.md +57 -0
  293. package/dist/docs/reference/geometry/preflightHeightfield.md +34 -0
  294. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +96 -0
  295. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +85 -0
  296. package/dist/docs/reference/geometry/preflightSvgRegion.md +56 -0
  297. package/dist/docs/reference/geometry/preflightThreadedNut.md +96 -0
  298. package/dist/docs/reference/geometry/preflightThreadedRod.md +85 -0
  299. package/dist/docs/reference/geometry/projectOntoPlane3.md +32 -0
  300. package/dist/docs/reference/geometry/radialPatternTransforms.md +47 -0
  301. package/dist/docs/reference/geometry/rectangleContour.md +49 -0
  302. package/dist/docs/reference/geometry/rectangleProfile.md +53 -0
  303. package/dist/docs/reference/geometry/regionArea.md +34 -0
  304. package/dist/docs/reference/geometry/regionBounds.md +27 -0
  305. package/dist/docs/reference/geometry/regularPolygonContour.md +53 -0
  306. package/dist/docs/reference/geometry/resamplePolyline2.md +64 -0
  307. package/dist/docs/reference/geometry/resamplePolyline3.md +67 -0
  308. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +79 -0
  309. package/dist/docs/reference/geometry/resolveArcSegments.md +67 -0
  310. package/dist/docs/reference/geometry/resolveCircularSegments.md +61 -0
  311. package/dist/docs/reference/geometry/resolveCylindricalGear.md +31 -0
  312. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +31 -0
  313. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +74 -0
  314. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +26 -0
  315. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +59 -0
  316. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +27 -0
  317. package/dist/docs/reference/geometry/resolveRackPitch.md +27 -0
  318. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +59 -0
  319. package/dist/docs/reference/geometry/reverseTriangleMesh.md +30 -0
  320. package/dist/docs/reference/geometry/revolveMesh.md +76 -0
  321. package/dist/docs/reference/geometry/rotateAroundAxis3.md +38 -0
  322. package/dist/docs/reference/geometry/rotationTransform3.md +49 -0
  323. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +50 -0
  324. package/dist/docs/reference/geometry/sampleContour.md +77 -0
  325. package/dist/docs/reference/geometry/sampleCurve2.md +61 -0
  326. package/dist/docs/reference/geometry/sampleCurve3.md +61 -0
  327. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +58 -0
  328. package/dist/docs/reference/geometry/sampleHelix.md +41 -0
  329. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +59 -0
  330. package/dist/docs/reference/geometry/sampleRackToothPath.md +39 -0
  331. package/dist/docs/reference/geometry/sampleSideProfile.md +73 -0
  332. package/dist/docs/reference/geometry/sampleTextContours.md +53 -0
  333. package/dist/docs/reference/geometry/sampleThreadHelices.md +63 -0
  334. package/dist/docs/reference/geometry/scale3.md +38 -0
  335. package/dist/docs/reference/geometry/scaleTransform3.md +34 -0
  336. package/dist/docs/reference/geometry/signedContourArea.md +26 -0
  337. package/dist/docs/reference/geometry/starContour.md +51 -0
  338. package/dist/docs/reference/geometry/strokePathRegion.md +63 -0
  339. package/dist/docs/reference/geometry/subtract3.md +38 -0
  340. package/dist/docs/reference/geometry/sweepMesh.md +82 -0
  341. package/dist/docs/reference/geometry/transformContour.md +42 -0
  342. package/dist/docs/reference/geometry/transformDeterminant3.md +32 -0
  343. package/dist/docs/reference/geometry/transformPath2.md +40 -0
  344. package/dist/docs/reference/geometry/transformPath3.md +33 -0
  345. package/dist/docs/reference/geometry/transformRegion.md +40 -0
  346. package/dist/docs/reference/geometry/transformTriangleMesh.md +42 -0
  347. package/dist/docs/reference/geometry/translationTransform3.md +31 -0
  348. package/dist/docs/reference/geometry/triangulateContour.md +26 -0
  349. package/dist/docs/reference/geometry/validateSolidMesh.md +52 -0
  350. package/dist/docs/reference/geometry/validateTransform3.md +43 -0
  351. package/dist/docs/reference/geometry/validateTriangleMesh.md +59 -0
  352. package/dist/docs/reference/geometry.md +30 -0
  353. package/dist/docs/reference/model/Anchor3.md +54 -0
  354. package/dist/docs/reference/model/AttachOptions.md +63 -0
  355. package/dist/docs/reference/model/Bounds2.md +39 -0
  356. package/dist/docs/reference/model/Bounds3.md +39 -0
  357. package/dist/docs/reference/model/BoxEdge.md +15 -0
  358. package/dist/docs/reference/model/BoxEdgeSelection.md +19 -0
  359. package/dist/docs/reference/model/BoxEdgeTreatments.md +20 -0
  360. package/dist/docs/reference/model/BoxOptions.md +92 -0
  361. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +35 -0
  362. package/dist/docs/reference/model/CircleContourOptions.md +21 -0
  363. package/dist/docs/reference/model/CircleOptions.md +21 -0
  364. package/dist/docs/reference/model/CircularPrimitiveOptions.md +64 -0
  365. package/dist/docs/reference/model/Computed.md +35 -0
  366. package/dist/docs/reference/model/ComputedValue.md +20 -0
  367. package/dist/docs/reference/model/Contour.md +22 -0
  368. package/dist/docs/reference/model/CorrespondingComponent.md +46 -0
  369. package/dist/docs/reference/model/CorrespondingContour.md +46 -0
  370. package/dist/docs/reference/model/CorrespondingProfile.md +22 -0
  371. package/dist/docs/reference/model/CorrespondingProfileStation.md +27 -0
  372. package/dist/docs/reference/model/CylinderOptions.md +58 -0
  373. package/dist/docs/reference/model/DiagnosticOptions.md +23 -0
  374. package/dist/docs/reference/model/EdgeTreatment.md +22 -0
  375. package/dist/docs/reference/model/EllipseContourOptions.md +21 -0
  376. package/dist/docs/reference/model/EllipseOptions.md +21 -0
  377. package/dist/docs/reference/model/EndTreatments.md +39 -0
  378. package/dist/docs/reference/model/ExtrudeOptions.md +140 -0
  379. package/dist/docs/reference/model/FinalizedModel.md +121 -0
  380. package/dist/docs/reference/model/FinalizedPart.md +87 -0
  381. package/dist/docs/reference/model/Frame3.md +63 -0
  382. package/dist/docs/reference/model/GenerateCallback.md +37 -0
  383. package/dist/docs/reference/model/GenerateContext.md +277 -0
  384. package/dist/docs/reference/model/GeneratedPart.md +93 -0
  385. package/dist/docs/reference/model/GenerationDiagnostic.md +41 -0
  386. package/dist/docs/reference/model/GenerationError.md +54 -0
  387. package/dist/docs/reference/model/GeometryResolution.md +70 -0
  388. package/dist/docs/reference/model/GeometrySamplingLimits.md +62 -0
  389. package/dist/docs/reference/model/GeometryToleranceOptions.md +46 -0
  390. package/dist/docs/reference/model/GridPatternOptions.md +43 -0
  391. package/dist/docs/reference/model/HeightfieldOptions.md +67 -0
  392. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +140 -0
  393. package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +58 -0
  394. package/dist/docs/reference/model/HullOptions.md +72 -0
  395. package/dist/docs/reference/model/ImmutableBuffer-type.md +80 -0
  396. package/dist/docs/reference/model/ImmutableTriangleMesh.md +34 -0
  397. package/dist/docs/reference/model/ImplicitOptions.md +83 -0
  398. package/dist/docs/reference/model/InternalThreadCutterOptions.md +245 -0
  399. package/dist/docs/reference/model/LinearPatternOptions.md +31 -0
  400. package/dist/docs/reference/model/LoftCorrespondence.md +27 -0
  401. package/dist/docs/reference/model/LoftOptions.md +91 -0
  402. package/dist/docs/reference/model/LoftPlacement.md +73 -0
  403. package/dist/docs/reference/model/LoftStation.md +35 -0
  404. package/dist/docs/reference/model/MatchProfilesOptions.md +35 -0
  405. package/dist/docs/reference/model/ModelProgram.md +44 -0
  406. package/dist/docs/reference/model/ModelingLimits.md +126 -0
  407. package/dist/docs/reference/model/NumericArray.md +7 -0
  408. package/dist/docs/reference/model/PartGeometry.md +16 -0
  409. package/dist/docs/reference/model/PartOptions.md +65 -0
  410. package/dist/docs/reference/model/PathNormalGuide.md +45 -0
  411. package/dist/docs/reference/model/PathPatternOptions.md +47 -0
  412. package/dist/docs/reference/model/PatternSource.md +26 -0
  413. package/dist/docs/reference/model/PlaneOptions.md +39 -0
  414. package/dist/docs/reference/model/Polygon-type.md +43 -0
  415. package/dist/docs/reference/model/PolygonOptions.md +112 -0
  416. package/dist/docs/reference/model/PrimitivePlacement.md +40 -0
  417. package/dist/docs/reference/model/PrimitivePlacementOptions.md +88 -0
  418. package/dist/docs/reference/model/PrintableThreadFit.md +14 -0
  419. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +50 -0
  420. package/dist/docs/reference/model/Profile.md +22 -0
  421. package/dist/docs/reference/model/ProfileComponent2.md +46 -0
  422. package/dist/docs/reference/model/ProfileContour2.md +34 -0
  423. package/dist/docs/reference/model/ProfileSpan2.md +47 -0
  424. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +41 -0
  425. package/dist/docs/reference/model/RadialPatternOptions.md +63 -0
  426. package/dist/docs/reference/model/RadialSizing.md +15 -0
  427. package/dist/docs/reference/model/RadialSizingOptions.md +40 -0
  428. package/dist/docs/reference/model/RectangleContourOptions.md +72 -0
  429. package/dist/docs/reference/model/RectangleCornerTreatment.md +40 -0
  430. package/dist/docs/reference/model/RectangleCornerTreatments.md +20 -0
  431. package/dist/docs/reference/model/RectangleOptions.md +107 -0
  432. package/dist/docs/reference/model/Region.md +19 -0
  433. package/dist/docs/reference/model/RegionOffsetJoin.md +16 -0
  434. package/dist/docs/reference/model/RegionOffsetOptions.md +65 -0
  435. package/dist/docs/reference/model/RegularPolygonOptions.md +53 -0
  436. package/dist/docs/reference/model/RevolveOptions.md +89 -0
  437. package/dist/docs/reference/model/RoundedEdgeTreatment.md +96 -0
  438. package/dist/docs/reference/model/Section.md +450 -0
  439. package/dist/docs/reference/model/SectionHullOptions.md +72 -0
  440. package/dist/docs/reference/model/SectionInspection.md +98 -0
  441. package/dist/docs/reference/model/SmoothEdgeTreatment.md +76 -0
  442. package/dist/docs/reference/model/Solid.md +350 -0
  443. package/dist/docs/reference/model/SolidInspection.md +98 -0
  444. package/dist/docs/reference/model/SolidRayHit.md +58 -0
  445. package/dist/docs/reference/model/SphereOptions.md +20 -0
  446. package/dist/docs/reference/model/StarOptions.md +98 -0
  447. package/dist/docs/reference/model/SvgOrigin.md +16 -0
  448. package/dist/docs/reference/model/SvgPathSectionOptions.md +78 -0
  449. package/dist/docs/reference/model/SvgSectionOptions.md +66 -0
  450. package/dist/docs/reference/model/SweepOptions.md +116 -0
  451. package/dist/docs/reference/model/SweepOrientation.md +116 -0
  452. package/dist/docs/reference/model/TextSectionOptions.md +41 -0
  453. package/dist/docs/reference/model/ThreadEndStyle.md +14 -0
  454. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +117 -0
  455. package/dist/docs/reference/model/ThreadHandedness.md +14 -0
  456. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +14 -0
  457. package/dist/docs/reference/model/ThreadLeadInShape.md +14 -0
  458. package/dist/docs/reference/model/ThreadProfile.md +86 -0
  459. package/dist/docs/reference/model/ThreadRidgeOptions.md +18 -0
  460. package/dist/docs/reference/model/ThreadedNutBevel.md +14 -0
  461. package/dist/docs/reference/model/ThreadedNutOptions.md +273 -0
  462. package/dist/docs/reference/model/ThreadedNutPreflight.md +98 -0
  463. package/dist/docs/reference/model/ThreadedNutShape.md +14 -0
  464. package/dist/docs/reference/model/ThreadedRodOptions.md +245 -0
  465. package/dist/docs/reference/model/TorusOptions.md +110 -0
  466. package/dist/docs/reference/model/Transform2.md +15 -0
  467. package/dist/docs/reference/model/Transform3.md +18 -0
  468. package/dist/docs/reference/model/TriangleMesh.md +42 -0
  469. package/dist/docs/reference/model/TriangleMeshAnalysis.md +123 -0
  470. package/dist/docs/reference/model/TriangleMeshMeasurements.md +79 -0
  471. package/dist/docs/reference/model/TubeOptions.md +143 -0
  472. package/dist/docs/reference/model/Vector2.md +15 -0
  473. package/dist/docs/reference/model/Vector3.md +15 -0
  474. package/dist/docs/reference/model/VectorTextLayout.md +40 -0
  475. package/dist/docs/reference/model/VectorTextMetrics.md +100 -0
  476. package/dist/docs/reference/model/anchor.md +46 -0
  477. package/dist/docs/reference/model/box.md +62 -0
  478. package/dist/docs/reference/model/categories/boolean-operations.md +37 -0
  479. package/dist/docs/reference/model/categories/bounded-surfaces.md +26 -0
  480. package/dist/docs/reference/model/categories/contracts.md +16 -0
  481. package/dist/docs/reference/model/categories/core-values-errors.md +30 -0
  482. package/dist/docs/reference/model/categories/explicit-profiles.md +32 -0
  483. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +42 -0
  484. package/dist/docs/reference/model/categories/generation.md +44 -0
  485. package/dist/docs/reference/model/categories/inspection.md +23 -0
  486. package/dist/docs/reference/model/categories/mesh-inspection.md +29 -0
  487. package/dist/docs/reference/model/categories/primitives.md +61 -0
  488. package/dist/docs/reference/model/categories/resolution.md +18 -0
  489. package/dist/docs/reference/model/categories/sections.md +59 -0
  490. package/dist/docs/reference/model/categories/threads.md +50 -0
  491. package/dist/docs/reference/model/categories/transforms-placement.md +43 -0
  492. package/dist/docs/reference/model/circle.md +39 -0
  493. package/dist/docs/reference/model/components.md +68 -0
  494. package/dist/docs/reference/model/compose.md +31 -0
  495. package/dist/docs/reference/model/cylinder.md +52 -0
  496. package/dist/docs/reference/model/distance.md +45 -0
  497. package/dist/docs/reference/model/ellipse.md +39 -0
  498. package/dist/docs/reference/model/extrude.md +83 -0
  499. package/dist/docs/reference/model/fromRegion.md +33 -0
  500. package/dist/docs/reference/model/generate.md +46 -0
  501. package/dist/docs/reference/model/gridPattern.md +80 -0
  502. package/dist/docs/reference/model/heightfield.md +40 -0
  503. package/dist/docs/reference/model/hull.md +74 -0
  504. package/dist/docs/reference/model/immutableBuffer.md +44 -0
  505. package/dist/docs/reference/model/immutableMesh.md +40 -0
  506. package/dist/docs/reference/model/implicit.md +47 -0
  507. package/dist/docs/reference/model/inspectSection.md +38 -0
  508. package/dist/docs/reference/model/inspectSolid.md +38 -0
  509. package/dist/docs/reference/model/internalThreadCutter.md +100 -0
  510. package/dist/docs/reference/model/intersect.md +70 -0
  511. package/dist/docs/reference/model/isEmpty.md +39 -0
  512. package/dist/docs/reference/model/linearPattern.md +80 -0
  513. package/dist/docs/reference/model/loft.md +137 -0
  514. package/dist/docs/reference/model/matchProfiles.md +42 -0
  515. package/dist/docs/reference/model/minkowskiSum.md +37 -0
  516. package/dist/docs/reference/model/pathPattern.md +118 -0
  517. package/dist/docs/reference/model/polygon.md +40 -0
  518. package/dist/docs/reference/model/preflightInternalThreadCutter.md +89 -0
  519. package/dist/docs/reference/model/preflightThreadedNut.md +100 -0
  520. package/dist/docs/reference/model/preflightThreadedRod.md +89 -0
  521. package/dist/docs/reference/model/radialPattern.md +113 -0
  522. package/dist/docs/reference/model/rayCast.md +40 -0
  523. package/dist/docs/reference/model/rectangle.md +59 -0
  524. package/dist/docs/reference/model/regularPolygon.md +39 -0
  525. package/dist/docs/reference/model/revolve.md +74 -0
  526. package/dist/docs/reference/model/solidFromMesh.md +42 -0
  527. package/dist/docs/reference/model/sphere.md +42 -0
  528. package/dist/docs/reference/model/split.md +54 -0
  529. package/dist/docs/reference/model/splitByPlane.md +66 -0
  530. package/dist/docs/reference/model/star.md +63 -0
  531. package/dist/docs/reference/model/svgPathSection.md +65 -0
  532. package/dist/docs/reference/model/svgSection.md +64 -0
  533. package/dist/docs/reference/model/sweep.md +92 -0
  534. package/dist/docs/reference/model/textSection.md +57 -0
  535. package/dist/docs/reference/model/threadRidge.md +72 -0
  536. package/dist/docs/reference/model/threadedNut.md +110 -0
  537. package/dist/docs/reference/model/threadedRod.md +99 -0
  538. package/dist/docs/reference/model/toRegion.md +33 -0
  539. package/dist/docs/reference/model/toTriangleMesh.md +27 -0
  540. package/dist/docs/reference/model/torus.md +70 -0
  541. package/dist/docs/reference/model/tube.md +77 -0
  542. package/dist/docs/reference/model/union.md +72 -0
  543. package/dist/docs/reference/model.md +39 -0
  544. package/dist/docs/reference/text/Bounds2.md +34 -0
  545. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +7 -0
  546. package/dist/docs/reference/text/Vector2.md +7 -0
  547. package/dist/docs/reference/text/VectorFont.md +186 -0
  548. package/dist/docs/reference/text/VectorFontOptions.md +17 -0
  549. package/dist/docs/reference/text/VectorTextArcBaseline.md +53 -0
  550. package/dist/docs/reference/text/VectorTextLayout.md +34 -0
  551. package/dist/docs/reference/text/VectorTextLayoutOptions.md +111 -0
  552. package/dist/docs/reference/text/VectorTextMetrics.md +94 -0
  553. package/dist/docs/reference/text/VectorTextOptions.md +50 -0
  554. package/dist/docs/reference/text/categories/font-preparation.md +38 -0
  555. package/dist/docs/reference/text/prepareVectorFont.md +46 -0
  556. package/dist/docs/reference/text.md +21 -0
  557. package/dist/engine/construction-operations.js +10 -3
  558. package/dist/engine/deferred-context.js +12 -3
  559. package/dist/engine/execution.js +1 -1
  560. package/dist/engine/export-3mf.js +2 -2
  561. package/dist/engine/finalization.js +3 -3
  562. package/dist/engine/loft-operations.js +4 -4
  563. package/dist/engine/native/adapter.js +1 -1
  564. package/dist/engine/native/regions.js +9 -9
  565. package/dist/engine/pattern-operations.js +24 -13
  566. package/dist/engine/pattern-transform.js +9 -0
  567. package/dist/engine/placement.js +2 -2
  568. package/dist/engine/primitive-operations.js +10 -10
  569. package/dist/engine/profile-mesh.js +7 -7
  570. package/dist/engine/section-operations.js +25 -14
  571. package/dist/engine/session-graph.js +5 -3
  572. package/dist/engine/session.js +1 -2
  573. package/dist/geometry/bounds.js +117 -0
  574. package/dist/geometry/cylinder.js +5 -1
  575. package/dist/geometry/edge-finishing.js +2 -2
  576. package/dist/geometry/heightfield.js +1 -1
  577. package/dist/geometry/index.js +15 -12
  578. package/dist/geometry/{loft-correspondence.js → loft/loft-correspondence.js} +3 -3
  579. package/dist/geometry/{loft-geometry.js → loft/loft-geometry.js} +8 -8
  580. package/dist/geometry/{loft-options.js → loft/loft-options.js} +2 -2
  581. package/dist/geometry/{loft-simple-mesh.js → loft/loft-simple-mesh.js} +6 -6
  582. package/dist/geometry/{loft-triangulation.js → loft/loft-triangulation.js} +6 -6
  583. package/dist/geometry/{loft.js → loft/loft.js} +8 -8
  584. package/dist/geometry/math/vector3.js +5 -1
  585. package/dist/geometry/mechanical/gears.js +2 -2
  586. package/dist/geometry/mechanical/thread-mesh.js +3 -3
  587. package/dist/geometry/mechanical/thread-profiles.js +2 -2
  588. package/dist/geometry/mechanical/thread-surface.js +14 -5
  589. package/dist/geometry/{mesh-centroid.js → mesh/mesh-centroid.js} +1 -1
  590. package/dist/geometry/{mesh-planar.js → mesh/mesh-planar.js} +1 -1
  591. package/dist/geometry/{mesh-quality.js → mesh/mesh-quality.js} +2 -2
  592. package/dist/geometry/{mesh-signature.js → mesh/mesh-signature.js} +2 -2
  593. package/dist/geometry/{mesh-solid.js → mesh/mesh-solid.js} +2 -2
  594. package/dist/geometry/{mesh.js → mesh/mesh.js} +7 -8
  595. package/dist/geometry/paths/frames.js +4 -5
  596. package/dist/geometry/patterns/options.js +1 -0
  597. package/dist/{engine/pattern-placements.js → geometry/patterns/placements.js} +22 -8
  598. package/dist/geometry/patterns.js +25 -0
  599. package/dist/geometry/primitive-resolvers.js +9 -9
  600. package/dist/geometry/profiles/contour.js +3 -3
  601. package/dist/geometry/profiles/matched.js +3 -3
  602. package/dist/geometry/profiles/profiles.js +10 -10
  603. package/dist/geometry/profiles/rectangle.js +7 -7
  604. package/dist/geometry/profiles/shapes.js +9 -9
  605. package/dist/geometry/profiles/side-profile.js +37 -0
  606. package/dist/geometry/regions.js +15 -15
  607. package/dist/geometry/revolve/revolve-mesh.js +5 -5
  608. package/dist/geometry/stroke-path.js +2 -2
  609. package/dist/geometry/svg/errors.js +0 -3
  610. package/dist/geometry/svg/fill.js +7 -7
  611. package/dist/geometry/svg/index.js +1 -1
  612. package/dist/geometry/svg/matrix.js +0 -114
  613. package/dist/geometry/svg/parser.js +1 -439
  614. package/dist/geometry/svg-import.js +3 -3
  615. package/dist/geometry/sweeps/sweep-closed.js +1 -1
  616. package/dist/geometry/sweeps/sweep-mesh.js +1 -1
  617. package/dist/geometry/sweeps/sweep-open.js +3 -3
  618. package/dist/geometry/sweeps/validation.js +2 -2
  619. package/dist/geometry/text-fitting.js +85 -0
  620. package/dist/geometry/tolerance.js +2 -2
  621. package/dist/geometry/transform-geometry.js +9 -9
  622. package/dist/model/execution-binding.js +3 -3
  623. package/dist/model/generation.js +1 -1
  624. package/dist/model/operation-contracts.js +1 -0
  625. package/dist/model/operation-dispatch.js +6 -0
  626. package/dist/model/operations.js +19 -49
  627. package/package.json +10 -8
  628. /package/dist/geometry/{mesh-edge-table.js → mesh/mesh-edge-table.js} +0 -0
  629. /package/dist/geometry/{mesh-solid-intersections.js → mesh/mesh-solid-intersections.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # @metamesh/modeling
2
2
 
3
+ ## 0.13.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 2ebe03f: Ship exact-version offline documentation and a development-only authoring CLI for semantic
8
+ checking, generation, captured geometry inspection, and explicit Chromium previews. Use exact
9
+ package versions in documentation metadata and reject unsupported authoring artifact formats.
10
+ Provide generated command help and strict per-command argument validation, and enforce semantic
11
+ checking even when the consumer's TypeScript configuration disables it.
12
+
13
+ Publish lightweight model and Generator testing helpers as `@metamesh/testkit`. Move the
14
+ `metamesh` executable and Node authoring API into `@metamesh/cli`, which owns compiler, bundler,
15
+ renderer, and browser dependencies. Remove the former package name and authoring entry from
16
+ Testkit without compatibility aliases.
17
+
18
+ - 7e1b75d: Simplify modeling authoring with `polygon` construction, shared bounds and vector text fitting,
19
+ Section patterns, pure pattern transforms, and explicit profile closure and part layout helpers.
20
+ Zero-sized round, chamfer, and smooth treatments preserve untreated geometry.
21
+
22
+ Replace the public geometry vocabulary with `Vector2`, `Vector3`, `Contour`, `Polygon`, and
23
+ `Region`, and use canonical `Bounds2` and `Bounds3` throughout. Remove retired constructor and
24
+ type names. Bundles require runtime major 5 and the generation realm uses protocol 5; older
25
+ runtime packages reject before execution. The package envelope remains format 4.
26
+
27
+ - 3139981: Allow generation callbacks to return a single `part(...)` declaration or a readonly array of parts.
28
+ Existing array returns remain supported, and engine snapshots continue to expose a parts array.
29
+
3
30
  ## 0.12.0
4
31
 
5
32
  ### Minor Changes
package/README.md CHANGED
@@ -1,48 +1,62 @@
1
1
  # `@metamesh/modeling`
2
2
 
3
- Build parametric 3D parts with TypeScript and export the finished meshes to 3MF. Use Modeling in
4
- Node applications, browser Workers, or MetaMesh Generators, with no SDK or Testkit required.
3
+ Build parametric 3D parts in TypeScript. Combine solids, work with pure geometry, and export 3MF
4
+ from Node applications, browser Workers, or MetaMesh Generators.
5
5
 
6
6
  > **Preview:** `0.x` minor releases may break compatibility. Patches remain compatible within the
7
- > same minor line. Stable support requires an explicit `1.0.0` review.
7
+ > same minor line.
8
8
 
9
- ## Start modeling
9
+ ## Installation
10
10
 
11
11
  ```bash
12
12
  pnpm add @metamesh/modeling
13
13
  ```
14
14
 
15
- Initialize an engine, then build and export a plate with a hole:
15
+ Modeling works on its own; the Generator SDK and Testkit are optional.
16
+
17
+ ## Start modeling
18
+
19
+ Build a plate with a hole, then export its finished geometry:
16
20
 
17
21
  ```ts
18
22
  import { box, cylinder, generate } from "@metamesh/modeling";
19
23
  import { createModelEngine } from "@metamesh/modeling/engine";
20
24
 
21
- const engine = await createModelEngine();
22
25
  const model = generate<Record<never, never>>(({ part }) => {
23
26
  const body = box({ size: [30, 20, 6] });
24
27
  const bore = cylinder({ height: 8, radius: 3, sizing: "face" });
25
- return [part("plate", { geometry: body.subtract([bore]), color: "#67e8f9" })];
28
+ return part("plate", body.subtract([bore]));
26
29
  });
30
+
31
+ const engine = await createModelEngine();
27
32
  const session = engine.createSession(model, { resolution: { maxChordError: 0.025 } });
28
- const snapshot = session.run({});
29
- const bytes = await engine.export3mf(snapshot.parts, { name: "Plate" });
30
- snapshot.dispose();
31
- session.dispose();
33
+ try {
34
+ const snapshot = session.run({});
35
+ try {
36
+ const bytes = await engine.export3mf(snapshot.parts, { name: "Plate" });
37
+ // Save or send the 3MF bytes.
38
+ } finally {
39
+ snapshot.dispose();
40
+ }
41
+ } finally {
42
+ session.dispose();
43
+ }
32
44
  ```
33
45
 
34
- Constructors and fluent shape methods declare immutable recipes inside synchronous generation.
35
- Use shape methods for transforms, subtraction, and finishing; collection operations such as
36
- `union`, patterns, and observations remain functions. Calls apply in written order about the origin.
37
- A method preserves its input; no-op operations may reuse a handle. A session owns optional
38
- computed caches; captured snapshots stay usable after the session is disposed. Keep the finalized
39
- snapshot for rendering or export, then dispose it. For browser WASM setup and host lifecycle, follow
40
- [Run Modeling in your application](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/engine/hosting.mdx).
46
+ Generation is synchronous. Return a single `part(...)` or a readonly array of parts. Shape constructors
47
+ and methods create immutable recipes; the engine evaluates them into a snapshot for rendering or
48
+ export. Sessions own reusable work, while snapshots remain usable after their session is disposed.
49
+ Dispose both when finished. Export uses the captured geometry without running the model again.
50
+
51
+ Lengths use millimetres and modeling rotations use degrees. Physical resolution controls curve
52
+ sampling for both preview and manufacturing output. See the
53
+ [hosting guide](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/engine/hosting.mdx)
54
+ for browser WASM setup, resource limits, and lifecycle details.
41
55
 
42
56
  ## Reuse unchanged work
43
57
 
44
- Caching is optional. A named computation tracks parameter and other computation reads; part
45
- placement and color stay separate from its geometry:
58
+ Use optional `computed` values for expensive geometry or data. Keep ordinary arithmetic and part
59
+ placement simple:
46
60
 
47
61
  ```ts
48
62
  const model = generate<{ height: number; gap: number }>(({ params, computed, part }) => {
@@ -51,67 +65,41 @@ const model = generate<{ height: number; gap: number }>(({ params, computed, par
51
65
  });
52
66
  ```
53
67
 
54
- Changing `gap` reuses the body's validated geometry. Changing `height` recomputes it. Read parameters
55
- and computed readers inside the callback; locals calculated there keep those reads tracked.
56
- For changing values prepared outside, add a dependency array:
57
-
58
- ```ts
59
- const { height } = params;
60
- const body = computed("body", () => box({ size: [10, 10, height] }), [height]);
61
- ```
68
+ Changing `gap` reuses the body's geometry; changing `height` recomputes it. Read parameters and
69
+ other computed readers inside the callback so their dependencies are tracked. Changing outer
70
+ captures need an explicit dependency array. Callbacks are pure and synchronous; cached data is
71
+ immutable. Use `immutableBuffer` and `immutableMesh` for cached typed arrays and meshes.
62
72
 
63
- Both forms track synchronous parameter and reader calls inside the callback. An earlier parameter
64
- value or computed result carries no dependency into a later callback unless listed explicitly.
65
- The array supplements automatic tracking; even `[]` still tracks reads inside the callback.
66
- Entries compare with `Object.is`, without deep comparisons. Objects and arrays must be deeply
67
- immutable; parameter snapshots and computed results already satisfy this contract. Fresh objects
68
- still cause cache misses, so prefer scalar inputs and create temporary options inside the callback.
69
- Computations are pure and synchronous; ordinary generation without caching remains supported.
70
-
71
- Capture cached numeric arrays with `immutableBuffer(values)`: read `length` or `at(index)`, and
72
- call `copy()` for an owned mutable typed array. Capture cached meshes with `immutableMesh(mesh)`
73
- and pass their readers directly to `part`. Computed results and dependencies reject raw typed arrays;
74
- ordinary transient mesh inputs, snapshots, and Worker output still use normal typed arrays.
75
-
76
- The optional session setting `verifyCache: true` reruns callbacks on cache hits and compares bounded
77
- data and recipes to diagnose observable missing dependencies. It can reject unsupported or large
78
- comparisons and cannot prove arbitrary JavaScript; production caching leaves this probe disabled.
79
-
80
- For expensive geometry followed by adjustable cuts or Booleans, put the base and finishing stage
81
- in separate computations. Sessions can retain the evaluated base privately, preserving native
82
- precision when it becomes an operand in a later run. Retention is bounded and optional; eviction
83
- rebuilds the original recipe. Clear or dispose the session to release retained native geometry.
84
-
85
- Use `assert(condition, message)` for a constraint that stops the revision and `warn(message)` for
86
- nonblocking guidance. Hosts bind prepared deterministic capabilities through session `services`.
87
- `validateModel` checks declarations and reached assertions without initializing a kernel; checks
88
- that observe geometry use an initialized session's `validate` method.
73
+ The [computed-value guide](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/develop/code-project-contract.mdx)
74
+ covers dependency tracking, immutable data, cache verification, and part placement.
89
75
 
90
76
  ## API discovery and ownership
91
77
 
92
- | Import | Use it for |
93
- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
94
- | [`@metamesh/modeling`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/model/index.mdx) | Fluent solids and sections, constructors, and collection operations |
95
- | [`@metamesh/modeling/geometry`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/geometry/index.mdx) | Pure paths, profiles, meshes, and calculations |
96
- | [`@metamesh/modeling/engine`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/engine/index.mdx) | Sessions, snapshots, limits, and 3MF export |
97
- | [`@metamesh/modeling/text`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/text/index.mdx) | Optional font preparation and vector layouts |
78
+ | Import | Use it for |
79
+ | ------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
80
+ | [`@metamesh/modeling`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/model/index.mdx) | Solids, sections, transforms, and modeling operations |
81
+ | [`@metamesh/modeling/geometry`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/geometry/index.mdx) | Pure paths, profiles, meshes, and calculations |
82
+ | [`@metamesh/modeling/engine`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/engine/index.mdx) | Sessions, snapshots, limits, and 3MF export |
83
+ | [`@metamesh/modeling/text`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/text/index.mdx) | Optional font preparation and vector layouts |
98
84
 
99
85
  ## Documentation
100
86
 
101
- - [Geometry concepts](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/develop/geometry-package.mdx) — modules, coordinates, resolution, and supported modeling paths.
102
- - [Geometry recipes](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/develop/geometry-recipes.mdx) — worked examples for primitives, sweeps, lofts, and repeated parts.
103
- - [Font preparation](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/engine/fonts.mdx) — supply exact font bytes outside Studio.
104
-
105
- The public docs are being prepared for `https://metamesh.studio/docs`. Until launch, use the
106
- repository links above or [run Web locally](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/README.md#local-use). Exact options,
107
- constraints, and examples live in source docblocks and the API reference generated from them.
87
+ The installed package exposes `@metamesh/modeling/docs/manifest.json`: an exact-version index of
88
+ plain Markdown guides and every public API symbol. Resolve that export from your project to find
89
+ the documentation beside your installed release. Its paths are relative to the manifest.
90
+ With Testkit installed, use `pnpm exec metamesh docs search "your topic"` and
91
+ `pnpm exec metamesh docs show DOCUMENT_ID` for bounded offline lookup. Start with
92
+ `modeling/guide/concepts` and `modeling/guide/hosting` when choosing an execution environment.
108
93
 
109
- ## Contributing
94
+ - [Geometry concepts](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/develop/geometry-package.mdx) — coordinates, resolution, and supported modeling paths.
95
+ - [Geometry recipes](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/develop/geometry-recipes.mdx) — primitives, sweeps, lofts, text, SVG, and booleans.
96
+ - [Font preparation](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/engine/fonts.mdx) — prepare exact font bytes outside Studio.
110
97
 
111
- Start with [Update the Modeling API](https://github.com/JasonKoolman/metamesh/blob/main/docs/guides/update-the-geometry-api.md) and the
112
- [workspace instructions](https://github.com/JasonKoolman/metamesh/blob/main/packages/modeling/AGENTS.md) for checks and reference generation. Internal dependency and
113
- execution boundaries live in [architecture](https://github.com/JasonKoolman/metamesh/blob/main/docs/architecture.md#modeling-library-and-execution).
98
+ Until the public documentation site launches, use these repository guides or
99
+ [run the docs locally](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/README.md#local-use).
100
+ For package development, see [Contributing](https://github.com/JasonKoolman/metamesh/blob/main/CONTRIBUTING.md).
114
101
 
115
102
  ## License
116
103
 
117
- Apache-2.0; see [LICENSE](https://github.com/JasonKoolman/metamesh/blob/main/packages/modeling/LICENSE) and [THIRD_PARTY_NOTICES.md](https://github.com/JasonKoolman/metamesh/blob/main/packages/modeling/THIRD_PARTY_NOTICES.md).
104
+ [Apache-2.0](https://github.com/JasonKoolman/metamesh/blob/main/packages/modeling/LICENSE).
105
+ Bundled dependencies are listed in [Third-party notices](https://github.com/JasonKoolman/metamesh/blob/main/packages/modeling/THIRD_PARTY_NOTICES.md).
@@ -1,139 +1,155 @@
1
1
  import type { TriangleMesh } from "@metamesh/modeling/geometry";
2
- import type { FinalizedModel, FinalizedPart, GenerationDiagnostic, GeometryResolution, ModelingLimits, ModelProgram, Vec3 } from "@metamesh/modeling";
2
+ import type {
3
+ FinalizedModel,
4
+ FinalizedPart,
5
+ GenerationDiagnostic,
6
+ GeometryResolution,
7
+ ModelingLimits,
8
+ ModelProgram,
9
+ Vector3,
10
+ } from "@metamesh/modeling";
3
11
  /** Default host resource ceilings for parts, vertices, triangles, and transferable bytes. */
4
12
  declare const defaultModelingLimits: Readonly<ModelingLimits>;
5
13
 
6
-
7
14
  /** Execution settings supplied by the host, independently of generator metadata. */
8
15
  export interface GenerationOptions {
9
- /** Optional bounded intersection and nested-shell checks; defaults to indexed topology validation. */
10
- readonly meshValidation?: "topology" | "solid";
11
- /** Per-build limits, no larger than the configured engine ceilings. */
12
- readonly limits?: Partial<ModelingLimits>;
13
- /** Physical sampling defaults; operation options and exact counts override these. */
14
- readonly resolution?: GeometryResolution;
15
- /** Optional bounded planar cleanup; unsupported candidates preserve the original part. */
16
- readonly meshTopologyMode?: "original" | "optimized";
16
+ /** Optional bounded intersection and nested-shell checks; defaults to indexed topology validation. */
17
+ readonly meshValidation?: "topology" | "solid";
18
+ /** Per-build limits, no larger than the configured engine ceilings. */
19
+ readonly limits?: Partial<ModelingLimits>;
20
+ /** Physical sampling defaults; operation options and exact counts override these. */
21
+ readonly resolution?: GeometryResolution;
22
+ /** Optional bounded planar cleanup; unsupported candidates preserve the original part. */
23
+ readonly meshTopologyMode?: "original" | "optimized";
17
24
  }
18
25
  /**
19
26
  * Host engine. No native values or manually disposable handles are exposed.
20
27
  */
21
28
  export interface ModelEngine {
22
- /** Immutable resource ceilings selected when this engine was initialized. */
23
- readonly limits: ModelingLimits;
24
- /** Creates isolated caches; prepared service capabilities remain fixed for its lifetime. */
25
- createSession<P, S>(program: ModelProgram<P, S>, ...options: keyof S extends never ? [options?: SessionOptions<S>] : [options: SessionOptions<S> & {
26
- readonly services: S;
27
- }]): ModelSession<P>;
28
- /** Serializes already finalized mesh parts; never prepares or builds a generator again. */
29
- export3mf(parts: readonly ExportMeshPart[], options?: Export3mfOptions): Promise<ArrayBuffer>;
29
+ /** Immutable resource ceilings selected when this engine was initialized. */
30
+ readonly limits: ModelingLimits;
31
+ /** Creates isolated caches; prepared service capabilities remain fixed for its lifetime. */
32
+ createSession<P, S>(
33
+ program: ModelProgram<P, S>,
34
+ ...options: keyof S extends never
35
+ ? [options?: SessionOptions<S>]
36
+ : [
37
+ options: SessionOptions<S> & {
38
+ readonly services: S;
39
+ },
40
+ ]
41
+ ): ModelSession<P>;
42
+ /** Serializes already finalized mesh parts; never prepares or builds a generator again. */
43
+ export3mf(
44
+ parts: readonly ExportMeshPart[],
45
+ options?: Export3mfOptions,
46
+ ): Promise<ArrayBuffer>;
30
47
  }
31
48
  /** Fixed generation policy and deterministic host capabilities for one model session. */
32
- export interface SessionOptions<S = Record<never, never>> extends GenerationOptions {
33
- /** Host-owned synchronous capabilities, required when declared by the program. The original
34
- * environment is retained; its behavior and assets must remain deterministic and fixed for
35
- * this session. Equivalent function wrappers do not constitute an asset revision.
36
- */
37
- readonly services?: S;
38
- /** Enables reuse; defaults to true. Set false for uncached output equivalence checks. */
39
- readonly cache?: boolean;
40
- /** Development-only cache-hit probe: reruns pure callbacks and compares bounded data/recipes.
41
- * Unsupported closures or large results fail explicitly; this cannot prove arbitrary JavaScript.
42
- */
43
- readonly verifyCache?: boolean;
49
+ export interface SessionOptions<
50
+ S = Record<never, never>,
51
+ > extends GenerationOptions {
52
+ /** Host-owned synchronous capabilities, required when declared by the program. The original
53
+ * environment is retained; its behavior and assets must remain deterministic and fixed for
54
+ * this session. Equivalent function wrappers do not constitute an asset revision.
55
+ */
56
+ readonly services?: S;
57
+ /** Enables reuse; defaults to true. Set false for uncached output equivalence checks. */
58
+ readonly cache?: boolean;
59
+ /** Development-only cache-hit probe: reruns pure callbacks and compares bounded data/recipes.
60
+ * Unsupported closures or large results fail explicitly; this cannot prove arbitrary JavaScript.
61
+ */
62
+ readonly verifyCache?: boolean;
44
63
  }
45
64
  /** Validated local geometry resource; accessors return owned buffer copies. */
46
65
  export interface GeometryResource extends TriangleMesh {
47
- /** Session-scoped immutable resource identity, stable while geometry is reused. */
48
- readonly id: string;
49
- /** Immutable resource revision; a new resource receives a new identity. */
50
- readonly revision: number;
51
- /** Facts for the exact local manufacturing buffers. */
52
- readonly measurements: FinalizedPart["measurements"];
66
+ /** Session-scoped immutable resource identity, stable while geometry is reused. */
67
+ readonly id: string;
68
+ /** Immutable resource revision; a new resource receives a new identity. */
69
+ readonly revision: number;
70
+ /** Facts for the exact local manufacturing buffers. */
71
+ readonly measurements: FinalizedPart["measurements"];
53
72
  }
54
73
  /** A world-space manufacturing part plus its reusable local renderer resource. */
55
74
  export interface SnapshotPart extends FinalizedPart {
56
- /** Validated geometry in local coordinates, independent of placement and appearance. */
57
- readonly geometry: GeometryResource;
58
- /** XYZ translation in millimetres after rotation. */
59
- readonly position: Vec3;
60
- /** Fixed global X, then Y, then Z rotation in degrees. */
61
- readonly rotation: Vec3;
75
+ /** Validated geometry in local coordinates, independent of placement and appearance. */
76
+ readonly geometry: GeometryResource;
77
+ /** XYZ translation in millimetres after rotation. */
78
+ readonly position: Vector3;
79
+ /** Fixed global X, then Y, then Z rotation in degrees. */
80
+ readonly rotation: Vector3;
62
81
  }
63
82
  /** Captured immutable revision; disposal never changes another snapshot or an in-flight export. */
64
83
  export interface ModelSnapshot extends FinalizedModel {
65
- /** Ordered world-space parts, each referring to reusable local geometry. */
66
- readonly parts: readonly SnapshotPart[];
67
- /** Nonblocking diagnostics emitted for this revision. */
68
- readonly diagnostics: readonly GenerationDiagnostic[];
69
- /** Known dependency graph; outer reads remain conservative model-wide dependencies. */
70
- readonly dependencies: ModelDependencies;
71
- /** Releases this snapshot's references; idempotent, further access is invalid. */
72
- dispose(): void;
84
+ /** Ordered world-space parts, each referring to reusable local geometry. */
85
+ readonly parts: readonly SnapshotPart[];
86
+ /** Nonblocking diagnostics emitted for this revision. */
87
+ readonly diagnostics: readonly GenerationDiagnostic[];
88
+ /** Known dependency graph; outer reads remain conservative model-wide dependencies. */
89
+ readonly dependencies: ModelDependencies;
90
+ /** Releases this snapshot's references; idempotent, further access is invalid. */
91
+ dispose(): void;
73
92
  }
74
93
  /** Known dependencies for inspection; plain JavaScript bindings do not reveal their parameter origin. */
75
94
  export interface ModelDependencies {
76
- /** Parameter keys read outside computed callbacks, affecting structure or ordinary code. */
77
- readonly modelParameters: readonly string[];
78
- /** Direct dependencies recorded by successfully evaluated computations. */
79
- readonly computations: readonly {
80
- /** Session-local computation identity. */
81
- readonly id: string;
82
- /** Direct top-level parameter reads. */
83
- readonly parameters: readonly string[];
84
- /** Direct computed-reader dependencies. */
85
- readonly computations: readonly string[];
86
- }[];
87
- /** Part reader roots and known transitive parameter dependencies. */
88
- readonly parts: readonly {
89
- /** Stable semantic output part identity. */
90
- readonly id: string;
91
- /** Computed readers supplied as geometry or placement roots. */
92
- readonly computations: readonly string[];
93
- /** Known transitive parameter dependencies through these roots. */
94
- readonly parameters: readonly string[];
95
- }[];
95
+ /** Parameter keys read outside computed callbacks, affecting structure or ordinary code. */
96
+ readonly modelParameters: readonly string[];
97
+ /** Direct dependencies recorded by successfully evaluated computations. */
98
+ readonly computations: readonly {
99
+ /** Session-local computation identity. */
100
+ readonly id: string;
101
+ /** Direct top-level parameter reads. */
102
+ readonly parameters: readonly string[];
103
+ /** Direct computed-reader dependencies. */
104
+ readonly computations: readonly string[];
105
+ }[];
106
+ /** Part reader roots and known transitive parameter dependencies. */
107
+ readonly parts: readonly {
108
+ /** Stable semantic output part identity. */
109
+ readonly id: string;
110
+ /** Computed readers supplied as geometry or placement roots. */
111
+ readonly computations: readonly string[];
112
+ /** Known transitive parameter dependencies through these roots. */
113
+ readonly parameters: readonly string[];
114
+ }[];
96
115
  }
97
116
  /** Stateful execution owner; a failed revision cannot change previously returned snapshots. */
98
117
  export interface ModelSession<P> {
99
- /** Generates an atomic manufacturing snapshot or throws; parameters are copied and frozen. */
100
- run(params: Readonly<P>): ModelSnapshot;
101
- /** Runs declaration and reached assertions without realizing returned parts. */
102
- validate(params: Readonly<P>): readonly GenerationDiagnostic[];
103
- /** Clears optional caches without invalidating captured snapshots. */
104
- clearCache(): void;
105
- /** Releases session ownership; idempotent, captured snapshots remain usable. */
106
- dispose(): void;
118
+ /** Generates an atomic manufacturing snapshot or throws; parameters are copied and frozen. */
119
+ run(params: Readonly<P>): ModelSnapshot;
120
+ /** Runs declaration and reached assertions without realizing returned parts. */
121
+ validate(params: Readonly<P>): readonly GenerationDiagnostic[];
122
+ /** Clears optional caches without invalidating captured snapshots. */
123
+ clearCache(): void;
124
+ /** Releases session ownership; idempotent, captured snapshots remain usable. */
125
+ dispose(): void;
107
126
  }
108
127
  /**
109
128
  * Manufacturing buffers accepted by the snapshot exporter.
110
129
  */
111
130
  export interface ExportMeshPart extends TriangleMesh {
112
- /** Stable canonical lowercase identity; unique within the containing topology or output. */
113
- readonly id: string;
114
- /** Optional six-digit hex RGB display color. */
115
- readonly color?: string;
131
+ /** Stable canonical lowercase identity; unique within the containing topology or output. */
132
+ readonly id: string;
133
+ /** Optional six-digit hex RGB display color. */
134
+ readonly color?: string;
116
135
  }
117
136
  /**
118
137
  * Completed-snapshot serialization settings; filename selection belongs to the host.
119
138
  */
120
139
  export interface Export3mfOptions {
121
- /** Optional bounded geometric solid checks on captured buffers; defaults to indexed topology validation. */
122
- readonly meshValidation?: "topology" | "solid";
123
- /** Document display name; defaults to MetaMesh model. */
124
- readonly name?: string;
140
+ /** Optional bounded geometric solid checks on captured buffers; defaults to indexed topology validation. */
141
+ readonly meshValidation?: "topology" | "solid";
142
+ /** Document display name; defaults to MetaMesh model. */
143
+ readonly name?: string;
125
144
  }
126
145
  /** Kernel asset initialization. Networking and Worker ownership remain with the host. */
127
146
  export interface ModelEngineOptions {
128
- /** Resolves the kernel's WASM asset. Browser hosts supply their bundled asset URL. */
129
- readonly locateFile?: () => string;
130
- /** Trusted application ceilings. Builds may lower them; generators receive no engine. */
131
- readonly limits?: Partial<ModelingLimits>;
147
+ /** Resolves the kernel's WASM asset. Browser hosts supply their bundled asset URL. */
148
+ readonly locateFile?: () => string;
149
+ /** Trusted application ceilings. Builds may lower them; generators receive no engine. */
150
+ readonly limits?: Partial<ModelingLimits>;
132
151
  }
133
152
 
134
-
135
-
136
-
137
153
  export { defaultModelingLimits };
138
154
  /** URL of the package's pinned WASM asset; browser bundlers may replace it with their emitted URL. */
139
155
  export declare const modelingWasmUrl: string;
@@ -142,9 +158,17 @@ export declare const modelingWasmUrl: string;
142
158
  * Runs declaration and immediate assertions without initializing a kernel or finalizing parts.
143
159
  * Geometry observations require an initialized session's `validate` method instead.
144
160
  */
145
- export declare function validateModel<P, S>(program: ModelProgram<P, S>, params: Readonly<P>, ...settings: keyof S extends never ? [options?: SessionOptions<S>] : [options: SessionOptions<S> & {
146
- readonly services: S;
147
- }]): readonly GenerationDiagnostic[];
161
+ export declare function validateModel<P, S>(
162
+ program: ModelProgram<P, S>,
163
+ params: Readonly<P>,
164
+ ...settings: keyof S extends never
165
+ ? [options?: SessionOptions<S>]
166
+ : [
167
+ options: SessionOptions<S> & {
168
+ readonly services: S;
169
+ },
170
+ ]
171
+ ): readonly GenerationDiagnostic[];
148
172
  /**
149
173
  * Initializes one host kernel and returns a lifecycle-safe engine. No generator initializes WASM.
150
174
  *
@@ -168,5 +192,7 @@ export declare function validateModel<P, S>(program: ModelProgram<P, S>, params:
168
192
  * }
169
193
  * ```
170
194
  */
171
- export declare function createModelEngine(options?: ModelEngineOptions): Promise<ModelEngine>;
195
+ export declare function createModelEngine(
196
+ options?: ModelEngineOptions,
197
+ ): Promise<ModelEngine>;
172
198
  export type { ModelingLimits };