@metamesh/modeling 0.17.0 → 0.18.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 (871) hide show
  1. package/CHANGELOG.md +153 -0
  2. package/README.md +137 -163
  3. package/dist/api/engine.d.ts +128 -65
  4. package/dist/api/geometry.d.ts +246 -457
  5. package/dist/api/index.d.ts +394 -419
  6. package/dist/api/mesh.d.ts +460 -0
  7. package/dist/api/text.d.ts +1 -1
  8. package/dist/docs/guides/concepts.md +126 -86
  9. package/dist/docs/guides/fonts.md +11 -10
  10. package/dist/docs/guides/fundamentals.md +30 -29
  11. package/dist/docs/guides/generation.md +44 -31
  12. package/dist/docs/guides/hosting.md +122 -46
  13. package/dist/docs/guides/recipes.md +65 -54
  14. package/dist/docs/guides/standalone-model.md +8 -7
  15. package/dist/docs/manifest.json +2740 -902
  16. package/dist/docs/reference/engine/Export3mfOptions.md +19 -2
  17. package/dist/docs/reference/engine/ExportMeshPart.md +5 -39
  18. package/dist/docs/reference/engine/GenerationOptions.md +4 -3
  19. package/dist/docs/reference/engine/GeometryResource.md +13 -13
  20. package/dist/docs/reference/engine/ModelDependencies.md +1 -1
  21. package/dist/docs/reference/engine/ModelEngine.md +26 -23
  22. package/dist/docs/reference/engine/ModelEngineOptions.md +6 -1
  23. package/dist/docs/reference/engine/ModelPart.md +108 -0
  24. package/dist/docs/reference/engine/ModelResult.md +175 -0
  25. package/dist/docs/reference/engine/ModelRunArguments.md +28 -0
  26. package/dist/docs/reference/engine/ModelRunOptions.md +104 -0
  27. package/dist/docs/reference/engine/ModelSession.md +16 -16
  28. package/dist/docs/reference/engine/ModelingLimits.md +121 -0
  29. package/dist/docs/reference/engine/SessionOptions.md +13 -8
  30. package/dist/docs/reference/engine/categories/host-lifecycle.md +25 -15
  31. package/dist/docs/reference/engine/checkModel.md +43 -0
  32. package/dist/docs/reference/engine/createModelEngine.md +4 -13
  33. package/dist/docs/reference/engine/defaultModelingLimits.md +8 -1
  34. package/dist/docs/reference/engine/export3mf.md +55 -0
  35. package/dist/docs/reference/engine/modelingWasmUrl.md +1 -1
  36. package/dist/docs/reference/engine.md +8 -15
  37. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +1 -1
  38. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +1 -1
  39. package/dist/docs/reference/geometry/Anchor3-type.md +1 -1
  40. package/dist/docs/reference/geometry/ArcCurve2.md +1 -1
  41. package/dist/docs/reference/geometry/ArcCurve3.md +1 -1
  42. package/dist/docs/reference/geometry/AttachOptions.md +1 -1
  43. package/dist/docs/reference/geometry/AxisAngleRotation3.md +1 -1
  44. package/dist/docs/reference/geometry/Bevel.md +18 -0
  45. package/dist/docs/reference/geometry/BevelSize.md +14 -0
  46. package/dist/docs/reference/geometry/Bounds2-type.md +1 -1
  47. package/dist/docs/reference/geometry/Bounds2Data.md +1 -1
  48. package/dist/docs/reference/geometry/Bounds2Input.md +1 -1
  49. package/dist/docs/reference/geometry/Bounds2Options.md +48 -8
  50. package/dist/docs/reference/geometry/Bounds3-type.md +1 -1
  51. package/dist/docs/reference/geometry/Bounds3Data.md +1 -1
  52. package/dist/docs/reference/geometry/Bounds3Input.md +1 -1
  53. package/dist/docs/reference/geometry/Bounds3Options.md +48 -8
  54. package/dist/docs/reference/geometry/BoundsFit2.md +1 -1
  55. package/dist/docs/reference/geometry/BoundsFit3.md +1 -1
  56. package/dist/docs/reference/geometry/BoundsFitOptions.md +1 -1
  57. package/dist/docs/reference/geometry/BoxAnchorFace.md +1 -1
  58. package/dist/docs/reference/geometry/BoxAnchorOptions.md +4 -4
  59. package/dist/docs/reference/geometry/BoxEdge.md +1 -1
  60. package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
  61. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
  62. package/dist/docs/reference/geometry/BoxOptions.md +3 -3
  63. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +1 -1
  64. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +1 -1
  65. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
  66. package/dist/docs/reference/geometry/CircleContourOptions.md +1 -1
  67. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -3
  68. package/dist/docs/reference/geometry/CircularResolutionOptions.md +1 -1
  69. package/dist/docs/reference/geometry/CircularSampling.md +1 -1
  70. package/dist/docs/reference/geometry/CircularSamplingOptions.md +1 -1
  71. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +1 -1
  72. package/dist/docs/reference/geometry/ClearanceHoleFit.md +1 -1
  73. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +1 -1
  74. package/dist/docs/reference/geometry/Contour.md +1 -1
  75. package/dist/docs/reference/geometry/ContourCurve.md +1 -1
  76. package/dist/docs/reference/geometry/ContourPoint.md +1 -1
  77. package/dist/docs/reference/geometry/ContourSegment.md +1 -1
  78. package/dist/docs/reference/geometry/CorrespondingComponent.md +1 -1
  79. package/dist/docs/reference/geometry/CorrespondingContour.md +1 -1
  80. package/dist/docs/reference/geometry/CorrespondingProfile.md +1 -1
  81. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +1 -1
  82. package/dist/docs/reference/geometry/CubicBezierCurve2.md +1 -1
  83. package/dist/docs/reference/geometry/CubicBezierCurve3.md +1 -1
  84. package/dist/docs/reference/geometry/Curve2.md +1 -1
  85. package/dist/docs/reference/geometry/Curve3.md +1 -1
  86. package/dist/docs/reference/geometry/CurveSamplingOptions.md +1 -1
  87. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +1 -1
  88. package/dist/docs/reference/geometry/CylinderAnchorFace.md +1 -1
  89. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +3 -3
  90. package/dist/docs/reference/geometry/CylinderOptions.md +1 -1
  91. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +1 -1
  92. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +1 -1
  93. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +1 -1
  94. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +1 -1
  95. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +1 -1
  96. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +1 -1
  97. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +1 -1
  98. package/dist/docs/reference/geometry/CylindricalGearSpec.md +1 -1
  99. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
  100. package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
  101. package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -3
  102. package/dist/docs/reference/geometry/EndTreatments.md +1 -1
  103. package/dist/docs/reference/geometry/ExtrudeMeshOptions.md +130 -0
  104. package/dist/docs/reference/geometry/ExtrudeOptions.md +17 -9
  105. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +3 -3
  106. package/dist/docs/reference/geometry/FittedTextLayout.md +1 -1
  107. package/dist/docs/reference/geometry/Frame3.md +1 -1
  108. package/dist/docs/reference/geometry/GeometryError.md +1 -1
  109. package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
  110. package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
  111. package/dist/docs/reference/geometry/GeometryResolution.md +1 -1
  112. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +1 -1
  113. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
  114. package/dist/docs/reference/geometry/GridPatternOptions.md +1 -1
  115. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +1 -1
  116. package/dist/docs/reference/geometry/HeightfieldOptions.md +3 -2
  117. package/dist/docs/reference/geometry/HeightfieldPreflight.md +1 -1
  118. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +1 -1
  119. package/dist/docs/reference/geometry/ImmutableBuffer-type.md +108 -0
  120. package/dist/docs/reference/geometry/ImmutableTriangleMesh.md +43 -0
  121. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +52 -83
  122. package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +1 -1
  123. package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +1 -1
  124. package/dist/docs/reference/geometry/KnuckleHingeInterval.md +1 -1
  125. package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +1 -1
  126. package/dist/docs/reference/geometry/KnuckleHingeSpec.md +1 -1
  127. package/dist/docs/reference/geometry/LineCurve2.md +1 -1
  128. package/dist/docs/reference/geometry/LineCurve3.md +1 -1
  129. package/dist/docs/reference/geometry/LinearPatternOptions.md +1 -1
  130. package/dist/docs/reference/geometry/LoftCorrespondence.md +1 -1
  131. package/dist/docs/reference/geometry/LoftMeshStation.md +1 -1
  132. package/dist/docs/reference/geometry/LoftOptions.md +3 -3
  133. package/dist/docs/reference/geometry/LoftPlacement.md +1 -1
  134. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +1 -1
  135. package/dist/docs/reference/geometry/MatchProfilesOptions.md +1 -1
  136. package/dist/docs/reference/geometry/MetricFastenerSize.md +1 -1
  137. package/dist/docs/reference/geometry/MetricFastenerStandard.md +1 -1
  138. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +1 -1
  139. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +1 -1
  140. package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
  141. package/dist/docs/reference/geometry/NumericArray.md +14 -0
  142. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +1 -1
  143. package/dist/docs/reference/geometry/Path2-type.md +1 -1
  144. package/dist/docs/reference/geometry/Path2Data.md +1 -1
  145. package/dist/docs/reference/geometry/Path2Input.md +1 -1
  146. package/dist/docs/reference/geometry/Path3-type.md +1 -1
  147. package/dist/docs/reference/geometry/Path3Data.md +1 -1
  148. package/dist/docs/reference/geometry/Path3Input.md +1 -1
  149. package/dist/docs/reference/geometry/PathFrame.md +1 -1
  150. package/dist/docs/reference/geometry/PathLocation.md +1 -1
  151. package/dist/docs/reference/geometry/PathNormalGuide.md +1 -1
  152. package/dist/docs/reference/geometry/PathOptions.md +1 -1
  153. package/dist/docs/reference/geometry/PathPatternOptions.md +1 -1
  154. package/dist/docs/reference/geometry/PathPlacement.md +1 -1
  155. package/dist/docs/reference/geometry/PathResamplingOptions.md +1 -1
  156. package/dist/docs/reference/geometry/Pivot2Options.md +1 -1
  157. package/dist/docs/reference/geometry/Pivot3Options.md +1 -1
  158. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +1 -1
  159. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +1 -1
  160. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +1 -1
  161. package/dist/docs/reference/geometry/PlanarPatchQuality.md +1 -1
  162. package/dist/docs/reference/geometry/PolygonData.md +1 -1
  163. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +1 -1
  164. package/dist/docs/reference/geometry/PrimitiveAttachment.md +1 -3
  165. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +1 -1
  166. package/dist/docs/reference/geometry/PrintableThreadFit.md +1 -1
  167. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +1 -1
  168. package/dist/docs/reference/geometry/Profile.md +1 -1
  169. package/dist/docs/reference/geometry/ProfileComponent2.md +1 -1
  170. package/dist/docs/reference/geometry/ProfileContour2.md +1 -1
  171. package/dist/docs/reference/geometry/ProfileSpan2.md +1 -1
  172. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +1 -1
  173. package/dist/docs/reference/geometry/RackPitchDimensions.md +1 -1
  174. package/dist/docs/reference/geometry/RackPitchSpec.md +1 -1
  175. package/dist/docs/reference/geometry/RadialPatternOptions.md +1 -1
  176. package/dist/docs/reference/geometry/RadialSizing.md +1 -1
  177. package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
  178. package/dist/docs/reference/geometry/RectangleContourOptions.md +3 -3
  179. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +1 -1
  180. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +1 -1
  181. package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
  182. package/dist/docs/reference/geometry/RegionData.md +1 -1
  183. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +1 -1
  184. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
  185. package/dist/docs/reference/geometry/RevolveOptions.md +2 -2
  186. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
  187. package/dist/docs/reference/geometry/RowLayoutOptions.md +1 -1
  188. package/dist/docs/reference/geometry/SampleContourOptions.md +1 -1
  189. package/dist/docs/reference/geometry/SampleHelixOptions.md +1 -1
  190. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +1 -1
  191. package/dist/docs/reference/geometry/SampledCurve2.md +1 -1
  192. package/dist/docs/reference/geometry/SampledCurve3.md +1 -1
  193. package/dist/docs/reference/geometry/SampledThreadHelices.md +1 -1
  194. package/dist/docs/reference/geometry/SideProfileCurve.md +1 -1
  195. package/dist/docs/reference/geometry/SideProfilePoint.md +1 -1
  196. package/dist/docs/reference/geometry/SideProfileSegment.md +1 -1
  197. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
  198. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +1 -1
  199. package/dist/docs/reference/geometry/SphereOptions.md +1 -1
  200. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +1 -1
  201. package/dist/docs/reference/geometry/StarContourOptions.md +74 -0
  202. package/dist/docs/reference/geometry/StrokeCap.md +1 -1
  203. package/dist/docs/reference/geometry/StrokeJoin.md +1 -1
  204. package/dist/docs/reference/geometry/StrokeOptions.md +1 -1
  205. package/dist/docs/reference/geometry/SvgImportOptions.md +1 -1
  206. package/dist/docs/reference/geometry/SvgRegionPreflight.md +1 -1
  207. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +1 -1
  208. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +1 -1
  209. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +1 -1
  210. package/dist/docs/reference/geometry/SweepOptions.md +1 -1
  211. package/dist/docs/reference/geometry/SweepOrientation.md +1 -1
  212. package/dist/docs/reference/geometry/ThreadBevelOptions.md +7 -30
  213. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +1 -1
  214. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +1 -1
  215. package/dist/docs/reference/geometry/ThreadEndStyle.md +1 -1
  216. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +1 -1
  217. package/dist/docs/reference/geometry/ThreadHandedness.md +1 -1
  218. package/dist/docs/reference/geometry/ThreadHelixOptions.md +1 -1
  219. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +1 -1
  220. package/dist/docs/reference/geometry/ThreadLeadInShape.md +1 -1
  221. package/dist/docs/reference/geometry/ThreadProfile-type.md +2 -2
  222. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +1 -1
  223. package/dist/docs/reference/geometry/ThreadProfileSpec.md +1 -1
  224. package/dist/docs/reference/geometry/{HelicalThreadRidgeMeshOptions.md → ThreadRidgeOptions.md} +4 -4
  225. package/dist/docs/reference/geometry/ThreadRole.md +1 -1
  226. package/dist/docs/reference/geometry/{HelicalThreadSolidMeshOptions.md → ThreadSolidOptions.md} +18 -65
  227. package/dist/docs/reference/geometry/{HelicalThreadSolidMeshPreflight.md → ThreadSolidPreflight.md} +2 -2
  228. package/dist/docs/reference/geometry/ThreadedNutOptions.md +75 -86
  229. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +18 -6
  230. package/dist/docs/reference/geometry/ThreadedNutShape.md +1 -1
  231. package/dist/docs/reference/geometry/ThreadedRodOptions.md +52 -83
  232. package/dist/docs/reference/geometry/TorusOptions.md +1 -1
  233. package/dist/docs/reference/geometry/Transform2-type.md +1 -1
  234. package/dist/docs/reference/geometry/Transform2Data.md +1 -1
  235. package/dist/docs/reference/geometry/Transform2Input.md +1 -1
  236. package/dist/docs/reference/geometry/Transform3-type.md +1 -1
  237. package/dist/docs/reference/geometry/Transform3Data.md +1 -1
  238. package/dist/docs/reference/geometry/Transform3Input.md +1 -1
  239. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +1 -1
  240. package/dist/docs/reference/geometry/TriangleMesh.md +3 -8
  241. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +10 -4
  242. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +2 -2
  243. package/dist/docs/reference/geometry/TriangleMeshInput.md +19 -0
  244. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +1 -1
  245. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +1 -1
  246. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +1 -1
  247. package/dist/docs/reference/geometry/TriangleMeshSignature.md +3 -3
  248. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +1 -1
  249. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +1 -1
  250. package/dist/docs/reference/geometry/TriangleMeshTopologyAnalysis.md +131 -0
  251. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +1 -1
  252. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +1 -1
  253. package/dist/docs/reference/geometry/TubeOptions.md +10 -86
  254. package/dist/docs/reference/geometry/Vector2-type.md +1 -1
  255. package/dist/docs/reference/geometry/Vector2Data.md +1 -1
  256. package/dist/docs/reference/geometry/Vector2Input.md +1 -1
  257. package/dist/docs/reference/geometry/Vector3-type.md +1 -1
  258. package/dist/docs/reference/geometry/Vector3Data.md +1 -1
  259. package/dist/docs/reference/geometry/Vector3Input.md +1 -1
  260. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +1 -1
  261. package/dist/docs/reference/geometry/VectorTextLayout.md +1 -1
  262. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +3 -3
  263. package/dist/docs/reference/geometry/VectorTextMetrics.md +1 -1
  264. package/dist/docs/reference/geometry/VectorTextOptions.md +1 -1
  265. package/dist/docs/reference/geometry/add2.md +1 -1
  266. package/dist/docs/reference/geometry/add3.md +1 -1
  267. package/dist/docs/reference/geometry/anchor3.md +1 -1
  268. package/dist/docs/reference/geometry/anchorFrame3.md +1 -1
  269. package/dist/docs/reference/geometry/applyTransformDirection3.md +1 -1
  270. package/dist/docs/reference/geometry/applyTransformPoint3.md +1 -1
  271. package/dist/docs/reference/geometry/attachmentTransform3.md +1 -1
  272. package/dist/docs/reference/geometry/bounds2.md +4 -4
  273. package/dist/docs/reference/geometry/bounds3.md +4 -4
  274. package/dist/docs/reference/geometry/boundsCenter.md +1 -1
  275. package/dist/docs/reference/geometry/boundsSize.md +1 -1
  276. package/dist/docs/reference/geometry/boxAnchor3.md +3 -3
  277. package/dist/docs/reference/geometry/categories/bounds-layout.md +3 -3
  278. package/dist/docs/reference/geometry/categories/curves-paths.md +2 -2
  279. package/dist/docs/reference/geometry/categories/mechanical.md +8 -10
  280. package/dist/docs/reference/geometry/categories/meshes.md +19 -32
  281. package/dist/docs/reference/geometry/categories/pattern-placement.md +2 -2
  282. package/dist/docs/reference/geometry/categories/primitive-options.md +3 -3
  283. package/dist/docs/reference/geometry/categories/profiles-regions.md +5 -4
  284. package/dist/docs/reference/geometry/categories/resolution-errors.md +3 -3
  285. package/dist/docs/reference/geometry/categories/transforms-math.md +3 -2
  286. package/dist/docs/reference/geometry/categories/vector-import.md +3 -3
  287. package/dist/docs/reference/geometry/circleContour.md +1 -1
  288. package/dist/docs/reference/geometry/closeToAxis.md +1 -1
  289. package/dist/docs/reference/geometry/compensateThreadDiameters.md +1 -1
  290. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +1 -1
  291. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +1 -1
  292. package/dist/docs/reference/geometry/composeTransform3.md +1 -1
  293. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +1 -1
  294. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +1 -1
  295. package/dist/docs/reference/geometry/contourContainsPoint.md +1 -1
  296. package/dist/docs/reference/geometry/cross2.md +1 -1
  297. package/dist/docs/reference/geometry/cross3.md +1 -1
  298. package/dist/docs/reference/geometry/cylinderAnchor3.md +2 -2
  299. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +1 -1
  300. package/dist/docs/reference/geometry/distance2.md +1 -1
  301. package/dist/docs/reference/geometry/distance3.md +1 -1
  302. package/dist/docs/reference/geometry/distributeAlongPath.md +1 -1
  303. package/dist/docs/reference/geometry/dot2.md +1 -1
  304. package/dist/docs/reference/geometry/dot3.md +1 -1
  305. package/dist/docs/reference/geometry/ellipseContour.md +1 -1
  306. package/dist/docs/reference/geometry/eulerTransform3.md +1 -1
  307. package/dist/docs/reference/geometry/fitBounds.md +1 -1
  308. package/dist/docs/reference/geometry/fitTextLayout.md +1 -1
  309. package/dist/docs/reference/geometry/frameTransform3.md +1 -1
  310. package/dist/docs/reference/geometry/getMetricClearanceHoleDiameter.md +1 -1
  311. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +1 -1
  312. package/dist/docs/reference/geometry/gridPatternTransforms.md +1 -1
  313. package/dist/docs/reference/geometry/immutableBuffer.md +49 -0
  314. package/dist/docs/reference/geometry/inverseTransform3.md +1 -1
  315. package/dist/docs/reference/geometry/isGeometryError.md +1 -1
  316. package/dist/docs/reference/geometry/layoutRow.md +1 -1
  317. package/dist/docs/reference/geometry/length2.md +1 -1
  318. package/dist/docs/reference/geometry/length3.md +1 -1
  319. package/dist/docs/reference/geometry/lerp2.md +1 -1
  320. package/dist/docs/reference/geometry/lerp3.md +1 -1
  321. package/dist/docs/reference/geometry/linearPatternTransforms.md +1 -1
  322. package/dist/docs/reference/geometry/matchProfiles.md +1 -1
  323. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +1 -1
  324. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +1 -1
  325. package/dist/docs/reference/geometry/normalize2.md +1 -1
  326. package/dist/docs/reference/geometry/normalize3.md +1 -1
  327. package/dist/docs/reference/geometry/normalizeContour.md +1 -1
  328. package/dist/docs/reference/geometry/normalizePolygon.md +1 -1
  329. package/dist/docs/reference/geometry/normalizeRegion.md +1 -1
  330. package/dist/docs/reference/geometry/path2.md +1 -1
  331. package/dist/docs/reference/geometry/path3.md +1 -1
  332. package/dist/docs/reference/geometry/pathPatternTransforms.md +1 -1
  333. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +18 -25
  334. package/dist/docs/reference/geometry/preflightSvgRegion.md +1 -1
  335. package/dist/docs/reference/geometry/preflightThreadedNut.md +24 -26
  336. package/dist/docs/reference/geometry/preflightThreadedRod.md +18 -25
  337. package/dist/docs/reference/geometry/projectOntoPlane3.md +1 -1
  338. package/dist/docs/reference/geometry/radialPatternTransforms.md +1 -1
  339. package/dist/docs/reference/geometry/rectangleContour.md +10 -5
  340. package/dist/docs/reference/geometry/rectangleProfile.md +2 -2
  341. package/dist/docs/reference/geometry/regionArea.md +1 -1
  342. package/dist/docs/reference/geometry/regionBounds.md +1 -1
  343. package/dist/docs/reference/geometry/regularPolygonContour.md +2 -2
  344. package/dist/docs/reference/geometry/resamplePolyline2.md +1 -1
  345. package/dist/docs/reference/geometry/resamplePolyline3.md +1 -1
  346. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +1 -1
  347. package/dist/docs/reference/geometry/resolveArcSegments.md +1 -1
  348. package/dist/docs/reference/geometry/resolveCircularSampling.md +1 -1
  349. package/dist/docs/reference/geometry/resolveCircularSegments.md +1 -1
  350. package/dist/docs/reference/geometry/resolveCylindricalGear.md +1 -1
  351. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +1 -1
  352. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +1 -1
  353. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +1 -1
  354. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
  355. package/dist/docs/reference/geometry/resolveKnuckleHinge.md +1 -1
  356. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +1 -1
  357. package/dist/docs/reference/geometry/resolveRackPitch.md +1 -1
  358. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +1 -1
  359. package/dist/docs/reference/geometry/rotate2.md +1 -1
  360. package/dist/docs/reference/geometry/rotationTransform3.md +1 -1
  361. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +1 -1
  362. package/dist/docs/reference/geometry/sampleContour.md +1 -1
  363. package/dist/docs/reference/geometry/sampleCurve2.md +1 -1
  364. package/dist/docs/reference/geometry/sampleCurve3.md +1 -1
  365. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +1 -1
  366. package/dist/docs/reference/geometry/sampleHelix.md +1 -1
  367. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +1 -1
  368. package/dist/docs/reference/geometry/sampleRackToothPath.md +1 -1
  369. package/dist/docs/reference/geometry/sampleSideProfile.md +1 -1
  370. package/dist/docs/reference/geometry/sampleTextContours.md +1 -1
  371. package/dist/docs/reference/geometry/sampleThreadHelices.md +1 -1
  372. package/dist/docs/reference/geometry/scale2.md +1 -1
  373. package/dist/docs/reference/geometry/scale3.md +1 -1
  374. package/dist/docs/reference/geometry/scaleTransform3.md +1 -1
  375. package/dist/docs/reference/geometry/signedContourArea.md +1 -1
  376. package/dist/docs/reference/geometry/starContour.md +17 -15
  377. package/dist/docs/reference/geometry/strokeRegionData.md +1 -1
  378. package/dist/docs/reference/geometry/subtract2.md +1 -1
  379. package/dist/docs/reference/geometry/subtract3.md +1 -1
  380. package/dist/docs/reference/geometry/threadProfile.md +1 -1
  381. package/dist/docs/reference/geometry/transform2.md +1 -1
  382. package/dist/docs/reference/geometry/transform3.md +1 -1
  383. package/dist/docs/reference/geometry/transformDeterminant3.md +1 -1
  384. package/dist/docs/reference/geometry/transformRegionData.md +1 -1
  385. package/dist/docs/reference/geometry/translationTransform3.md +1 -1
  386. package/dist/docs/reference/geometry/triangulateContour.md +1 -1
  387. package/dist/docs/reference/geometry/validateRigidTransform3.md +35 -0
  388. package/dist/docs/reference/geometry/validateTransform3.md +1 -1
  389. package/dist/docs/reference/geometry/vector2.md +1 -1
  390. package/dist/docs/reference/geometry/vector3.md +1 -1
  391. package/dist/docs/reference/geometry.md +9 -9
  392. package/dist/docs/reference/mesh/AcmeThreadProfileSpec.md +79 -0
  393. package/dist/docs/reference/mesh/Bevel.md +18 -0
  394. package/dist/docs/reference/mesh/BevelSize.md +14 -0
  395. package/dist/docs/reference/mesh/Bounds2.md +125 -0
  396. package/dist/docs/reference/mesh/Bounds2Data.md +43 -0
  397. package/dist/docs/reference/mesh/Bounds2Input.md +19 -0
  398. package/dist/docs/reference/mesh/Bounds3.md +125 -0
  399. package/dist/docs/reference/mesh/Bounds3Data.md +43 -0
  400. package/dist/docs/reference/mesh/Bounds3Input.md +19 -0
  401. package/dist/docs/reference/mesh/ButtressPressureFlankSide.md +14 -0
  402. package/dist/docs/reference/mesh/ButtressThreadProfileSpec.md +97 -0
  403. package/dist/docs/reference/mesh/CircularPrimitiveOptions.md +60 -0
  404. package/dist/docs/reference/mesh/CurveSamplingOptions.md +69 -0
  405. package/dist/docs/reference/mesh/CustomThreadProfileSpec.md +77 -0
  406. package/dist/docs/reference/mesh/ExtrudeMeshOptions.md +129 -0
  407. package/dist/docs/reference/mesh/ExtrusionSamplingOptions.md +81 -0
  408. package/dist/docs/reference/mesh/Frame3.md +62 -0
  409. package/dist/docs/reference/mesh/GeometryResolution.md +74 -0
  410. package/dist/docs/reference/mesh/GeometrySamplingLimits.md +66 -0
  411. package/dist/docs/reference/mesh/GeometryToleranceOptions.md +46 -0
  412. package/dist/docs/reference/mesh/HeightfieldMeshLimits.md +18 -0
  413. package/dist/docs/reference/mesh/HeightfieldOptions.md +72 -0
  414. package/dist/docs/reference/mesh/HeightfieldPreflight.md +58 -0
  415. package/dist/docs/reference/mesh/ImmutableBuffer.md +108 -0
  416. package/dist/docs/reference/mesh/ImmutableTriangleMesh.md +43 -0
  417. package/dist/docs/reference/mesh/LoftCorrespondence.md +24 -0
  418. package/dist/docs/reference/mesh/LoftMeshStation.md +31 -0
  419. package/dist/docs/reference/mesh/LoftOptions.md +88 -0
  420. package/dist/docs/reference/mesh/LoftPlacement.md +70 -0
  421. package/dist/docs/reference/mesh/ModelingLimits.md +130 -0
  422. package/dist/docs/reference/mesh/NumericArray.md +14 -0
  423. package/dist/docs/reference/mesh/Path2.md +197 -0
  424. package/dist/docs/reference/mesh/Path2Data.md +50 -0
  425. package/dist/docs/reference/mesh/Path2Input.md +20 -0
  426. package/dist/docs/reference/mesh/Path3.md +197 -0
  427. package/dist/docs/reference/mesh/Path3Data.md +50 -0
  428. package/dist/docs/reference/mesh/Path3Input.md +20 -0
  429. package/dist/docs/reference/mesh/PathLocation.md +69 -0
  430. package/dist/docs/reference/mesh/PathNormalGuide.md +43 -0
  431. package/dist/docs/reference/mesh/PathResamplingOptions.md +84 -0
  432. package/dist/docs/reference/mesh/Pivot2Options.md +26 -0
  433. package/dist/docs/reference/mesh/Pivot3Options.md +26 -0
  434. package/dist/docs/reference/mesh/PlanarMeshOptimizationFallbackReason.md +14 -0
  435. package/dist/docs/reference/mesh/PlanarMeshOptimizationOptions.md +160 -0
  436. package/dist/docs/reference/mesh/PlanarMeshOptimizationResult.md +124 -0
  437. package/dist/docs/reference/mesh/PlanarPatchQuality.md +194 -0
  438. package/dist/docs/reference/mesh/RevolveOptions.md +91 -0
  439. package/dist/docs/reference/mesh/SolidMeshValidationOptions.md +38 -0
  440. package/dist/docs/reference/mesh/SquareThreadProfileSpec.md +79 -0
  441. package/dist/docs/reference/mesh/SweepOptions.md +113 -0
  442. package/dist/docs/reference/mesh/SweepOrientation.md +113 -0
  443. package/dist/docs/reference/mesh/ThreadEndStyle.md +14 -0
  444. package/dist/docs/reference/mesh/ThreadEndTreatmentOptions.md +117 -0
  445. package/dist/docs/reference/mesh/ThreadHandedness.md +14 -0
  446. package/dist/docs/reference/mesh/ThreadLeadInEnvelope.md +14 -0
  447. package/dist/docs/reference/mesh/ThreadLeadInShape.md +14 -0
  448. package/dist/docs/reference/mesh/ThreadProfile.md +86 -0
  449. package/dist/docs/reference/mesh/ThreadProfileBaseSpec.md +53 -0
  450. package/dist/docs/reference/mesh/ThreadProfileSpec.md +23 -0
  451. package/dist/docs/reference/{model/HelicalThreadRidgeMeshOptions.md → mesh/ThreadRidgeOptions.md} +14 -10
  452. package/dist/docs/reference/mesh/ThreadSolidOptions.md +222 -0
  453. package/dist/docs/reference/mesh/ThreadSolidPreflight.md +58 -0
  454. package/dist/docs/reference/mesh/Transform2.md +256 -0
  455. package/dist/docs/reference/mesh/Transform2Data.md +14 -0
  456. package/dist/docs/reference/mesh/Transform2Input.md +19 -0
  457. package/dist/docs/reference/mesh/Transform3.md +296 -0
  458. package/dist/docs/reference/mesh/Transform3Data.md +17 -0
  459. package/dist/docs/reference/mesh/Transform3Input.md +19 -0
  460. package/dist/docs/reference/mesh/TrapezoidalThreadProfileSpec.md +96 -0
  461. package/dist/docs/reference/mesh/TriangleMesh.md +34 -0
  462. package/dist/docs/reference/mesh/TriangleMeshAnalysis.md +129 -0
  463. package/dist/docs/reference/mesh/TriangleMeshAnalysisOptions.md +79 -0
  464. package/dist/docs/reference/mesh/TriangleMeshInput.md +19 -0
  465. package/dist/docs/reference/mesh/TriangleMeshMeasurements.md +79 -0
  466. package/dist/docs/reference/mesh/TriangleMeshQualityOptions.md +43 -0
  467. package/dist/docs/reference/mesh/TriangleMeshQualityReport.md +194 -0
  468. package/dist/docs/reference/mesh/TriangleMeshSignature.md +111 -0
  469. package/dist/docs/reference/mesh/TriangleMeshSignatureOptions.md +46 -0
  470. package/dist/docs/reference/mesh/TriangleMeshSignatureTolerances.md +34 -0
  471. package/dist/docs/reference/mesh/TriangleMeshTopologyAnalysis.md +131 -0
  472. package/dist/docs/reference/mesh/TriangleMeshValidationOptions.md +55 -0
  473. package/dist/docs/reference/mesh/TriangularThreadProfileSpec.md +95 -0
  474. package/dist/docs/reference/mesh/Vector2.md +270 -0
  475. package/dist/docs/reference/mesh/Vector2Data.md +14 -0
  476. package/dist/docs/reference/mesh/Vector2Input.md +19 -0
  477. package/dist/docs/reference/mesh/Vector3.md +282 -0
  478. package/dist/docs/reference/mesh/Vector3Data.md +14 -0
  479. package/dist/docs/reference/mesh/Vector3Input.md +19 -0
  480. package/dist/docs/reference/mesh/analyze.md +96 -0
  481. package/dist/docs/reference/{geometry/analyzeTriangleMeshQuality.md → mesh/analyzeQuality.md} +9 -9
  482. package/dist/docs/reference/mesh/bounds.md +39 -0
  483. package/dist/docs/reference/mesh/categories/operations.md +147 -0
  484. package/dist/docs/reference/{geometry/computeTriangleMeshCentroid.md → mesh/centroid.md} +7 -7
  485. package/dist/docs/reference/mesh/extrude.md +73 -0
  486. package/dist/docs/reference/{geometry/heightfieldMesh.md → mesh/heightfield.md} +7 -8
  487. package/dist/docs/reference/mesh/immutable.md +47 -0
  488. package/dist/docs/reference/{geometry/joinTriangleMeshes.md → mesh/join.md} +7 -6
  489. package/dist/docs/reference/{geometry/loftMesh.md → mesh/loft.md} +15 -15
  490. package/dist/docs/reference/mesh/optimizePlanarPatches.md +96 -0
  491. package/dist/docs/reference/{geometry → mesh}/preflightHeightfield.md +5 -6
  492. package/dist/docs/reference/mesh/preflightThreadSolid.md +90 -0
  493. package/dist/docs/reference/{geometry/reverseTriangleMesh.md → mesh/reverse.md} +6 -5
  494. package/dist/docs/reference/{geometry/revolveMesh.md → mesh/revolve.md} +13 -13
  495. package/dist/docs/reference/{geometry/computeTriangleMeshSignature.md → mesh/signature.md} +11 -11
  496. package/dist/docs/reference/mesh/sweep.md +86 -0
  497. package/dist/docs/reference/mesh/threadRidge.md +72 -0
  498. package/dist/docs/reference/mesh/threadSolid.md +90 -0
  499. package/dist/docs/reference/{geometry/transformTriangleMesh.md → mesh/transform.md} +7 -6
  500. package/dist/docs/reference/{geometry/validateTriangleMesh.md → mesh/validate.md} +17 -11
  501. package/dist/docs/reference/{geometry/validateSolidMesh.md → mesh/validateSolid.md} +15 -9
  502. package/dist/docs/reference/mesh.md +21 -0
  503. package/dist/docs/reference/model/AcmeThreadProfileSpec.md +80 -0
  504. package/dist/docs/reference/model/Anchor3.md +1 -1
  505. package/dist/docs/reference/model/AttachOptions.md +1 -1
  506. package/dist/docs/reference/model/Bevel.md +19 -0
  507. package/dist/docs/reference/model/{ThreadedNutBevel.md → BevelSize.md} +4 -4
  508. package/dist/docs/reference/model/Bounds2-type.md +1 -1
  509. package/dist/docs/reference/model/Bounds2Data.md +1 -1
  510. package/dist/docs/reference/model/Bounds2Input.md +1 -1
  511. package/dist/docs/reference/model/Bounds2Options.md +48 -8
  512. package/dist/docs/reference/model/Bounds3-type.md +1 -1
  513. package/dist/docs/reference/model/Bounds3Data.md +1 -1
  514. package/dist/docs/reference/model/Bounds3Input.md +1 -1
  515. package/dist/docs/reference/model/Bounds3Options.md +48 -8
  516. package/dist/docs/reference/model/BoxEdge.md +1 -1
  517. package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
  518. package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
  519. package/dist/docs/reference/model/BoxOptions.md +3 -3
  520. package/dist/docs/reference/model/ButtressPressureFlankSide.md +15 -0
  521. package/dist/docs/reference/model/ButtressThreadProfileSpec.md +98 -0
  522. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
  523. package/dist/docs/reference/model/CircleContourOptions.md +1 -1
  524. package/dist/docs/reference/model/CircleOptions.md +1 -1
  525. package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -3
  526. package/dist/docs/reference/model/Computed.md +7 -3
  527. package/dist/docs/reference/model/ComputedValue.md +1 -1
  528. package/dist/docs/reference/model/Contour.md +1 -1
  529. package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
  530. package/dist/docs/reference/model/CorrespondingContour.md +1 -1
  531. package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
  532. package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
  533. package/dist/docs/reference/model/CurveSamplingOptions.md +68 -0
  534. package/dist/docs/reference/model/CustomThreadProfileSpec.md +78 -0
  535. package/dist/docs/reference/model/CylinderOptions.md +1 -1
  536. package/dist/docs/reference/model/DiagnosticOptions.md +15 -1
  537. package/dist/docs/reference/model/EdgeTreatment.md +1 -1
  538. package/dist/docs/reference/model/EllipseContourOptions.md +3 -3
  539. package/dist/docs/reference/model/EllipseOptions.md +1 -1
  540. package/dist/docs/reference/model/EndTreatments.md +1 -1
  541. package/dist/docs/reference/model/ExtrudeMeshOptions.md +133 -0
  542. package/dist/docs/reference/model/ExtrudeOptions.md +17 -8
  543. package/dist/docs/reference/model/ExtrusionSamplingOptions.md +84 -0
  544. package/dist/docs/reference/model/Frame3.md +1 -1
  545. package/dist/docs/reference/model/GenerateCallback.md +5 -5
  546. package/dist/docs/reference/model/GenerateContext.md +15 -63
  547. package/dist/docs/reference/model/GenerationDiagnostic.md +13 -1
  548. package/dist/docs/reference/model/GenerationError.md +1 -1
  549. package/dist/docs/reference/model/GeometryError.md +102 -0
  550. package/dist/docs/reference/model/GeometryErrorCode.md +15 -0
  551. package/dist/docs/reference/model/GeometryErrorContext.md +35 -0
  552. package/dist/docs/reference/model/GeometryResolution.md +1 -1
  553. package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
  554. package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
  555. package/dist/docs/reference/model/GridPatternOptions.md +1 -1
  556. package/dist/docs/reference/model/HeightfieldOptions.md +3 -2
  557. package/dist/docs/reference/model/HoleCutterOptions.md +1 -1
  558. package/dist/docs/reference/model/HoleCutterOverrun.md +1 -1
  559. package/dist/docs/reference/model/HoleCutterRecess.md +1 -1
  560. package/dist/docs/reference/model/HullOptions.md +1 -1
  561. package/dist/docs/reference/model/ImmutableBuffer-type.md +27 -3
  562. package/dist/docs/reference/model/ImmutableTriangleMesh.md +8 -3
  563. package/dist/docs/reference/model/ImmutableValue.md +20 -0
  564. package/dist/docs/reference/model/ImplicitOptions.md +1 -1
  565. package/dist/docs/reference/model/InternalThreadCutterOptions.md +54 -84
  566. package/dist/docs/reference/model/KnuckleHinge-type.md +1 -1
  567. package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +1 -1
  568. package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +1 -1
  569. package/dist/docs/reference/model/KnuckleHingeOptions.md +1 -1
  570. package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +1 -1
  571. package/dist/docs/reference/model/KnuckleHingeSpec.md +1 -1
  572. package/dist/docs/reference/model/KnuckleHingeWeb.md +1 -1
  573. package/dist/docs/reference/model/LinearPatternOptions.md +1 -1
  574. package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
  575. package/dist/docs/reference/model/LoftOptions.md +3 -3
  576. package/dist/docs/reference/model/LoftPlacement.md +1 -1
  577. package/dist/docs/reference/model/LoftStation.md +1 -1
  578. package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
  579. package/dist/docs/reference/model/ModelProgram.md +2 -2
  580. package/dist/docs/reference/model/ModelingLimits.md +1 -1
  581. package/dist/docs/reference/model/NumericArray.md +1 -1
  582. package/dist/docs/reference/model/{GeneratedPart.md → PartDeclaration.md} +8 -23
  583. package/dist/docs/reference/model/PartGeometry.md +2 -2
  584. package/dist/docs/reference/model/PartOptions.md +8 -19
  585. package/dist/docs/reference/model/Path2-type.md +1 -1
  586. package/dist/docs/reference/model/Path2Data.md +1 -1
  587. package/dist/docs/reference/model/Path2Input.md +1 -1
  588. package/dist/docs/reference/model/Path3-type.md +1 -1
  589. package/dist/docs/reference/model/Path3Data.md +1 -1
  590. package/dist/docs/reference/model/Path3Input.md +1 -1
  591. package/dist/docs/reference/model/PathLocation.md +1 -1
  592. package/dist/docs/reference/model/PathNormalGuide.md +1 -1
  593. package/dist/docs/reference/model/PathOptions.md +1 -1
  594. package/dist/docs/reference/model/PathPatternOptions.md +1 -1
  595. package/dist/docs/reference/model/PathResamplingOptions.md +7 -6
  596. package/dist/docs/reference/model/PatternSource.md +1 -1
  597. package/dist/docs/reference/model/Pivot2Options.md +1 -1
  598. package/dist/docs/reference/model/Pivot3Options.md +1 -1
  599. package/dist/docs/reference/model/PlaneOptions.md +1 -1
  600. package/dist/docs/reference/model/PolygonData.md +1 -1
  601. package/dist/docs/reference/model/PolygonOptions.md +1 -1
  602. package/dist/docs/reference/model/PrimitiveAttachment.md +1 -3
  603. package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +1 -1
  604. package/dist/docs/reference/model/PrintableThreadFit.md +1 -1
  605. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +1 -1
  606. package/dist/docs/reference/model/Profile.md +1 -1
  607. package/dist/docs/reference/model/ProfileComponent2.md +1 -1
  608. package/dist/docs/reference/model/ProfileContour2.md +1 -1
  609. package/dist/docs/reference/model/ProfileSpan2.md +1 -1
  610. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +1 -1
  611. package/dist/docs/reference/model/RadialPatternOptions.md +1 -1
  612. package/dist/docs/reference/model/RadialSizing.md +1 -1
  613. package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
  614. package/dist/docs/reference/model/RectangleContourOptions.md +3 -3
  615. package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
  616. package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
  617. package/dist/docs/reference/model/RectangleOptions.md +3 -3
  618. package/dist/docs/reference/model/RegionData.md +1 -1
  619. package/dist/docs/reference/model/RegularPolygonOptions.md +1 -1
  620. package/dist/docs/reference/model/RevolveOptions.md +2 -2
  621. package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
  622. package/dist/docs/reference/model/Section.md +131 -6
  623. package/dist/docs/reference/model/SectionHullOptions.md +1 -1
  624. package/dist/docs/reference/model/SectionInspection.md +5 -17
  625. package/dist/docs/reference/model/SectionOffsetJoin.md +1 -1
  626. package/dist/docs/reference/model/SectionOffsetOptions.md +1 -1
  627. package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
  628. package/dist/docs/reference/model/Solid.md +245 -8
  629. package/dist/docs/reference/model/SolidInspection.md +5 -17
  630. package/dist/docs/reference/model/SolidSegmentHit.md +5 -1
  631. package/dist/docs/reference/model/SphereOptions.md +1 -1
  632. package/dist/docs/reference/model/SquareThreadProfileSpec.md +80 -0
  633. package/dist/docs/reference/model/StarContourOptions.md +81 -0
  634. package/dist/docs/reference/model/StarOptions.md +38 -16
  635. package/dist/docs/reference/model/StrokeCap.md +1 -1
  636. package/dist/docs/reference/model/StrokeJoin.md +1 -1
  637. package/dist/docs/reference/model/StrokeOptions.md +1 -1
  638. package/dist/docs/reference/model/SvgOrigin.md +1 -1
  639. package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
  640. package/dist/docs/reference/model/SvgSectionOptions.md +1 -1
  641. package/dist/docs/reference/model/SweepOptions.md +1 -1
  642. package/dist/docs/reference/model/SweepOrientation.md +1 -1
  643. package/dist/docs/reference/model/TextSectionOptions.md +1 -1
  644. package/dist/docs/reference/model/ThreadBevelOptions.md +35 -0
  645. package/dist/docs/reference/model/ThreadEndStyle.md +1 -1
  646. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +1 -1
  647. package/dist/docs/reference/model/ThreadHandedness.md +1 -1
  648. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +1 -1
  649. package/dist/docs/reference/model/ThreadLeadInShape.md +1 -1
  650. package/dist/docs/reference/model/ThreadProfile.md +2 -2
  651. package/dist/docs/reference/model/ThreadProfileBaseSpec.md +54 -0
  652. package/dist/docs/reference/model/ThreadProfileSpec.md +24 -0
  653. package/dist/docs/reference/model/ThreadRidgeOptions.md +126 -4
  654. package/dist/docs/reference/model/{HelicalThreadSolidMeshPreflight.md → ThreadSolidPreflight.md} +2 -2
  655. package/dist/docs/reference/model/ThreadedNutOptions.md +75 -86
  656. package/dist/docs/reference/model/ThreadedNutPreflight.md +18 -6
  657. package/dist/docs/reference/model/ThreadedNutShape.md +1 -1
  658. package/dist/docs/reference/model/ThreadedRodOptions.md +54 -84
  659. package/dist/docs/reference/model/TorusOptions.md +1 -1
  660. package/dist/docs/reference/model/Transform2-type.md +1 -1
  661. package/dist/docs/reference/model/Transform2Data.md +1 -1
  662. package/dist/docs/reference/model/Transform2Input.md +1 -1
  663. package/dist/docs/reference/model/Transform3-type.md +1 -1
  664. package/dist/docs/reference/model/Transform3Data.md +1 -1
  665. package/dist/docs/reference/model/Transform3Input.md +1 -1
  666. package/dist/docs/reference/model/TrapezoidalThreadProfileSpec.md +97 -0
  667. package/dist/docs/reference/model/TriangleMesh.md +3 -11
  668. package/dist/docs/reference/model/TriangleMeshAnalysis.md +10 -4
  669. package/dist/docs/reference/model/TriangleMeshMeasurements.md +1 -1
  670. package/dist/docs/reference/model/TriangleMeshTopologyAnalysis.md +131 -0
  671. package/dist/docs/reference/model/TriangularThreadProfileSpec.md +96 -0
  672. package/dist/docs/reference/model/TubeOptions.md +10 -86
  673. package/dist/docs/reference/model/Vector2-type.md +1 -1
  674. package/dist/docs/reference/model/Vector2Data.md +1 -1
  675. package/dist/docs/reference/model/Vector2Input.md +1 -1
  676. package/dist/docs/reference/model/Vector3-type.md +1 -1
  677. package/dist/docs/reference/model/Vector3Data.md +1 -1
  678. package/dist/docs/reference/model/Vector3Input.md +1 -1
  679. package/dist/docs/reference/model/VectorTextLayout.md +1 -1
  680. package/dist/docs/reference/model/VectorTextMetrics.md +1 -1
  681. package/dist/docs/reference/model/bounds2.md +4 -4
  682. package/dist/docs/reference/model/bounds3.md +4 -4
  683. package/dist/docs/reference/model/box.md +2 -2
  684. package/dist/docs/reference/model/categories/boolean-operations.md +6 -10
  685. package/dist/docs/reference/model/categories/bounded-surfaces.md +1 -1
  686. package/dist/docs/reference/model/categories/bounds.md +2 -2
  687. package/dist/docs/reference/model/categories/contracts.md +3 -5
  688. package/dist/docs/reference/model/categories/core-values-errors.md +17 -3
  689. package/dist/docs/reference/model/categories/explicit-profiles.md +1 -1
  690. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +10 -8
  691. package/dist/docs/reference/model/categories/generation.md +8 -8
  692. package/dist/docs/reference/model/categories/hinges.md +1 -1
  693. package/dist/docs/reference/model/categories/mesh-inspection.md +15 -6
  694. package/dist/docs/reference/model/categories/paths.md +4 -3
  695. package/dist/docs/reference/model/categories/primitives.md +5 -5
  696. package/dist/docs/reference/model/categories/resolution.md +1 -1
  697. package/dist/docs/reference/model/categories/sections.md +4 -3
  698. package/dist/docs/reference/model/categories/threads.md +16 -6
  699. package/dist/docs/reference/model/categories/transforms-placement.md +2 -3
  700. package/dist/docs/reference/model/circle.md +1 -1
  701. package/dist/docs/reference/model/cylinder.md +1 -1
  702. package/dist/docs/reference/model/ellipse.md +1 -1
  703. package/dist/docs/reference/model/extrude.md +5 -4
  704. package/dist/docs/reference/model/generate.md +4 -4
  705. package/dist/docs/reference/model/gridPattern.md +1 -1
  706. package/dist/docs/reference/model/heightfield.md +1 -1
  707. package/dist/docs/reference/model/holeCutter.md +12 -2
  708. package/dist/docs/reference/model/hull.md +1 -1
  709. package/dist/docs/reference/model/immutableBuffer.md +5 -4
  710. package/dist/docs/reference/model/implicit.md +1 -1
  711. package/dist/docs/reference/model/internalThreadCutter.md +12 -20
  712. package/dist/docs/reference/model/intersect.md +3 -3
  713. package/dist/docs/reference/model/isGeometryError.md +34 -0
  714. package/dist/docs/reference/model/knuckleHinge.md +2 -2
  715. package/dist/docs/reference/model/linearPattern.md +1 -1
  716. package/dist/docs/reference/model/loft.md +6 -5
  717. package/dist/docs/reference/model/matchProfiles.md +1 -1
  718. package/dist/docs/reference/model/minkowskiSum.md +1 -1
  719. package/dist/docs/reference/model/path2.md +1 -1
  720. package/dist/docs/reference/model/path3.md +1 -1
  721. package/dist/docs/reference/model/pathPattern.md +1 -1
  722. package/dist/docs/reference/model/polygon.md +1 -1
  723. package/dist/docs/reference/model/preflightInternalThreadCutter.md +15 -23
  724. package/dist/docs/reference/model/preflightThreadedNut.md +22 -25
  725. package/dist/docs/reference/model/preflightThreadedRod.md +15 -23
  726. package/dist/docs/reference/model/radialPattern.md +1 -1
  727. package/dist/docs/reference/model/rectangle.md +2 -2
  728. package/dist/docs/reference/model/regularPolygon.md +1 -1
  729. package/dist/docs/reference/model/revolve.md +6 -5
  730. package/dist/docs/reference/model/solidFromMesh.md +7 -6
  731. package/dist/docs/reference/model/sphere.md +1 -1
  732. package/dist/docs/reference/model/star.md +7 -7
  733. package/dist/docs/reference/model/stroke.md +1 -1
  734. package/dist/docs/reference/model/svgPathSection.md +1 -1
  735. package/dist/docs/reference/model/svgSection.md +1 -1
  736. package/dist/docs/reference/model/sweep.md +5 -4
  737. package/dist/docs/reference/model/textSection.md +1 -1
  738. package/dist/docs/reference/model/threadRidge.md +14 -14
  739. package/dist/docs/reference/model/threadedNut.md +22 -25
  740. package/dist/docs/reference/model/threadedRod.md +12 -20
  741. package/dist/docs/reference/model/torus.md +1 -1
  742. package/dist/docs/reference/model/transform2.md +1 -1
  743. package/dist/docs/reference/model/transform3.md +1 -1
  744. package/dist/docs/reference/model/tube.md +1 -36
  745. package/dist/docs/reference/model/union.md +3 -3
  746. package/dist/docs/reference/model/vector2.md +1 -1
  747. package/dist/docs/reference/model/vector3.md +1 -1
  748. package/dist/docs/reference/model.md +15 -19
  749. package/dist/docs/reference/text/Bounds2Data.md +1 -1
  750. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +2 -2
  751. package/dist/docs/reference/text/Vector2Data.md +1 -1
  752. package/dist/docs/reference/text/VectorFont.md +7 -7
  753. package/dist/docs/reference/text/VectorFontOptions.md +1 -1
  754. package/dist/docs/reference/text/VectorTextArcBaseline.md +1 -1
  755. package/dist/docs/reference/text/VectorTextLayout.md +1 -1
  756. package/dist/docs/reference/text/VectorTextLayoutOptions.md +3 -3
  757. package/dist/docs/reference/text/VectorTextMetrics.md +1 -1
  758. package/dist/docs/reference/text/VectorTextOptions.md +1 -1
  759. package/dist/docs/reference/text/categories/font-preparation.md +3 -3
  760. package/dist/docs/reference/text/prepareVectorFont.md +1 -1
  761. package/dist/docs/reference/text.md +4 -4
  762. package/dist/engine/execution.js +10 -6
  763. package/dist/engine/export-3mf.js +22 -115
  764. package/dist/engine/finalization.js +10 -10
  765. package/dist/engine/index.js +25 -31
  766. package/dist/engine/model-parts.js +8 -0
  767. package/dist/engine/model-summary.js +5 -5
  768. package/dist/engine/native/index.js +1 -1
  769. package/dist/engine/native/material-components.js +3 -3
  770. package/dist/engine/native/operations.js +0 -7
  771. package/dist/engine/native/scoped-primitives.js +5 -4
  772. package/dist/engine/native/threads.js +14 -14
  773. package/dist/engine/{construction-operations.js → operations/construction.js} +25 -23
  774. package/dist/engine/{modeling-context.js → operations/context.js} +10 -10
  775. package/dist/engine/{operation-environment.js → operations/environment.js} +2 -2
  776. package/dist/engine/{extrusion-finishing.js → operations/extrusion-finishing.js} +7 -7
  777. package/dist/engine/{hole-cutter-operation.js → operations/hole-cutter.js} +3 -3
  778. package/dist/engine/{inspection-operations.js → operations/inspection.js} +6 -6
  779. package/dist/engine/{knuckle-hinge-operation.js → operations/knuckle-hinge.js} +4 -4
  780. package/dist/engine/{loft-operations.js → operations/loft.js} +13 -12
  781. package/dist/engine/{mechanical-operations.js → operations/mechanical.js} +2 -2
  782. package/dist/engine/{pattern-operations.js → operations/patterns.js} +4 -4
  783. package/dist/engine/{primitive-anchors.js → operations/primitives/anchors.js} +9 -4
  784. package/dist/engine/{primitive-operations.js → operations/primitives/construction.js} +18 -19
  785. package/dist/engine/{primitive-correspondence.js → operations/primitives/correspondence.js} +4 -4
  786. package/dist/engine/{profile-mesh.js → operations/primitives/profile-mesh.js} +12 -12
  787. package/dist/engine/{primitive-profiles.js → operations/primitives/profiles.js} +7 -7
  788. package/dist/engine/{section-operations.js → operations/sections.js} +8 -8
  789. package/dist/engine/{transform-operations.js → operations/transforms.js} +8 -8
  790. package/dist/engine/placement.js +3 -4
  791. package/dist/engine/recipe-realization.js +1 -1
  792. package/dist/engine/serialize-3mf.js +116 -0
  793. package/dist/engine/{deferred-context.js → session/deferred-context.js} +4 -4
  794. package/dist/engine/{model-dependencies.js → session/dependencies.js} +1 -1
  795. package/dist/engine/{session-graph.js → session/graph.js} +13 -11
  796. package/dist/engine/{session-native.js → session/native-cache.js} +1 -1
  797. package/dist/engine/{session.js → session/session.js} +16 -10
  798. package/dist/engine/{session-snapshot.js → session/snapshot-cache.js} +29 -59
  799. package/dist/geometry/anchors.js +4 -11
  800. package/dist/geometry/bounds-value.js +20 -10
  801. package/dist/geometry/heightfield.js +10 -12
  802. package/dist/{model → geometry}/immutable-buffer.js +28 -7
  803. package/dist/geometry/index.js +16 -22
  804. package/dist/geometry/loft/loft.js +11 -6
  805. package/dist/geometry/mechanical/index.js +5 -5
  806. package/dist/geometry/mechanical/threads/bevel.js +24 -0
  807. package/dist/geometry/mechanical/{threads.js → threads/fit.js} +4 -4
  808. package/dist/geometry/mechanical/{thread-helices.js → threads/helices.js} +3 -3
  809. package/dist/geometry/mechanical/{thread-mesh-plan.js → threads/mesh-plan.js} +38 -53
  810. package/dist/geometry/mechanical/{thread-mesh.js → threads/mesh.js} +9 -9
  811. package/dist/geometry/mechanical/{thread-profiles.js → threads/profiles.js} +3 -3
  812. package/dist/geometry/mechanical/{thread-solids.js → threads/solids.js} +58 -89
  813. package/dist/geometry/mechanical/{thread-surface.js → threads/surface.js} +7 -8
  814. package/dist/geometry/mesh/mesh-centroid.js +3 -2
  815. package/dist/geometry/mesh/mesh-planar.js +27 -8
  816. package/dist/geometry/mesh/mesh-quality.js +2 -1
  817. package/dist/geometry/mesh/mesh-signature.js +7 -6
  818. package/dist/geometry/mesh/mesh-solid.js +2 -3
  819. package/dist/geometry/mesh/mesh-types.js +1 -0
  820. package/dist/geometry/mesh/mesh.js +13 -22
  821. package/dist/geometry/mesh-api.js +14 -0
  822. package/dist/geometry/primitive-resolvers.js +42 -14
  823. package/dist/geometry/profiles/primitives/circle.js +19 -0
  824. package/dist/geometry/profiles/{shapes.js → primitives/ellipse.js} +6 -10
  825. package/dist/geometry/profiles/{rectangle.js → primitives/rectangle.js} +14 -12
  826. package/dist/geometry/profiles/primitives/regular-polygon.js +33 -0
  827. package/dist/geometry/profiles/primitives/star.js +28 -0
  828. package/dist/geometry/revolve/revolve-mesh.js +1 -1
  829. package/dist/geometry/{svg-import.js → svg/import.js} +10 -10
  830. package/dist/geometry/sweeps/sweep-mesh.js +1 -1
  831. package/dist/geometry/transform3.js +29 -0
  832. package/dist/index.js +2 -1
  833. package/dist/model/diagnostic-path.js +26 -0
  834. package/dist/model/execution-binding.js +3 -3
  835. package/dist/model/generation.js +8 -2
  836. package/dist/model/geometry-recipes.js +1 -1
  837. package/dist/model/immutable-generation-data.js +33 -2
  838. package/dist/model/operations.js +14 -144
  839. package/dist/model/recipe-declaration.js +6 -2
  840. package/dist/model/shape-handles.js +30 -7
  841. package/dist/text/index.js +1 -1
  842. package/package.json +21 -11
  843. package/dist/docs/reference/engine/ModelSnapshot.md +0 -184
  844. package/dist/docs/reference/engine/SnapshotPart.md +0 -133
  845. package/dist/docs/reference/engine/validateModel.md +0 -48
  846. package/dist/docs/reference/geometry/ThreadedNutBevel.md +0 -14
  847. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +0 -61
  848. package/dist/docs/reference/geometry/extrudeMesh.md +0 -77
  849. package/dist/docs/reference/geometry/helicalThreadRidgeMesh.md +0 -72
  850. package/dist/docs/reference/geometry/helicalThreadSolidMesh.md +0 -106
  851. package/dist/docs/reference/geometry/meshBounds.md +0 -39
  852. package/dist/docs/reference/geometry/optimizePlanarPatches.md +0 -95
  853. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +0 -105
  854. package/dist/docs/reference/geometry/sweepMesh.md +0 -86
  855. package/dist/docs/reference/model/FinalizedModel.md +0 -131
  856. package/dist/docs/reference/model/FinalizedPart.md +0 -87
  857. package/dist/docs/reference/model/anchor.md +0 -47
  858. package/dist/docs/reference/model/castSegment.md +0 -40
  859. package/dist/docs/reference/model/categories/inspection.md +0 -29
  860. package/dist/docs/reference/model/components.md +0 -71
  861. package/dist/docs/reference/model/compose.md +0 -31
  862. package/dist/docs/reference/model/distance.md +0 -45
  863. package/dist/docs/reference/model/immutableMesh.md +0 -44
  864. package/dist/docs/reference/model/inspectSection.md +0 -38
  865. package/dist/docs/reference/model/inspectSolid.md +0 -38
  866. package/dist/docs/reference/model/isEmpty.md +0 -39
  867. package/dist/docs/reference/model/split.md +0 -54
  868. package/dist/docs/reference/model/splitByPlane.md +0 -66
  869. package/dist/geometry/profiles/profiles.js +0 -71
  870. /package/dist/engine/{primitive-profile-types.js → operations/primitives/profile-types.js} +0 -0
  871. /package/dist/geometry/profiles/{matched.js → match-profiles.js} +0 -0
