@metamesh/modeling 0.12.0 → 0.14.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 (699) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +103 -72
  3. package/dist/api/engine.d.ts +123 -97
  4. package/dist/api/geometry.d.ts +4232 -3307
  5. package/dist/api/index.d.ts +2758 -2268
  6. package/dist/api/text.d.ts +119 -107
  7. package/dist/docs/guides/concepts.md +300 -0
  8. package/dist/docs/guides/fonts.md +59 -0
  9. package/dist/docs/guides/fundamentals.md +137 -0
  10. package/dist/docs/guides/generation.md +223 -0
  11. package/dist/docs/guides/hosting.md +91 -0
  12. package/dist/docs/guides/recipes.md +718 -0
  13. package/dist/docs/manifest.json +10703 -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 +92 -0
  33. package/dist/docs/reference/geometry/Anchor3.md +53 -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 +62 -0
  37. package/dist/docs/reference/geometry/AxisAngleRotation3.md +66 -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 +14 -0
  45. package/dist/docs/reference/geometry/BoxAnchorOptions.md +63 -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/CircularResolutionOptions.md +107 -0
  56. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +41 -0
  57. package/dist/docs/reference/geometry/ClearanceHoleFit.md +7 -0
  58. package/dist/docs/reference/geometry/ClosestPointOnPathOptions.md +34 -0
  59. package/dist/docs/reference/geometry/ClosestPointOnPathResult.md +65 -0
  60. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +53 -0
  61. package/dist/docs/reference/geometry/Contour.md +17 -0
  62. package/dist/docs/reference/geometry/ContourCurve.md +35 -0
  63. package/dist/docs/reference/geometry/ContourPoint.md +29 -0
  64. package/dist/docs/reference/geometry/ContourSegment.md +86 -0
  65. package/dist/docs/reference/geometry/CorrespondingComponent.md +46 -0
  66. package/dist/docs/reference/geometry/CorrespondingContour.md +46 -0
  67. package/dist/docs/reference/geometry/CorrespondingProfile.md +22 -0
  68. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +27 -0
  69. package/dist/docs/reference/geometry/CubicBezierCurve2.md +70 -0
  70. package/dist/docs/reference/geometry/CubicBezierCurve3.md +70 -0
  71. package/dist/docs/reference/geometry/Curve2.md +16 -0
  72. package/dist/docs/reference/geometry/Curve3.md +16 -0
  73. package/dist/docs/reference/geometry/CurveSamplingOptions.md +64 -0
  74. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +73 -0
  75. package/dist/docs/reference/geometry/CylinderAnchorFace.md +14 -0
  76. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +87 -0
  77. package/dist/docs/reference/geometry/CylinderOptions.md +53 -0
  78. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +209 -0
  79. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +7 -0
  80. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +71 -0
  81. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +82 -0
  82. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +34 -0
  83. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +41 -0
  84. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +47 -0
  85. package/dist/docs/reference/geometry/CylindricalGearSpec.md +82 -0
  86. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +7 -0
  87. package/dist/docs/reference/geometry/EdgeTreatment.md +17 -0
  88. package/dist/docs/reference/geometry/EllipseContourOptions.md +15 -0
  89. package/dist/docs/reference/geometry/EndTreatments.md +34 -0
  90. package/dist/docs/reference/geometry/ExtrudeOptions.md +134 -0
  91. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +77 -0
  92. package/dist/docs/reference/geometry/FittedTextLayout.md +60 -0
  93. package/dist/docs/reference/geometry/Frame3.md +58 -0
  94. package/dist/docs/reference/geometry/GeometryError.md +97 -0
  95. package/dist/docs/reference/geometry/GeometryErrorCode.md +7 -0
  96. package/dist/docs/reference/geometry/GeometryErrorContext.md +29 -0
  97. package/dist/docs/reference/geometry/GeometryResolution.md +74 -0
  98. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +62 -0
  99. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +41 -0
  100. package/dist/docs/reference/geometry/GridPatternOptions.md +42 -0
  101. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +14 -0
  102. package/dist/docs/reference/geometry/HeightfieldOptions.md +67 -0
  103. package/dist/docs/reference/geometry/HeightfieldPreflight.md +53 -0
  104. package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +141 -0
  105. package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +265 -0
  106. package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +53 -0
  107. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +18 -0
  108. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +242 -0
  109. package/dist/docs/reference/geometry/LineCurve2.md +46 -0
  110. package/dist/docs/reference/geometry/LineCurve3.md +46 -0
  111. package/dist/docs/reference/geometry/LinearPatternOptions.md +30 -0
  112. package/dist/docs/reference/geometry/LoftCorrespondence.md +19 -0
  113. package/dist/docs/reference/geometry/LoftMeshStation.md +27 -0
  114. package/dist/docs/reference/geometry/LoftOptions.md +84 -0
  115. package/dist/docs/reference/geometry/LoftPlacement.md +66 -0
  116. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +18 -0
  117. package/dist/docs/reference/geometry/MatchProfilesOptions.md +35 -0
  118. package/dist/docs/reference/geometry/MetricFastenerSize.md +7 -0
  119. package/dist/docs/reference/geometry/MetricFastenerStandard.md +72 -0
  120. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +29 -0
  121. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +41 -0
  122. package/dist/docs/reference/geometry/ModelingLimits.md +126 -0
  123. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +17 -0
  124. package/dist/docs/reference/geometry/Path2.md +14 -0
  125. package/dist/docs/reference/geometry/Path3.md +14 -0
  126. package/dist/docs/reference/geometry/PathFrame.md +46 -0
  127. package/dist/docs/reference/geometry/PathNormalGuide.md +38 -0
  128. package/dist/docs/reference/geometry/PathPatternOptions.md +46 -0
  129. package/dist/docs/reference/geometry/PathPlacement.md +34 -0
  130. package/dist/docs/reference/geometry/Pivot2Options.md +26 -0
  131. package/dist/docs/reference/geometry/Pivot3Options.md +26 -0
  132. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +7 -0
  133. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +156 -0
  134. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +120 -0
  135. package/dist/docs/reference/geometry/PlanarPatchQuality.md +190 -0
  136. package/dist/docs/reference/geometry/PolygonData.md +38 -0
  137. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +92 -0
  138. package/dist/docs/reference/geometry/PrimitivePlacement.md +31 -0
  139. package/dist/docs/reference/geometry/PrimitivePlacementOptions.md +83 -0
  140. package/dist/docs/reference/geometry/PrintableThreadFit.md +7 -0
  141. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +45 -0
  142. package/dist/docs/reference/geometry/Profile.md +22 -0
  143. package/dist/docs/reference/geometry/ProfileComponent2.md +46 -0
  144. package/dist/docs/reference/geometry/ProfileContour2.md +34 -0
  145. package/dist/docs/reference/geometry/ProfileSpan2.md +47 -0
  146. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +36 -0
  147. package/dist/docs/reference/geometry/RackPitchDimensions.md +113 -0
  148. package/dist/docs/reference/geometry/RackPitchSpec.md +77 -0
  149. package/dist/docs/reference/geometry/RadialPatternOptions.md +62 -0
  150. package/dist/docs/reference/geometry/RadialSizing.md +7 -0
  151. package/dist/docs/reference/geometry/RadialSizingOptions.md +40 -0
  152. package/dist/docs/reference/geometry/RectangleContourOptions.md +66 -0
  153. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +34 -0
  154. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +14 -0
  155. package/dist/docs/reference/geometry/RectangleProfileOptions.md +94 -0
  156. package/dist/docs/reference/geometry/RegionData.md +14 -0
  157. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +84 -0
  158. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +65 -0
  159. package/dist/docs/reference/geometry/RevolveOptions.md +82 -0
  160. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +91 -0
  161. package/dist/docs/reference/geometry/RowLayoutOptions.md +23 -0
  162. package/dist/docs/reference/geometry/SampleContourOptions.md +71 -0
  163. package/dist/docs/reference/geometry/SampleHelixOptions.md +95 -0
  164. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +71 -0
  165. package/dist/docs/reference/geometry/SampledCurve2.md +34 -0
  166. package/dist/docs/reference/geometry/SampledCurve3.md +34 -0
  167. package/dist/docs/reference/geometry/SampledThreadHelices.md +58 -0
  168. package/dist/docs/reference/geometry/SideProfileCurve.md +35 -0
  169. package/dist/docs/reference/geometry/SideProfilePoint.md +29 -0
  170. package/dist/docs/reference/geometry/SideProfileSegment.md +86 -0
  171. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +71 -0
  172. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +34 -0
  173. package/dist/docs/reference/geometry/SphereOptions.md +15 -0
  174. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +75 -0
  175. package/dist/docs/reference/geometry/StrokePathCap.md +7 -0
  176. package/dist/docs/reference/geometry/StrokePathJoin.md +7 -0
  177. package/dist/docs/reference/geometry/StrokePathRegionOptions.md +85 -0
  178. package/dist/docs/reference/geometry/SvgImportOptions.md +60 -0
  179. package/dist/docs/reference/geometry/SvgRegionPreflight.md +61 -0
  180. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +118 -0
  181. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +65 -0
  182. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +53 -0
  183. package/dist/docs/reference/geometry/SweepOptions.md +109 -0
  184. package/dist/docs/reference/geometry/SweepOrientation.md +109 -0
  185. package/dist/docs/reference/geometry/ThreadBevelOptions.md +53 -0
  186. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +100 -0
  187. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +73 -0
  188. package/dist/docs/reference/geometry/ThreadEndStyle.md +7 -0
  189. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +113 -0
  190. package/dist/docs/reference/geometry/ThreadHandedness.md +7 -0
  191. package/dist/docs/reference/geometry/ThreadHelixOptions.md +120 -0
  192. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +7 -0
  193. package/dist/docs/reference/geometry/ThreadLeadInShape.md +7 -0
  194. package/dist/docs/reference/geometry/ThreadProfile.md +82 -0
  195. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +49 -0
  196. package/dist/docs/reference/geometry/ThreadProfileSpec.md +19 -0
  197. package/dist/docs/reference/geometry/ThreadRole.md +7 -0
  198. package/dist/docs/reference/geometry/ThreadedNutBevel.md +7 -0
  199. package/dist/docs/reference/geometry/ThreadedNutOptions.md +269 -0
  200. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +94 -0
  201. package/dist/docs/reference/geometry/ThreadedNutShape.md +7 -0
  202. package/dist/docs/reference/geometry/ThreadedRodOptions.md +242 -0
  203. package/dist/docs/reference/geometry/TorusOptions.md +105 -0
  204. package/dist/docs/reference/geometry/Transform2-type.md +255 -0
  205. package/dist/docs/reference/geometry/Transform2Input.md +19 -0
  206. package/dist/docs/reference/geometry/Transform2Matrix.md +14 -0
  207. package/dist/docs/reference/geometry/Transform3-type.md +295 -0
  208. package/dist/docs/reference/geometry/Transform3Input.md +19 -0
  209. package/dist/docs/reference/geometry/Transform3Matrix.md +17 -0
  210. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +91 -0
  211. package/dist/docs/reference/geometry/TriangleMesh.md +34 -0
  212. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +119 -0
  213. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +75 -0
  214. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +75 -0
  215. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +39 -0
  216. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +190 -0
  217. package/dist/docs/reference/geometry/TriangleMeshSignature.md +107 -0
  218. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +41 -0
  219. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +29 -0
  220. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +51 -0
  221. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +91 -0
  222. package/dist/docs/reference/geometry/TubeOptions.md +138 -0
  223. package/dist/docs/reference/geometry/Vector2-type.md +269 -0
  224. package/dist/docs/reference/geometry/Vector2Input.md +19 -0
  225. package/dist/docs/reference/geometry/Vector2Tuple.md +14 -0
  226. package/dist/docs/reference/geometry/Vector3-type.md +281 -0
  227. package/dist/docs/reference/geometry/Vector3Input.md +19 -0
  228. package/dist/docs/reference/geometry/Vector3Tuple.md +14 -0
  229. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +53 -0
  230. package/dist/docs/reference/geometry/VectorTextLayout.md +39 -0
  231. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +111 -0
  232. package/dist/docs/reference/geometry/VectorTextMetrics.md +94 -0
  233. package/dist/docs/reference/geometry/VectorTextOptions.md +50 -0
  234. package/dist/docs/reference/geometry/add2.md +36 -0
  235. package/dist/docs/reference/geometry/add3.md +42 -0
  236. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +57 -0
  237. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +52 -0
  238. package/dist/docs/reference/geometry/anchorFrame3.md +40 -0
  239. package/dist/docs/reference/geometry/applyTransformDirection3.md +45 -0
  240. package/dist/docs/reference/geometry/applyTransformPoint3.md +43 -0
  241. package/dist/docs/reference/geometry/attachTransform.md +77 -0
  242. package/dist/docs/reference/geometry/boundsCenter.md +62 -0
  243. package/dist/docs/reference/geometry/boundsFromSize.md +83 -0
  244. package/dist/docs/reference/geometry/boundsSize.md +62 -0
  245. package/dist/docs/reference/geometry/boxAnchor3.md +52 -0
  246. package/dist/docs/reference/geometry/buildHelicalThreadRidgeMesh.md +68 -0
  247. package/dist/docs/reference/geometry/buildHelicalThreadSolidMesh.md +102 -0
  248. package/dist/docs/reference/geometry/categories/bounds-layout.md +35 -0
  249. package/dist/docs/reference/geometry/categories/curves-paths.md +66 -0
  250. package/dist/docs/reference/geometry/categories/mechanical.md +101 -0
  251. package/dist/docs/reference/geometry/categories/meshes.md +73 -0
  252. package/dist/docs/reference/geometry/categories/pattern-placement.md +34 -0
  253. package/dist/docs/reference/geometry/categories/primitive-options.md +36 -0
  254. package/dist/docs/reference/geometry/categories/profiles-regions.md +74 -0
  255. package/dist/docs/reference/geometry/categories/resolution-errors.md +47 -0
  256. package/dist/docs/reference/geometry/categories/transforms-math.md +92 -0
  257. package/dist/docs/reference/geometry/categories/vector-import.md +40 -0
  258. package/dist/docs/reference/geometry/circleContour.md +33 -0
  259. package/dist/docs/reference/geometry/closeToAxis.md +34 -0
  260. package/dist/docs/reference/geometry/closestPointOnPath.md +110 -0
  261. package/dist/docs/reference/geometry/compensateThreadDiameters.md +51 -0
  262. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +42 -0
  263. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +56 -0
  264. package/dist/docs/reference/geometry/composeTransform3.md +44 -0
  265. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +45 -0
  266. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +47 -0
  267. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +31 -0
  268. package/dist/docs/reference/geometry/containsBounds.md +72 -0
  269. package/dist/docs/reference/geometry/contourContainsPoint.md +33 -0
  270. package/dist/docs/reference/geometry/createAnchor3.md +67 -0
  271. package/dist/docs/reference/geometry/createThreadProfile.md +37 -0
  272. package/dist/docs/reference/geometry/createTriangleMeshSignature.md +60 -0
  273. package/dist/docs/reference/geometry/cross2.md +36 -0
  274. package/dist/docs/reference/geometry/cross3.md +42 -0
  275. package/dist/docs/reference/geometry/cumulativePathLengths.md +33 -0
  276. package/dist/docs/reference/geometry/cylinderAnchor3.md +60 -0
  277. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +14 -0
  278. package/dist/docs/reference/geometry/distance2.md +36 -0
  279. package/dist/docs/reference/geometry/distance3.md +36 -0
  280. package/dist/docs/reference/geometry/distributeAlongPath.md +51 -0
  281. package/dist/docs/reference/geometry/dot2.md +36 -0
  282. package/dist/docs/reference/geometry/dot3.md +42 -0
  283. package/dist/docs/reference/geometry/ellipseContour.md +33 -0
  284. package/dist/docs/reference/geometry/eulerTransform3.md +42 -0
  285. package/dist/docs/reference/geometry/extrudeMesh.md +73 -0
  286. package/dist/docs/reference/geometry/fitBounds.md +95 -0
  287. package/dist/docs/reference/geometry/fitTextLayout.md +57 -0
  288. package/dist/docs/reference/geometry/frameTransform3.md +48 -0
  289. package/dist/docs/reference/geometry/getMetricClearanceHole.md +33 -0
  290. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +27 -0
  291. package/dist/docs/reference/geometry/gridPatternTransforms.md +31 -0
  292. package/dist/docs/reference/geometry/heightfieldMesh.md +43 -0
  293. package/dist/docs/reference/geometry/inverseTransform3.md +34 -0
  294. package/dist/docs/reference/geometry/isGeometryError.md +26 -0
  295. package/dist/docs/reference/geometry/joinTriangleMeshes.md +36 -0
  296. package/dist/docs/reference/geometry/layoutRow.md +43 -0
  297. package/dist/docs/reference/geometry/length2.md +30 -0
  298. package/dist/docs/reference/geometry/length3.md +30 -0
  299. package/dist/docs/reference/geometry/lerp2.md +42 -0
  300. package/dist/docs/reference/geometry/lerp3.md +42 -0
  301. package/dist/docs/reference/geometry/linearPatternTransforms.md +31 -0
  302. package/dist/docs/reference/geometry/loftMesh.md +72 -0
  303. package/dist/docs/reference/geometry/matchProfiles.md +51 -0
  304. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +48 -0
  305. package/dist/docs/reference/geometry/measureTriangleMesh.md +55 -0
  306. package/dist/docs/reference/geometry/meshBounds.md +35 -0
  307. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +29 -0
  308. package/dist/docs/reference/geometry/normalize2.md +36 -0
  309. package/dist/docs/reference/geometry/normalize3.md +36 -0
  310. package/dist/docs/reference/geometry/normalizeContour.md +45 -0
  311. package/dist/docs/reference/geometry/normalizePolygon.md +37 -0
  312. package/dist/docs/reference/geometry/normalizeRegion.md +33 -0
  313. package/dist/docs/reference/geometry/optimizePlanarPatches.md +91 -0
  314. package/dist/docs/reference/geometry/pathLength.md +33 -0
  315. package/dist/docs/reference/geometry/pathPatternTransforms.md +57 -0
  316. package/dist/docs/reference/geometry/preflightHeightfield.md +34 -0
  317. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +96 -0
  318. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +85 -0
  319. package/dist/docs/reference/geometry/preflightSvgRegion.md +56 -0
  320. package/dist/docs/reference/geometry/preflightThreadedNut.md +96 -0
  321. package/dist/docs/reference/geometry/preflightThreadedRod.md +85 -0
  322. package/dist/docs/reference/geometry/projectOntoPlane3.md +36 -0
  323. package/dist/docs/reference/geometry/radialPatternTransforms.md +47 -0
  324. package/dist/docs/reference/geometry/rectangleContour.md +49 -0
  325. package/dist/docs/reference/geometry/rectangleProfile.md +53 -0
  326. package/dist/docs/reference/geometry/regionArea.md +34 -0
  327. package/dist/docs/reference/geometry/regionBounds.md +27 -0
  328. package/dist/docs/reference/geometry/regularPolygonContour.md +53 -0
  329. package/dist/docs/reference/geometry/resamplePolyline2.md +64 -0
  330. package/dist/docs/reference/geometry/resamplePolyline3.md +67 -0
  331. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +83 -0
  332. package/dist/docs/reference/geometry/resolveArcSegments.md +67 -0
  333. package/dist/docs/reference/geometry/resolveCircularSegments.md +62 -0
  334. package/dist/docs/reference/geometry/resolveCylindricalGear.md +31 -0
  335. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +31 -0
  336. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +74 -0
  337. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +26 -0
  338. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +59 -0
  339. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +27 -0
  340. package/dist/docs/reference/geometry/resolveRackPitch.md +27 -0
  341. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +59 -0
  342. package/dist/docs/reference/geometry/reverseTriangleMesh.md +30 -0
  343. package/dist/docs/reference/geometry/revolveMesh.md +76 -0
  344. package/dist/docs/reference/geometry/rotate2.md +36 -0
  345. package/dist/docs/reference/geometry/rotationTransform3.md +53 -0
  346. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +50 -0
  347. package/dist/docs/reference/geometry/sampleContour.md +77 -0
  348. package/dist/docs/reference/geometry/sampleCurve2.md +61 -0
  349. package/dist/docs/reference/geometry/sampleCurve3.md +61 -0
  350. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +58 -0
  351. package/dist/docs/reference/geometry/sampleHelix.md +41 -0
  352. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +59 -0
  353. package/dist/docs/reference/geometry/sampleRackToothPath.md +39 -0
  354. package/dist/docs/reference/geometry/sampleSideProfile.md +73 -0
  355. package/dist/docs/reference/geometry/sampleTextContours.md +53 -0
  356. package/dist/docs/reference/geometry/sampleThreadHelices.md +63 -0
  357. package/dist/docs/reference/geometry/scale2.md +36 -0
  358. package/dist/docs/reference/geometry/scale3.md +42 -0
  359. package/dist/docs/reference/geometry/scaleTransform3.md +38 -0
  360. package/dist/docs/reference/geometry/signedContourArea.md +26 -0
  361. package/dist/docs/reference/geometry/starContour.md +51 -0
  362. package/dist/docs/reference/geometry/strokePathRegion.md +63 -0
  363. package/dist/docs/reference/geometry/subtract2.md +36 -0
  364. package/dist/docs/reference/geometry/subtract3.md +42 -0
  365. package/dist/docs/reference/geometry/sweepMesh.md +82 -0
  366. package/dist/docs/reference/geometry/transform2.md +38 -0
  367. package/dist/docs/reference/geometry/transform3.md +38 -0
  368. package/dist/docs/reference/geometry/transformContour.md +42 -0
  369. package/dist/docs/reference/geometry/transformDeterminant3.md +36 -0
  370. package/dist/docs/reference/geometry/transformPath2.md +40 -0
  371. package/dist/docs/reference/geometry/transformPath3.md +33 -0
  372. package/dist/docs/reference/geometry/transformRegionData.md +40 -0
  373. package/dist/docs/reference/geometry/transformTriangleMesh.md +42 -0
  374. package/dist/docs/reference/geometry/translationTransform3.md +35 -0
  375. package/dist/docs/reference/geometry/triangulateContour.md +26 -0
  376. package/dist/docs/reference/geometry/validateSolidMesh.md +52 -0
  377. package/dist/docs/reference/geometry/validateTransform3.md +47 -0
  378. package/dist/docs/reference/geometry/validateTriangleMesh.md +59 -0
  379. package/dist/docs/reference/geometry/vector2.md +31 -0
  380. package/dist/docs/reference/geometry/vector3.md +38 -0
  381. package/dist/docs/reference/geometry.md +30 -0
  382. package/dist/docs/reference/model/Anchor3.md +54 -0
  383. package/dist/docs/reference/model/AttachOptions.md +63 -0
  384. package/dist/docs/reference/model/Bounds2.md +39 -0
  385. package/dist/docs/reference/model/Bounds3.md +39 -0
  386. package/dist/docs/reference/model/BoxEdge.md +15 -0
  387. package/dist/docs/reference/model/BoxEdgeSelection.md +19 -0
  388. package/dist/docs/reference/model/BoxEdgeTreatments.md +20 -0
  389. package/dist/docs/reference/model/BoxOptions.md +92 -0
  390. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +35 -0
  391. package/dist/docs/reference/model/CircleContourOptions.md +21 -0
  392. package/dist/docs/reference/model/CircleOptions.md +21 -0
  393. package/dist/docs/reference/model/CircularPrimitiveOptions.md +64 -0
  394. package/dist/docs/reference/model/Computed.md +35 -0
  395. package/dist/docs/reference/model/ComputedValue.md +20 -0
  396. package/dist/docs/reference/model/Contour.md +22 -0
  397. package/dist/docs/reference/model/CorrespondingComponent.md +46 -0
  398. package/dist/docs/reference/model/CorrespondingContour.md +46 -0
  399. package/dist/docs/reference/model/CorrespondingProfile.md +22 -0
  400. package/dist/docs/reference/model/CorrespondingProfileStation.md +27 -0
  401. package/dist/docs/reference/model/CylinderOptions.md +58 -0
  402. package/dist/docs/reference/model/DiagnosticOptions.md +23 -0
  403. package/dist/docs/reference/model/EdgeTreatment.md +22 -0
  404. package/dist/docs/reference/model/EllipseContourOptions.md +21 -0
  405. package/dist/docs/reference/model/EllipseOptions.md +21 -0
  406. package/dist/docs/reference/model/EndTreatments.md +39 -0
  407. package/dist/docs/reference/model/ExtrudeOptions.md +140 -0
  408. package/dist/docs/reference/model/FinalizedModel.md +121 -0
  409. package/dist/docs/reference/model/FinalizedPart.md +87 -0
  410. package/dist/docs/reference/model/Frame3.md +63 -0
  411. package/dist/docs/reference/model/GenerateCallback.md +37 -0
  412. package/dist/docs/reference/model/GenerateContext.md +277 -0
  413. package/dist/docs/reference/model/GeneratedPart.md +93 -0
  414. package/dist/docs/reference/model/GenerationDiagnostic.md +41 -0
  415. package/dist/docs/reference/model/GenerationError.md +54 -0
  416. package/dist/docs/reference/model/GeometryResolution.md +70 -0
  417. package/dist/docs/reference/model/GeometrySamplingLimits.md +62 -0
  418. package/dist/docs/reference/model/GeometryToleranceOptions.md +46 -0
  419. package/dist/docs/reference/model/GridPatternOptions.md +43 -0
  420. package/dist/docs/reference/model/HeightfieldOptions.md +67 -0
  421. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +140 -0
  422. package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +58 -0
  423. package/dist/docs/reference/model/HullOptions.md +72 -0
  424. package/dist/docs/reference/model/ImmutableBuffer-type.md +80 -0
  425. package/dist/docs/reference/model/ImmutableTriangleMesh.md +34 -0
  426. package/dist/docs/reference/model/ImplicitOptions.md +83 -0
  427. package/dist/docs/reference/model/InternalThreadCutterOptions.md +245 -0
  428. package/dist/docs/reference/model/LinearPatternOptions.md +31 -0
  429. package/dist/docs/reference/model/LoftCorrespondence.md +27 -0
  430. package/dist/docs/reference/model/LoftOptions.md +91 -0
  431. package/dist/docs/reference/model/LoftPlacement.md +73 -0
  432. package/dist/docs/reference/model/LoftStation.md +35 -0
  433. package/dist/docs/reference/model/MatchProfilesOptions.md +35 -0
  434. package/dist/docs/reference/model/ModelProgram.md +44 -0
  435. package/dist/docs/reference/model/ModelingLimits.md +126 -0
  436. package/dist/docs/reference/model/NumericArray.md +7 -0
  437. package/dist/docs/reference/model/PartGeometry.md +16 -0
  438. package/dist/docs/reference/model/PartOptions.md +65 -0
  439. package/dist/docs/reference/model/Path2.md +20 -0
  440. package/dist/docs/reference/model/PathNormalGuide.md +45 -0
  441. package/dist/docs/reference/model/PathPatternOptions.md +47 -0
  442. package/dist/docs/reference/model/PatternSource.md +26 -0
  443. package/dist/docs/reference/model/Pivot2Options.md +27 -0
  444. package/dist/docs/reference/model/Pivot3Options.md +27 -0
  445. package/dist/docs/reference/model/PlaneOptions.md +39 -0
  446. package/dist/docs/reference/model/PolygonData.md +43 -0
  447. package/dist/docs/reference/model/PolygonOptions.md +189 -0
  448. package/dist/docs/reference/model/PrimitivePlacement.md +40 -0
  449. package/dist/docs/reference/model/PrimitivePlacementOptions.md +88 -0
  450. package/dist/docs/reference/model/PrintableThreadFit.md +14 -0
  451. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +50 -0
  452. package/dist/docs/reference/model/Profile.md +22 -0
  453. package/dist/docs/reference/model/ProfileComponent2.md +46 -0
  454. package/dist/docs/reference/model/ProfileContour2.md +34 -0
  455. package/dist/docs/reference/model/ProfileSpan2.md +47 -0
  456. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +41 -0
  457. package/dist/docs/reference/model/RadialPatternOptions.md +63 -0
  458. package/dist/docs/reference/model/RadialSizing.md +15 -0
  459. package/dist/docs/reference/model/RadialSizingOptions.md +40 -0
  460. package/dist/docs/reference/model/RectangleContourOptions.md +72 -0
  461. package/dist/docs/reference/model/RectangleCornerTreatment.md +40 -0
  462. package/dist/docs/reference/model/RectangleCornerTreatments.md +20 -0
  463. package/dist/docs/reference/model/RectangleOptions.md +107 -0
  464. package/dist/docs/reference/model/RegionData.md +19 -0
  465. package/dist/docs/reference/model/RegularPolygonOptions.md +53 -0
  466. package/dist/docs/reference/model/RevolveOptions.md +89 -0
  467. package/dist/docs/reference/model/RoundedEdgeTreatment.md +96 -0
  468. package/dist/docs/reference/model/Section.md +490 -0
  469. package/dist/docs/reference/model/SectionHullOptions.md +72 -0
  470. package/dist/docs/reference/model/SectionInspection.md +98 -0
  471. package/dist/docs/reference/model/SectionOffsetJoin.md +16 -0
  472. package/dist/docs/reference/model/SectionOffsetOptions.md +65 -0
  473. package/dist/docs/reference/model/SmoothEdgeTreatment.md +76 -0
  474. package/dist/docs/reference/model/Solid.md +373 -0
  475. package/dist/docs/reference/model/SolidInspection.md +98 -0
  476. package/dist/docs/reference/model/SolidRayHit.md +58 -0
  477. package/dist/docs/reference/model/SphereOptions.md +20 -0
  478. package/dist/docs/reference/model/StarOptions.md +98 -0
  479. package/dist/docs/reference/model/StrokeOptions.md +91 -0
  480. package/dist/docs/reference/model/StrokePathCap.md +16 -0
  481. package/dist/docs/reference/model/StrokePathJoin.md +16 -0
  482. package/dist/docs/reference/model/SvgOrigin.md +16 -0
  483. package/dist/docs/reference/model/SvgPathSectionOptions.md +78 -0
  484. package/dist/docs/reference/model/SvgSectionOptions.md +66 -0
  485. package/dist/docs/reference/model/SweepOptions.md +116 -0
  486. package/dist/docs/reference/model/SweepOrientation.md +116 -0
  487. package/dist/docs/reference/model/TextSectionOptions.md +41 -0
  488. package/dist/docs/reference/model/ThreadEndStyle.md +14 -0
  489. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +117 -0
  490. package/dist/docs/reference/model/ThreadHandedness.md +14 -0
  491. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +14 -0
  492. package/dist/docs/reference/model/ThreadLeadInShape.md +14 -0
  493. package/dist/docs/reference/model/ThreadProfile.md +86 -0
  494. package/dist/docs/reference/model/ThreadRidgeOptions.md +18 -0
  495. package/dist/docs/reference/model/ThreadedNutBevel.md +14 -0
  496. package/dist/docs/reference/model/ThreadedNutOptions.md +273 -0
  497. package/dist/docs/reference/model/ThreadedNutPreflight.md +98 -0
  498. package/dist/docs/reference/model/ThreadedNutShape.md +14 -0
  499. package/dist/docs/reference/model/ThreadedRodOptions.md +245 -0
  500. package/dist/docs/reference/model/TorusOptions.md +110 -0
  501. package/dist/docs/reference/model/Transform2-type.md +256 -0
  502. package/dist/docs/reference/model/Transform2Input.md +20 -0
  503. package/dist/docs/reference/model/Transform2Matrix.md +15 -0
  504. package/dist/docs/reference/model/Transform3-type.md +296 -0
  505. package/dist/docs/reference/model/Transform3Input.md +20 -0
  506. package/dist/docs/reference/model/Transform3Matrix.md +18 -0
  507. package/dist/docs/reference/model/TriangleMesh.md +42 -0
  508. package/dist/docs/reference/model/TriangleMeshAnalysis.md +123 -0
  509. package/dist/docs/reference/model/TriangleMeshMeasurements.md +79 -0
  510. package/dist/docs/reference/model/TubeOptions.md +143 -0
  511. package/dist/docs/reference/model/Vector2-type.md +270 -0
  512. package/dist/docs/reference/model/Vector2Input.md +20 -0
  513. package/dist/docs/reference/model/Vector2Tuple.md +15 -0
  514. package/dist/docs/reference/model/Vector3-type.md +282 -0
  515. package/dist/docs/reference/model/Vector3Input.md +20 -0
  516. package/dist/docs/reference/model/Vector3Tuple.md +15 -0
  517. package/dist/docs/reference/model/VectorTextLayout.md +40 -0
  518. package/dist/docs/reference/model/VectorTextMetrics.md +100 -0
  519. package/dist/docs/reference/model/anchor.md +46 -0
  520. package/dist/docs/reference/model/box.md +62 -0
  521. package/dist/docs/reference/model/categories/boolean-operations.md +37 -0
  522. package/dist/docs/reference/model/categories/bounded-surfaces.md +26 -0
  523. package/dist/docs/reference/model/categories/contracts.md +16 -0
  524. package/dist/docs/reference/model/categories/core-values-errors.md +30 -0
  525. package/dist/docs/reference/model/categories/explicit-profiles.md +32 -0
  526. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +42 -0
  527. package/dist/docs/reference/model/categories/generation.md +44 -0
  528. package/dist/docs/reference/model/categories/inspection.md +23 -0
  529. package/dist/docs/reference/model/categories/mesh-inspection.md +29 -0
  530. package/dist/docs/reference/model/categories/primitives.md +61 -0
  531. package/dist/docs/reference/model/categories/resolution.md +18 -0
  532. package/dist/docs/reference/model/categories/sections.md +62 -0
  533. package/dist/docs/reference/model/categories/threads.md +50 -0
  534. package/dist/docs/reference/model/categories/transforms-placement.md +57 -0
  535. package/dist/docs/reference/model/circle.md +39 -0
  536. package/dist/docs/reference/model/components.md +71 -0
  537. package/dist/docs/reference/model/compose.md +31 -0
  538. package/dist/docs/reference/model/cylinder.md +52 -0
  539. package/dist/docs/reference/model/distance.md +45 -0
  540. package/dist/docs/reference/model/ellipse.md +39 -0
  541. package/dist/docs/reference/model/extrude.md +83 -0
  542. package/dist/docs/reference/model/generate.md +46 -0
  543. package/dist/docs/reference/model/gridPattern.md +80 -0
  544. package/dist/docs/reference/model/heightfield.md +40 -0
  545. package/dist/docs/reference/model/hull.md +74 -0
  546. package/dist/docs/reference/model/immutableBuffer.md +44 -0
  547. package/dist/docs/reference/model/immutableMesh.md +40 -0
  548. package/dist/docs/reference/model/implicit.md +47 -0
  549. package/dist/docs/reference/model/inspectSection.md +38 -0
  550. package/dist/docs/reference/model/inspectSolid.md +38 -0
  551. package/dist/docs/reference/model/internalThreadCutter.md +100 -0
  552. package/dist/docs/reference/model/intersect.md +70 -0
  553. package/dist/docs/reference/model/isEmpty.md +39 -0
  554. package/dist/docs/reference/model/linearPattern.md +80 -0
  555. package/dist/docs/reference/model/loft.md +137 -0
  556. package/dist/docs/reference/model/matchProfiles.md +42 -0
  557. package/dist/docs/reference/model/minkowskiSum.md +37 -0
  558. package/dist/docs/reference/model/pathPattern.md +118 -0
  559. package/dist/docs/reference/model/polygon.md +40 -0
  560. package/dist/docs/reference/model/preflightInternalThreadCutter.md +89 -0
  561. package/dist/docs/reference/model/preflightThreadedNut.md +100 -0
  562. package/dist/docs/reference/model/preflightThreadedRod.md +89 -0
  563. package/dist/docs/reference/model/radialPattern.md +113 -0
  564. package/dist/docs/reference/model/rayCast.md +40 -0
  565. package/dist/docs/reference/model/rectangle.md +59 -0
  566. package/dist/docs/reference/model/regularPolygon.md +39 -0
  567. package/dist/docs/reference/model/revolve.md +74 -0
  568. package/dist/docs/reference/model/solidFromMesh.md +42 -0
  569. package/dist/docs/reference/model/sphere.md +42 -0
  570. package/dist/docs/reference/model/split.md +54 -0
  571. package/dist/docs/reference/model/splitByPlane.md +66 -0
  572. package/dist/docs/reference/model/star.md +63 -0
  573. package/dist/docs/reference/model/stroke.md +74 -0
  574. package/dist/docs/reference/model/svgPathSection.md +65 -0
  575. package/dist/docs/reference/model/svgSection.md +64 -0
  576. package/dist/docs/reference/model/sweep.md +92 -0
  577. package/dist/docs/reference/model/textSection.md +57 -0
  578. package/dist/docs/reference/model/threadRidge.md +72 -0
  579. package/dist/docs/reference/model/threadedNut.md +110 -0
  580. package/dist/docs/reference/model/threadedRod.md +99 -0
  581. package/dist/docs/reference/model/toTriangleMesh.md +27 -0
  582. package/dist/docs/reference/model/torus.md +70 -0
  583. package/dist/docs/reference/model/transform2.md +39 -0
  584. package/dist/docs/reference/model/transform3.md +39 -0
  585. package/dist/docs/reference/model/tube.md +77 -0
  586. package/dist/docs/reference/model/union.md +72 -0
  587. package/dist/docs/reference/model/vector2.md +32 -0
  588. package/dist/docs/reference/model/vector3.md +39 -0
  589. package/dist/docs/reference/model.md +39 -0
  590. package/dist/docs/reference/text/Bounds2.md +34 -0
  591. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +7 -0
  592. package/dist/docs/reference/text/Vector2Tuple.md +7 -0
  593. package/dist/docs/reference/text/VectorFont.md +186 -0
  594. package/dist/docs/reference/text/VectorFontOptions.md +17 -0
  595. package/dist/docs/reference/text/VectorTextArcBaseline.md +53 -0
  596. package/dist/docs/reference/text/VectorTextLayout.md +34 -0
  597. package/dist/docs/reference/text/VectorTextLayoutOptions.md +111 -0
  598. package/dist/docs/reference/text/VectorTextMetrics.md +94 -0
  599. package/dist/docs/reference/text/VectorTextOptions.md +50 -0
  600. package/dist/docs/reference/text/categories/font-preparation.md +38 -0
  601. package/dist/docs/reference/text/prepareVectorFont.md +46 -0
  602. package/dist/docs/reference/text.md +21 -0
  603. package/dist/engine/construction-operations.js +10 -3
  604. package/dist/engine/deferred-context.js +11 -172
  605. package/dist/engine/execution.js +1 -1
  606. package/dist/engine/export-3mf.js +2 -2
  607. package/dist/engine/finalization.js +3 -3
  608. package/dist/engine/loft-operations.js +4 -4
  609. package/dist/engine/native/adapter.js +1 -1
  610. package/dist/engine/native/regions.js +9 -9
  611. package/dist/engine/native/transforms.js +6 -1
  612. package/dist/engine/pattern-operations.js +24 -13
  613. package/dist/engine/placement.js +2 -2
  614. package/dist/engine/primitive-operations.js +10 -10
  615. package/dist/engine/primitive-profiles.js +1 -0
  616. package/dist/engine/profile-mesh.js +7 -7
  617. package/dist/engine/recipe-realization.js +29 -21
  618. package/dist/engine/section-operations.js +44 -17
  619. package/dist/engine/session-graph.js +6 -4
  620. package/dist/engine/session-native.js +1 -1
  621. package/dist/engine/session-snapshot.js +3 -2
  622. package/dist/engine/session.js +4 -5
  623. package/dist/engine/shape-anchors.js +3 -9
  624. package/dist/engine/transform-operations.js +42 -25
  625. package/dist/geometry/bounds.js +117 -0
  626. package/dist/geometry/cylinder.js +5 -1
  627. package/dist/geometry/edge-finishing.js +2 -2
  628. package/dist/geometry/heightfield.js +1 -1
  629. package/dist/geometry/index.js +20 -13
  630. package/dist/geometry/{loft-correspondence.js → loft/loft-correspondence.js} +3 -3
  631. package/dist/geometry/{loft-geometry.js → loft/loft-geometry.js} +8 -8
  632. package/dist/geometry/{loft-options.js → loft/loft-options.js} +2 -2
  633. package/dist/geometry/{loft-simple-mesh.js → loft/loft-simple-mesh.js} +6 -6
  634. package/dist/geometry/{loft-triangulation.js → loft/loft-triangulation.js} +6 -6
  635. package/dist/geometry/{loft.js → loft/loft.js} +8 -8
  636. package/dist/geometry/math/immutable-value.js +20 -0
  637. package/dist/geometry/math/vector-value.js +168 -0
  638. package/dist/geometry/math/vector2.js +80 -0
  639. package/dist/geometry/math/vector3.js +42 -8
  640. package/dist/geometry/mechanical/gear-motion.js +7 -4
  641. package/dist/geometry/mechanical/gears.js +2 -2
  642. package/dist/geometry/mechanical/thread-mesh.js +3 -3
  643. package/dist/geometry/mechanical/thread-profiles.js +2 -2
  644. package/dist/geometry/mechanical/thread-surface.js +14 -5
  645. package/dist/geometry/{mesh-centroid.js → mesh/mesh-centroid.js} +1 -1
  646. package/dist/geometry/{mesh-planar.js → mesh/mesh-planar.js} +1 -1
  647. package/dist/geometry/{mesh-quality.js → mesh/mesh-quality.js} +2 -2
  648. package/dist/geometry/{mesh-signature.js → mesh/mesh-signature.js} +2 -2
  649. package/dist/geometry/{mesh-solid-intersections.js → mesh/mesh-solid-intersections.js} +5 -1
  650. package/dist/geometry/{mesh-solid.js → mesh/mesh-solid.js} +2 -2
  651. package/dist/geometry/{mesh.js → mesh/mesh.js} +7 -8
  652. package/dist/geometry/paths/closest-point.js +74 -0
  653. package/dist/geometry/paths/frames.js +7 -8
  654. package/dist/geometry/patterns/options.js +1 -0
  655. package/dist/{engine/pattern-placements.js → geometry/patterns/placements.js} +22 -8
  656. package/dist/geometry/patterns.js +25 -0
  657. package/dist/geometry/primitive-resolution.js +4 -1
  658. package/dist/geometry/primitive-resolvers.js +9 -9
  659. package/dist/geometry/profiles/contour.js +3 -3
  660. package/dist/geometry/profiles/matched.js +3 -3
  661. package/dist/geometry/profiles/profiles.js +10 -10
  662. package/dist/geometry/profiles/rectangle.js +7 -7
  663. package/dist/geometry/profiles/shapes.js +9 -9
  664. package/dist/geometry/profiles/side-profile.js +37 -0
  665. package/dist/geometry/regions.js +15 -15
  666. package/dist/geometry/resolution.js +17 -5
  667. package/dist/geometry/revolve/revolve-mesh.js +5 -5
  668. package/dist/geometry/stroke-path.js +50 -46
  669. package/dist/geometry/svg/errors.js +0 -3
  670. package/dist/geometry/svg/fill.js +7 -7
  671. package/dist/geometry/svg/index.js +1 -1
  672. package/dist/geometry/svg/matrix.js +0 -114
  673. package/dist/geometry/svg/parser.js +1 -439
  674. package/dist/geometry/svg-import.js +3 -3
  675. package/dist/geometry/sweeps/stations.js +4 -4
  676. package/dist/geometry/sweeps/sweep-closed.js +4 -4
  677. package/dist/geometry/sweeps/sweep-mesh.js +1 -1
  678. package/dist/geometry/sweeps/sweep-open.js +6 -6
  679. package/dist/geometry/sweeps/validation.js +2 -2
  680. package/dist/geometry/text-fitting.js +85 -0
  681. package/dist/geometry/tolerance.js +2 -2
  682. package/dist/geometry/transform-chain.js +172 -0
  683. package/dist/geometry/transform-geometry.js +31 -27
  684. package/dist/geometry/transform-matrix.js +14 -0
  685. package/dist/geometry/transform2.js +60 -0
  686. package/dist/geometry/transform3.js +70 -26
  687. package/dist/index.js +3 -0
  688. package/dist/model/execution-binding.js +10 -5
  689. package/dist/model/generation.js +1 -1
  690. package/dist/model/geometry-recipes.js +15 -0
  691. package/dist/{engine → model}/immutable-generation-data.js +25 -3
  692. package/dist/model/operation-contracts.js +1 -0
  693. package/dist/model/operation-dispatch.js +13 -0
  694. package/dist/model/operations.js +40 -59
  695. package/dist/model/recipe-declaration.js +193 -0
  696. package/dist/model/shape-handles.js +15 -4
  697. package/package.json +10 -8
  698. package/dist/engine/geometry-recipes.js +0 -12
  699. /package/dist/geometry/{mesh-edge-table.js → mesh/mesh-edge-table.js} +0 -0
