@metamesh/modeling 0.18.0 → 0.20.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 (1035) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/README.md +96 -64
  3. package/dist/api/engine.d.ts +216 -160
  4. package/dist/api/export.d.ts +204 -0
  5. package/dist/api/geometry.d.ts +410 -2106
  6. package/dist/api/index.d.ts +545 -1821
  7. package/dist/api/math.d.ts +315 -0
  8. package/dist/api/mechanical.d.ts +1041 -0
  9. package/dist/api/mesh.d.ts +395 -94
  10. package/dist/api/text.d.ts +24 -44
  11. package/dist/docs/guides/concepts.md +54 -523
  12. package/dist/docs/guides/exporting.md +88 -0
  13. package/dist/docs/guides/fonts.md +7 -5
  14. package/dist/docs/guides/fundamentals.md +12 -24
  15. package/dist/docs/guides/generation.md +76 -61
  16. package/dist/docs/guides/geometry-values.md +251 -0
  17. package/dist/docs/guides/hosting.md +58 -80
  18. package/dist/docs/guides/profiles-and-extrusion.md +400 -0
  19. package/dist/docs/guides/recipes.md +52 -706
  20. package/dist/docs/guides/resolution-and-inspection.md +153 -0
  21. package/dist/docs/guides/solid-joins.md +136 -0
  22. package/dist/docs/guides/standalone-model.md +5 -3
  23. package/dist/docs/guides/svg-and-text.md +252 -0
  24. package/dist/docs/guides/sweeps-and-lofts.md +223 -0
  25. package/dist/docs/guides/transforms-and-placement.md +323 -0
  26. package/dist/docs/guides/workers.md +166 -0
  27. package/dist/docs/manifest.json +5539 -8603
  28. package/dist/docs/reference/engine/GenerationOptions.md +9 -4
  29. package/dist/docs/reference/engine/GeometryResource.md +11 -5
  30. package/dist/docs/reference/engine/ModelDependencies.md +9 -3
  31. package/dist/docs/reference/engine/ModelEngine.md +8 -3
  32. package/dist/docs/reference/engine/ModelEngineOptions.md +6 -5
  33. package/dist/docs/reference/engine/ModelPart.md +12 -6
  34. package/dist/docs/reference/engine/ModelResult.md +8 -2
  35. package/dist/docs/reference/engine/ModelRunArguments.md +7 -1
  36. package/dist/docs/reference/engine/ModelRunOptions.md +9 -4
  37. package/dist/docs/reference/engine/ModelSession.md +7 -1
  38. package/dist/docs/reference/engine/SessionOptions.md +9 -4
  39. package/dist/docs/reference/engine/categories/host-lifecycle.md +11 -10
  40. package/dist/docs/reference/engine/checkModel.md +11 -1
  41. package/dist/docs/reference/engine/createModelEngine.md +13 -4
  42. package/dist/docs/reference/engine/defaultModelingLimits.md +7 -8
  43. package/dist/docs/reference/engine/modelingWasmUrl.md +7 -1
  44. package/dist/docs/reference/engine.md +13 -7
  45. package/dist/docs/reference/export/Export3mfOptions.md +20 -0
  46. package/dist/docs/reference/export/ExportDiagnostic.md +47 -0
  47. package/dist/docs/reference/export/ExportFormat.md +13 -0
  48. package/dist/docs/reference/export/ExportGeometry.md +27 -0
  49. package/dist/docs/reference/export/ExportGlbOptions.md +114 -0
  50. package/dist/docs/reference/export/ExportLimits.md +71 -0
  51. package/dist/docs/reference/export/ExportMaterial.md +35 -0
  52. package/dist/docs/reference/export/ExportOptions.md +82 -0
  53. package/dist/docs/reference/export/ExportPart.md +76 -0
  54. package/dist/docs/reference/export/ExportReport.md +70 -0
  55. package/dist/docs/reference/export/ExportSink.md +29 -0
  56. package/dist/docs/reference/export/ExportStlOptions.md +20 -0
  57. package/dist/docs/reference/export/ExportedFile.md +98 -0
  58. package/dist/docs/reference/export/categories/mesh-serialization.md +53 -0
  59. package/dist/docs/reference/export/defaultExportLimits.md +20 -0
  60. package/dist/docs/reference/export/export3mf.md +62 -0
  61. package/dist/docs/reference/export/exportGlb.md +66 -0
  62. package/dist/docs/reference/export/exportStl.md +62 -0
  63. package/dist/docs/reference/export/write3mf.md +71 -0
  64. package/dist/docs/reference/export/writeGlb.md +75 -0
  65. package/dist/docs/reference/export/writeStl.md +71 -0
  66. package/dist/docs/reference/export.md +27 -0
  67. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +9 -3
  68. package/dist/docs/reference/geometry/Anchor3-type.md +9 -3
  69. package/dist/docs/reference/geometry/Anchor3Options.md +70 -0
  70. package/dist/docs/reference/geometry/ArcCurve2.md +8 -2
  71. package/dist/docs/reference/geometry/ArcCurve3.md +8 -2
  72. package/dist/docs/reference/geometry/AttachOptions.md +10 -5
  73. package/dist/docs/reference/geometry/Bounds2-type.md +17 -24
  74. package/dist/docs/reference/geometry/Bounds2Data.md +10 -9
  75. package/dist/docs/reference/geometry/Bounds2Input.md +10 -4
  76. package/dist/docs/reference/geometry/Bounds2Options.md +10 -4
  77. package/dist/docs/reference/geometry/Bounds3-type.md +17 -24
  78. package/dist/docs/reference/geometry/Bounds3Data.md +10 -9
  79. package/dist/docs/reference/geometry/Bounds3Input.md +10 -4
  80. package/dist/docs/reference/geometry/Bounds3Options.md +10 -4
  81. package/dist/docs/reference/geometry/BoundsFit2.md +10 -4
  82. package/dist/docs/reference/geometry/BoundsFit3.md +10 -4
  83. package/dist/docs/reference/geometry/BoundsFitOptions.md +10 -4
  84. package/dist/docs/reference/geometry/BoxAnchorFace.md +9 -3
  85. package/dist/docs/reference/geometry/BoxAnchorOptions.md +9 -3
  86. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +8 -2
  87. package/dist/docs/reference/geometry/CircleContourOptions.md +8 -2
  88. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +8 -3
  89. package/dist/docs/reference/geometry/CircularResolutionOptions.md +7 -1
  90. package/dist/docs/reference/geometry/CircularSampling.md +7 -1
  91. package/dist/docs/reference/geometry/CircularSamplingOptions.md +7 -1
  92. package/dist/docs/reference/geometry/Contour.md +9 -4
  93. package/dist/docs/reference/geometry/ContourCurve.md +8 -2
  94. package/dist/docs/reference/geometry/ContourPoint.md +8 -2
  95. package/dist/docs/reference/geometry/ContourSegment.md +8 -2
  96. package/dist/docs/reference/geometry/CorrespondingComponent.md +8 -2
  97. package/dist/docs/reference/geometry/CorrespondingContour.md +8 -2
  98. package/dist/docs/reference/geometry/CorrespondingProfile.md +8 -2
  99. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +9 -3
  100. package/dist/docs/reference/geometry/CubicBezierCurve2.md +8 -2
  101. package/dist/docs/reference/geometry/CubicBezierCurve3.md +8 -2
  102. package/dist/docs/reference/geometry/Curve2.md +8 -2
  103. package/dist/docs/reference/geometry/Curve3.md +8 -2
  104. package/dist/docs/reference/geometry/CurveSamplingOptions.md +8 -2
  105. package/dist/docs/reference/geometry/CylinderAnchorFace.md +9 -3
  106. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +10 -4
  107. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +7 -1
  108. package/dist/docs/reference/geometry/EdgeTreatment.md +7 -1
  109. package/dist/docs/reference/geometry/EllipseContourOptions.md +8 -2
  110. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +15 -10
  111. package/dist/docs/reference/geometry/FittedTextLayout.md +8 -2
  112. package/dist/docs/reference/geometry/{Frame3.md → Frame3-type.md} +9 -2
  113. package/dist/docs/reference/geometry/Frame3Options.md +69 -0
  114. package/dist/docs/reference/geometry/GeometryError.md +7 -1
  115. package/dist/docs/reference/geometry/GeometryErrorCode.md +7 -1
  116. package/dist/docs/reference/geometry/GeometryErrorContext.md +7 -1
  117. package/dist/docs/reference/geometry/GeometryResolution.md +7 -1
  118. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +8 -2
  119. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +8 -2
  120. package/dist/docs/reference/geometry/GridPatternOptions.md +13 -5
  121. package/dist/docs/reference/geometry/ImmutableBuffer-type.md +8 -14
  122. package/dist/docs/reference/geometry/LineCurve2.md +8 -2
  123. package/dist/docs/reference/geometry/LineCurve3.md +8 -2
  124. package/dist/docs/reference/geometry/LinearPatternOptions.md +8 -2
  125. package/dist/docs/reference/geometry/LoftPlacement.md +19 -13
  126. package/dist/docs/reference/geometry/MatchProfilesOptions.md +8 -2
  127. package/dist/docs/reference/geometry/ModelingLimits.md +7 -1
  128. package/dist/docs/reference/geometry/NumericArray.md +8 -2
  129. package/dist/docs/reference/geometry/Path2-type.md +158 -3
  130. package/dist/docs/reference/geometry/Path2Data.md +8 -2
  131. package/dist/docs/reference/geometry/Path2Input.md +8 -2
  132. package/dist/docs/reference/geometry/Path3-type.md +158 -3
  133. package/dist/docs/reference/geometry/Path3Data.md +8 -2
  134. package/dist/docs/reference/geometry/Path3Input.md +8 -2
  135. package/dist/docs/reference/geometry/PathFrame.md +8 -2
  136. package/dist/docs/reference/geometry/PathLocation.md +8 -2
  137. package/dist/docs/reference/geometry/PathNormalGuide.md +9 -3
  138. package/dist/docs/reference/geometry/PathOptions.md +8 -2
  139. package/dist/docs/reference/geometry/PathPatternOptions.md +9 -3
  140. package/dist/docs/reference/geometry/PathPlacement.md +10 -4
  141. package/dist/docs/reference/geometry/PathResamplingOptions.md +8 -2
  142. package/dist/docs/reference/geometry/PathStation.md +87 -0
  143. package/dist/docs/reference/geometry/PathSubdivisionOptions.md +44 -0
  144. package/dist/docs/reference/geometry/Pivot2Options.md +9 -3
  145. package/dist/docs/reference/geometry/Pivot3Options.md +9 -3
  146. package/dist/docs/reference/geometry/PolygonData.md +9 -3
  147. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +8 -2
  148. package/dist/docs/reference/geometry/Profile.md +8 -3
  149. package/dist/docs/reference/geometry/ProfileComponent2.md +8 -2
  150. package/dist/docs/reference/geometry/ProfileContour2.md +8 -2
  151. package/dist/docs/reference/geometry/ProfileSpan2.md +8 -2
  152. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +10 -3
  153. package/dist/docs/reference/geometry/RadialPatternOptions.md +8 -2
  154. package/dist/docs/reference/geometry/RadialSizing.md +7 -1
  155. package/dist/docs/reference/geometry/RadialSizingOptions.md +7 -1
  156. package/dist/docs/reference/geometry/RectangleContourOptions.md +9 -2
  157. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +8 -2
  158. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +8 -2
  159. package/dist/docs/reference/geometry/RectangleProfileOptions.md +8 -2
  160. package/dist/docs/reference/geometry/RegionData.md +8 -2
  161. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +8 -2
  162. package/dist/docs/reference/geometry/ResolvedGeometryResolution.md +71 -0
  163. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +7 -1
  164. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +7 -1
  165. package/dist/docs/reference/geometry/RowLayoutOptions.md +10 -4
  166. package/dist/docs/reference/geometry/SampleContourOptions.md +8 -2
  167. package/dist/docs/reference/geometry/SampleHelixOptions.md +8 -2
  168. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +8 -2
  169. package/dist/docs/reference/geometry/SampledCurve2.md +8 -2
  170. package/dist/docs/reference/geometry/SampledCurve3.md +8 -2
  171. package/dist/docs/reference/geometry/SideProfileCurve.md +8 -2
  172. package/dist/docs/reference/geometry/SideProfilePoint.md +8 -2
  173. package/dist/docs/reference/geometry/SideProfileSegment.md +8 -2
  174. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +7 -1
  175. package/dist/docs/reference/geometry/SplineOptions.md +69 -0
  176. package/dist/docs/reference/geometry/StarContourOptions.md +12 -2
  177. package/dist/docs/reference/geometry/StrokeCap.md +8 -2
  178. package/dist/docs/reference/geometry/StrokeJoin.md +8 -2
  179. package/dist/docs/reference/geometry/StrokeOptions.md +9 -3
  180. package/dist/docs/reference/geometry/SvgImportOptions.md +10 -4
  181. package/dist/docs/reference/geometry/SvgRegionPreflight.md +8 -2
  182. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +8 -2
  183. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +8 -2
  184. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +8 -2
  185. package/dist/docs/reference/geometry/Transform2-type.md +9 -3
  186. package/dist/docs/reference/geometry/Transform2Data.md +9 -3
  187. package/dist/docs/reference/geometry/Transform2Input.md +9 -3
  188. package/dist/docs/reference/geometry/Transform3-type.md +10 -4
  189. package/dist/docs/reference/geometry/Transform3Data.md +9 -3
  190. package/dist/docs/reference/geometry/Transform3Input.md +12 -5
  191. package/dist/docs/reference/geometry/Vector2-type.md +9 -3
  192. package/dist/docs/reference/geometry/Vector2Data.md +9 -3
  193. package/dist/docs/reference/geometry/Vector2Input.md +9 -3
  194. package/dist/docs/reference/geometry/Vector3-type.md +33 -3
  195. package/dist/docs/reference/geometry/Vector3Data.md +9 -3
  196. package/dist/docs/reference/geometry/Vector3Input.md +9 -3
  197. package/dist/docs/reference/geometry/VectorTextLayout.md +8 -2
  198. package/dist/docs/reference/geometry/VectorTextMetrics.md +9 -3
  199. package/dist/docs/reference/geometry/anchor3.md +23 -26
  200. package/dist/docs/reference/geometry/anchorFrame3.md +11 -5
  201. package/dist/docs/reference/geometry/attachmentTransform3.md +14 -8
  202. package/dist/docs/reference/geometry/bounds2.md +16 -8
  203. package/dist/docs/reference/geometry/bounds3.md +14 -6
  204. package/dist/docs/reference/geometry/boundsCenter.md +10 -4
  205. package/dist/docs/reference/geometry/boundsSize.md +10 -4
  206. package/dist/docs/reference/geometry/boxAnchor3.md +9 -3
  207. package/dist/docs/reference/geometry/categories/bounds-layout.md +12 -6
  208. package/dist/docs/reference/geometry/categories/curves-paths.md +24 -13
  209. package/dist/docs/reference/geometry/categories/immutable-data.md +40 -0
  210. package/dist/docs/reference/geometry/categories/pattern-placement.md +11 -5
  211. package/dist/docs/reference/geometry/categories/primitive-options.md +8 -13
  212. package/dist/docs/reference/geometry/categories/profiles-regions.md +11 -5
  213. package/dist/docs/reference/geometry/categories/resolution-errors.md +8 -1
  214. package/dist/docs/reference/geometry/categories/transforms-math.md +20 -51
  215. package/dist/docs/reference/geometry/categories/vector-import.md +8 -5
  216. package/dist/docs/reference/geometry/circleContour.md +8 -2
  217. package/dist/docs/reference/geometry/closeToAxis.md +12 -2
  218. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +14 -5
  219. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +18 -5
  220. package/dist/docs/reference/geometry/contourContainsPoint.md +12 -2
  221. package/dist/docs/reference/geometry/cylinderAnchor3.md +11 -5
  222. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +8 -2
  223. package/dist/docs/reference/geometry/distributeAlongPath.md +21 -10
  224. package/dist/docs/reference/geometry/ellipseContour.md +8 -2
  225. package/dist/docs/reference/geometry/fitBounds.md +18 -4
  226. package/dist/docs/reference/geometry/fitTextLayout.md +11 -5
  227. package/dist/docs/reference/geometry/frame3.md +66 -0
  228. package/dist/docs/reference/geometry/gridPatternTransforms.md +12 -6
  229. package/dist/docs/reference/geometry/immutableBuffer.md +11 -3
  230. package/dist/docs/reference/geometry/isGeometryError.md +7 -1
  231. package/dist/docs/reference/geometry/layoutRow.md +12 -4
  232. package/dist/docs/reference/geometry/linearPatternTransforms.md +12 -6
  233. package/dist/docs/reference/geometry/matchProfiles.md +10 -2
  234. package/dist/docs/reference/geometry/normalizeContour.md +13 -3
  235. package/dist/docs/reference/geometry/normalizePolygon.md +10 -2
  236. package/dist/docs/reference/geometry/normalizeRegion.md +10 -2
  237. package/dist/docs/reference/geometry/path2.md +12 -2
  238. package/dist/docs/reference/geometry/path3.md +12 -2
  239. package/dist/docs/reference/geometry/pathPatternTransforms.md +18 -8
  240. package/dist/docs/reference/geometry/preflightSvgRegion.md +11 -5
  241. package/dist/docs/reference/geometry/radialPatternTransforms.md +11 -5
  242. package/dist/docs/reference/geometry/rectangleContour.md +8 -2
  243. package/dist/docs/reference/geometry/rectangleProfile.md +8 -3
  244. package/dist/docs/reference/geometry/regionArea.md +8 -2
  245. package/dist/docs/reference/geometry/regionBounds.md +11 -3
  246. package/dist/docs/reference/geometry/regularPolygonContour.md +8 -2
  247. package/dist/docs/reference/geometry/resamplePolyline2.md +12 -2
  248. package/dist/docs/reference/geometry/resamplePolyline3.md +12 -2
  249. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +10 -4
  250. package/dist/docs/reference/geometry/resolveArcSegments.md +13 -5
  251. package/dist/docs/reference/geometry/resolveCircularSampling.md +7 -1
  252. package/dist/docs/reference/geometry/resolveCircularSegments.md +10 -2
  253. package/dist/docs/reference/geometry/resolveExtrusionSlices.md +85 -0
  254. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +10 -2
  255. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +8 -2
  256. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +17 -4
  257. package/dist/docs/reference/geometry/sampleContour.md +10 -4
  258. package/dist/docs/reference/geometry/sampleCurve2.md +12 -2
  259. package/dist/docs/reference/geometry/sampleCurve3.md +12 -2
  260. package/dist/docs/reference/geometry/sampleHelix.md +8 -2
  261. package/dist/docs/reference/geometry/sampleSideProfile.md +10 -4
  262. package/dist/docs/reference/geometry/sampleTextContours.md +9 -3
  263. package/dist/docs/reference/geometry/signedContourArea.md +10 -2
  264. package/dist/docs/reference/geometry/spline2.md +68 -0
  265. package/dist/docs/reference/geometry/spline3.md +62 -0
  266. package/dist/docs/reference/geometry/starContour.md +8 -2
  267. package/dist/docs/reference/geometry/strokeRegionData.md +14 -5
  268. package/dist/docs/reference/geometry/transform2.md +11 -3
  269. package/dist/docs/reference/geometry/transform3.md +29 -6
  270. package/dist/docs/reference/geometry/transformRegionData.md +12 -2
  271. package/dist/docs/reference/geometry/triangulateContour.md +11 -3
  272. package/dist/docs/reference/geometry/vector2.md +12 -4
  273. package/dist/docs/reference/geometry/vector3.md +14 -4
  274. package/dist/docs/reference/geometry.md +13 -18
  275. package/dist/docs/reference/{geometry → math}/AxisAngleRotation3.md +8 -3
  276. package/dist/docs/reference/math/IDENTITY_TRANSFORM3.md +20 -0
  277. package/dist/docs/reference/math/add2.md +38 -0
  278. package/dist/docs/reference/math/add3.md +46 -0
  279. package/dist/docs/reference/math/applyTransformDirection3.md +46 -0
  280. package/dist/docs/reference/math/applyTransformPoint3.md +44 -0
  281. package/dist/docs/reference/math/categories/tuple-matrix.md +67 -0
  282. package/dist/docs/reference/math/cross2.md +38 -0
  283. package/dist/docs/reference/math/cross3.md +44 -0
  284. package/dist/docs/reference/math/distance2.md +38 -0
  285. package/dist/docs/reference/math/distance3.md +38 -0
  286. package/dist/docs/reference/math/dot2.md +38 -0
  287. package/dist/docs/reference/math/dot3.md +44 -0
  288. package/dist/docs/reference/math/eulerTransform3.md +43 -0
  289. package/dist/docs/reference/math/inverseTransform3.md +36 -0
  290. package/dist/docs/reference/math/length2.md +32 -0
  291. package/dist/docs/reference/math/length3.md +32 -0
  292. package/dist/docs/reference/math/lerp2.md +46 -0
  293. package/dist/docs/reference/math/lerp3.md +46 -0
  294. package/dist/docs/reference/math/multiplyTransform3.md +46 -0
  295. package/dist/docs/reference/math/normalize2.md +45 -0
  296. package/dist/docs/reference/math/normalize3.md +45 -0
  297. package/dist/docs/reference/math/projectOntoPlane3.md +40 -0
  298. package/dist/docs/reference/math/rotate2.md +40 -0
  299. package/dist/docs/reference/math/rotationTransform3.md +56 -0
  300. package/dist/docs/reference/math/scale2.md +38 -0
  301. package/dist/docs/reference/math/scale3.md +44 -0
  302. package/dist/docs/reference/math/scaleTransform3.md +39 -0
  303. package/dist/docs/reference/math/subtract2.md +38 -0
  304. package/dist/docs/reference/math/subtract3.md +44 -0
  305. package/dist/docs/reference/math/transformDeterminant3.md +38 -0
  306. package/dist/docs/reference/math/translationTransform3.md +36 -0
  307. package/dist/docs/reference/math/validateRigidTransform3.md +38 -0
  308. package/dist/docs/reference/math/validateTransform3.md +48 -0
  309. package/dist/docs/reference/math.md +22 -0
  310. package/dist/docs/reference/{geometry → mechanical}/AcmeThreadProfileSpec.md +9 -4
  311. package/dist/docs/reference/{geometry → mechanical}/Bevel.md +8 -2
  312. package/dist/docs/reference/{geometry → mechanical}/BevelSize.md +8 -2
  313. package/dist/docs/reference/{geometry → mechanical}/ButtressPressureFlankSide.md +8 -2
  314. package/dist/docs/reference/{geometry → mechanical}/ButtressThreadProfileSpec.md +9 -4
  315. package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleDimensions.md +8 -2
  316. package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleFit.md +8 -2
  317. package/dist/docs/reference/{geometry → mechanical}/CompensatedThreadDiameters.md +8 -2
  318. package/dist/docs/reference/{geometry → mechanical}/CustomThreadProfileSpec.md +10 -6
  319. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearDimensions.md +8 -2
  320. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearMeshKind.md +8 -2
  321. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearOutlineOptions.md +9 -8
  322. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairDimensions.md +8 -2
  323. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionOptions.md +8 -2
  324. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionReport.md +8 -2
  325. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairSpec.md +8 -2
  326. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearSpec.md +8 -2
  327. package/dist/docs/reference/{geometry → mechanical}/InternalThreadCutterOptions.md +11 -8
  328. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeBaseSpec.md +8 -2
  329. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeDimensions.md +9 -4
  330. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeInterval.md +8 -2
  331. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSamplingOptions.md +9 -8
  332. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSpec.md +8 -2
  333. package/dist/docs/reference/{geometry → mechanical}/METRIC_FASTENER_STANDARDS.md +8 -2
  334. package/dist/docs/reference/{geometry → mechanical}/MetricFastenerSize.md +8 -2
  335. package/dist/docs/reference/{geometry → mechanical}/MetricFastenerStandard.md +8 -2
  336. package/dist/docs/reference/{geometry → mechanical}/MetricHexNutDimensions.md +8 -2
  337. package/dist/docs/reference/{geometry → mechanical}/MetricSocketCapHeadDimensions.md +8 -2
  338. package/dist/docs/reference/{geometry → mechanical}/PRINTABLE_THREAD_FIT_POLICIES.md +8 -2
  339. package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFit.md +8 -2
  340. package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFitPolicy.md +8 -2
  341. package/dist/docs/reference/{geometry → mechanical}/RackPitchDimensions.md +8 -2
  342. package/dist/docs/reference/{geometry → mechanical}/RackPitchSpec.md +8 -2
  343. package/dist/docs/reference/{geometry → mechanical}/SampledThreadHelices.md +8 -6
  344. package/dist/docs/reference/{geometry → mechanical}/SquareThreadProfileSpec.md +9 -4
  345. package/dist/docs/reference/{geometry → mechanical}/ThreadBevelOptions.md +8 -2
  346. package/dist/docs/reference/{geometry → mechanical}/ThreadCircularSegmentsOptions.md +10 -6
  347. package/dist/docs/reference/{geometry → mechanical}/ThreadCompensationOptions.md +9 -4
  348. package/dist/docs/reference/{geometry → mechanical}/ThreadEndStyle.md +8 -2
  349. package/dist/docs/reference/{geometry → mechanical}/ThreadEndTreatmentOptions.md +8 -2
  350. package/dist/docs/reference/{geometry → mechanical}/ThreadHandedness.md +8 -2
  351. package/dist/docs/reference/{geometry → mechanical}/ThreadHelixOptions.md +10 -6
  352. package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInEnvelope.md +8 -2
  353. package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInShape.md +8 -2
  354. package/dist/docs/reference/{mesh/ThreadProfile.md → mechanical/ThreadProfile-type.md} +8 -6
  355. package/dist/docs/reference/{geometry → mechanical}/ThreadProfileBaseSpec.md +9 -4
  356. package/dist/docs/reference/{geometry → mechanical}/ThreadProfileSpec.md +8 -2
  357. package/dist/docs/reference/{geometry → mechanical}/ThreadRidgeOptions.md +12 -9
  358. package/dist/docs/reference/{geometry → mechanical}/ThreadRole.md +8 -2
  359. package/dist/docs/reference/{geometry → mechanical}/ThreadSolidOptions.md +13 -10
  360. package/dist/docs/reference/{geometry → mechanical}/ThreadSolidPreflight.md +8 -2
  361. package/dist/docs/reference/{geometry → mechanical}/ThreadedNutOptions.md +12 -9
  362. package/dist/docs/reference/{geometry → mechanical}/ThreadedNutPreflight.md +8 -2
  363. package/dist/docs/reference/mechanical/ThreadedNutShape.md +20 -0
  364. package/dist/docs/reference/{geometry → mechanical}/ThreadedRodOptions.md +11 -8
  365. package/dist/docs/reference/{geometry → mechanical}/TrapezoidalThreadProfileSpec.md +9 -4
  366. package/dist/docs/reference/{geometry → mechanical}/TriangularThreadProfileSpec.md +9 -4
  367. package/dist/docs/reference/{geometry → mechanical}/categories/mechanical.md +9 -3
  368. package/dist/docs/reference/{geometry → mechanical}/compensateThreadDiameters.md +9 -3
  369. package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileAxially.md +17 -5
  370. package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileForFaceting.md +18 -2
  371. package/dist/docs/reference/{geometry → mechanical}/getMetricClearanceHoleDiameter.md +8 -2
  372. package/dist/docs/reference/{geometry → mechanical}/getMetricFastenerStandard.md +8 -2
  373. package/dist/docs/reference/{geometry → mechanical}/measureInternalCylindricalGearPairMotion.md +14 -6
  374. package/dist/docs/reference/{geometry → mechanical}/minimumCylindricalGearToothCountWithoutUndercut.md +10 -2
  375. package/dist/docs/reference/{geometry → mechanical}/preflightInternalThreadCutter.md +13 -5
  376. package/dist/docs/reference/{geometry → mechanical}/preflightThreadedNut.md +14 -6
  377. package/dist/docs/reference/{geometry → mechanical}/preflightThreadedRod.md +13 -5
  378. package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGear.md +10 -2
  379. package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGearPair.md +10 -2
  380. package/dist/docs/reference/{geometry → mechanical}/resolveKnuckleHinge.md +14 -6
  381. package/dist/docs/reference/{geometry → mechanical}/resolvePrintableThreadFitPolicy.md +10 -2
  382. package/dist/docs/reference/{geometry → mechanical}/resolveRackPitch.md +10 -2
  383. package/dist/docs/reference/{geometry → mechanical}/resolveThreadCircularSegments.md +12 -4
  384. package/dist/docs/reference/{geometry → mechanical}/sampleCylindricalGearOutline.md +14 -7
  385. package/dist/docs/reference/{geometry → mechanical}/sampleInternalCylindricalGearSpaceOutline.md +14 -7
  386. package/dist/docs/reference/{geometry → mechanical}/sampleRackToothPath.md +15 -7
  387. package/dist/docs/reference/{geometry → mechanical}/sampleThreadHelices.md +13 -5
  388. package/dist/docs/reference/{geometry → mechanical}/threadProfile.md +12 -2
  389. package/dist/docs/reference/mechanical.md +19 -0
  390. package/dist/docs/reference/mesh/ExtrudeMeshOptions.md +39 -40
  391. package/dist/docs/reference/mesh/HeightfieldMeshLimits.md +8 -6
  392. package/dist/docs/reference/mesh/HeightfieldPreflight.md +8 -2
  393. package/dist/docs/reference/mesh/ImmutableTriangleMesh.md +8 -6
  394. package/dist/docs/reference/mesh/LoftMeshStation.md +8 -7
  395. package/dist/docs/reference/mesh/MeshRenderOptions.md +28 -0
  396. package/dist/docs/reference/mesh/PlanarMeshOptimizationFallbackReason.md +9 -3
  397. package/dist/docs/reference/mesh/PlanarMeshOptimizationOptions.md +11 -6
  398. package/dist/docs/reference/mesh/PlanarMeshOptimizationResult.md +13 -7
  399. package/dist/docs/reference/mesh/PlanarPatchQuality.md +7 -5
  400. package/dist/docs/reference/mesh/RenderMesh.md +68 -0
  401. package/dist/docs/reference/mesh/SolidMeshValidationOptions.md +7 -5
  402. package/dist/docs/reference/mesh/TriangleMesh.md +16 -2
  403. package/dist/docs/reference/mesh/TriangleMeshAnalysis.md +16 -11
  404. package/dist/docs/reference/mesh/TriangleMeshAnalysisOptions.md +12 -7
  405. package/dist/docs/reference/mesh/TriangleMeshInput.md +9 -3
  406. package/dist/docs/reference/mesh/TriangleMeshMeasurements.md +10 -5
  407. package/dist/docs/reference/mesh/TriangleMeshQualityOptions.md +9 -4
  408. package/dist/docs/reference/mesh/TriangleMeshQualityReport.md +9 -3
  409. package/dist/docs/reference/mesh/TriangleMeshSignature.md +9 -4
  410. package/dist/docs/reference/mesh/TriangleMeshSignatureOptions.md +8 -2
  411. package/dist/docs/reference/mesh/TriangleMeshSignatureTolerances.md +8 -2
  412. package/dist/docs/reference/mesh/TriangleMeshTopologyAnalysis.md +17 -12
  413. package/dist/docs/reference/mesh/TriangleMeshValidationOptions.md +9 -4
  414. package/dist/docs/reference/mesh/analyze.md +28 -14
  415. package/dist/docs/reference/mesh/analyzeQuality.md +15 -9
  416. package/dist/docs/reference/mesh/bounds.md +10 -5
  417. package/dist/docs/reference/mesh/categories/operations.md +24 -81
  418. package/dist/docs/reference/mesh/centroid.md +10 -5
  419. package/dist/docs/reference/mesh/extrude.md +25 -18
  420. package/dist/docs/reference/mesh/heightfield.md +13 -7
  421. package/dist/docs/reference/mesh/immutable.md +16 -10
  422. package/dist/docs/reference/mesh/join.md +11 -5
  423. package/dist/docs/reference/mesh/loft.md +23 -16
  424. package/dist/docs/reference/mesh/optimizePlanarPatches.md +24 -18
  425. package/dist/docs/reference/mesh/preflightHeightfield.md +13 -7
  426. package/dist/docs/reference/mesh/preflightThreadSolid.md +27 -24
  427. package/dist/docs/reference/mesh/render.md +59 -0
  428. package/dist/docs/reference/mesh/reverse.md +11 -5
  429. package/dist/docs/reference/mesh/revolve.md +17 -13
  430. package/dist/docs/reference/mesh/signature.md +15 -9
  431. package/dist/docs/reference/mesh/sweep.md +101 -24
  432. package/dist/docs/reference/mesh/threadRidge.md +24 -17
  433. package/dist/docs/reference/mesh/threadSolid.md +28 -21
  434. package/dist/docs/reference/mesh/transform.md +12 -7
  435. package/dist/docs/reference/mesh/validate.md +15 -9
  436. package/dist/docs/reference/mesh/validateSolid.md +14 -8
  437. package/dist/docs/reference/mesh.md +8 -2
  438. package/dist/docs/reference/model/BoxEdge.md +11 -3
  439. package/dist/docs/reference/model/BoxEdgeSelection.md +11 -3
  440. package/dist/docs/reference/model/BoxEdgeTreatments.md +12 -5
  441. package/dist/docs/reference/model/BoxOptions.md +14 -9
  442. package/dist/docs/reference/model/CircleOptions.md +11 -6
  443. package/dist/docs/reference/model/CornerCutterOptions.md +93 -0
  444. package/dist/docs/reference/model/CornerCutterTreatment.md +53 -0
  445. package/dist/docs/reference/model/CutterOverrun.md +43 -0
  446. package/dist/docs/reference/model/CylinderOptions.md +12 -6
  447. package/dist/docs/reference/model/DiagnosticOptions.md +7 -1
  448. package/dist/docs/reference/model/EdgeCutterOptions.md +129 -0
  449. package/dist/docs/reference/model/EllipseOptions.md +11 -6
  450. package/dist/docs/reference/model/EndTreatments.md +13 -9
  451. package/dist/docs/reference/model/ExtrudeOptions.md +48 -44
  452. package/dist/docs/reference/model/GenerateCallback.md +7 -1
  453. package/dist/docs/reference/model/GenerateContext.md +23 -24
  454. package/dist/docs/reference/model/GenerationDiagnostic.md +7 -1
  455. package/dist/docs/reference/model/GenerationError.md +8 -2
  456. package/dist/docs/reference/model/HeightfieldOptions.md +8 -8
  457. package/dist/docs/reference/model/HoleCutterOpening.md +27 -0
  458. package/dist/docs/reference/model/HoleCutterOptions.md +19 -25
  459. package/dist/docs/reference/model/HoleCutterRecess.md +13 -5
  460. package/dist/docs/reference/model/HullOptions.md +12 -6
  461. package/dist/docs/reference/model/ImmutableValue.md +7 -1
  462. package/dist/docs/reference/model/ImplicitOptions.md +9 -9
  463. package/dist/docs/reference/model/JoinOptions.md +73 -0
  464. package/dist/docs/reference/model/JoinTransition.md +54 -0
  465. package/dist/docs/reference/model/KnuckleHinge-type.md +8 -3
  466. package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +7 -1
  467. package/dist/docs/reference/model/KnuckleHingeOptions.md +8 -4
  468. package/dist/docs/reference/model/KnuckleHingeWeb.md +7 -1
  469. package/dist/docs/reference/model/LoftCorrespondence.md +13 -5
  470. package/dist/docs/reference/model/LoftOptions.md +16 -10
  471. package/dist/docs/reference/model/LoftStation.md +16 -10
  472. package/dist/docs/reference/model/Memo.md +54 -0
  473. package/dist/docs/reference/model/ModelProgram.md +7 -1
  474. package/dist/docs/reference/model/PartDeclaration.md +12 -8
  475. package/dist/docs/reference/model/PartGeometry.md +8 -4
  476. package/dist/docs/reference/model/PartOptions.md +12 -8
  477. package/dist/docs/reference/model/PatternSource.md +11 -5
  478. package/dist/docs/reference/model/PlaneOptions.md +11 -8
  479. package/dist/docs/reference/model/PolygonOptions.md +17 -16
  480. package/dist/docs/reference/model/PrimitiveAttachment.md +15 -4
  481. package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +18 -17
  482. package/dist/docs/reference/model/RectangleOptions.md +31 -30
  483. package/dist/docs/reference/model/RegularPolygonOptions.md +11 -38
  484. package/dist/docs/reference/model/RevolveOptions.md +19 -17
  485. package/dist/docs/reference/model/Section.md +128 -72
  486. package/dist/docs/reference/model/SectionHullOptions.md +12 -6
  487. package/dist/docs/reference/model/SectionInspection.md +8 -6
  488. package/dist/docs/reference/model/SectionOffsetJoin.md +10 -4
  489. package/dist/docs/reference/model/SectionOffsetOptions.md +11 -6
  490. package/dist/docs/reference/model/Solid.md +113 -53
  491. package/dist/docs/reference/model/SolidInspection.md +8 -6
  492. package/dist/docs/reference/model/SolidSegmentHit.md +9 -7
  493. package/dist/docs/reference/model/SphereOptions.md +12 -5
  494. package/dist/docs/reference/model/StarOptions.md +33 -29
  495. package/dist/docs/reference/model/SvgOrigin.md +10 -4
  496. package/dist/docs/reference/model/SvgPathSectionOptions.md +13 -9
  497. package/dist/docs/reference/model/SvgSectionOptions.md +14 -11
  498. package/dist/docs/reference/model/SweepOptions.md +21 -28
  499. package/dist/docs/reference/model/SweepOrientation.md +19 -16
  500. package/dist/docs/reference/model/SweepTransformOptions.md +105 -0
  501. package/dist/docs/reference/model/TextSectionOptions.md +11 -10
  502. package/dist/docs/reference/model/TorusOptions.md +13 -7
  503. package/dist/docs/reference/model/TubeOptions.md +25 -8
  504. package/dist/docs/reference/model/box.md +14 -6
  505. package/dist/docs/reference/model/categories/boolean-operations.md +16 -4
  506. package/dist/docs/reference/model/categories/bounded-surfaces.md +7 -1
  507. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +21 -16
  508. package/dist/docs/reference/model/categories/generation.md +15 -12
  509. package/dist/docs/reference/model/categories/hinges.md +7 -4
  510. package/dist/docs/reference/model/categories/mesh-inspection.md +8 -6
  511. package/dist/docs/reference/model/categories/primitives.md +32 -20
  512. package/dist/docs/reference/model/categories/sections.md +11 -16
  513. package/dist/docs/reference/model/categories/threads.md +9 -43
  514. package/dist/docs/reference/model/categories/transforms-placement.md +17 -41
  515. package/dist/docs/reference/model/circle.md +15 -5
  516. package/dist/docs/reference/model/cornerCutter.md +88 -0
  517. package/dist/docs/reference/model/cylinder.md +11 -3
  518. package/dist/docs/reference/model/edgeCutter.md +91 -0
  519. package/dist/docs/reference/model/ellipse.md +15 -5
  520. package/dist/docs/reference/model/extrude.md +37 -24
  521. package/dist/docs/reference/model/generate.md +10 -2
  522. package/dist/docs/reference/model/gridPattern.md +22 -9
  523. package/dist/docs/reference/model/heightfield.md +7 -1
  524. package/dist/docs/reference/model/holeCutter.md +34 -13
  525. package/dist/docs/reference/model/hull.md +9 -2
  526. package/dist/docs/reference/model/implicit.md +10 -4
  527. package/dist/docs/reference/model/internalThreadCutter.md +38 -21
  528. package/dist/docs/reference/model/intersect.md +14 -3
  529. package/dist/docs/reference/model/join.md +93 -0
  530. package/dist/docs/reference/model/knuckleHinge.md +7 -2
  531. package/dist/docs/reference/model/linearPattern.md +22 -9
  532. package/dist/docs/reference/model/loft.md +27 -16
  533. package/dist/docs/reference/model/minkowskiSum.md +10 -3
  534. package/dist/docs/reference/model/pathPattern.md +36 -21
  535. package/dist/docs/reference/model/polygon.md +18 -7
  536. package/dist/docs/reference/model/radialPattern.md +22 -9
  537. package/dist/docs/reference/model/rectangle.md +22 -12
  538. package/dist/docs/reference/model/regularPolygon.md +15 -5
  539. package/dist/docs/reference/model/revolve.md +26 -13
  540. package/dist/docs/reference/model/solidFromMesh.md +16 -6
  541. package/dist/docs/reference/model/sphere.md +12 -4
  542. package/dist/docs/reference/model/star.md +20 -10
  543. package/dist/docs/reference/model/stroke.md +29 -19
  544. package/dist/docs/reference/model/svgPathSection.md +20 -8
  545. package/dist/docs/reference/model/svgSection.md +21 -9
  546. package/dist/docs/reference/model/sweep.md +108 -24
  547. package/dist/docs/reference/model/textSection.md +19 -9
  548. package/dist/docs/reference/model/threadRidge.md +22 -17
  549. package/dist/docs/reference/model/threadedNut.md +31 -22
  550. package/dist/docs/reference/model/threadedRod.md +27 -18
  551. package/dist/docs/reference/model/torus.md +13 -5
  552. package/dist/docs/reference/model/tube.md +11 -3
  553. package/dist/docs/reference/model/union.md +14 -3
  554. package/dist/docs/reference/model.md +11 -11
  555. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +7 -1
  556. package/dist/docs/reference/text/VectorFont.md +22 -12
  557. package/dist/docs/reference/text/VectorFontOptions.md +7 -1
  558. package/dist/docs/reference/text/VectorTextArcBaseline.md +7 -1
  559. package/dist/docs/reference/text/VectorTextLayoutOptions.md +8 -2
  560. package/dist/docs/reference/text/VectorTextOptions.md +7 -1
  561. package/dist/docs/reference/text/categories/font-preparation.md +7 -10
  562. package/dist/docs/reference/text/prepareVectorFont.md +9 -1
  563. package/dist/docs/reference/text.md +7 -1
  564. package/dist/engine/execution.js +5 -3
  565. package/dist/engine/finalization.js +6 -78
  566. package/dist/engine/index.js +11 -6
  567. package/dist/engine/native/adapter.js +1 -1
  568. package/dist/engine/native/construction-mesh.js +51 -0
  569. package/dist/engine/native/context.js +10 -7
  570. package/dist/engine/native/index.js +1 -1
  571. package/dist/engine/native/material-components.js +4 -53
  572. package/dist/engine/native/mesh-observation.js +55 -0
  573. package/dist/engine/native/regions.js +44 -23
  574. package/dist/engine/native/scoped-primitives.js +3 -3
  575. package/dist/engine/native/scoped-threads.js +1 -13
  576. package/dist/engine/native/threads.js +2 -2
  577. package/dist/engine/native/transforms.js +2 -2
  578. package/dist/engine/operations/construction.js +77 -27
  579. package/dist/engine/operations/context.js +15 -6
  580. package/dist/engine/operations/cutters.js +112 -0
  581. package/dist/engine/operations/environment.js +2 -2
  582. package/dist/engine/operations/extrusion-finishing.js +56 -29
  583. package/dist/engine/operations/hole-cutter.js +125 -114
  584. package/dist/engine/operations/join-collar-profile.js +120 -0
  585. package/dist/engine/operations/join.js +521 -0
  586. package/dist/engine/operations/knuckle-hinge.js +25 -20
  587. package/dist/engine/operations/loft.js +9 -16
  588. package/dist/engine/operations/mechanical.js +4 -15
  589. package/dist/engine/operations/primitives/anchors.js +23 -19
  590. package/dist/engine/operations/primitives/construction.js +38 -12
  591. package/dist/engine/operations/primitives/correspondence.js +2 -2
  592. package/dist/engine/operations/primitives/profile-mesh.js +41 -80
  593. package/dist/engine/operations/primitives/profiles.js +5 -5
  594. package/dist/engine/operations/sections.js +8 -8
  595. package/dist/engine/operations/transforms.js +19 -39
  596. package/dist/engine/placement.js +3 -3
  597. package/dist/engine/recipe-realization.js +87 -31
  598. package/dist/engine/session/declarations.js +98 -0
  599. package/dist/engine/session/dependencies.js +139 -39
  600. package/dist/engine/session/graph.js +290 -411
  601. package/dist/engine/session/native-cache.js +1 -1
  602. package/dist/engine/session/parameters.js +78 -0
  603. package/dist/engine/session/session.js +7 -7
  604. package/dist/engine/session/snapshot-cache.js +4 -4
  605. package/dist/engine/shape-anchors.js +13 -6
  606. package/dist/export/3mf.js +197 -0
  607. package/dist/export/capture.js +182 -0
  608. package/dist/export/glb.js +214 -0
  609. package/dist/export/index.js +5 -0
  610. package/dist/export/limits.js +18 -0
  611. package/dist/export/stl.js +120 -0
  612. package/dist/export/writer.js +54 -0
  613. package/dist/geometry/{bounds.js → bounds/operations.js} +3 -1
  614. package/dist/geometry/{bounds-value.js → bounds/value.js} +24 -20
  615. package/dist/geometry/curves/evaluation.js +5 -6
  616. package/dist/geometry/curves/sampling.js +30 -6
  617. package/dist/geometry/{extrusion.js → extrusion/controls.js} +58 -35
  618. package/dist/geometry/extrusion/mesh.js +92 -0
  619. package/dist/geometry/extrusion/stations.js +35 -0
  620. package/dist/geometry/extrusion/twisted-chamfer.js +265 -0
  621. package/dist/geometry/immutable-buffer.js +11 -7
  622. package/dist/geometry/index.js +24 -32
  623. package/dist/geometry/{model-limits.js → limits.js} +1 -1
  624. package/dist/geometry/loft/{loft-correspondence.js → correspondence.js} +31 -20
  625. package/dist/geometry/loft/{loft-geometry.js → geometry.js} +15 -17
  626. package/dist/geometry/loft/mesh.js +53 -0
  627. package/dist/geometry/loft/{loft-options.js → options.js} +13 -11
  628. package/dist/geometry/loft/{loft-simple-mesh.js → simple-mesh.js} +26 -17
  629. package/dist/geometry/math/interpolation.js +9 -0
  630. package/dist/geometry/math/vector-value.js +12 -3
  631. package/dist/geometry/math/vector2.js +18 -5
  632. package/dist/geometry/math/vector3.js +28 -5
  633. package/dist/geometry/math-api.js +4 -0
  634. package/dist/geometry/mechanical/gear-motion.js +7 -5
  635. package/dist/geometry/mechanical/gears.js +21 -4
  636. package/dist/geometry/mechanical/knuckle-hinge.js +7 -5
  637. package/dist/geometry/mechanical/threads/fit.js +8 -2
  638. package/dist/geometry/mechanical/threads/helices.js +4 -2
  639. package/dist/geometry/mechanical/threads/mesh-plan.js +4 -2
  640. package/dist/geometry/mechanical/threads/mesh.js +12 -9
  641. package/dist/geometry/mechanical/threads/profiles.js +18 -4
  642. package/dist/geometry/mechanical/threads/solids.js +11 -2
  643. package/dist/geometry/mechanical-api.js +10 -0
  644. package/dist/geometry/mesh/{mesh-centroid.js → centroid.js} +2 -1
  645. package/dist/geometry/{heightfield.js → mesh/heightfield.js} +9 -5
  646. package/dist/geometry/mesh/join-layers.js +833 -0
  647. package/dist/geometry/mesh/{mesh.js → operations.js} +11 -18
  648. package/dist/geometry/mesh/{mesh-planar.js → planar.js} +8 -18
  649. package/dist/geometry/mesh/{mesh-quality.js → quality.js} +10 -42
  650. package/dist/geometry/mesh/render-buffers.js +220 -0
  651. package/dist/geometry/mesh/{mesh-signature.js → signature.js} +1 -1
  652. package/dist/geometry/mesh/{mesh-solid-intersections.js → solid-intersections.js} +45 -17
  653. package/dist/geometry/mesh/{mesh-solid.js → solid.js} +10 -6
  654. package/dist/geometry/mesh/triangle-quality.js +42 -0
  655. package/dist/geometry/mesh/winding.js +11 -0
  656. package/dist/geometry/{numeric.js → mesh/write-vertex.js} +1 -1
  657. package/dist/geometry/mesh-api.js +12 -10
  658. package/dist/geometry/paths/distribution.js +43 -0
  659. package/dist/geometry/paths/editing.js +76 -0
  660. package/dist/geometry/paths/frames.js +16 -11
  661. package/dist/geometry/paths/helix.js +1 -1
  662. package/dist/geometry/paths/resampling.js +46 -61
  663. package/dist/geometry/paths/{planar.js → rounding.js} +8 -67
  664. package/dist/geometry/paths/spline.js +116 -0
  665. package/dist/geometry/paths/traversal.js +107 -0
  666. package/dist/geometry/paths/{path-value.js → value.js} +97 -18
  667. package/dist/geometry/patterns/placements.js +20 -29
  668. package/dist/geometry/{patterns.js → patterns/transforms.js} +11 -7
  669. package/dist/geometry/primitives/cutters.js +70 -0
  670. package/dist/geometry/{cylinder.js → primitives/cylinder.js} +4 -4
  671. package/dist/geometry/{edge-finishing.js → primitives/edges.js} +5 -5
  672. package/dist/geometry/{primitive-resolvers.js → primitives/resolvers.js} +9 -9
  673. package/dist/geometry/primitives/sampling.js +41 -0
  674. package/dist/geometry/profiles/contour.js +19 -7
  675. package/dist/geometry/profiles/{match-profiles.js → matching.js} +9 -6
  676. package/dist/geometry/profiles/primitives/circle.js +1 -1
  677. package/dist/geometry/profiles/primitives/ellipse.js +2 -2
  678. package/dist/geometry/profiles/primitives/rectangle.js +8 -8
  679. package/dist/geometry/profiles/primitives/star.js +1 -1
  680. package/dist/geometry/profiles/side-profile.js +8 -5
  681. package/dist/geometry/profiles/validation.js +1 -1
  682. package/dist/geometry/{polygon-clipping.js → regions/clipping.js} +1 -1
  683. package/dist/geometry/{convex-offset.js → regions/convex-offset.js} +1 -1
  684. package/dist/geometry/regions/offset.js +280 -0
  685. package/dist/geometry/{regions.js → regions/operations.js} +70 -23
  686. package/dist/geometry/{stroke-path.js → regions/stroke.js} +46 -20
  687. package/dist/geometry/{loft/loft-triangulation.js → regions/triangulation.js} +35 -2
  688. package/dist/geometry/revolve/{revolve-mesh.js → mesh.js} +9 -10
  689. package/dist/geometry/{circular-sampling.js → sampling/circular.js} +3 -3
  690. package/dist/geometry/{sampling-limits.js → sampling/limits.js} +6 -2
  691. package/dist/geometry/{resolution.js → sampling/resolution.js} +15 -14
  692. package/dist/geometry/svg/fill.js +4 -3
  693. package/dist/geometry/svg/import.js +47 -64
  694. package/dist/geometry/svg/path.js +3 -3
  695. package/dist/geometry/sweep/closed.js +55 -0
  696. package/dist/geometry/sweep/mesh.js +30 -0
  697. package/dist/geometry/{sweeps/sweep-open.js → sweep/open.js} +9 -24
  698. package/dist/geometry/sweep/options.js +1 -0
  699. package/dist/geometry/{sweeps → sweep}/orientation.js +14 -11
  700. package/dist/geometry/sweep/seam.js +30 -0
  701. package/dist/geometry/{sweeps → sweep}/stations.js +75 -10
  702. package/dist/geometry/sweep/transforms.js +30 -0
  703. package/dist/geometry/{sweeps → sweep}/validation.js +4 -4
  704. package/dist/geometry/{text-contours.js → text/contours.js} +3 -3
  705. package/dist/geometry/{text-fitting.js → text/fitting.js} +4 -3
  706. package/dist/geometry/text/layout.js +1 -0
  707. package/dist/geometry/{transform3.js → transforms/affine3.js} +31 -46
  708. package/dist/geometry/{anchors.js → transforms/anchors.js} +43 -24
  709. package/dist/geometry/{transform-geometry.js → transforms/apply.js} +8 -5
  710. package/dist/geometry/{transform2.js → transforms/dimensions.js} +23 -19
  711. package/dist/geometry/transforms/frame.js +64 -0
  712. package/dist/geometry/{transform-matrix.js → transforms/matrix-input.js} +8 -1
  713. package/dist/geometry/{transform-value.js → transforms/value.js} +29 -11
  714. package/dist/index.js +3 -9
  715. package/dist/model/cutters.js +1 -0
  716. package/dist/model/execution-binding.js +3 -3
  717. package/dist/model/generation.js +4 -2
  718. package/dist/model/immutable-generation-data.js +15 -13
  719. package/dist/model/join.js +1 -0
  720. package/dist/model/operations.js +150 -94
  721. package/dist/model/recipe-declaration.js +6 -7
  722. package/dist/model/shape-handles.js +1 -0
  723. package/dist/text/index.js +3 -0
  724. package/dist/text/vector-text-layout.js +1 -0
  725. package/package.json +20 -5
  726. package/dist/docs/reference/engine/Export3mfOptions.md +0 -46
  727. package/dist/docs/reference/engine/ExportMeshPart.md +0 -31
  728. package/dist/docs/reference/engine/ModelingLimits.md +0 -121
  729. package/dist/docs/reference/engine/export3mf.md +0 -55
  730. package/dist/docs/reference/geometry/BoxEdge.md +0 -7
  731. package/dist/docs/reference/geometry/BoxEdgeSelection.md +0 -14
  732. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +0 -15
  733. package/dist/docs/reference/geometry/BoxOptions.md +0 -87
  734. package/dist/docs/reference/geometry/CylinderOptions.md +0 -53
  735. package/dist/docs/reference/geometry/EndTreatments.md +0 -34
  736. package/dist/docs/reference/geometry/ExtrudeMeshOptions.md +0 -130
  737. package/dist/docs/reference/geometry/ExtrudeOptions.md +0 -146
  738. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +0 -18
  739. package/dist/docs/reference/geometry/HeightfieldOptions.md +0 -72
  740. package/dist/docs/reference/geometry/HeightfieldPreflight.md +0 -58
  741. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +0 -19
  742. package/dist/docs/reference/geometry/ImmutableTriangleMesh.md +0 -43
  743. package/dist/docs/reference/geometry/LoftCorrespondence.md +0 -24
  744. package/dist/docs/reference/geometry/LoftMeshStation.md +0 -31
  745. package/dist/docs/reference/geometry/LoftOptions.md +0 -88
  746. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +0 -14
  747. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +0 -160
  748. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +0 -124
  749. package/dist/docs/reference/geometry/PlanarPatchQuality.md +0 -194
  750. package/dist/docs/reference/geometry/PrimitiveAttachment.md +0 -29
  751. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +0 -104
  752. package/dist/docs/reference/geometry/RevolveOptions.md +0 -91
  753. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +0 -38
  754. package/dist/docs/reference/geometry/SphereOptions.md +0 -15
  755. package/dist/docs/reference/geometry/SweepOptions.md +0 -113
  756. package/dist/docs/reference/geometry/SweepOrientation.md +0 -113
  757. package/dist/docs/reference/geometry/ThreadProfile-type.md +0 -86
  758. package/dist/docs/reference/geometry/ThreadedNutShape.md +0 -14
  759. package/dist/docs/reference/geometry/TorusOptions.md +0 -105
  760. package/dist/docs/reference/geometry/TriangleMesh.md +0 -34
  761. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +0 -129
  762. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +0 -79
  763. package/dist/docs/reference/geometry/TriangleMeshInput.md +0 -19
  764. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +0 -79
  765. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +0 -43
  766. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +0 -194
  767. package/dist/docs/reference/geometry/TriangleMeshSignature.md +0 -111
  768. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +0 -46
  769. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +0 -34
  770. package/dist/docs/reference/geometry/TriangleMeshTopologyAnalysis.md +0 -131
  771. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +0 -55
  772. package/dist/docs/reference/geometry/TubeOptions.md +0 -62
  773. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +0 -58
  774. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +0 -115
  775. package/dist/docs/reference/geometry/VectorTextOptions.md +0 -54
  776. package/dist/docs/reference/geometry/add2.md +0 -37
  777. package/dist/docs/reference/geometry/add3.md +0 -43
  778. package/dist/docs/reference/geometry/applyTransformDirection3.md +0 -46
  779. package/dist/docs/reference/geometry/applyTransformPoint3.md +0 -44
  780. package/dist/docs/reference/geometry/categories/meshes.md +0 -68
  781. package/dist/docs/reference/geometry/composeTransform3.md +0 -45
  782. package/dist/docs/reference/geometry/cross2.md +0 -37
  783. package/dist/docs/reference/geometry/cross3.md +0 -43
  784. package/dist/docs/reference/geometry/distance2.md +0 -37
  785. package/dist/docs/reference/geometry/distance3.md +0 -37
  786. package/dist/docs/reference/geometry/dot2.md +0 -37
  787. package/dist/docs/reference/geometry/dot3.md +0 -43
  788. package/dist/docs/reference/geometry/eulerTransform3.md +0 -43
  789. package/dist/docs/reference/geometry/frameTransform3.md +0 -49
  790. package/dist/docs/reference/geometry/inverseTransform3.md +0 -35
  791. package/dist/docs/reference/geometry/length2.md +0 -31
  792. package/dist/docs/reference/geometry/length3.md +0 -31
  793. package/dist/docs/reference/geometry/lerp2.md +0 -43
  794. package/dist/docs/reference/geometry/lerp3.md +0 -43
  795. package/dist/docs/reference/geometry/normalize2.md +0 -40
  796. package/dist/docs/reference/geometry/normalize3.md +0 -40
  797. package/dist/docs/reference/geometry/projectOntoPlane3.md +0 -37
  798. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +0 -78
  799. package/dist/docs/reference/geometry/rotate2.md +0 -37
  800. package/dist/docs/reference/geometry/rotationTransform3.md +0 -54
  801. package/dist/docs/reference/geometry/scale2.md +0 -37
  802. package/dist/docs/reference/geometry/scale3.md +0 -43
  803. package/dist/docs/reference/geometry/scaleTransform3.md +0 -39
  804. package/dist/docs/reference/geometry/subtract2.md +0 -37
  805. package/dist/docs/reference/geometry/subtract3.md +0 -43
  806. package/dist/docs/reference/geometry/transformDeterminant3.md +0 -37
  807. package/dist/docs/reference/geometry/translationTransform3.md +0 -36
  808. package/dist/docs/reference/geometry/validateRigidTransform3.md +0 -35
  809. package/dist/docs/reference/geometry/validateTransform3.md +0 -48
  810. package/dist/docs/reference/mesh/AcmeThreadProfileSpec.md +0 -79
  811. package/dist/docs/reference/mesh/Bevel.md +0 -18
  812. package/dist/docs/reference/mesh/BevelSize.md +0 -14
  813. package/dist/docs/reference/mesh/Bounds2.md +0 -125
  814. package/dist/docs/reference/mesh/Bounds2Data.md +0 -43
  815. package/dist/docs/reference/mesh/Bounds2Input.md +0 -19
  816. package/dist/docs/reference/mesh/Bounds3.md +0 -125
  817. package/dist/docs/reference/mesh/Bounds3Data.md +0 -43
  818. package/dist/docs/reference/mesh/Bounds3Input.md +0 -19
  819. package/dist/docs/reference/mesh/ButtressPressureFlankSide.md +0 -14
  820. package/dist/docs/reference/mesh/ButtressThreadProfileSpec.md +0 -97
  821. package/dist/docs/reference/mesh/CircularPrimitiveOptions.md +0 -60
  822. package/dist/docs/reference/mesh/CurveSamplingOptions.md +0 -69
  823. package/dist/docs/reference/mesh/CustomThreadProfileSpec.md +0 -77
  824. package/dist/docs/reference/mesh/ExtrusionSamplingOptions.md +0 -81
  825. package/dist/docs/reference/mesh/Frame3.md +0 -62
  826. package/dist/docs/reference/mesh/GeometryResolution.md +0 -74
  827. package/dist/docs/reference/mesh/GeometrySamplingLimits.md +0 -66
  828. package/dist/docs/reference/mesh/GeometryToleranceOptions.md +0 -46
  829. package/dist/docs/reference/mesh/HeightfieldOptions.md +0 -72
  830. package/dist/docs/reference/mesh/ImmutableBuffer.md +0 -108
  831. package/dist/docs/reference/mesh/LoftCorrespondence.md +0 -24
  832. package/dist/docs/reference/mesh/LoftOptions.md +0 -88
  833. package/dist/docs/reference/mesh/LoftPlacement.md +0 -70
  834. package/dist/docs/reference/mesh/ModelingLimits.md +0 -130
  835. package/dist/docs/reference/mesh/NumericArray.md +0 -14
  836. package/dist/docs/reference/mesh/Path2.md +0 -197
  837. package/dist/docs/reference/mesh/Path2Data.md +0 -50
  838. package/dist/docs/reference/mesh/Path2Input.md +0 -20
  839. package/dist/docs/reference/mesh/Path3.md +0 -197
  840. package/dist/docs/reference/mesh/Path3Data.md +0 -50
  841. package/dist/docs/reference/mesh/Path3Input.md +0 -20
  842. package/dist/docs/reference/mesh/PathLocation.md +0 -69
  843. package/dist/docs/reference/mesh/PathNormalGuide.md +0 -43
  844. package/dist/docs/reference/mesh/PathResamplingOptions.md +0 -84
  845. package/dist/docs/reference/mesh/Pivot2Options.md +0 -26
  846. package/dist/docs/reference/mesh/Pivot3Options.md +0 -26
  847. package/dist/docs/reference/mesh/RevolveOptions.md +0 -91
  848. package/dist/docs/reference/mesh/SquareThreadProfileSpec.md +0 -79
  849. package/dist/docs/reference/mesh/SweepOptions.md +0 -113
  850. package/dist/docs/reference/mesh/SweepOrientation.md +0 -113
  851. package/dist/docs/reference/mesh/ThreadEndStyle.md +0 -14
  852. package/dist/docs/reference/mesh/ThreadEndTreatmentOptions.md +0 -117
  853. package/dist/docs/reference/mesh/ThreadHandedness.md +0 -14
  854. package/dist/docs/reference/mesh/ThreadLeadInEnvelope.md +0 -14
  855. package/dist/docs/reference/mesh/ThreadLeadInShape.md +0 -14
  856. package/dist/docs/reference/mesh/ThreadProfileBaseSpec.md +0 -53
  857. package/dist/docs/reference/mesh/ThreadProfileSpec.md +0 -23
  858. package/dist/docs/reference/mesh/ThreadRidgeOptions.md +0 -145
  859. package/dist/docs/reference/mesh/ThreadSolidOptions.md +0 -222
  860. package/dist/docs/reference/mesh/ThreadSolidPreflight.md +0 -58
  861. package/dist/docs/reference/mesh/Transform2.md +0 -256
  862. package/dist/docs/reference/mesh/Transform2Data.md +0 -14
  863. package/dist/docs/reference/mesh/Transform2Input.md +0 -19
  864. package/dist/docs/reference/mesh/Transform3.md +0 -296
  865. package/dist/docs/reference/mesh/Transform3Data.md +0 -17
  866. package/dist/docs/reference/mesh/Transform3Input.md +0 -19
  867. package/dist/docs/reference/mesh/TrapezoidalThreadProfileSpec.md +0 -96
  868. package/dist/docs/reference/mesh/TriangularThreadProfileSpec.md +0 -95
  869. package/dist/docs/reference/mesh/Vector2.md +0 -270
  870. package/dist/docs/reference/mesh/Vector2Data.md +0 -14
  871. package/dist/docs/reference/mesh/Vector2Input.md +0 -19
  872. package/dist/docs/reference/mesh/Vector3.md +0 -282
  873. package/dist/docs/reference/mesh/Vector3Data.md +0 -14
  874. package/dist/docs/reference/mesh/Vector3Input.md +0 -19
  875. package/dist/docs/reference/model/AcmeThreadProfileSpec.md +0 -80
  876. package/dist/docs/reference/model/Anchor3.md +0 -55
  877. package/dist/docs/reference/model/AttachOptions.md +0 -69
  878. package/dist/docs/reference/model/Bevel.md +0 -19
  879. package/dist/docs/reference/model/BevelSize.md +0 -15
  880. package/dist/docs/reference/model/Bounds2-type.md +0 -125
  881. package/dist/docs/reference/model/Bounds2Data.md +0 -44
  882. package/dist/docs/reference/model/Bounds2Input.md +0 -19
  883. package/dist/docs/reference/model/Bounds2Options.md +0 -110
  884. package/dist/docs/reference/model/Bounds3-type.md +0 -125
  885. package/dist/docs/reference/model/Bounds3Data.md +0 -44
  886. package/dist/docs/reference/model/Bounds3Input.md +0 -19
  887. package/dist/docs/reference/model/Bounds3Options.md +0 -110
  888. package/dist/docs/reference/model/ButtressPressureFlankSide.md +0 -15
  889. package/dist/docs/reference/model/ButtressThreadProfileSpec.md +0 -98
  890. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +0 -35
  891. package/dist/docs/reference/model/CircleContourOptions.md +0 -21
  892. package/dist/docs/reference/model/CircularPrimitiveOptions.md +0 -62
  893. package/dist/docs/reference/model/Computed.md +0 -44
  894. package/dist/docs/reference/model/ComputedValue.md +0 -24
  895. package/dist/docs/reference/model/Contour.md +0 -24
  896. package/dist/docs/reference/model/CorrespondingComponent.md +0 -46
  897. package/dist/docs/reference/model/CorrespondingContour.md +0 -46
  898. package/dist/docs/reference/model/CorrespondingProfile.md +0 -22
  899. package/dist/docs/reference/model/CorrespondingProfileStation.md +0 -27
  900. package/dist/docs/reference/model/CurveSamplingOptions.md +0 -68
  901. package/dist/docs/reference/model/CustomThreadProfileSpec.md +0 -78
  902. package/dist/docs/reference/model/EdgeTreatment.md +0 -22
  903. package/dist/docs/reference/model/EllipseContourOptions.md +0 -21
  904. package/dist/docs/reference/model/ExtrudeMeshOptions.md +0 -133
  905. package/dist/docs/reference/model/ExtrusionSamplingOptions.md +0 -84
  906. package/dist/docs/reference/model/Frame3.md +0 -63
  907. package/dist/docs/reference/model/GeometryError.md +0 -102
  908. package/dist/docs/reference/model/GeometryErrorCode.md +0 -15
  909. package/dist/docs/reference/model/GeometryErrorContext.md +0 -35
  910. package/dist/docs/reference/model/GeometryResolution.md +0 -70
  911. package/dist/docs/reference/model/GeometrySamplingLimits.md +0 -62
  912. package/dist/docs/reference/model/GeometryToleranceOptions.md +0 -46
  913. package/dist/docs/reference/model/GridPatternOptions.md +0 -50
  914. package/dist/docs/reference/model/HoleCutterOverrun.md +0 -35
  915. package/dist/docs/reference/model/ImmutableBuffer-type.md +0 -108
  916. package/dist/docs/reference/model/ImmutableTriangleMesh.md +0 -43
  917. package/dist/docs/reference/model/InternalThreadCutterOptions.md +0 -216
  918. package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +0 -77
  919. package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +0 -47
  920. package/dist/docs/reference/model/KnuckleHingeSpec.md +0 -18
  921. package/dist/docs/reference/model/LinearPatternOptions.md +0 -39
  922. package/dist/docs/reference/model/LoftPlacement.md +0 -73
  923. package/dist/docs/reference/model/MatchProfilesOptions.md +0 -35
  924. package/dist/docs/reference/model/ModelingLimits.md +0 -126
  925. package/dist/docs/reference/model/NumericArray.md +0 -14
  926. package/dist/docs/reference/model/Path2-type.md +0 -196
  927. package/dist/docs/reference/model/Path2Data.md +0 -50
  928. package/dist/docs/reference/model/Path2Input.md +0 -20
  929. package/dist/docs/reference/model/Path3-type.md +0 -196
  930. package/dist/docs/reference/model/Path3Data.md +0 -50
  931. package/dist/docs/reference/model/Path3Input.md +0 -20
  932. package/dist/docs/reference/model/PathLocation.md +0 -69
  933. package/dist/docs/reference/model/PathNormalGuide.md +0 -46
  934. package/dist/docs/reference/model/PathOptions.md +0 -38
  935. package/dist/docs/reference/model/PathPatternOptions.md +0 -48
  936. package/dist/docs/reference/model/PathResamplingOptions.md +0 -84
  937. package/dist/docs/reference/model/Pivot2Options.md +0 -28
  938. package/dist/docs/reference/model/Pivot3Options.md +0 -28
  939. package/dist/docs/reference/model/PolygonData.md +0 -44
  940. package/dist/docs/reference/model/PrintableThreadFit.md +0 -15
  941. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +0 -51
  942. package/dist/docs/reference/model/Profile.md +0 -24
  943. package/dist/docs/reference/model/ProfileComponent2.md +0 -46
  944. package/dist/docs/reference/model/ProfileContour2.md +0 -36
  945. package/dist/docs/reference/model/ProfileSpan2.md +0 -47
  946. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +0 -41
  947. package/dist/docs/reference/model/RadialPatternOptions.md +0 -59
  948. package/dist/docs/reference/model/RadialSizing.md +0 -15
  949. package/dist/docs/reference/model/RadialSizingOptions.md +0 -40
  950. package/dist/docs/reference/model/RectangleContourOptions.md +0 -72
  951. package/dist/docs/reference/model/RectangleCornerTreatment.md +0 -40
  952. package/dist/docs/reference/model/RectangleCornerTreatments.md +0 -20
  953. package/dist/docs/reference/model/RegionData.md +0 -19
  954. package/dist/docs/reference/model/RoundedEdgeTreatment.md +0 -96
  955. package/dist/docs/reference/model/SmoothEdgeTreatment.md +0 -76
  956. package/dist/docs/reference/model/SquareThreadProfileSpec.md +0 -80
  957. package/dist/docs/reference/model/StarContourOptions.md +0 -81
  958. package/dist/docs/reference/model/StrokeCap.md +0 -16
  959. package/dist/docs/reference/model/StrokeJoin.md +0 -16
  960. package/dist/docs/reference/model/StrokeOptions.md +0 -91
  961. package/dist/docs/reference/model/ThreadBevelOptions.md +0 -35
  962. package/dist/docs/reference/model/ThreadEndStyle.md +0 -15
  963. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +0 -118
  964. package/dist/docs/reference/model/ThreadHandedness.md +0 -15
  965. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +0 -15
  966. package/dist/docs/reference/model/ThreadLeadInShape.md +0 -15
  967. package/dist/docs/reference/model/ThreadProfile.md +0 -87
  968. package/dist/docs/reference/model/ThreadProfileBaseSpec.md +0 -54
  969. package/dist/docs/reference/model/ThreadProfileSpec.md +0 -24
  970. package/dist/docs/reference/model/ThreadRidgeOptions.md +0 -141
  971. package/dist/docs/reference/model/ThreadSolidPreflight.md +0 -59
  972. package/dist/docs/reference/model/ThreadedNutOptions.md +0 -263
  973. package/dist/docs/reference/model/ThreadedNutPreflight.md +0 -111
  974. package/dist/docs/reference/model/ThreadedNutShape.md +0 -15
  975. package/dist/docs/reference/model/ThreadedRodOptions.md +0 -216
  976. package/dist/docs/reference/model/Transform2-type.md +0 -257
  977. package/dist/docs/reference/model/Transform2Data.md +0 -16
  978. package/dist/docs/reference/model/Transform2Input.md +0 -21
  979. package/dist/docs/reference/model/Transform3-type.md +0 -297
  980. package/dist/docs/reference/model/Transform3Data.md +0 -19
  981. package/dist/docs/reference/model/Transform3Input.md +0 -21
  982. package/dist/docs/reference/model/TrapezoidalThreadProfileSpec.md +0 -97
  983. package/dist/docs/reference/model/TriangleMesh.md +0 -34
  984. package/dist/docs/reference/model/TriangleMeshAnalysis.md +0 -129
  985. package/dist/docs/reference/model/TriangleMeshMeasurements.md +0 -79
  986. package/dist/docs/reference/model/TriangleMeshTopologyAnalysis.md +0 -131
  987. package/dist/docs/reference/model/TriangularThreadProfileSpec.md +0 -96
  988. package/dist/docs/reference/model/Vector2-type.md +0 -271
  989. package/dist/docs/reference/model/Vector2Data.md +0 -15
  990. package/dist/docs/reference/model/Vector2Input.md +0 -21
  991. package/dist/docs/reference/model/Vector3-type.md +0 -283
  992. package/dist/docs/reference/model/Vector3Data.md +0 -15
  993. package/dist/docs/reference/model/Vector3Input.md +0 -21
  994. package/dist/docs/reference/model/VectorTextLayout.md +0 -40
  995. package/dist/docs/reference/model/VectorTextMetrics.md +0 -100
  996. package/dist/docs/reference/model/bounds2.md +0 -37
  997. package/dist/docs/reference/model/bounds3.md +0 -37
  998. package/dist/docs/reference/model/categories/bounds.md +0 -38
  999. package/dist/docs/reference/model/categories/contracts.md +0 -16
  1000. package/dist/docs/reference/model/categories/core-values-errors.md +0 -44
  1001. package/dist/docs/reference/model/categories/explicit-profiles.md +0 -34
  1002. package/dist/docs/reference/model/categories/paths.md +0 -42
  1003. package/dist/docs/reference/model/categories/resolution.md +0 -20
  1004. package/dist/docs/reference/model/immutableBuffer.md +0 -49
  1005. package/dist/docs/reference/model/isGeometryError.md +0 -34
  1006. package/dist/docs/reference/model/matchProfiles.md +0 -42
  1007. package/dist/docs/reference/model/path2.md +0 -54
  1008. package/dist/docs/reference/model/path3.md +0 -49
  1009. package/dist/docs/reference/model/preflightInternalThreadCutter.md +0 -87
  1010. package/dist/docs/reference/model/preflightThreadedNut.md +0 -103
  1011. package/dist/docs/reference/model/preflightThreadedRod.md +0 -87
  1012. package/dist/docs/reference/model/transform2.md +0 -46
  1013. package/dist/docs/reference/model/transform3.md +0 -48
  1014. package/dist/docs/reference/model/vector2.md +0 -40
  1015. package/dist/docs/reference/model/vector3.md +0 -47
  1016. package/dist/docs/reference/text/Bounds2Data.md +0 -34
  1017. package/dist/docs/reference/text/Vector2Data.md +0 -7
  1018. package/dist/docs/reference/text/VectorTextLayout.md +0 -34
  1019. package/dist/docs/reference/text/VectorTextMetrics.md +0 -94
  1020. package/dist/engine/export-3mf.js +0 -23
  1021. package/dist/engine/operations/patterns.js +0 -47
  1022. package/dist/engine/serialize-3mf.js +0 -116
  1023. package/dist/geometry/loft/loft.js +0 -105
  1024. package/dist/geometry/mechanical/index.js +0 -14
  1025. package/dist/geometry/primitive-resolution.js +0 -20
  1026. package/dist/geometry/svg/index.js +0 -1
  1027. package/dist/geometry/sweeps/options.js +0 -29
  1028. package/dist/geometry/sweeps/sweep-closed.js +0 -96
  1029. package/dist/geometry/sweeps/sweep-mesh.js +0 -32
  1030. /package/dist/{geometry/mesh/mesh-types.js → export/types.js} +0 -0
  1031. /package/dist/geometry/mechanical/{standards.js → fastener-standards.js} +0 -0
  1032. /package/dist/geometry/mesh/{mesh-edge-table.js → edge-table.js} +0 -0
  1033. /package/dist/geometry/{primitive-options.js → mesh/types.js} +0 -0
  1034. /package/dist/{engine/mesh-view-cache.js → geometry/mesh/view-cache.js} +0 -0
  1035. /package/dist/geometry/{text-layout.js → primitives/options.js} +0 -0