@@ -19,7 +19,8 @@ open its interactive preview to orbit the result.
19
19
  | Raised lettering | [Prepared text](#text-from-a-font-parameter) | Cache the selected font layout during generation |
20
20
 
21
21
  All dimensions in these recipes are millimetres. MetaMesh uses a right-handed coordinate system
22
- with +Z up, degrees for angular arguments including `rotate`, and non-duplicated contour seams.
22
+ with +Z up and degrees for angular arguments including `rotate`. Don't repeat the first point at
23
+ the end of a closed contour.
23
24
  The examples default-export a synchronous `generate` program. Use assertions for constraints
24
25
  and optional `computed` values to cache expensive shared calculations, geometry, or text layouts.
25
26
  [Define parameters and validation](https://metamesh.studio/docs/develop/parameters-and-validation) connects
@@ -37,7 +38,7 @@ export default generate(({ part }) => {
37
38
  const plate = rectangle({ size: [80, 45] });
38
39
  const hole = circle({ radius: 4 });
39
40
  // Positive offset expands material: the outer edge grows and the hole shrinks.
40
- const rimmedPlate = plate.subtract([hole]).offset(1.2);
41
+ const rimmedPlate = plate.subtract(hole).offset(1.2);
41
42
  // Keep the plate centered about Z = 0 for later symmetric placement.
42
43
  return [part("model", rimmedPlate.extrude({ height: 5, center: true }))];
43
44
  });
@@ -47,8 +48,9 @@ Subtract the opening in 2D, offset the filled material, then extrude it into one
47
48
 
48
49
 
49
50
 
50
- `rectangle` and `circle` take object options and return filled Sections. `section.subtract(cutters)`,
51
- `union`, and `intersect` also support Solids; every operand in a call must have the same dimension.
51
+ `rectangle` and `circle` take object options and return filled Sections. The `union`, `subtract`, and
52
+ `intersect` methods accept one shape or an array and also support Solids; every operand in a call
53
+ must have the same dimension. Use collection `union(shapes)` or `intersect(shapes)` to combine peers.
52
54
  `section.offset(distance)` offsets the filled material. `section.extrude({ height })` preserves
53
55
  holes and places the bottom at zero unless `center: true` is requested.
54
56
 
@@ -85,7 +87,7 @@ with a rectangular opening:
85
87
 
86
88
 
87
89
  ```ts
88
- import { inspectSection, svgSection } from "@metamesh/modeling";
90
+ import { svgSection } from "@metamesh/modeling";
89
91
  import { generate } from "@metamesh/project";
90
92
 
91
93
  export default generate(({ part }) => {
@@ -100,7 +102,7 @@ export default generate(({ part }) => {
100
102
  </svg>
101
103
  `);
102
104
  // Check the imported topology before using it in the manufacturing solid.
103
- const measurements = inspectSection(badge);
105
+ const measurements = badge.inspect();
104
106
  if (measurements.componentCount !== 1 || measurements.contourCount !== 2) {
105
107
  throw new Error("Expected one badge with one rectangular opening.");
106
108
  }
@@ -112,8 +114,8 @@ The 48 × 32 mm SVG document retains its physical size and even-odd opening afte
112
114
 
113
115
 
114
116
 
115
- `svgSection` imports painted geometry, not browser-rendered SVG. The even-odd fill rule makes the
116
- second subpath a hole regardless of winding. Complete documents honor supported physical root units
117
+ `svgSection` turns supported filled shapes and bounded strokes into a Section. The even-odd fill
118
+ rule makes the second subpath a hole regardless of winding. Complete documents honor supported physical root units
117
119
  and `viewBox`, convert SVG's Y-down coordinates to MetaMesh Y-up, and center the filled bounds by
118
120
  default. Use `svgPathSection` for path-data strings where one user unit should equal 1 mm, or pass
119
121
  its `scale` option to choose another millimetres-per-unit conversion.
@@ -139,24 +141,24 @@ export default generate(({ part }) => {
139
141
 
140
142
 
141
143
 
142
- For pure preparation, `preflightSvgRegion` from `@metamesh/modeling/geometry` accepts the same
143
- fit target and returns its applied `fit` alongside the final region and review metrics. The
144
- scale and translation map the selected origin's SVG millimetres to model millimetres. Reuse
145
- them for registered layers imported with the same document coordinate system and origin.
144
+ To prepare SVG without an engine, `preflightSvgRegion` from `@metamesh/modeling/geometry` accepts
145
+ the same fit target and returns its applied `fit`, final region, and review metrics. The scale
146
+ and translation map the selected origin's SVG millimetres to model millimetres. Reuse them to
147
+ align layers imported with the same document coordinate system and origin.
146
148
  Exact circular segment counts retain precedence over adaptive sampling. Empty artwork cannot
147
149
  be fitted, and fitting rejects a requested resolution that exceeds the sampling limits.
148
150
 
149
151
  Visible fills and bounded strokes contribute geometry; editor metadata is ignored. Editor text is
150
152
  outlined to visible paths on Apply. Live `<text>`, images, `<use>`, external resources, class-based
151
153
  stylesheets, clipping, masks, filters, and percentage dimensions are rejected. To generate lettering
152
- directly, use the [text recipe](#text-from-a-font-parameter). SVG export, project assets, custom font
153
- uploads, text on paths, and general SVG layout are outside this API.
154
+ directly, use the [text recipe](#text-from-a-font-parameter). These helpers don't support SVG export,
155
+ project assets, custom font uploads, text on paths, or general SVG layout.
154
156
 
155
157
  ## Revolve a radial profile
156
158
 
157
159
  Use revolution when one side outline can describe the entire part around an axis. In the Section
158
160
  below, X is radius and Y is final Z height; radii must stay nonnegative. The closed loop includes
159
- the cup's floor, outside, rim, and inside, so the opening remains intentional.
161
+ the cup's floor, outside, rim, and inside, so you can describe the wall and opening together.
160
162
 
161
163
 
162
164
 
@@ -205,37 +207,41 @@ separate named part so you can inspect it in the interactive preview.
205
207
 
206
208
 
207
209
  ```ts
208
- import { ellipse, regularPolygon, sphere, star, torus, tube } from "@metamesh/modeling";
210
+ import { ellipse, regularPolygon, sphere, star, torus, transform3, tube } from "@metamesh/modeling";
209
211
  import { generate } from "@metamesh/project";
210
212
 
211
213
  export default generate(({ part }) => {
212
214
  // Solid primitives are ready for placement; filled Sections need depth first.
213
215
  // Place finished parts on two rows while keeping local geometry reusable.
214
216
  return [
215
- part("sphere", { geometry: sphere({ diameter: 14 }), position: [0, 0, 7], color: "#60a5fa" }),
217
+ part("sphere", {
218
+ geometry: sphere({ diameter: 14 }),
219
+ transform: transform3().translate([0, 0, 7]),
220
+ color: "#60a5fa",
221
+ }),
216
222
  part("torus", {
217
223
  geometry: torus({ majorRadius: 7, minorRadius: 2 }),
218
- position: [24, 0, 2],
224
+ transform: transform3().translate([24, 0, 2]),
219
225
  color: "#34d399",
220
226
  }),
221
227
  part("tube", {
222
228
  geometry: tube({ outerRadius: 7, innerRadius: 4, height: 10, center: false }),
223
- position: [48, 0, 0],
229
+ transform: transform3().translate([48, 0, 0]),
224
230
  color: "#f59e0b",
225
231
  }),
226
232
  part("ellipse", {
227
233
  geometry: ellipse({ size: [18, 12] }).extrude({ height: 5 }),
228
- position: [0, 24, 0],
234
+ transform: transform3().translate([0, 24, 0]),
229
235
  color: "#c084fc",
230
236
  }),
231
237
  part("star", {
232
238
  geometry: star({ outerRadius: 9, innerRadius: 4.5, points: 5 }).extrude({ height: 5 }),
233
- position: [24, 24, 0],
239
+ transform: transform3().translate([24, 24, 0]),
234
240
  color: "#fb7185",
235
241
  }),
236
242
  part("hexagon", {
237
243
  geometry: regularPolygon({ radius: 7, sides: 6, sizing: "face" }).extrude({ height: 5 }),
238
- position: [48, 24, 0],
244
+ transform: transform3().translate([48, 24, 0]),
239
245
  color: "#22d3ee",
240
246
  }),
241
247
  ];
@@ -273,7 +279,7 @@ export default generate(({ part }) => {
273
279
  // Both shapes are Z-centered; extra cutter height clears both hub faces.
274
280
  const bore = cylinder({ height: 16, radius: 4 });
275
281
  // Combine the repeated features once, then cut the common bore.
276
- return [part("model", union([hub, ...arms]).subtract([bore]))];
282
+ return [part("model", union([hub, ...arms]).subtract(bore))];
277
283
  });
278
284
  ```
279
285
 
@@ -327,8 +333,8 @@ Fill the transformed closed path with `polygon(placedContour)` when you need mat
327
333
  A negative scale factor reflects the placement. Paths retain traversal order, including closed
328
334
  paths; filled Sections and serialized regions restore outer and hole winding. `andThen(next)`
329
335
  composes another placement in execution order;
330
- reuse the placement instead of building a chain inside each point iteration. `toData()` is
331
- available for matrix interchange.
336
+ reuse the placement instead of rebuilding the chain for every point. Use `toData()` when another
337
+ system needs the matrix.
332
338
 
333
339
  Section path patterns consume `Path2` values directly. Tangent orientation aligns the Section's
334
340
  local +X direction with the path while preserving its XY plane:
@@ -392,7 +398,7 @@ The asymmetric section makes its transported orientation visible as the path tur
392
398
 
393
399
  - `orientation: { kind: "transport", initialNormal: [0, 1, 0] }` chooses the starting profile-X
394
400
  direction. Fixed normals, directed normal guides, and discrete Frenet frames are alternatives;
395
- singular selected policies reject.
401
+ the sweep rejects a selected policy that becomes singular.
396
402
  - `twist` adds total rotation by physical path length. Set `twistBy: "stations"` to use the authored
397
403
  station schedule instead.
398
404
  - `scale` accepts a positive uniform size, an XY pair, or one XY pair per normalized station.
@@ -409,14 +415,14 @@ stations; it does not infer a smooth curve between them. Sample a curve with the
409
415
 
410
416
 
411
417
  ```ts
412
- import { anchor, box, cylinder } from "@metamesh/modeling";
418
+ import { box, cylinder } from "@metamesh/modeling";
413
419
  import { generate } from "@metamesh/project";
414
420
 
415
421
  export default generate(({ part }) => {
416
422
  const base = box({ size: [40, 24, 6], center: false });
417
423
  // Named anchors follow dimensions: no duplicated half-height calculation.
418
424
  // Mating bottom to top opposes the two outward normals automatically.
419
- const pin = cylinder({ diameter: 8, height: 12 }).attach("bottom", anchor(base, "top"), {
425
+ const pin = cylinder({ diameter: 8, height: 12 }).attach("bottom", base.anchor("top"), {
420
426
  gap: 0.2,
421
427
  });
422
428
  // Keep the gap and the two physical pieces instead of unioning the assembly.
@@ -428,16 +434,18 @@ The pin's bottom mates to the base's top with a 0.2 mm gap. They remain two name
428
434
 
429
435
 
430
436
 
431
- Ordinary primitives know their named anchors, so `anchor(base, "top")` follows the box's dimensions
432
- and placement. `pin.attach("bottom", anchor(base, "top"))` mates opposed directions. Transforms and
437
+ Ordinary primitives know their named anchors, so `base.anchor("top")` follows the box's dimensions
438
+ and placement. `pin.attach("bottom", base.anchor("top"))` mates opposed directions. Transforms and
433
439
  patterns carry those frames with the shape, with outward normals preserved under nonuniform scale
434
440
  and reflection. The axis names are `left/right` (−X/+X), `back/front` (−Y/+Y) and `bottom/top` (−Z/+Z).
435
441
 
436
442
  Use `shape.withAnchors({ mount: anchor3(position, direction, up) })` to define a custom datum
437
- on a new handle. Existing names remain unless replaced; definitions are copied and immutable.
443
+ without changing the original shape. Existing names remain unless replaced; definitions are copied
444
+ and immutable.
438
445
  Boolean and other constructed shapes need explicit definitions because their surfaces may change.
439
446
  Anchor names use lowercase kebab-case, with at most 64 characters and 128 definitions per shape.
440
- Lookup realizes the required recipe in the active generation transaction. Returned frames are plain data.
447
+ Look up anchors during active synchronous generation; the lookup evaluates the required recipe.
448
+ Returned frames are plain data.
441
449
 
442
450
  Primitive anchors describe nominal construction dimensions. Finishing and curve sampling do not
443
451
  move them. Tube and torus axial datums may lie over an opening; a cone has no cap anchor at its apex.
@@ -557,9 +565,9 @@ Custom hole topology or disconnected components can use an explicit
557
565
  [`Profile`](../reference/geometry/Profile.md) family with stable component, contour, and span IDs.
558
566
  Prepare [`matchProfiles`](../reference/geometry/matchProfiles.md) once and pass its
559
567
  [`CorrespondingProfile`](../reference/geometry/CorrespondingProfile.md) stations to the same `loft`
560
- function. Topology must remain constant across stations. Arbitrary Boolean Sections need deliberate
561
- `correspondence: "direct"`, `"reindex"`, `"fast-distance"`, or `"distance"`, or explicit profiles;
562
- contour order does not establish landmarks. Direct association preserves the supplied seams;
568
+ function. Topology must remain constant across stations. Arbitrary Boolean Sections default to
569
+ `correspondence: "direct"`; choose `"reindex"`, `"fast-distance"`, or `"distance"` to change the
570
+ association strategy, or use explicit profiles for landmarks. Direct association preserves the supplied seams;
563
571
  reindex also chooses a cyclic phase, while distance methods optimize ordered connections. See
564
572
  [`LoftOptions`](../reference/model/LoftOptions.md) for sampling and work limits.
565
573
 
@@ -567,9 +575,9 @@ reindex also chooses a cyclic phase, while distance methods optimize ordered con
567
575
 
568
576
  Build a relief tile from absolute Z heights over a rectangular XY grid.
569
577
  [`heightfield`](../reference/model/heightfield.md) returns a Solid for Booleans and placement during
570
- generation. Pure [`heightfieldMesh`](../reference/geometry/heightfieldMesh.md) accepts the same options
578
+ generation. Pure [`mesh.heightfield`](../reference/mesh/heightfield.md) accepts the same options
571
579
  and returns an indexed mesh without an engine. Pass it directly as a mesh part, or wrap it in
572
- [`immutableMesh`](../reference/model/immutableMesh.md) when returning it from a cached computation.
580
+ [`mesh.immutable`](../reference/mesh/immutable.md) when returning it from a cached computation.
573
581
 
574
582
 
575
583
 
@@ -616,7 +624,7 @@ additional physical midpoint per cell. Both selection policies use the fixed dia
616
624
  Choose sample spacing for the surface detail you need: these policies do not adapt the grid or
617
625
  guarantee accuracy throughout each cell. Explicit axes let your model refine selected regions
618
626
  while keeping allocation bounded.
619
- [`preflightHeightfield`](../reference/geometry/preflightHeightfield.md) reports output counts and
627
+ [`mesh.preflightHeightfield`](../reference/mesh/preflightHeightfield.md) reports output counts and
620
628
  checks limits without evaluating heights.
621
629
 
622
630
  ## Text from a Font parameter
@@ -662,8 +670,8 @@ Horizontal `align: "center"` centers advance width; visible ink can remain asymm
662
670
  To resize the ink uniformly and center it inside a target, use
663
671
  [`fitTextLayout`](../reference/geometry/fitTextLayout.md) before `textSection`. It transforms
664
672
  the retained vector paths before sampling, keeping curve tolerance in final millimetres.
665
- `maxScale: 1` permits shrinking without enlargement. Minimum readable letter height and
666
- parameter-specific error messages remain model decisions.
673
+ `maxScale: 1` permits shrinking without enlargement. Choose a minimum readable letter height
674
+ and write parameter-specific error messages for your model.
667
675
 
668
676
 
669
677
 
@@ -701,8 +709,8 @@ For a circular label, add a [`baseline`](../reference/text/VectorTextArcBaseline
701
709
  `kind: "arc"` and a positive `radius` in millimetres to the layout options. The baseline is centered
702
710
  at the XY origin; `centerAngle` chooses its alignment datum and `direction` chooses the
703
711
  reading direction. Each shaped glyph group rotates without bending. Circular text requires one
704
- line and baseline vertical alignment; its default horizontal alignment is centered. Arbitrary
705
- path text and automatic wrapping are outside this API.
712
+ line and baseline vertical alignment; its default horizontal alignment is centered. These helpers
713
+ don't support arbitrary path text or automatic wrapping.
706
714
 
707
715
  Text uses positive Y upward and supports line breaks, with at most 512 UTF-16 units and 16 lines.
708
716
  Empty or whitespace-only text can be measured but cannot create a section. Return a parameter error
@@ -717,19 +725,19 @@ replacement. Studio does not support custom font uploads.
717
725
 
718
726
  ## Solid inspection
719
727
 
720
- Use `inspectSolid()` during generation to check bounds, volume, and component count:
728
+ Use `solid.inspect()` during generation to check bounds, volume, and component count:
721
729
 
722
730
 
723
731
 
724
732
  ```ts
725
- import { box, inspectSolid } from "@metamesh/modeling";
733
+ import { box } from "@metamesh/modeling";
726
734
  import { generate } from "@metamesh/project";
727
735
 
728
736
  export default generate(({ part }) => {
729
737
  const result = box({ size: [40, 30, 5] });
730
- const measurements = inspectSolid(result);
738
+ const measurements = result.inspect();
731
739
 
732
- if (measurements.min[2] < -2.5 || measurements.componentCount !== 1) {
740
+ if (measurements.bounds.min[2] < -2.5 || measurements.componentCount !== 1) {
733
741
  throw new Error("Unexpected placement or disconnected result.");
734
742
  }
735
743
 
@@ -740,29 +748,32 @@ export default generate(({ part }) => {
740
748
 
741
749
 
742
750
  Use [`layoutRow`](../reference/geometry/layoutRow.md) to arrange pieces along +X with an explicit
743
- gap and ground their minimum Y/Z at zero. Pass bounds after any intended rotation; the returned
744
- translations belong in `part` placement options so geometry remains reusable.
751
+ gap and place their minimum Y/Z at zero. Pass bounds after any intended rotation, then use the
752
+ returned translations in `part` placement options so you can reuse the geometry.
745
753
 
746
754
 
747
755
 
748
756
  ```ts
749
- import { box, generate, inspectSolid } from "@metamesh/modeling";
757
+ import { box, generate, transform3 } from "@metamesh/modeling";
750
758
  import { layoutRow } from "@metamesh/modeling/geometry";
751
759
 
752
760
  export const rowModel = generate<Record<never, never>>(({ part }) => {
753
761
  const pieces = [box({ size: [20, 10, 6] }), box({ size: [12, 16, 8] })];
754
- const positions = layoutRow(pieces.map(inspectSolid), { gap: 4 });
762
+ const positions = layoutRow(
763
+ pieces.map((piece) => piece.inspect().bounds),
764
+ { gap: 4 }
765
+ );
755
766
  return pieces.map((geometry, index) =>
756
- part(`piece-${index}`, { geometry, position: positions[index]! })
767
+ part(`piece-${index}`, { geometry, transform: transform3().translate(positions[index]!) })
757
768
  );
758
769
  });
759
770
  ```
760
771
 
761
772
 
762
773
 
763
- Inspection copies supported native facts. Manufacturing finalization checks finite, closed,
764
- oriented and reconstructable output before it becomes the preview or export snapshot. These
765
- checks do not certify manufacturability. Keep minimum walls, overhangs, fits, and parameter
774
+ Inspection reports measurements from the evaluated geometry. Before a result becomes available
775
+ for preview or export, finalization checks that it's finite, closed, oriented, and reconstructable.
776
+ Those checks don't certify manufacturability. Keep minimum walls, overhangs, fits, and parameter
766
777
  messages in your model's validation.
767
778
 
768
779
  After adapting a recipe, check its default, the largest and smallest supported dimensions, and
@@ -2,8 +2,9 @@
2
2
 
3
3
  Write a TypeScript model for a plate with a hole, then check and run it with the CLI.
4
4
 
5
- A standalone model uses `@metamesh/modeling` and default-exports a synchronous generation program.
6
- The CLI or your application supplies the engine.
5
+ Write a model with `@metamesh/modeling` when you want to run it from a local script or your own
6
+ application. It default-exports a synchronous generation program; the CLI or your application
7
+ supplies the engine.
7
8
 
8
9
  ## Minimal model entry
9
10
 
@@ -17,14 +18,14 @@ import { box, cylinder, generate } from "@metamesh/modeling";
17
18
  export default generate<Record<never, never>>(({ part }) => {
18
19
  const body = box({ size: [30, 20, 6] });
19
20
  const bore = cylinder({ height: 8, radius: 3, sizing: "face" });
20
- return part("plate", body.subtract([bore]));
21
+ return part("plate", body.subtract(bore));
21
22
  });
22
23
  ```
23
24
 
24
25
 
25
26
 
26
27
  The cutter extends beyond both faces of the centered plate. `part("plate", ...)` gives the output
27
- a stable identity. This model takes an empty parameter map.
28
+ a stable ID so you can identify the plate in the result. This model takes an empty parameter map.
28
29
 
29
30
  ## Check and run
30
31
 
@@ -32,11 +33,11 @@ With [Modeling and the CLI installed](https://metamesh.studio/docs/develop/agent
32
33
  check the source and generate a captured result:
33
34
 
34
35
  ```bash
35
- pnpm exec metamesh check model.ts --kind model
36
+ pnpm exec metamesh typecheck model.ts --kind model
36
37
  pnpm exec metamesh run model.ts --kind model
37
38
  ```
38
39
 
39
40
  Continue with [inspection and rendering](https://metamesh.studio/docs/develop/agent-authoring#inspect-the-captured-result),
40
41
  or [host the program in your application](hosting.md).
41
- Use the [construction chooser](concepts.md#choose-a-modeling-path) when you
42
- need to select another modeling approach.
42
+ When you're ready for a different shape, the
43
+ [construction chooser](concepts.md#choose-a-modeling-path) helps you pick an approach.