@@ -0,0 +1,50 @@
1
+ # Printable threads
2
+
3
+ Construct compensated thread forms and inspect allocation-free preflight facts.
4
+
5
+ Thread pitch is adjacent axial spacing; lead equals pitch times starts. Prepare shared thread dimensions once. Constructors enforce safety automatically; optional preflight provides resource estimates or early control-specific validation. Native rods, internal cutters, and nuts share printable fit and end-treatment options. These forms do not certify a structural rating or a metrology class.
6
+
7
+ ## Functions
8
+
9
+ | API | Summary |
10
+ | --- | --- |
11
+ | [internalThreadCutter](../internalThreadCutter.md) | Compensated internal threaded cutter. |
12
+ | [preflightInternalThreadCutter](../preflightInternalThreadCutter.md) | Allocation-free internal-thread facts. |
13
+ | [preflightThreadedNut](../preflightThreadedNut.md) | Allocation-free nut/cutter facts. |
14
+ | [preflightThreadedRod](../preflightThreadedRod.md) | Allocation-free external-thread facts. |
15
+ | [threadedNut](../threadedNut.md) | Compensated threaded nut. |
16
+ | [threadedRod](../threadedRod.md) | Compensated external threaded rod. |
17
+ | [threadRidge](../threadRidge.md) | Helical ridge mesh construction. |
18
+
19
+ ## Interfaces
20
+
21
+ | API | Summary |
22
+ | --- | --- |
23
+ | [HelicalThreadRidgeMeshOptions](../HelicalThreadRidgeMeshOptions.md) | Runtime-neutral options for the dedicated helical ridge mesher. |
24
+ | [HelicalThreadSolidMeshPreflight](../HelicalThreadSolidMeshPreflight.md) | Conservative allocation facts resolved before constructing a direct thread solid mesh. |
25
+ | [InternalThreadCutterOptions](../InternalThreadCutterOptions.md) | Options for a compensated internal-thread subtraction tool along +Z. |
26
+ | [PrintableThreadFitPolicy](../PrintableThreadFitPolicy.md) | Explicit radial and axial allowances for a mating printed thread pair. |
27
+ | [ThreadedNutOptions](../ThreadedNutOptions.md) | Options for a compensated nut with an internal thread. |
28
+ | [ThreadedNutPreflight](../ThreadedNutPreflight.md) | Allocation-free body, cutter, and end-face facts resolved for a threaded nut. |
29
+ | [ThreadedRodOptions](../ThreadedRodOptions.md) | Options for a compensated external threaded rod along +Z. |
30
+ | [ThreadEndTreatmentOptions](../ThreadEndTreatmentOptions.md) | Axial end controls for a generated ridge. |
31
+ | [ThreadProfile](../ThreadProfile.md) | A validated immutable periodic thread profile in `[axial, radial]` millimetres. |
32
+
33
+ ## Type aliases
34
+
35
+ | API | Summary |
36
+ | --- | --- |
37
+ | [PrintableThreadFit](../PrintableThreadFit.md) | Named baseline fit policies for calibrated FDM-style printed threads. |
38
+ | [ThreadedNutBevel](../ThreadedNutBevel.md) | Nut-edge bevel selection. |
39
+ | [ThreadedNutShape](../ThreadedNutShape.md) | Supported printable nut body shapes. |
40
+ | [ThreadEndStyle](../ThreadEndStyle.md) | End shape of a generated helical ridge. |
41
+ | [ThreadHandedness](../ThreadHandedness.md) | Direction in which a conventional helical thread advances around +Z. |
42
+ | [ThreadLeadInEnvelope](../ThreadLeadInEnvelope.md) | Radial envelope toward which a blunt lead-in collapses. |
43
+ | [ThreadLeadInShape](../ThreadLeadInShape.md) | BOSL2-compatible cross-section scaling curve for a blunt thread lead-in. |
44
+ | [ThreadRidgeOptions](../ThreadRidgeOptions.md) | Parameters for a helical ridge before solid construction. |
45
+
46
+ ## Guides
47
+
48
+ - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
49
+
50
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,57 @@
1
+ # Transforms, Vectors & Placement
2
+
3
+ Calculate with immutable vectors, reuse transforms, and arrange geometry with explicit placement contracts.
4
+
5
+ Use vector2/vector3 for immutable arithmetic and transform2/transform3 for reusable placements. Tuples are accepted as operands; scalar dot, length and distance return numbers. Shape.transform accepts a matching transform directly. Operations apply in written order, rotations use degrees, and optional `{ pivot }` points use world coordinates, defaulting to the origin. andThen composes placements in execution order. applyPoint includes translation, applyDirection retains scale without translation, and applyNormal uses the inverse transpose and returns a unit vector. toArray and toMatrix expose canonical data for interchange. Solid.attach and primitive placement share source/target anchors, alignment, millimetre gap and degree spin. XY placements can be explicitly embedded with to3D; to2D rejects plane changes. Part placement can reuse finished geometry.
6
+
7
+ ## Functions
8
+
9
+ | API | Summary |
10
+ | --- | --- |
11
+ | [transform2](../transform2.md) | Creates an immutable XY transform, identity by default. Matrices are copied and validated. Pass it directly to Section.transform() and planar data helpers; to3D() explicitly crosses into XYZ. Zero scales and singular matrices throw GeometryError; negative scales reflect. |
12
+ | [transform3](../transform3.md) | Creates an immutable XYZ transform, identity by default. Matrices are copied and validated. Calls apply in written order; rotations use degrees and pivots use current world coordinates. Zero scales, singular matrices, nonfinite inputs and zero rotation axes throw GeometryError. Use frameTransform3(frame) as the input for existing orthonormal frame placement. |
13
+ | [vector2](../vector2.md) | Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates. Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates and overflow throw `NON_FINITE_VALUE` GeometryError. Use transform2().applyDirection(value) for rotations and nonuniform scaling. |
14
+ | [vector3](../vector3.md) | Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates. Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates and overflow throw `NON_FINITE_VALUE` GeometryError. Use transform3().applyDirection(value) for rotations and nonuniform scaling. |
15
+ | [anchor](../anchor.md) | Reads a copied, immutable named anchor from this exact active generation. |
16
+ | [gridPattern](../gridPattern.md) | XY or XYZ copies, optionally centered or placed in an explicit frame. |
17
+ | [linearPattern](../linearPattern.md) | Repeats one solid along a normalized direction. |
18
+ | [pathPattern](../pathPattern.md) | Physical arc-length copies along a sampled path, with optional tangent orientation. |
19
+ | [radialPattern](../radialPattern.md) | Repeats one solid about an axis. |
20
+
21
+ ## Interfaces
22
+
23
+ | API | Summary |
24
+ | --- | --- |
25
+ | [Transform2](../Transform2-type.md) | Immutable reusable XY placement. Methods apply in written order; angles are degrees. |
26
+ | [Transform3](../Transform3-type.md) | Immutable reusable XYZ placement. Methods apply in written order; angles are degrees. |
27
+ | [Pivot2Options](../Pivot2Options.md) | A fixed XY point in world coordinates; omitted pivots use the coordinate origin. |
28
+ | [Pivot3Options](../Pivot3Options.md) | A fixed XYZ point in world coordinates; omitted pivots use the coordinate origin. |
29
+ | [Vector2](../Vector2-type.md) | Immutable XY arithmetic; vector operations return new values and measurements return numbers. |
30
+ | [Vector3](../Vector3-type.md) | Immutable XYZ arithmetic; vector operations return new values and measurements return numbers. |
31
+ | [Anchor3](../Anchor3.md) | An attachment pose on a solid or assembly. |
32
+ | [AttachOptions](../AttachOptions.md) | Degree-based anchor attachment controls for a scoped solid. |
33
+ | [PathPatternOptions](../PathPatternOptions.md) | Equal physical arc-length placements along an open or implicitly closed sampled path. |
34
+ | [PrimitivePlacement](../PrimitivePlacement.md) | Placement shared by solid and filled-section factories. |
35
+ | [PrimitivePlacementOptions](../PrimitivePlacementOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
36
+ | [RadialPatternOptions](../RadialPatternOptions.md) | Options for repeating one solid around an axis through a center point. |
37
+
38
+ ## Type aliases
39
+
40
+ | API | Summary |
41
+ | --- | --- |
42
+ | [Transform2Input](../Transform2Input.md) | An immutable XY transform or its canonical row-major matrix for interchange. |
43
+ | [Transform3Input](../Transform3Input.md) | An immutable XYZ transform or its canonical row-major matrix for interchange. |
44
+ | [Vector2Input](../Vector2Input.md) | An XY tuple or immutable fluent vector accepted by vector operations. |
45
+ | [Vector3Input](../Vector3Input.md) | An XYZ tuple or immutable fluent vector accepted by vector operations. |
46
+ | [GridPatternOptions](../GridPatternOptions.md) | XY or XYZ grid with X varying fastest. The first item starts at the local origin. |
47
+ | [LinearPatternOptions](../LinearPatternOptions.md) | Equal linear intervals determined by exactly two of count, spacing and total length. |
48
+ | [PatternSource](../PatternSource.md) | One immutable shape, or a synchronous factory called once per copy in index order. |
49
+ | [Transform2Matrix](../Transform2Matrix.md) | A row-major affine 3x3 XY matrix applied to column vectors. Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`. |
50
+ | [Transform3Matrix](../Transform3Matrix.md) | A row-major affine 4x4 matrix applied to column vectors. |
51
+
52
+ ## Guides
53
+
54
+ - [Named anchors and custom frames](../../../guides/recipes.md#named-anchors-and-custom-frames)
55
+ - [Primitive booleans and repeated placement](../../../guides/recipes.md#primitive-booleans-and-repeated-placement)
56
+
57
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,39 @@
1
+ # circle
2
+
3
+ Centered circular section.
4
+
5
+ **circle**(`options`: [`CircleOptions`](CircleOptions.md)): [`Section`](Section.md)
6
+
7
+
8
+
9
+ ## Example: Size to polygon faces
10
+
11
+ ```ts
12
+ circle({ diameter: 12, sizing: "face" });
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ <a id="options"></a>
18
+
19
+ **`options`** · [`CircleOptions`](CircleOptions.md) · Required
20
+
21
+
22
+
23
+ ## Returns
24
+
25
+ [`Section`](Section.md)
26
+
27
+
28
+ ## Related APIs
29
+
30
+ - [CircleOptions](CircleOptions.md)
31
+ - [Section](Section.md)
32
+
33
+ ## Guides
34
+
35
+ - [Section, hole, offset, and extrusion](../../guides/recipes.md#section-hole-offset-and-extrusion)
36
+ - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
37
+ - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
38
+
39
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,71 @@
1
+ # components
2
+
3
+ Observes a solid's disconnected surface shells as session-restricted solid selections.
4
+
5
+ ## Call Signature
6
+
7
+
8
+
9
+ **components**(`solid`: [`Solid`](Solid.md)): readonly [`Solid`](Solid.md)[]
10
+
11
+
12
+
13
+ ## Example: Move disconnected pieces independently
14
+
15
+ ```ts
16
+ const islands = union([box({ size: 8 }), box({ size: 8 }).translate([12, 0, 0])]);
17
+ const pieces = components(islands);
18
+ // Component order is unspecified; the index only sets a display height here.
19
+ union(pieces.map((piece, index) => piece.translate([0, 0, index * 6])));
20
+ ```
21
+
22
+ Observes a solid's disconnected surface shells as session-restricted solid selections.
23
+
24
+ For solids without enclosed cavities, these shells are the disconnected material islands.
25
+ Enclosed cavities produce separate inward shells with negative signed volume; these cannot
26
+ be finalized alone as manufacturing parts. This does not cut connected geometry.
27
+ Selection order and cardinality depend on evaluated topology. Results and recipes using them
28
+ can only be evaluated in this session; composition itself requires no engine.
29
+
30
+ ### Parameters
31
+
32
+ <a id="solid"></a>
33
+
34
+ **`solid`** · [`Solid`](Solid.md) · Required
35
+
36
+
37
+
38
+ ### Returns
39
+
40
+ readonly [`Solid`](Solid.md)[]
41
+
42
+ ## Call Signature
43
+
44
+
45
+
46
+ **components**(`section`: [`Section`](Section.md)): readonly [`Section`](Section.md)[]
47
+
48
+
49
+
50
+ Observes filled 2D islands, retaining each island's holes; empty gives [].
51
+ Selections and recipes using them can only be evaluated in this session.
52
+
53
+ ### Parameters
54
+
55
+ <a id="section"></a>
56
+
57
+ **`section`** · [`Section`](Section.md) · Required
58
+
59
+
60
+
61
+ ### Returns
62
+
63
+ readonly [`Section`](Section.md)[]
64
+
65
+
66
+ ## Related APIs
67
+
68
+ - [Section](Section.md)
69
+ - [Solid](Solid.md)
70
+
71
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,31 @@
1
+ # compose
2
+
3
+ Combines disjoint components without resolving overlap.
4
+
5
+ **compose**(`solids`: readonly [`Solid`](Solid.md)[]): [`Solid`](Solid.md)
6
+
7
+
8
+
9
+ ## Parameters
10
+
11
+ <a id="solids"></a>
12
+
13
+ **`solids`** · readonly [`Solid`](Solid.md)[] · Required
14
+
15
+
16
+
17
+ ## Returns
18
+
19
+ [`Solid`](Solid.md)
20
+
21
+
22
+ ## Related APIs
23
+
24
+ - [Solid](Solid.md)
25
+
26
+ ## Guides
27
+
28
+ - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
29
+ - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
30
+
31
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,52 @@
1
+ # cylinder
2
+
3
+ +Z cylinder or frustum. Face sizing compensates polygon faceting.
4
+
5
+ **cylinder**(`options`: [`CylinderOptions`](CylinderOptions.md)): [`Solid`](Solid.md)
6
+
7
+
8
+
9
+ ## Example: Cylinder
10
+
11
+
12
+
13
+ ```ts
14
+ cylinder({ height: 20, radius: 10 });
15
+ ```
16
+
17
+
18
+
19
+ ## Example: Cone
20
+
21
+
22
+
23
+ ```ts
24
+ cylinder({ height: 20, radius: [10, 0] });
25
+ ```
26
+
27
+
28
+
29
+ ## Parameters
30
+
31
+ <a id="options"></a>
32
+
33
+ **`options`** · [`CylinderOptions`](CylinderOptions.md) · Required
34
+
35
+
36
+
37
+ ## Returns
38
+
39
+ [`Solid`](Solid.md)
40
+
41
+
42
+ ## Related APIs
43
+
44
+ - [CylinderOptions](CylinderOptions.md)
45
+ - [Solid](Solid.md)
46
+
47
+ ## Guides
48
+
49
+ - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
50
+ - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
51
+
52
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,45 @@
1
+ # distance
2
+
3
+ Measures the minimum separation between two nonempty solids in millimetres.
4
+
5
+ **distance**(`solid`: [`Solid`](Solid.md), `other`: [`Solid`](Solid.md)): `number`
6
+
7
+
8
+
9
+ ## Example: Measure the gap between two blocks
10
+
11
+ ```ts
12
+ const left = box({ size: 10 });
13
+ const right = box({ size: 10 }).translate([13, 0, 0]);
14
+ const gap = distance(left, right); // 3 mm
15
+ ```
16
+
17
+ Uses actual geometry, not bounding-box separation or distance between object origins.
18
+ Contact or overlapping material returns zero, including one solid inside another.
19
+ The kernel's search range is managed internally; the result is not capped at a caller limit.
20
+ Empty geometry and component selections from another session reject. Results follow native numeric precision.
21
+
22
+ ## Parameters
23
+
24
+ <a id="solid"></a>
25
+
26
+ **`solid`** · [`Solid`](Solid.md) · Required
27
+
28
+
29
+
30
+ <a id="other"></a>
31
+
32
+ **`other`** · [`Solid`](Solid.md) · Required
33
+
34
+
35
+
36
+ ## Returns
37
+
38
+ `number`
39
+
40
+
41
+ ## Related APIs
42
+
43
+ - [Solid](Solid.md)
44
+
45
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,39 @@
1
+ # ellipse
2
+
3
+ Centered elliptical section.
4
+
5
+ **ellipse**(`options`: [`EllipseOptions`](EllipseOptions.md)): [`Section`](Section.md)
6
+
7
+
8
+
9
+ ## Example: Ellipse by full dimensions
10
+
11
+ ```ts
12
+ ellipse({ size: [30, 20] });
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ <a id="options"></a>
18
+
19
+ **`options`** · [`EllipseOptions`](EllipseOptions.md) · Required
20
+
21
+
22
+
23
+ ## Returns
24
+
25
+ [`Section`](Section.md)
26
+
27
+
28
+ ## Related APIs
29
+
30
+ - [EllipseOptions](EllipseOptions.md)
31
+ - [Section](Section.md)
32
+
33
+ ## Guides
34
+
35
+ - [Section, hole, offset, and extrusion](../../guides/recipes.md#section-hole-offset-and-extrusion)
36
+ - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
37
+ - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
38
+
39
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,83 @@
1
+ # extrude
2
+
3
+ Extrudes explicit corresponding contours along +Z with degree twist and top scaling. Filled Sections use `section.extrude(options)`.
4
+
5
+ **extrude**(`shape`: [`CorrespondingProfile`](CorrespondingProfile.md), `options`: [`ExtrudeOptions`](ExtrudeOptions.md)): [`Solid`](Solid.md)
6
+
7
+
8
+
9
+ ## Example: Extrude
10
+
11
+ ```ts
12
+ import { extrude, matchProfiles } from "@metamesh/modeling";
13
+ import { rectangleProfile } from "@metamesh/modeling/geometry";
14
+
15
+ const [profile] = matchProfiles([rectangleProfile({ size: [30, 20] })]);
16
+ extrude(profile!, { height: 8 });
17
+ ```
18
+
19
+ ## Parameters
20
+
21
+ <a id="shape"></a>
22
+
23
+ **`shape`** · [`CorrespondingProfile`](CorrespondingProfile.md) · Required
24
+
25
+
26
+
27
+ <a id="options"></a>
28
+
29
+ **`options`** · [`ExtrudeOptions`](ExtrudeOptions.md) · Required
30
+
31
+ - [`height`](ExtrudeOptions.md#height) · `number` · Required
32
+
33
+ Positive extrusion height in millimetres.
34
+
35
+ - [`center`](ExtrudeOptions.md#center) · `boolean` · Optional
36
+
37
+ Center the extrusion on Z; otherwise its bottom is at zero. Defaults to false.
38
+
39
+ - [`ends`](ExtrudeOptions.md#ends) · [`EndTreatments`](EndTreatments.md) · Optional
40
+
41
+ Independent inward end treatments on straight convex single-contour extrusions.
42
+
43
+ - [`divisions`](ExtrudeOptions.md#divisions) · `number` · Optional
44
+
45
+ Exact number of intermediate profiles, nonnegative; overrides physical sampling.
46
+
47
+ - [`limits`](ExtrudeOptions.md#limits) · `Partial`\<[`ModelingLimits`](ModelingLimits.md)\> · Optional
48
+
49
+ Explicit output and sampling allocation ceilings.
50
+
51
+ - [`resolution`](ExtrudeOptions.md#resolution) · [`GeometryResolution`](GeometryResolution.md) · Optional
52
+
53
+ Operation-level physical policy over the nearest model scope.
54
+
55
+ - [`scaleTop`](ExtrudeOptions.md#scaletop) · `number` \| [`Vector2Tuple`](Vector2Tuple.md) · Optional
56
+
57
+ Finite uniform or XY scale of the top profile; defaults to one.
58
+
59
+ - [`twistDegrees`](ExtrudeOptions.md#twistdegrees) · `number` · Optional
60
+
61
+ Finite rotation of the top profile about +Z, in degrees; defaults to zero.
62
+
63
+
64
+
65
+ ## Returns
66
+
67
+ [`Solid`](Solid.md)
68
+
69
+
70
+ ## Related APIs
71
+
72
+ - [CorrespondingProfile](CorrespondingProfile.md)
73
+ - [ExtrudeOptions](ExtrudeOptions.md)
74
+ - [Solid](Solid.md)
75
+
76
+ ## Guides
77
+
78
+ - [Revolve a radial profile](../../guides/recipes.md#revolve-a-radial-profile)
79
+ - [Rotation-minimizing path sweep](../../guides/recipes.md#rotation-minimizing-path-sweep)
80
+ - [Matched-section loft](../../guides/recipes.md#matched-section-loft)
81
+ - [Choose a modeling path](../../guides/concepts.md#choose-a-modeling-path)
82
+
83
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,46 @@
1
+ # generate
2
+
3
+ Defines a typed model without executing it. Use `computed` only for work worth reusing.
4
+
5
+ **generate**\<`P`, `S` = `Record`\<`never`, `never`\>\>(`callback`: [`GenerateCallback`](GenerateCallback.md)\<`P`, `S`\>): [`ModelProgram`](ModelProgram.md)\<`P`, `S`\>
6
+
7
+
8
+
9
+ ## Example: A simple model
10
+
11
+ ```ts
12
+ const model = generate<{ height: number }>(({ params, part, assert }) => {
13
+ assert(params.height > 0, "Height must be positive.");
14
+ return part("body", box({ size: [10, 10, params.height] }));
15
+ });
16
+ ```
17
+
18
+ ## Type Parameters
19
+
20
+ ### P
21
+
22
+ `P`
23
+
24
+ ### S
25
+
26
+ `S` = `Record`\<`never`, `never`\>
27
+
28
+ ## Parameters
29
+
30
+ <a id="callback"></a>
31
+
32
+ **`callback`** · [`GenerateCallback`](GenerateCallback.md)\<`P`, `S`\> · Required
33
+
34
+
35
+
36
+ ## Returns
37
+
38
+ [`ModelProgram`](ModelProgram.md)\<`P`, `S`\>
39
+
40
+
41
+ ## Related APIs
42
+
43
+ - [GenerateCallback](GenerateCallback.md)
44
+ - [ModelProgram](ModelProgram.md)
45
+
46
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,80 @@
1
+ # gridPattern
2
+
3
+ XY or XYZ copies, optionally centered or placed in an explicit frame.
4
+
5
+ ## Call Signature
6
+
7
+
8
+
9
+ **gridPattern**(`source`: [`PatternSource`](PatternSource.md), `options`: [`GridPatternOptions`](GridPatternOptions.md)): readonly [`Solid`](Solid.md)[]
10
+
11
+
12
+
13
+ ## Example: Centered XY grid
14
+
15
+ ```ts
16
+ gridPattern(box({ size: 4 }), { count: [3, 2], spacing: [10, 10], center: true });
17
+ ```
18
+
19
+ XY or XYZ copies, optionally centered or placed in an explicit frame.
20
+
21
+ ### Parameters
22
+
23
+ <a id="source"></a>
24
+
25
+ **`source`** · [`PatternSource`](PatternSource.md) · Required
26
+
27
+
28
+
29
+ <a id="options"></a>
30
+
31
+ **`options`** · [`GridPatternOptions`](GridPatternOptions.md) · Required
32
+
33
+
34
+
35
+ ### Returns
36
+
37
+ readonly [`Solid`](Solid.md)[]
38
+
39
+ ## Call Signature
40
+
41
+
42
+
43
+ **gridPattern**(`source`: [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\>, `options`: [`GridPatternOptions`](GridPatternOptions.md)): readonly [`Section`](Section.md)[]
44
+
45
+
46
+
47
+ Repeats a filled Section on a grid; placements must preserve its XY plane.
48
+
49
+ ### Parameters
50
+
51
+ <a id="source-1"></a>
52
+
53
+ **`source`** · [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\> · Required
54
+
55
+
56
+
57
+ <a id="options-1"></a>
58
+
59
+ **`options`** · [`GridPatternOptions`](GridPatternOptions.md) · Required
60
+
61
+
62
+
63
+ ### Returns
64
+
65
+ readonly [`Section`](Section.md)[]
66
+
67
+
68
+ ## Related APIs
69
+
70
+ - [GridPatternOptions](GridPatternOptions.md)
71
+ - [PatternSource](PatternSource.md)
72
+ - [Section](Section.md)
73
+ - [Solid](Solid.md)
74
+
75
+ ## Guides
76
+
77
+ - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
78
+ - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
79
+
80
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,40 @@
1
+ # heightfield
2
+
3
+ Closed rectilinear top above a flat base, with uniform or explicit XY coordinates. Samples each grid height once; center-error triangulation also samples each cell centre. The retained callback must capture independent immutable inputs, not live session readers or parameters.
4
+
5
+ **heightfield**(`options`: [`HeightfieldOptions`](HeightfieldOptions.md)): [`Solid`](Solid.md)
6
+
7
+
8
+
9
+ ## Example: Heightfield
10
+
11
+
12
+
13
+ ```ts
14
+ heightfield({
15
+ size: [30, 20], segments: [24, 16],
16
+ height: ([x, y]) => 3 + Math.cos(x / 5) * Math.cos(y / 5),
17
+ });
18
+ ```
19
+
20
+
21
+
22
+ ## Parameters
23
+
24
+ <a id="options"></a>
25
+
26
+ **`options`** · [`HeightfieldOptions`](HeightfieldOptions.md) · Required
27
+
28
+
29
+
30
+ ## Returns
31
+
32
+ [`Solid`](Solid.md)
33
+
34
+
35
+ ## Related APIs
36
+
37
+ - [HeightfieldOptions](HeightfieldOptions.md)
38
+ - [Solid](Solid.md)
39
+
40
+ Package: `@metamesh/modeling@0.14.0`.