@@ -4,10 +4,10 @@ Turn sections and paths into extruded, lofted, revolved, or swept solids.
4
4
 
5
5
  Turn filled Sections or explicitly matched profiles into solids:
6
6
 
7
- - **Extrude:** `section.extrude({ height, twist, scaleTop })` adds +Z depth. `center` defaults to `false`.
7
+ - **Extrude:** `section.extrude({ height, twist, scale, slices })` adds +Z depth. `scale` tapers from one to its final profile-local XY value; `slices` counts positive longitudinal intervals. End treatments insert required rings into that grid. `center` defaults to `false`.
8
8
  - **Revolve:** `section.revolve({ degrees })` rotates radial/Z geometry around +Z and caps partial turns.
9
- - **Loft:** `loft(stations, options)` places profiles at exactly one `z` or `frame` per station, in input order. `refine` controls density; slices interpolate world vertices.
10
- - **Sweep:** `section.sweep(path, options)` supports implicitly closed paths, transport/fixed-normal/guide/Frenet orientation, physical-length or station twist progression, uniform/XY/per-station scales, and an explicit rotationally equivalent `seamProfileOffset`. Open sweeps have watertight end caps. Closed sweeps require compatible seam orientation and scale.
9
+ - **Loft:** `loft(stations, options)` places profiles at exactly one `z` or `transform` per station, in input order. `refine` controls profile density; positive integer `slices` counts longitudinal intervals per station gap, defaulting to one. Inserted profiles interpolate world vertices.
10
+ - **Sweep:** `section.sweep(path, options)` computes transport/fixed-normal/guide/Frenet orientation, physical-length or station twist progression, and verified cyclic seam alignment. `section.sweep(transforms, options)` instead connects exactly the supplied affine placements, preserving profile seams without inferred rotation or refinement. Open sweeps have watertight end caps and scalar/XY `scale` tapers from one to the final value by path length. Closed sweeps use scalar/XY `scale` uniformly and require compatible seam orientation and scale. Arrays supply positive XY scales at authored stations in either form.
11
11
 
12
12
  Lofts match compatible primitive landmarks directly, including circle/ellipse quadrants to rectangle corners. Other unlike primitive families use direct perimeter association from construction-local +X seams. Arbitrary Sections and loops require an explicit `direct`, `reindex`, `fast-distance`, or `distance` method. Identified `CorrespondingProfile` landmarks reject geometric remapping.
13
13
 
@@ -18,9 +18,9 @@ Use Section methods in fluent modeling sequences. Imported `extrude`, `revolve`,
18
18
  | API | Summary |
19
19
  | --- | --- |
20
20
  | [extrude](../extrude.md) | Extrudes a filled Section or explicit corresponding contours along +Z with degree twist and top scaling. Use `section.extrude(options)` in fluent sequences, or this function for generic profile inputs. |
21
- | [loft](../loft.md) | Lofts Sections and point loops at z heights or frames. Known primitive landmarks are retained; other profiles default to direct correspondence, preserving their supplied seams. |
21
+ | [loft](../loft.md) | Lofts Sections and point contours at z heights or affine transforms. Known primitive landmarks are retained; other profiles default to direct correspondence, preserving their supplied seams. |
22
22
  | [revolve](../revolve.md) | Revolves a filled Section or explicit corresponding radial/Z contours around +Z, with caps for partial sweeps. Use `section.revolve(options)` in fluent sequences, or this function for generic profile inputs. |
23
- | [sweep](../sweep.md) | Sweeps a filled Section or explicit corresponding contours using the selected frame policy. Use `section.sweep(path, options)` in fluent sequences, or this function for generic profile inputs. |
23
+ | [sweep](../sweep.md) | Sweeps a filled Section or corresponding contours along a path or explicit affine placements. Use `section.sweep(path, options)` in fluent sequences, or this function for generic profile inputs. |
24
24
 
25
25
  ## Interfaces
26
26
 
@@ -29,25 +29,30 @@ Use Section methods in fluent modeling sequences. Imported `extrude`, `revolve`,
29
29
  | [ExtrudeOptions](../ExtrudeOptions.md) | Native +Z extrusion with optional inward end treatments. |
30
30
  | [LoftOptions](../LoftOptions.md) | Shared controls for native and pure lofts. Point data and arbitrary Sections default to direct correspondence. |
31
31
  | [RevolveOptions](../RevolveOptions.md) | Circumferential sampling and degree sweep shared by pure and filled revolution. |
32
- | [SweepOptions](../SweepOptions.md) | Controls shared by pure mesh construction and filled modeling sweeps. |
33
- | [ExtrudeMeshOptions](../ExtrudeMeshOptions.md) | Dimensions and sampling for pure +Z mesh extrusion, without end treatments. |
34
- | [ExtrusionSamplingOptions](../ExtrusionSamplingOptions.md) | Shared sampling controls for a twisted or scaled linear extrusion. |
32
+ | [SweepOptions](../SweepOptions.md) | Path-driven sweep orientation, deformation, and physical refinement controls. |
33
+ | [SweepTransformOptions](../SweepTransformOptions.md) | Explicit-transform sweeps connect exactly the supplied stations, with no inferred rotation or refinement. |
35
34
 
36
35
  ## Type aliases
37
36
 
38
37
  | API | Summary |
39
38
  | --- | --- |
39
+ | [LoftStation](../LoftStation.md) | A Section or point loop at a horizontal height or explicit affine transform. |
40
40
  | [LoftCorrespondence](../LoftCorrespondence.md) | Associates ordered loft contours without inferring component identities or repairing topology. |
41
- | [LoftPlacement](../LoftPlacement.md) | A horizontal XY station height, or an explicit right-handed spatial frame, never both. |
42
- | [LoftStation](../LoftStation.md) | A Section or point loop at an explicit height or frame. |
43
- | [PathNormalGuide](../PathNormalGuide.md) | Supplies a profile-X orientation guide for each original normalized sweep station. |
44
41
  | [SweepOrientation](../SweepOrientation.md) | Explicit profile-X frame policy; all normals are directed, and selected singular policies reject. |
45
42
 
46
43
  ## Guides
47
44
 
48
- - [Revolve a radial profile](../../../guides/recipes.md#revolve-a-radial-profile)
49
- - [Rotation-minimizing path sweep](../../../guides/recipes.md#rotation-minimizing-path-sweep)
50
- - [Matched-section loft](../../../guides/recipes.md#matched-section-loft)
51
- - [Choose a modeling path](../../../guides/concepts.md#choose-a-modeling-path)
45
+ - [Finish a profile with a hole](../../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
46
+ - [Chamfer a twisted extrusion](../../../guides/profiles-and-extrusion.md#chamfer-a-twisted-extrusion)
47
+ - [Revolve a radial profile](../../../guides/profiles-and-extrusion.md#revolve-a-radial-profile)
48
+ - [Rotation-minimizing path sweep](../../../guides/sweeps-and-lofts.md#rotation-minimizing-path-sweep)
49
+ - [Matched-section loft](../../../guides/sweeps-and-lofts.md#matched-section-loft)
50
+ - [Choose a modeling path](../../../guides/recipes.md#choose-a-technique)
52
51
 
53
- Package: `@metamesh/modeling@0.18.0`.
52
+ ## Import
53
+
54
+ ```ts
55
+ import * as model from "@metamesh/modeling";
56
+ ```
57
+
58
+ Package: `@metamesh/modeling@0.20.0`.
@@ -4,33 +4,32 @@ Build typed models with optional cached computations, named parts, and structure
4
4
 
5
5
  Start with `generate(({ params, part, assert }) => ...)` and return one `part(...)` or a readonly array of parts. Parameter values are ordinary readonly data.
6
6
 
7
- - **Cache:** `computed(id, callback)` optionally caches pure data or geometry and tracks synchronous reads. List changing outer captures with `computed(id, () => ..., [value])`; dependency arrays supplement automatic tracking.
7
+ - **Cache:** `memo(fn, ...args)` eagerly reuses stable pure functions and returns immutable data or geometry. Pass actual inputs as arguments; the exact current params/context tracks fields read by the helper. Fresh functions safely recompute; ordinary object arguments must be deeply immutable.
8
8
  - **Report issues:** assertions stop immediately. Warnings continue and must be emitted in the outer callback.
9
- - **Place parts:** `transform` accepts a fluent `transform3()` value or row-major 16-number matrix. Only translation and proper rotation are supported; omission means identity. Pattern and attachment matrices work directly.
9
+ - **Place parts:** `transform` accepts a fluent `transform3()` value or row-major 16-number matrix. Only translation and proper rotation are supported; omission means identity. Pattern and attachment transforms work directly.
10
10
  - **Keep cached data immutable:** use `immutableBuffer` for numeric arrays and `mesh.immutable` for indexed meshes. Buffers expose `length`, `at(index)`, standard iteration, and `copy()`. Results expose these immutable buffers; call `copy()` for mutable typed arrays.
11
11
 
12
+ The context exposes effective immutable resolution and limits. Pass them explicitly to pure sampling or preflight functions so preparation uses the same physical policy as model evaluation.
13
+
12
14
  ## Functions
13
15
 
14
16
  | API | Summary |
15
17
  | --- | --- |
16
- | [generate](../generate.md) | Defines a typed model without executing it. Parameters are an object map of capturable data; runtime capture rejects arrays at the root, ordinary class instances, mutable buffers, and functions. Supply live capabilities through services. Use `computed` only for work worth reusing. |
17
- | [immutableBuffer](../immutableBuffer.md) | Copies numeric data once into private storage. This pure helper needs no active generation. |
18
+ | [generate](../generate.md) | Defines a typed model without executing it. Parameters are an object map of capturable data; runtime capture rejects arrays at the root, ordinary class instances, mutable buffers, and functions. Supply live capabilities through services. Use `memo` only for work worth reusing. |
18
19
 
19
20
  ## Classes
20
21
 
21
22
  | API | Summary |
22
23
  | --- | --- |
23
- | [GenerationError](../GenerationError.md) | A user-correctable assertion failure. Successful computation caches never retain failures. |
24
+ | [GenerationError](../GenerationError.md) | A user-correctable assertion failure. Successful memo caches never retain failures. |
24
25
 
25
26
  ## Interfaces
26
27
 
27
28
  | API | Summary |
28
29
  | --- | --- |
29
- | [ImmutableBuffer](../ImmutableBuffer-type.md) | Owned immutable numeric data. Iterate without copying; use copy() for mutable storage. |
30
- | [ImmutableTriangleMesh](../ImmutableTriangleMesh.md) | Immutable local XYZ positions and triangle indices, suitable for a computed value or part. |
31
- | [Computed](../Computed.md) | Reads immutable data or a deferred recipe; evaluation is synchronous and cached. |
30
+ | [Memo](../Memo.md) | Invokes fn(...args) and returns captured immutable data. Stable helpers reuse work across runs. Arguments compare with Object.is and must be deeply immutable; the exact current params or generation context instead tracks parameter fields read by the function. Functions must be pure: supply changing inputs explicitly, and do not read changing globals or ambient state. |
32
31
  | [DiagnosticOptions](../DiagnosticOptions.md) | Typed parameter association for an assertion or warning. |
33
- | [GenerateContext](../GenerateContext.md) | The sole synchronous authoring context, supplied independently of Studio. |
32
+ | [GenerateContext](../GenerateContext.md) | Synchronous authoring context with immutable parameters and host-prepared services. |
34
33
  | [PartDeclaration](../PartDeclaration.md) | One declared output part. Construct with the context's `part` helper. |
35
34
  | [GenerationDiagnostic](../GenerationDiagnostic.md) | Structured user-facing issue associated with the attempted revision. |
36
35
  | [ModelProgram](../ModelProgram.md) | Stateless portable program descriptor. Execution and caches belong to an engine session. |
@@ -40,9 +39,7 @@ Start with `generate(({ params, part, assert }) => ...)` and return one `part(..
40
39
 
41
40
  | API | Summary |
42
41
  | --- | --- |
43
- | [NumericArray](../NumericArray.md) | Numeric storage supported by immutable generation buffers. |
44
42
  | [ImmutableValue](../ImmutableValue.md) | Deeply readonly view of captured generation data, including nested arrays and tuples. Modeling value methods keep their signatures, including explicit mutable copies. This type does not make unsupported runtime values valid generation data. |
45
- | [ComputedValue](../ComputedValue.md) | A value supplied immediately or by a lazy computed reader. |
46
43
  | [GenerateCallback](../GenerateCallback.md) | Pure synchronous callback returning one declared part or an array; caches are optional. |
47
44
  | [PartGeometry](../PartGeometry.md) | Manufacturing geometry; filled sections are intermediate construction values. |
48
45
 
@@ -50,4 +47,10 @@ Start with `generate(({ params, part, assert }) => ...)` and return one `part(..
50
47
 
51
48
  - [Complete standalone model example](../../../guides/standalone-model.md#minimal-model-entry)
52
49
 
53
- Package: `@metamesh/modeling@0.18.0`.
50
+ ## Import
51
+
52
+ ```ts
53
+ import * as model from "@metamesh/modeling";
54
+ ```
55
+
56
+ Package: `@metamesh/modeling@0.20.0`.
@@ -23,8 +23,6 @@ Radial clearance is per side; axial gap is the total gap between adjacent interv
23
23
  | API | Summary |
24
24
  | --- | --- |
25
25
  | [KnuckleHinge](../KnuckleHinge-type.md) | Portable local geometry; consumers own plates, holes, part declarations, and final placement. |
26
- | [KnuckleHingeBaseSpec](../KnuckleHingeBaseSpec.md) | Shared knuckle-joint dimensions in millimetres, independent of mounting geometry. |
27
- | [KnuckleHingeSamplingOptions](../KnuckleHingeSamplingOptions.md) | Shared circular sampling for barrels, shafts, and bores. |
28
26
  | [KnuckleHingeHalfOptions](../KnuckleHingeHalfOptions.md) | Optional mounting and edge treatment for one knuckle owner. |
29
27
  | [KnuckleHingeWeb](../KnuckleHingeWeb.md) | Rectangular connection from the axis into a caller-owned mounting body, in millimetres. |
30
28
 
@@ -33,6 +31,11 @@ Radial clearance is per side; axial gap is the total gap between adjacent interv
33
31
  | API | Summary |
34
32
  | --- | --- |
35
33
  | [KnuckleHingeOptions](../KnuckleHingeOptions.md) | Joint declaration with independent attachments; unspecified sampling inherits the evaluating host. |
36
- | [KnuckleHingeSpec](../KnuckleHingeSpec.md) | Knuckle-joint construction modes and interval ownership. |
37
34
 
38
- Package: `@metamesh/modeling@0.18.0`.
35
+ ## Import
36
+
37
+ ```ts
38
+ import * as model from "@metamesh/modeling";
39
+ ```
40
+
41
+ Package: `@metamesh/modeling@0.20.0`.
@@ -27,14 +27,16 @@ Inspection does not certify wall thickness, overhangs, printer fit, or material
27
27
  | --- | --- |
28
28
  | [SectionInspection](../SectionInspection.md) | Immutable native filled section facts in millimetres and square millimetres. Repeated inspections of the same native shape share these facts within one revision. |
29
29
  | [SolidInspection](../SolidInspection.md) | Immutable solid bounds, emptiness, component count, volume, surface area and native tolerance. Repeated inspections of the same native shape share these facts within one revision. |
30
- | [TriangleMesh](../TriangleMesh.md) | A topology-preserving indexed triangle mesh with mutable owned XYZ buffers. |
31
- | [TriangleMeshAnalysis](../TriangleMeshAnalysis.md) | Measurements and optional edge-connected topology from one validated mesh traversal. |
32
- | [TriangleMeshTopologyAnalysis](../TriangleMeshTopologyAnalysis.md) | Mesh measurements with the indexed surface-shell and edge counts requested by includeTopology. |
33
- | [TriangleMeshMeasurements](../TriangleMeshMeasurements.md) | Geometric measurements derived from a validated, non-empty triangle mesh. |
34
30
  | [SolidSegmentHit](../SolidSegmentHit.md) | Copied surface intersection from a finite directed segment. Distance is in millimetres. |
35
31
 
36
32
  ## Guides
37
33
 
38
- - [Solid inspection](../../../guides/recipes.md#solid-inspection)
34
+ - [Solid inspection](../../../guides/resolution-and-inspection.md#solid-inspection)
39
35
 
40
- Package: `@metamesh/modeling@0.18.0`.
36
+ ## Import
37
+
38
+ ```ts
39
+ import * as model from "@metamesh/modeling";
40
+ ```
41
+
42
+ Package: `@metamesh/modeling@0.20.0`.
@@ -5,7 +5,7 @@ Create basic solids with explicit dimensions and tessellation.
5
5
  All primitives use millimetres and one options object. Boxes, cylinders, and tubes are centered by default.
6
6
 
7
7
  - **Dimensions:** `box` accepts a scalar or XYZ size. `cylinder` accepts exactly one radius or diameter, uniform or a bottom/top tuple along +Z. Radial sizing selects polygon vertices or compensated faces.
8
- - **Treatments:** choose `{ kind: "round", radius }`, `{ kind: "chamfer", distance }`, `{ kind: "smooth", distance }`, or `{ kind: "profile", profile }`. Boxes support named edges; cylinders and straight convex extrusions support independent bottom/top treatments.
8
+ - **Treatments:** choose `{ kind: "round", radius }`, `{ kind: "chamfer", distance }`, `{ kind: "smooth", distance }`, or `{ kind: "profile", profile }`. Boxes support named edges; cylinders, tubes, and straight extrusions support independent bottom/top treatments. Tube end treatments finish both outer and inner rims. Straight extrusion finishing admits concavity, holes, and disconnected components when every boundary survives without contact or collapse.
9
9
  - **Placement:** `attachment` maps a named or explicit local anchor onto a world anchor after construction.
10
10
 
11
11
  Use imported primitives inside generation:
@@ -21,16 +21,22 @@ export default generate(({ part }) => {
21
21
 
22
22
  A zero round radius or zero chamfer/smooth setback leaves a feature untreated. Setback tuples must be all zero or both positive.
23
23
 
24
+ Use holeCutter for bores and blind pockets with independent openings.top and openings.bottom. Each opening accepts a shared edge treatment; circular bores also admit counterbores and countersinks. Opening treatments widen the mouth and must leave a positive untreated throat. Treated Sections require one strictly convex contour without holes; plain Section cutters retain arbitrary topology. CutterOverrun extends terminal cross sections outside the nominal interval and defaults to zero at both ends, preserving blind floors. It is separate from manufacturing clearance.
25
+
26
+ Use edgeCutter for an explicitly placed straight convex edge and cornerCutter for a matching perpendicular three-face corner. Edge cutters share all four treatments; corners admit spherical round or equal-setback chamfer treatments. Existing transforms, anchors, and patterns position the ordinary Solid cutters before subtraction. These operations do not discover edges or perform general filleting.
27
+
24
28
  ## Functions
25
29
 
26
30
  | API | Summary |
27
31
  | --- | --- |
28
32
  | [box](../box.md) | Axis-aligned box with uniform or disjoint named edge/group treatments. |
29
33
  | [cylinder](../cylinder.md) | +Z cylinder or frustum. Face sizing compensates polygon faceting. |
30
- | [holeCutter](../holeCutter.md) | Declares a +Z hole or blind-pocket cutter with explicit end overrun in millimetres. |
31
- | [sphere](../sphere.md) | Origin-centered sphere. |
34
+ | [holeCutter](../holeCutter.md) | Declares a +Z hole or blind-pocket cutter with independent opening treatments. |
35
+ | [sphere](../sphere.md) | Origin-centered sphere with adaptive sampling that bounds spherical triangle error. Explicit segment requests select octahedral refinement and round up to a multiple of four. |
32
36
  | [torus](../torus.md) | Torus around +Z. |
33
37
  | [tube](../tube.md) | Hollow +Z tube. |
38
+ | [edgeCutter](../edgeCutter.md) | Creates a cutter for one straight convex edge along +Z, with its sharp reference at XY=0. Position it explicitly before subtraction; the included material angle defaults to 90 degrees. |
39
+ | [cornerCutter](../cornerCutter.md) | Creates a round or chamfer cutter at the origin for three perpendicular positive-axis faces. Complements matching edge cutters; construction, placement, and subtraction remain explicit. |
34
40
 
35
41
  ## Interfaces
36
42
 
@@ -38,34 +44,40 @@ A zero round radius or zero chamfer/smooth setback leaves a feature untreated. S
38
44
  | --- | --- |
39
45
  | [Solid](../Solid.md) | Immutable deferred solid recipe. |
40
46
  | [BoxOptions](../BoxOptions.md) | Dimensions, placement, and uniform or independently selected finishing for an axis-aligned box. |
41
- | [ChamferedEdgeTreatment](../ChamferedEdgeTreatment.md) | A planar edge or corner chamfer with equal or independent surface setbacks. |
42
- | [CircularPrimitiveOptions](../CircularPrimitiveOptions.md) | Tessellation controls shared by circular primitives across Geometry entry points. |
43
- | [HoleCutterOverrun](../HoleCutterOverrun.md) | Explicit extra cutter length outside the nominal Z=0..height interval, in millimetres. |
44
- | [EndTreatments](../EndTreatments.md) | Independent inward finishing on primitive or straight convex extrusion ends. Zero amounts leave the end untreated, including when all ends are disabled. |
45
- | [RadialSizingOptions](../RadialSizingOptions.md) | Nominal radial sizing shared by circular and regular polygon construction. |
46
- | [RoundedEdgeTreatment](../RoundedEdgeTreatment.md) | A circular edge or corner roundover with explicit physical sampling. |
47
47
  | [TorusOptions](../TorusOptions.md) | Dimensions and independent ring/profile tessellation for a torus around the Z axis. |
48
- | [SmoothEdgeTreatment](../SmoothEdgeTreatment.md) | A cubic corner transition with zero curvature at its straight tangent joins. |
49
- | [ProfiledEdgeTreatment](../ProfiledEdgeTreatment.md) | A deliberately sampled, inward-only corner profile with exact polyline geometry. |
48
+ | [EndTreatments](../EndTreatments.md) | Independent inward finishing on primitive or source-corresponding extrusion ends. Zero amounts leave the end untreated, including when all ends are disabled. |
49
+ | [PrimitiveAttachment](../PrimitiveAttachment.md) | Anchor attachment shared by solid and filled-section factories. |
50
+ | [PrimitiveAttachmentOptions](../PrimitiveAttachmentOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
51
+ | [EdgeCutterOptions](../EdgeCutterOptions.md) | A subtractive treatment along one explicitly positioned straight convex edge. Right-angle rounds share the corner sphere's sampling lattice; full-circle segment requests round up to a multiple of four. |
52
+ | [CornerCutterOptions](../CornerCutterOptions.md) | A subtractive corner transition for material occupying the positive XYZ octant. Round treatments share their lattice with right-angle edge cutters; full-circle segment requests round up to a multiple of four. |
53
+ | [CutterOverrun](../CutterOverrun.md) | Numerical cutter extension outside its nominal +Z interval, in millimetres. |
50
54
 
51
55
  ## Type aliases
52
56
 
53
57
  | API | Summary |
54
58
  | --- | --- |
55
- | [HoleCutterOptions](../HoleCutterOptions.md) | A deferred +Z hole or pocket cutter, with exactly one circular diameter or existing Section. Profile entry chamfers expand one strictly convex contour without holes by parallel-edge offsets; the supplied sampled boundary remains authoritative. Plain profile cutters accept any Section. Circular entry chamfers retain nominal circular/frustum radii under the selected radial sizing. |
59
+ | [HoleCutterOptions](../HoleCutterOptions.md) | A deferred +Z hole or pocket cutter, with exactly one circular diameter or existing Section. Openings widen nominal ends without changing the untreated bore. Both depths together must leave a positive untreated interval. Overrun extends the terminal mouth unchanged; omitted ends and overrun preserve blind-pocket floors. No support surface or printer fit is inferred. |
56
60
  | [HoleCutterRecess](../HoleCutterRecess.md) | Circular screw seating dimensions in millimetres; allowances belong to the caller. |
57
- | [CylinderOptions](../CylinderOptions.md) | Dimensions, placement, independent end finishing, and tessellation for a Z-axis cylinder or frustum. |
58
- | [EdgeTreatment](../EdgeTreatment.md) | Uniform finishing vocabulary shared by applicable solid edges and profile corners. |
59
- | [RadialSizing](../RadialSizing.md) | Radial dimensions refer to polygon vertices or compensate faceting to meet polygon faces. |
60
- | [SphereOptions](../SphereOptions.md) | Exactly one radius or diameter, placement, and tessellation for an origin-centered sphere. |
61
- | [TubeOptions](../TubeOptions.md) | Dimensions, placement, and tessellation for a hollow Z-axis tube. |
62
61
  | [BoxEdge](../BoxEdge.md) | Box edges use +Z top, +Y front and +X right; vertical names list front/back first. |
63
62
  | [BoxEdgeSelection](../BoxEdgeSelection.md) | Named individual edges or top/bottom rims and all four vertical edges. |
64
63
  | [BoxEdgeTreatments](../BoxEdgeTreatments.md) | Independent treatments for disjoint named edge selections; overlapping selections fail. |
64
+ | [CylinderOptions](../CylinderOptions.md) | Dimensions, placement, independent end finishing, and tessellation for a Z-axis cylinder or frustum. |
65
+ | [SphereOptions](../SphereOptions.md) | Exactly one radius or diameter, placement, and tessellation for an origin-centered sphere. |
66
+ | [TubeOptions](../TubeOptions.md) | Dimensions, placement, and tessellation for a hollow Z-axis tube. |
67
+ | [HoleCutterOpening](../HoleCutterOpening.md) | A finished circular opening: outward edge treatment or screw seat, one per end. Treatment setbacks measure radial expansion first and axial depth second. A round radius is circular in that radial/axial section. Profile points run from [mouth expansion, 0] to [0, depth]. |
68
+ | [CornerCutterTreatment](../CornerCutterTreatment.md) | Symmetric trihedral treatments that meet three matching perpendicular edge treatments. |
65
69
 
66
70
  ## Guides
67
71
 
68
- - [Choose a primitive](../../../guides/recipes.md#choose-a-primitive)
69
- - [Treated boxes, frustums, and mirrored arrays](../../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
72
+ - [Choose a primitive](../../../guides/profiles-and-extrusion.md#choose-a-primitive)
73
+ - [Treated boxes, frustums, and mirrored arrays](../../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
74
+ - [Finish a profile with a hole](../../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
75
+ - [Shape openings and local edges](../../../guides/profiles-and-extrusion.md#shape-openings-and-local-edges)
76
+
77
+ ## Import
78
+
79
+ ```ts
80
+ import * as model from "@metamesh/modeling";
81
+ ```
70
82
 
71
- Package: `@metamesh/modeling@0.18.0`.
83
+ Package: `@metamesh/modeling@0.20.0`.
@@ -13,7 +13,7 @@ Create immutable filled XY shapes, including prepared text and bounded painted S
13
13
 
14
14
  | API | Summary |
15
15
  | --- | --- |
16
- | [stroke](../stroke.md) | Creates a centered-width native Section along a sampled XY path. |
16
+ | [stroke](../stroke.md) | Declares a centered-width Section recipe along a sampled XY path. |
17
17
  | [circle](../circle.md) | Centered circular section. |
18
18
  | [ellipse](../ellipse.md) | Centered elliptical section. |
19
19
  | [rectangle](../rectangle.md) | Filled rectangular section with uniform or independently treated corners. |
@@ -29,30 +29,19 @@ Create immutable filled XY shapes, including prepared text and bounded painted S
29
29
  | API | Summary |
30
30
  | --- | --- |
31
31
  | [Section](../Section.md) | Immutable deferred filled XY section recipe. |
32
- | [StrokeOptions](../StrokeOptions.md) | Physical stroke and topology controls shared by pure regions and native Sections. |
33
- | [RectangleContourOptions](../RectangleContourOptions.md) | Shared rectangle dimensions, origin and uniform or per-corner treatment. |
34
32
  | [RectangleOptions](../RectangleOptions.md) | Rectangle dimensions, placement and uniform or per-corner treatment. |
35
33
  | [SectionOffsetOptions](../SectionOffsetOptions.md) | Options controlling robust Clipper2 region offsets. |
36
34
  | [StarOptions](../StarOptions.md) | Alternating outer and inner vertices, centered on the XY origin. |
37
- | [StarContourOptions](../StarContourOptions.md) | Alternating vertex radii and exact point count for a centered XY star. |
38
35
  | [SvgPathSectionOptions](../SvgPathSectionOptions.md) | Bounded filled SVG path sampling. Path scale converts user units to millimetres. |
39
36
  | [SvgSectionOptions](../SvgSectionOptions.md) | Bounded SVG document sampling. Center origin uses the final painted bounds. |
40
37
  | [TextSectionOptions](../TextSectionOptions.md) | Physical curve sampling applied to already prepared vector text. |
41
- | [VectorTextLayout](../VectorTextLayout.md) | Immutable vector layout with no browser, font parser, or kernel ownership. |
42
- | [VectorTextMetrics](../VectorTextMetrics.md) | Text measurements from the same immutable layout that supplies geometry and SVG outlines. |
43
38
 
44
39
  ## Type aliases
45
40
 
46
41
  | API | Summary |
47
42
  | --- | --- |
48
- | [StrokeCap](../StrokeCap.md) | End-cap treatment for an open stroked path. |
49
- | [StrokeJoin](../StrokeJoin.md) | Join treatment where adjacent stroked path segments meet. |
50
- | [CircleContourOptions](../CircleContourOptions.md) | Circular profile dimensions with exactly one radius or diameter and explicit sampling. |
51
43
  | [CircleOptions](../CircleOptions.md) | Circular dimensions with exactly one nominal radius or diameter. |
52
- | [EllipseContourOptions](../EllipseContourOptions.md) | Ellipse dimensions with exactly one XY radii or full-size tuple and explicit sampling. |
53
44
  | [EllipseOptions](../EllipseOptions.md) | Ellipse dimensions in local XY, with exactly one radii or full-size tuple. |
54
- | [RectangleCornerTreatment](../RectangleCornerTreatment.md) | A rectangle corner, including an explicitly untreated corner in a treatment tuple. |
55
- | [RectangleCornerTreatments](../RectangleCornerTreatments.md) | Corner treatments ordered top-right, top-left, bottom-left, bottom-right. |
56
45
  | [RegularPolygonOptions](../RegularPolygonOptions.md) | Regular polygon dimensions, radial convention and degree rotation. |
57
46
  | [SectionOffsetJoin](../SectionOffsetJoin.md) | Clipper2 join styles accepted by robust region offsets. |
58
47
  | [PolygonOptions](../PolygonOptions.md) | Explicit polygon topology or compound contours; all closing edges are implicit. |
@@ -60,8 +49,14 @@ Create immutable filled XY shapes, including prepared text and bounded painted S
60
49
 
61
50
  ## Guides
62
51
 
63
- - [Section, hole, offset, and extrusion](../../../guides/recipes.md#section-hole-offset-and-extrusion)
64
- - [SVG sections: fills and strokes are different inputs](../../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
65
- - [Text and font variability](../../../guides/concepts.md#text-and-font-variability)
52
+ - [Section, hole, offset, and extrusion](../../../guides/profiles-and-extrusion.md#section-hole-offset-and-extrusion)
53
+ - [SVG sections: fills and strokes are different inputs](../../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
54
+ - [Text and font variability](../../../guides/svg-and-text.md#text-and-font-variability)
66
55
 
67
- Package: `@metamesh/modeling@0.18.0`.
56
+ ## Import
57
+
58
+ ```ts
59
+ import * as model from "@metamesh/modeling";
60
+ ```
61
+
62
+ Package: `@metamesh/modeling@0.20.0`.
@@ -11,53 +11,19 @@ Constructors enforce safety automatically. Use optional preflight to estimate re
11
11
  | API | Summary |
12
12
  | --- | --- |
13
13
  | [internalThreadCutter](../internalThreadCutter.md) | Compensated internal threaded cutter. |
14
- | [preflightInternalThreadCutter](../preflightInternalThreadCutter.md) | Checks compensated cutter dimensions and conservative mesh estimates against host output limits. |
15
- | [preflightThreadedNut](../preflightThreadedNut.md) | Checks nut dimensions, chamfers, end-face wall, and the extended compensated cutter's allocation plan. |
16
- | [preflightThreadedRod](../preflightThreadedRod.md) | Checks compensated rod dimensions and conservative mesh estimates against host output limits. |
17
14
  | [threadedNut](../threadedNut.md) | Compensated threaded nut. |
18
15
  | [threadedRod](../threadedRod.md) | Compensated external threaded rod. |
19
- | [threadRidge](../threadRidge.md) | Helical ridge mesh construction. |
20
-
21
- ## Interfaces
22
-
23
- | API | Summary |
24
- | --- | --- |
25
- | [ThreadSolidPreflight](../ThreadSolidPreflight.md) | Selected sampling counts and conservative allocation estimates, before thread mesh construction. |
26
- | [InternalThreadCutterOptions](../InternalThreadCutterOptions.md) | Options for a compensated internal-thread subtraction tool along +Z. |
27
- | [PrintableThreadFitPolicy](../PrintableThreadFitPolicy.md) | Explicit radial and axial allowances for a mating printed thread pair. |
28
- | [ThreadedNutOptions](../ThreadedNutOptions.md) | Options for a compensated nut with an internal thread. |
29
- | [ThreadedNutPreflight](../ThreadedNutPreflight.md) | Resolved body and end-face dimensions plus conservative allocation estimates for the thread cutter. |
30
- | [ThreadedRodOptions](../ThreadedRodOptions.md) | Options for a compensated external threaded rod along +Z. |
31
- | [ThreadEndTreatmentOptions](../ThreadEndTreatmentOptions.md) | Axial end controls for a generated ridge. |
32
- | [ThreadProfile](../ThreadProfile.md) | A validated immutable periodic thread profile in `[axial, radial]` millimetres. |
33
- | [ThreadRidgeOptions](../ThreadRidgeOptions.md) | Runtime-neutral options for the dedicated helical ridge mesher. |
34
- | [ThreadBevelOptions](../ThreadBevelOptions.md) | 45-degree end bevels for compensated rods and cutters. |
35
- | [ThreadProfileBaseSpec](../ThreadProfileBaseSpec.md) | Fields shared by all thread profile specifications. |
36
- | [AcmeThreadProfileSpec](../AcmeThreadProfileSpec.md) | ACME 29-degree included-angle profile. |
37
- | [ButtressThreadProfileSpec](../ButtressThreadProfileSpec.md) | Asymmetric printable buttress profile with 7/45-degree flanks. |
38
- | [CustomThreadProfileSpec](../CustomThreadProfileSpec.md) | Caller-defined periodic axial/radial profile in millimetres. |
39
- | [SquareThreadProfileSpec](../SquareThreadProfileSpec.md) | Square profile with equal crest and root widths. |
40
- | [TrapezoidalThreadProfileSpec](../TrapezoidalThreadProfileSpec.md) | Trapezoidal thread profile with a configurable included angle. |
41
- | [TriangularThreadProfileSpec](../TriangularThreadProfileSpec.md) | ISO/UTS-like 60-degree truncated triangular profile. |
42
-
43
- ## Type aliases
44
-
45
- | API | Summary |
46
- | --- | --- |
47
- | [PrintableThreadFit](../PrintableThreadFit.md) | Named baseline fit policies for calibrated FDM-style printed threads. |
48
- | [Bevel](../Bevel.md) | One size for both ends, or independent sizes in bottom/top order. Zero disables an end. |
49
- | [BevelSize](../BevelSize.md) | Nonnegative 45-degree axial/radial bevel size in millimetres, or factory automatic sizing. |
50
- | [ThreadedNutShape](../ThreadedNutShape.md) | Supported printable nut body shapes. |
51
- | [ThreadEndStyle](../ThreadEndStyle.md) | End shape of a generated helical ridge. |
52
- | [ThreadHandedness](../ThreadHandedness.md) | Direction in which a conventional helical thread advances around +Z. |
53
- | [ThreadLeadInEnvelope](../ThreadLeadInEnvelope.md) | Radial envelope toward which a blunt lead-in collapses. |
54
- | [ThreadLeadInShape](../ThreadLeadInShape.md) | BOSL2-compatible cross-section scaling curve for a blunt thread lead-in. |
55
- | [ThreadProfileSpec](../ThreadProfileSpec.md) | Supported built-in and caller-defined thread profiles. |
56
- | [ButtressPressureFlankSide](../ButtressPressureFlankSide.md) | Axial side carrying the near-normal pressure flank of a buttress thread. |
16
+ | [threadRidge](../threadRidge.md) | Declares a helical ridge Solid recipe along +Z, with lengths in millimetres. |
57
17
 
58
18
  ## Guides
59
19
 
60
20
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
61
- - [Preflight guarantees and host settings](../../../guides/concepts.md#check-preflight-guarantees)
21
+ - [Preflight guarantees and host settings](../../../guides/resolution-and-inspection.md#check-preflight-guarantees)
22
+
23
+ ## Import
24
+
25
+ ```ts
26
+ import * as model from "@metamesh/modeling";
27
+ ```
62
28
 
63
- Package: `@metamesh/modeling@0.18.0`.
29
+ Package: `@metamesh/modeling@0.20.0`.
@@ -1,64 +1,40 @@
1
- # Transforms, vectors, and placement
1
+ # Shape patterns
2
2
 
3
- Calculate with immutable vectors, reuse transforms, and position geometry.
3
+ Repeat Solid and Section recipes along lines, grids, circles, or paths.
4
4
 
5
- Use `vector2`/`vector3` for immutable arithmetic and `transform2`/`transform3` for reusable placements. Tuples are accepted as operands; `dot()`, `length()`, and `distance()` return numbers. Shape `transform()` methods accept matching transforms directly.
5
+ Use `linearPattern`, `radialPattern`, `gridPattern`, and `pathPattern` to repeat Solid or Section recipes. A source callback can vary the geometry for each occurrence.
6
6
 
7
- - **Order and units:** operations and `andThen()` composition apply in written order. Rotations use degrees. Optional `{ pivot }` points use world coordinates and default to the origin.
8
- - **Transformed values:** `applyPoint()` includes translation; `applyDirection()` retains scale without translation; `applyNormal()` uses the inverse transpose and returns a unit vector.
9
- - **Interchange:** `toData()` returns canonical data. `to3D()` embeds XY placements explicitly; `to2D()` rejects plane changes.
10
- - **Attachment:** `Solid.attach()` and primitive attachment share source/target anchors, alignment, millimetre gap, and degree spin. Part placement can reuse finished geometry.
11
7
  - **Section patterns:** use XY directions and `Path2` trajectories. Tangent orientation aligns local +X in the XY plane; radial patterns use an XY pivot and implicit +Z axis.
12
8
  - **Solid patterns:** use XYZ inputs and explicit radial axes. Path tangent orientation aligns local +Z.
9
+ - **Placement:** keep final part placement separate from local geometry so repeated parts can reuse their meshes.
10
+
11
+ Import immutable vectors, transforms, anchors, and pure placement calculations from `/geometry`. Shared pattern option types also belong to that entry.
13
12
 
14
13
  ## Functions
15
14
 
16
15
  | API | Summary |
17
16
  | --- | --- |
18
- | [transform2](../transform2.md) | Creates an immutable XY transform, identity by default. |
19
- | [transform3](../transform3.md) | Creates an immutable XYZ transform, identity by default. |
20
- | [vector2](../vector2.md) | Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates. |
21
- | [vector3](../vector3.md) | Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates. |
22
17
  | [gridPattern](../gridPattern.md) | XY or XYZ copies, optionally centered or placed in an explicit frame. |
23
18
  | [linearPattern](../linearPattern.md) | Repeats one solid along a normalized direction. |
24
19
  | [pathPattern](../pathPattern.md) | Physical arc-length copies along a sampled path, with optional tangent orientation. |
25
20
  | [radialPattern](../radialPattern.md) | Repeats one solid about an axis. |
26
21
 
27
- ## Interfaces
28
-
29
- | API | Summary |
30
- | --- | --- |
31
- | [Transform2](../Transform2-type.md) | Immutable reusable XY placement. Methods apply in written order; angles are degrees. |
32
- | [Transform3](../Transform3-type.md) | Immutable reusable XYZ placement. Methods apply in written order; angles are degrees. |
33
- | [Pivot2Options](../Pivot2Options.md) | A fixed XY point in world coordinates; omitted pivots use the coordinate origin. |
34
- | [Pivot3Options](../Pivot3Options.md) | A fixed XYZ point in world coordinates; omitted pivots use the coordinate origin. |
35
- | [Vector2](../Vector2-type.md) | Immutable XY arithmetic; vector operations return new values and measurements return numbers. |
36
- | [Vector3](../Vector3-type.md) | Immutable XYZ arithmetic; vector operations return new values and measurements return numbers. |
37
- | [Anchor3](../Anchor3.md) | An attachment pose on a solid or assembly. |
38
- | [AttachOptions](../AttachOptions.md) | Options controlling how one anchor is attached to another. |
39
- | [PathPatternOptions](../PathPatternOptions.md) | Equal physical arc-length placements along an open or implicitly closed sampled path. |
40
- | [PrimitiveAttachment](../PrimitiveAttachment.md) | Anchor attachment shared by solid and filled-section factories. |
41
- | [PrimitiveAttachmentOptions](../PrimitiveAttachmentOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
42
-
43
22
  ## Type aliases
44
23
 
45
24
  | API | Summary |
46
25
  | --- | --- |
47
- | [Transform2Input](../Transform2Input.md) | An immutable XY transform or its canonical row-major matrix for interchange. |
48
- | [Transform3Input](../Transform3Input.md) | An immutable XYZ transform or its canonical row-major matrix for interchange. |
49
- | [Vector2Input](../Vector2Input.md) | An XY tuple or immutable fluent vector accepted by vector operations. |
50
- | [Vector3Input](../Vector3Input.md) | An XYZ tuple or immutable fluent vector accepted by vector operations. |
51
- | [GridPatternOptions](../GridPatternOptions.md) | XY or XYZ grid with X varying fastest. The first item starts at the local origin. Dimension 2 restricts counts and spacing to XY; any frame must preserve the XY plane. |
52
- | [LinearPatternOptions](../LinearPatternOptions.md) | Equal linear intervals determined by exactly two of count, spacing and total length. Dimension defaults to 3; Section patterns use 2 and accept XY vector directions. |
53
- | [PatternSource](../PatternSource.md) | One immutable shape, or a synchronous factory called once per copy in index order. |
54
- | [RadialPatternOptions](../RadialPatternOptions.md) | Degree rotations about a fixed world-space pivot; XY patterns use the implicit +Z axis. |
55
- | [Transform2Data](../Transform2Data.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]`. |
56
- | [Transform3Data](../Transform3Data.md) | A row-major affine 4x4 matrix applied to column vectors. |
26
+ | [PatternSource](../PatternSource.md) | One immutable shape, or a synchronous factory called once per copy in zero-based index order. |
57
27
 
58
28
  ## Guides
59
29
 
60
- - [Named anchors and custom frames](../../../guides/recipes.md#named-anchors-and-custom-frames)
61
- - [Primitive booleans and repeated placement](../../../guides/recipes.md#primitive-booleans-and-repeated-placement)
62
- - [Fluent values and standalone algorithms](../../../guides/concepts.md#choose-fluent-values-or-standalone-algorithms)
30
+ - [Named anchors and custom frames](../../../guides/transforms-and-placement.md#named-anchors-and-custom-frames)
31
+ - [Primitive booleans and repeated placement](../../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
32
+ - [Fluent values and standalone algorithms](../../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
33
+
34
+ ## Import
35
+
36
+ ```ts
37
+ import * as model from "@metamesh/modeling";
38
+ ```
63
39
 
64
- Package: `@metamesh/modeling@0.18.0`.
40
+ Package: `@metamesh/modeling@0.20.0`.
@@ -8,10 +8,14 @@ Centered circular section.
8
8
 
9
9
  ## Example: Size to polygon faces
10
10
 
11
+
12
+
11
13
  ```ts
12
- circle({ diameter: 12, sizing: "face" });
14
+ circle({ diameter: 12, sizing: "face" }).extrude({ height: 3 });
13
15
  ```
14
16
 
17
+
18
+
15
19
  ## Parameters
16
20
 
17
21
  <a id="options"></a>
@@ -32,8 +36,14 @@ circle({ diameter: 12, sizing: "face" });
32
36
 
33
37
  ## Guides
34
38
 
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)
39
+ - [Section, hole, offset, and extrusion](../../guides/profiles-and-extrusion.md#section-hole-offset-and-extrusion)
40
+ - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
41
+ - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
42
+
43
+ ## Import
44
+
45
+ ```ts
46
+ import { circle } from "@metamesh/modeling";
47
+ ```
38
48
 
39
- Package: `@metamesh/modeling@0.18.0`.
49
+ Package: `@metamesh/modeling@0.20.0`.
@@ -0,0 +1,88 @@
1
+ # cornerCutter
2
+
3
+ Creates a round or chamfer cutter at the origin for three perpendicular positive-axis faces. Complements matching edge cutters; construction, placement, and subtraction remain explicit.
4
+
5
+ **cornerCutter**(`options`: [`CornerCutterOptions`](CornerCutterOptions.md)): [`Solid`](Solid.md)
6
+
7
+
8
+
9
+ ## Example: Amber corner cutter · Blue three-edge junction
10
+
11
+
12
+
13
+ ```ts
14
+ import { box, cornerCutter, edgeCutter, generate } from "@metamesh/modeling";
15
+ import { transform3 } from "@metamesh/modeling/geometry";
16
+
17
+ const treatment = { kind: "round", radius: 5 } as const;
18
+ const cutter = cornerCutter({ treatment, excess: 0 });
19
+ const edge = edgeCutter({ length: 12, treatment, excess: 0 });
20
+ const result = box({ size: 12, center: false }).subtract([
21
+ edge,
22
+ edge.rotate([0, -90, 0]).translate([12, 0, 0]),
23
+ edge.rotate([90, 0, 0]).translate([0, 12, 0]),
24
+ cutter,
25
+ ]);
26
+ // Display the concave mask and completed upper junction from opposite sides.
27
+ const view = (shape: typeof result, center: number, height: number) =>
28
+ shape.translate([-center, -center, 0]).mirror([0, 0, 1]).translate([0, 0, height]).rotate([0, 0, 90]);
29
+ export default generate(({ part }) => [
30
+ part("cutter", { geometry: cutter.translate([-2.5, -2.5, 0]).rotate([0, 0, -90]), color: "#f6ad55", transform: transform3().translate([-8, -8, 0]) }),
31
+ part("result", { geometry: view(result, 6, 12), color: "#4f83a6", transform: transform3().translate([8, 8, 0]) }),
32
+ ]);
33
+ ```
34
+
35
+
36
+
37
+ ## Parameters
38
+
39
+ <a id="options"></a>
40
+
41
+ **`options`** · [`CornerCutterOptions`](CornerCutterOptions.md) · Required
42
+
43
+ - [`treatment`](CornerCutterOptions.md#treatment) · [`CornerCutterTreatment`](CornerCutterTreatment.md) · Required
44
+
45
+ Round sphere or triangular chamfer meeting three equal perpendicular edge treatments.
46
+
47
+ - [`excess`](CornerCutterOptions.md#excess) · `number` · Optional
48
+
49
+ Numerical extension outside the three material faces, in millimetres; defaults to 0.05.
50
+
51
+ - [`resolution`](CornerCutterOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
52
+
53
+ Physical sphere sampling; explicit round-treatment sampling takes precedence.
54
+
55
+ - [`limits`](CornerCutterOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
56
+
57
+ Local allocation ceilings may only lower the evaluating host's limits.
58
+
59
+ - [`attachment`](CornerCutterOptions.md#attachment) · [`PrimitiveAttachmentOptions`](PrimitiveAttachmentOptions.md) · Optional
60
+
61
+ Applied after local construction; Section attachment must preserve the XY plane.
62
+
63
+
64
+
65
+ ## Returns
66
+
67
+ [`Solid`](Solid.md)
68
+
69
+
70
+ ## Related APIs
71
+
72
+ - [CornerCutterOptions](CornerCutterOptions.md)
73
+ - [Solid](Solid.md)
74
+
75
+ ## Guides
76
+
77
+ - [Choose a primitive](../../guides/profiles-and-extrusion.md#choose-a-primitive)
78
+ - [Treated boxes, frustums, and mirrored arrays](../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
79
+ - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
80
+ - [Shape openings and local edges](../../guides/profiles-and-extrusion.md#shape-openings-and-local-edges)
81
+
82
+ ## Import
83
+
84
+ ```ts
85
+ import { cornerCutter } from "@metamesh/modeling";
86
+ ```
87
+
88
+ Package: `@metamesh/modeling@0.20.0`.