@metamesh/modeling 0.19.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 (789) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +34 -18
  3. package/dist/api/engine.d.ts +217 -121
  4. package/dist/api/export.d.ts +123 -79
  5. package/dist/api/geometry.d.ts +406 -2102
  6. package/dist/api/index.d.ts +472 -1798
  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 +360 -88
  10. package/dist/api/text.d.ts +24 -44
  11. package/dist/docs/guides/concepts.md +67 -33
  12. package/dist/docs/guides/exporting.md +88 -0
  13. package/dist/docs/guides/fonts.md +5 -3
  14. package/dist/docs/guides/fundamentals.md +12 -24
  15. package/dist/docs/guides/generation.md +24 -16
  16. package/dist/docs/guides/geometry-values.md +192 -134
  17. package/dist/docs/guides/hosting.md +51 -96
  18. package/dist/docs/guides/profiles-and-extrusion.md +159 -11
  19. package/dist/docs/guides/recipes.md +121 -28
  20. package/dist/docs/guides/resolution-and-inspection.md +43 -23
  21. package/dist/docs/guides/solid-joins.md +12 -2
  22. package/dist/docs/guides/standalone-model.md +4 -2
  23. package/dist/docs/guides/svg-and-text.md +76 -39
  24. package/dist/docs/guides/sweeps-and-lofts.md +88 -44
  25. package/dist/docs/guides/transforms-and-placement.md +113 -103
  26. package/dist/docs/guides/workers.md +166 -0
  27. package/dist/docs/manifest.json +4133 -4153
  28. package/dist/docs/reference/engine/GenerationOptions.md +2 -3
  29. package/dist/docs/reference/engine/GeometryResource.md +6 -6
  30. package/dist/docs/reference/engine/ModelDependencies.md +2 -2
  31. package/dist/docs/reference/engine/ModelEngine.md +2 -3
  32. package/dist/docs/reference/engine/ModelEngineOptions.md +2 -7
  33. package/dist/docs/reference/engine/ModelPart.md +6 -6
  34. package/dist/docs/reference/engine/ModelResult.md +2 -2
  35. package/dist/docs/reference/engine/ModelRunArguments.md +2 -2
  36. package/dist/docs/reference/engine/ModelRunOptions.md +2 -3
  37. package/dist/docs/reference/engine/ModelSession.md +2 -2
  38. package/dist/docs/reference/engine/SessionOptions.md +2 -3
  39. package/dist/docs/reference/engine/categories/host-lifecycle.md +9 -3
  40. package/dist/docs/reference/engine/checkModel.md +6 -2
  41. package/dist/docs/reference/engine/createModelEngine.md +5 -3
  42. package/dist/docs/reference/engine/defaultModelingLimits.md +4 -11
  43. package/dist/docs/reference/engine/modelingWasmUrl.md +2 -2
  44. package/dist/docs/reference/engine.md +7 -1
  45. package/dist/docs/reference/export/Export3mfOptions.md +2 -6
  46. package/dist/docs/reference/export/ExportDiagnostic.md +2 -14
  47. package/dist/docs/reference/export/ExportFormat.md +2 -14
  48. package/dist/docs/reference/export/ExportGeometry.md +3 -15
  49. package/dist/docs/reference/export/ExportGlbOptions.md +14 -18
  50. package/dist/docs/reference/export/ExportLimits.md +2 -14
  51. package/dist/docs/reference/export/ExportMaterial.md +2 -14
  52. package/dist/docs/reference/export/ExportOptions.md +2 -14
  53. package/dist/docs/reference/export/ExportPart.md +2 -14
  54. package/dist/docs/reference/export/ExportReport.md +2 -14
  55. package/dist/docs/reference/export/ExportSink.md +5 -15
  56. package/dist/docs/reference/export/ExportStlOptions.md +2 -6
  57. package/dist/docs/reference/export/ExportedFile.md +14 -26
  58. package/dist/docs/reference/export/categories/mesh-serialization.md +9 -3
  59. package/dist/docs/reference/export/defaultExportLimits.md +2 -2
  60. package/dist/docs/reference/export/export3mf.md +4 -6
  61. package/dist/docs/reference/export/exportGlb.md +8 -10
  62. package/dist/docs/reference/export/exportStl.md +4 -6
  63. package/dist/docs/reference/export/write3mf.md +6 -6
  64. package/dist/docs/reference/export/writeGlb.md +10 -10
  65. package/dist/docs/reference/export/writeStl.md +6 -6
  66. package/dist/docs/reference/export.md +9 -3
  67. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +4 -4
  68. package/dist/docs/reference/geometry/Anchor3-type.md +3 -7
  69. package/dist/docs/reference/geometry/Anchor3Options.md +70 -0
  70. package/dist/docs/reference/geometry/ArcCurve2.md +3 -3
  71. package/dist/docs/reference/geometry/ArcCurve3.md +3 -3
  72. package/dist/docs/reference/geometry/AttachOptions.md +4 -9
  73. package/dist/docs/reference/geometry/Bounds2-type.md +9 -30
  74. package/dist/docs/reference/geometry/Bounds2Data.md +2 -19
  75. package/dist/docs/reference/geometry/Bounds2Input.md +2 -10
  76. package/dist/docs/reference/geometry/Bounds2Options.md +2 -6
  77. package/dist/docs/reference/geometry/Bounds3-type.md +9 -30
  78. package/dist/docs/reference/geometry/Bounds3Data.md +2 -15
  79. package/dist/docs/reference/geometry/Bounds3Input.md +2 -10
  80. package/dist/docs/reference/geometry/Bounds3Options.md +2 -6
  81. package/dist/docs/reference/geometry/BoundsFit2.md +2 -2
  82. package/dist/docs/reference/geometry/BoundsFit3.md +2 -2
  83. package/dist/docs/reference/geometry/BoundsFitOptions.md +2 -2
  84. package/dist/docs/reference/geometry/BoxAnchorFace.md +3 -3
  85. package/dist/docs/reference/geometry/BoxAnchorOptions.md +3 -3
  86. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +3 -7
  87. package/dist/docs/reference/geometry/CircleContourOptions.md +3 -7
  88. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +3 -12
  89. package/dist/docs/reference/geometry/CircularResolutionOptions.md +2 -2
  90. package/dist/docs/reference/geometry/CircularSampling.md +2 -2
  91. package/dist/docs/reference/geometry/CircularSamplingOptions.md +2 -2
  92. package/dist/docs/reference/geometry/Contour.md +4 -9
  93. package/dist/docs/reference/geometry/ContourCurve.md +3 -3
  94. package/dist/docs/reference/geometry/ContourPoint.md +3 -3
  95. package/dist/docs/reference/geometry/ContourSegment.md +3 -3
  96. package/dist/docs/reference/geometry/CorrespondingComponent.md +3 -7
  97. package/dist/docs/reference/geometry/CorrespondingContour.md +3 -7
  98. package/dist/docs/reference/geometry/CorrespondingProfile.md +3 -7
  99. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +4 -8
  100. package/dist/docs/reference/geometry/CubicBezierCurve2.md +3 -3
  101. package/dist/docs/reference/geometry/CubicBezierCurve3.md +3 -3
  102. package/dist/docs/reference/geometry/Curve2.md +3 -3
  103. package/dist/docs/reference/geometry/Curve3.md +3 -3
  104. package/dist/docs/reference/geometry/CurveSamplingOptions.md +3 -11
  105. package/dist/docs/reference/geometry/CylinderAnchorFace.md +3 -3
  106. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +4 -4
  107. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +2 -2
  108. package/dist/docs/reference/geometry/EdgeTreatment.md +2 -6
  109. package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -7
  110. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +9 -18
  111. package/dist/docs/reference/geometry/FittedTextLayout.md +2 -2
  112. package/dist/docs/reference/geometry/{Frame3.md → Frame3-type.md} +4 -11
  113. package/dist/docs/reference/geometry/Frame3Options.md +69 -0
  114. package/dist/docs/reference/geometry/GeometryError.md +2 -6
  115. package/dist/docs/reference/geometry/GeometryErrorCode.md +2 -6
  116. package/dist/docs/reference/geometry/GeometryErrorContext.md +2 -6
  117. package/dist/docs/reference/geometry/GeometryResolution.md +2 -10
  118. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +3 -11
  119. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +3 -11
  120. package/dist/docs/reference/geometry/GridPatternOptions.md +7 -9
  121. package/dist/docs/reference/geometry/ImmutableBuffer-type.md +2 -10
  122. package/dist/docs/reference/geometry/LineCurve2.md +3 -3
  123. package/dist/docs/reference/geometry/LineCurve3.md +3 -3
  124. package/dist/docs/reference/geometry/LinearPatternOptions.md +2 -6
  125. package/dist/docs/reference/geometry/LoftPlacement.md +13 -21
  126. package/dist/docs/reference/geometry/MatchProfilesOptions.md +3 -7
  127. package/dist/docs/reference/geometry/ModelingLimits.md +2 -14
  128. package/dist/docs/reference/geometry/NumericArray.md +2 -10
  129. package/dist/docs/reference/geometry/Path2-type.md +153 -12
  130. package/dist/docs/reference/geometry/Path2Data.md +3 -11
  131. package/dist/docs/reference/geometry/Path2Input.md +3 -11
  132. package/dist/docs/reference/geometry/Path3-type.md +153 -12
  133. package/dist/docs/reference/geometry/Path3Data.md +3 -11
  134. package/dist/docs/reference/geometry/Path3Input.md +3 -11
  135. package/dist/docs/reference/geometry/PathFrame.md +3 -3
  136. package/dist/docs/reference/geometry/PathLocation.md +3 -11
  137. package/dist/docs/reference/geometry/PathNormalGuide.md +4 -12
  138. package/dist/docs/reference/geometry/PathOptions.md +3 -7
  139. package/dist/docs/reference/geometry/PathPatternOptions.md +3 -7
  140. package/dist/docs/reference/geometry/PathPlacement.md +5 -5
  141. package/dist/docs/reference/geometry/PathResamplingOptions.md +3 -11
  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 +3 -11
  145. package/dist/docs/reference/geometry/Pivot3Options.md +3 -11
  146. package/dist/docs/reference/geometry/PolygonData.md +4 -8
  147. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +3 -3
  148. package/dist/docs/reference/geometry/Profile.md +3 -4
  149. package/dist/docs/reference/geometry/ProfileComponent2.md +3 -7
  150. package/dist/docs/reference/geometry/ProfileContour2.md +3 -7
  151. package/dist/docs/reference/geometry/ProfileSpan2.md +3 -7
  152. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +5 -8
  153. package/dist/docs/reference/geometry/RadialPatternOptions.md +2 -6
  154. package/dist/docs/reference/geometry/RadialSizing.md +2 -6
  155. package/dist/docs/reference/geometry/RadialSizingOptions.md +2 -6
  156. package/dist/docs/reference/geometry/RectangleContourOptions.md +4 -7
  157. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +3 -7
  158. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +3 -7
  159. package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
  160. package/dist/docs/reference/geometry/RegionData.md +3 -7
  161. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +3 -3
  162. package/dist/docs/reference/geometry/ResolvedGeometryResolution.md +71 -0
  163. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +2 -2
  164. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +2 -6
  165. package/dist/docs/reference/geometry/RowLayoutOptions.md +2 -2
  166. package/dist/docs/reference/geometry/SampleContourOptions.md +3 -3
  167. package/dist/docs/reference/geometry/SampleHelixOptions.md +3 -3
  168. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +3 -3
  169. package/dist/docs/reference/geometry/SampledCurve2.md +3 -3
  170. package/dist/docs/reference/geometry/SampledCurve3.md +3 -3
  171. package/dist/docs/reference/geometry/SideProfileCurve.md +3 -3
  172. package/dist/docs/reference/geometry/SideProfilePoint.md +3 -3
  173. package/dist/docs/reference/geometry/SideProfileSegment.md +3 -3
  174. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +2 -6
  175. package/dist/docs/reference/geometry/SplineOptions.md +69 -0
  176. package/dist/docs/reference/geometry/StarContourOptions.md +7 -7
  177. package/dist/docs/reference/geometry/StrokeCap.md +2 -6
  178. package/dist/docs/reference/geometry/StrokeJoin.md +2 -6
  179. package/dist/docs/reference/geometry/StrokeOptions.md +3 -7
  180. package/dist/docs/reference/geometry/SvgImportOptions.md +4 -4
  181. package/dist/docs/reference/geometry/SvgRegionPreflight.md +2 -2
  182. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +2 -2
  183. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +2 -2
  184. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +2 -2
  185. package/dist/docs/reference/geometry/Transform2-type.md +3 -11
  186. package/dist/docs/reference/geometry/Transform2Data.md +3 -11
  187. package/dist/docs/reference/geometry/Transform2Input.md +3 -11
  188. package/dist/docs/reference/geometry/Transform3-type.md +4 -12
  189. package/dist/docs/reference/geometry/Transform3Data.md +3 -11
  190. package/dist/docs/reference/geometry/Transform3Input.md +6 -13
  191. package/dist/docs/reference/geometry/Vector2-type.md +3 -11
  192. package/dist/docs/reference/geometry/Vector2Data.md +3 -15
  193. package/dist/docs/reference/geometry/Vector2Input.md +3 -11
  194. package/dist/docs/reference/geometry/Vector3-type.md +27 -11
  195. package/dist/docs/reference/geometry/Vector3Data.md +3 -11
  196. package/dist/docs/reference/geometry/Vector3Input.md +3 -11
  197. package/dist/docs/reference/geometry/VectorTextLayout.md +2 -10
  198. package/dist/docs/reference/geometry/VectorTextMetrics.md +3 -11
  199. package/dist/docs/reference/geometry/anchor3.md +17 -26
  200. package/dist/docs/reference/geometry/anchorFrame3.md +6 -6
  201. package/dist/docs/reference/geometry/attachmentTransform3.md +8 -8
  202. package/dist/docs/reference/geometry/bounds2.md +6 -8
  203. package/dist/docs/reference/geometry/bounds3.md +4 -6
  204. package/dist/docs/reference/geometry/boundsCenter.md +2 -2
  205. package/dist/docs/reference/geometry/boundsSize.md +2 -2
  206. package/dist/docs/reference/geometry/boxAnchor3.md +3 -3
  207. package/dist/docs/reference/geometry/categories/bounds-layout.md +9 -3
  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 +10 -4
  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 +7 -4
  216. package/dist/docs/reference/geometry/circleContour.md +3 -3
  217. package/dist/docs/reference/geometry/closeToAxis.md +7 -3
  218. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +9 -6
  219. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +13 -6
  220. package/dist/docs/reference/geometry/contourContainsPoint.md +7 -3
  221. package/dist/docs/reference/geometry/cylinderAnchor3.md +5 -5
  222. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +3 -3
  223. package/dist/docs/reference/geometry/distributeAlongPath.md +16 -11
  224. package/dist/docs/reference/geometry/ellipseContour.md +3 -3
  225. package/dist/docs/reference/geometry/fitBounds.md +10 -2
  226. package/dist/docs/reference/geometry/fitTextLayout.md +5 -5
  227. package/dist/docs/reference/geometry/frame3.md +66 -0
  228. package/dist/docs/reference/geometry/gridPatternTransforms.md +6 -6
  229. package/dist/docs/reference/geometry/immutableBuffer.md +5 -7
  230. package/dist/docs/reference/geometry/isGeometryError.md +2 -6
  231. package/dist/docs/reference/geometry/layoutRow.md +4 -2
  232. package/dist/docs/reference/geometry/linearPatternTransforms.md +6 -6
  233. package/dist/docs/reference/geometry/matchProfiles.md +5 -3
  234. package/dist/docs/reference/geometry/normalizeContour.md +8 -4
  235. package/dist/docs/reference/geometry/normalizePolygon.md +5 -3
  236. package/dist/docs/reference/geometry/normalizeRegion.md +5 -3
  237. package/dist/docs/reference/geometry/path2.md +7 -7
  238. package/dist/docs/reference/geometry/path3.md +7 -7
  239. package/dist/docs/reference/geometry/pathPatternTransforms.md +12 -8
  240. package/dist/docs/reference/geometry/preflightSvgRegion.md +5 -5
  241. package/dist/docs/reference/geometry/radialPatternTransforms.md +5 -5
  242. package/dist/docs/reference/geometry/rectangleContour.md +3 -3
  243. package/dist/docs/reference/geometry/rectangleProfile.md +3 -4
  244. package/dist/docs/reference/geometry/regionArea.md +3 -3
  245. package/dist/docs/reference/geometry/regionBounds.md +6 -4
  246. package/dist/docs/reference/geometry/regularPolygonContour.md +3 -3
  247. package/dist/docs/reference/geometry/resamplePolyline2.md +7 -3
  248. package/dist/docs/reference/geometry/resamplePolyline3.md +7 -3
  249. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +5 -5
  250. package/dist/docs/reference/geometry/resolveArcSegments.md +8 -6
  251. package/dist/docs/reference/geometry/resolveCircularSampling.md +2 -2
  252. package/dist/docs/reference/geometry/resolveCircularSegments.md +5 -3
  253. package/dist/docs/reference/geometry/{resolveExtrusionDivisions.md → resolveExtrusionSlices.md} +16 -15
  254. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +5 -3
  255. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +3 -3
  256. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +12 -5
  257. package/dist/docs/reference/geometry/sampleContour.md +5 -5
  258. package/dist/docs/reference/geometry/sampleCurve2.md +7 -3
  259. package/dist/docs/reference/geometry/sampleCurve3.md +7 -3
  260. package/dist/docs/reference/geometry/sampleHelix.md +3 -3
  261. package/dist/docs/reference/geometry/sampleSideProfile.md +5 -5
  262. package/dist/docs/reference/geometry/sampleTextContours.md +3 -3
  263. package/dist/docs/reference/geometry/signedContourArea.md +5 -3
  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 +3 -3
  267. package/dist/docs/reference/geometry/strokeRegionData.md +8 -5
  268. package/dist/docs/reference/geometry/transform2.md +5 -7
  269. package/dist/docs/reference/geometry/transform3.md +23 -10
  270. package/dist/docs/reference/geometry/transformRegionData.md +7 -3
  271. package/dist/docs/reference/geometry/triangulateContour.md +6 -4
  272. package/dist/docs/reference/geometry/vector2.md +6 -8
  273. package/dist/docs/reference/geometry/vector3.md +8 -8
  274. package/dist/docs/reference/geometry.md +13 -18
  275. package/dist/docs/reference/{geometry → math}/AxisAngleRotation3.md +4 -5
  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 +4 -13
  311. package/dist/docs/reference/{geometry → mechanical}/Bevel.md +3 -11
  312. package/dist/docs/reference/{geometry → mechanical}/BevelSize.md +3 -11
  313. package/dist/docs/reference/{geometry → mechanical}/ButtressPressureFlankSide.md +3 -11
  314. package/dist/docs/reference/{geometry → mechanical}/ButtressThreadProfileSpec.md +4 -13
  315. package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleDimensions.md +3 -3
  316. package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleFit.md +3 -3
  317. package/dist/docs/reference/{geometry → mechanical}/CompensatedThreadDiameters.md +3 -3
  318. package/dist/docs/reference/{geometry → mechanical}/CustomThreadProfileSpec.md +5 -15
  319. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearDimensions.md +3 -3
  320. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearMeshKind.md +3 -3
  321. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearOutlineOptions.md +5 -10
  322. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairDimensions.md +3 -3
  323. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionOptions.md +3 -3
  324. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionReport.md +3 -3
  325. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairSpec.md +3 -3
  326. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearSpec.md +3 -3
  327. package/dist/docs/reference/{geometry → mechanical}/InternalThreadCutterOptions.md +6 -13
  328. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeBaseSpec.md +3 -7
  329. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeDimensions.md +4 -5
  330. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeInterval.md +3 -3
  331. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSamplingOptions.md +5 -14
  332. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSpec.md +3 -7
  333. package/dist/docs/reference/{geometry → mechanical}/METRIC_FASTENER_STANDARDS.md +3 -3
  334. package/dist/docs/reference/{geometry → mechanical}/MetricFastenerSize.md +3 -3
  335. package/dist/docs/reference/{geometry → mechanical}/MetricFastenerStandard.md +3 -3
  336. package/dist/docs/reference/{geometry → mechanical}/MetricHexNutDimensions.md +3 -3
  337. package/dist/docs/reference/{geometry → mechanical}/MetricSocketCapHeadDimensions.md +3 -3
  338. package/dist/docs/reference/{geometry → mechanical}/PRINTABLE_THREAD_FIT_POLICIES.md +3 -3
  339. package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFit.md +3 -7
  340. package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFitPolicy.md +3 -7
  341. package/dist/docs/reference/{geometry → mechanical}/RackPitchDimensions.md +3 -3
  342. package/dist/docs/reference/{geometry → mechanical}/RackPitchSpec.md +3 -3
  343. package/dist/docs/reference/{geometry → mechanical}/SampledThreadHelices.md +4 -8
  344. package/dist/docs/reference/{geometry → mechanical}/SquareThreadProfileSpec.md +4 -13
  345. package/dist/docs/reference/{geometry → mechanical}/ThreadBevelOptions.md +3 -7
  346. package/dist/docs/reference/{geometry → mechanical}/ThreadCircularSegmentsOptions.md +5 -7
  347. package/dist/docs/reference/{geometry → mechanical}/ThreadCompensationOptions.md +4 -5
  348. package/dist/docs/reference/{geometry → mechanical}/ThreadEndStyle.md +3 -11
  349. package/dist/docs/reference/{geometry → mechanical}/ThreadEndTreatmentOptions.md +3 -11
  350. package/dist/docs/reference/{geometry → mechanical}/ThreadHandedness.md +3 -11
  351. package/dist/docs/reference/{geometry → mechanical}/ThreadHelixOptions.md +5 -7
  352. package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInEnvelope.md +3 -11
  353. package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInShape.md +3 -11
  354. package/dist/docs/reference/{geometry → mechanical}/ThreadProfile-type.md +5 -17
  355. package/dist/docs/reference/{geometry → mechanical}/ThreadProfileBaseSpec.md +4 -13
  356. package/dist/docs/reference/{geometry → mechanical}/ThreadProfileSpec.md +3 -11
  357. package/dist/docs/reference/{geometry → mechanical}/ThreadRidgeOptions.md +7 -18
  358. package/dist/docs/reference/{geometry → mechanical}/ThreadRole.md +3 -3
  359. package/dist/docs/reference/{geometry → mechanical}/ThreadSolidOptions.md +8 -15
  360. package/dist/docs/reference/{geometry → mechanical}/ThreadSolidPreflight.md +3 -11
  361. package/dist/docs/reference/{geometry → mechanical}/ThreadedNutOptions.md +7 -14
  362. package/dist/docs/reference/{geometry → mechanical}/ThreadedNutPreflight.md +3 -7
  363. package/dist/docs/reference/{geometry → mechanical}/ThreadedNutShape.md +3 -7
  364. package/dist/docs/reference/{geometry → mechanical}/ThreadedRodOptions.md +6 -13
  365. package/dist/docs/reference/{geometry → mechanical}/TrapezoidalThreadProfileSpec.md +4 -13
  366. package/dist/docs/reference/{geometry → mechanical}/TriangularThreadProfileSpec.md +4 -13
  367. package/dist/docs/reference/{geometry → mechanical}/categories/mechanical.md +8 -2
  368. package/dist/docs/reference/{geometry → mechanical}/compensateThreadDiameters.md +4 -4
  369. package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileAxially.md +12 -6
  370. package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileForFaceting.md +13 -3
  371. package/dist/docs/reference/{geometry → mechanical}/getMetricClearanceHoleDiameter.md +3 -3
  372. package/dist/docs/reference/{geometry → mechanical}/getMetricFastenerStandard.md +3 -3
  373. package/dist/docs/reference/{geometry → mechanical}/measureInternalCylindricalGearPairMotion.md +9 -7
  374. package/dist/docs/reference/{geometry → mechanical}/minimumCylindricalGearToothCountWithoutUndercut.md +5 -3
  375. package/dist/docs/reference/{geometry → mechanical}/preflightInternalThreadCutter.md +8 -6
  376. package/dist/docs/reference/{geometry → mechanical}/preflightThreadedNut.md +9 -7
  377. package/dist/docs/reference/{geometry → mechanical}/preflightThreadedRod.md +8 -6
  378. package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGear.md +5 -3
  379. package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGearPair.md +5 -3
  380. package/dist/docs/reference/{geometry → mechanical}/resolveKnuckleHinge.md +9 -7
  381. package/dist/docs/reference/{geometry → mechanical}/resolvePrintableThreadFitPolicy.md +5 -3
  382. package/dist/docs/reference/{geometry → mechanical}/resolveRackPitch.md +5 -3
  383. package/dist/docs/reference/{geometry → mechanical}/resolveThreadCircularSegments.md +7 -5
  384. package/dist/docs/reference/{geometry → mechanical}/sampleCylindricalGearOutline.md +9 -8
  385. package/dist/docs/reference/{geometry → mechanical}/sampleInternalCylindricalGearSpaceOutline.md +9 -8
  386. package/dist/docs/reference/{geometry → mechanical}/sampleRackToothPath.md +10 -8
  387. package/dist/docs/reference/{geometry → mechanical}/sampleThreadHelices.md +8 -6
  388. package/dist/docs/reference/{geometry → mechanical}/threadProfile.md +7 -3
  389. package/dist/docs/reference/mechanical.md +19 -0
  390. package/dist/docs/reference/mesh/ExtrudeMeshOptions.md +128 -0
  391. package/dist/docs/reference/{geometry → mesh}/HeightfieldMeshLimits.md +5 -13
  392. package/dist/docs/reference/{geometry → mesh}/HeightfieldPreflight.md +3 -7
  393. package/dist/docs/reference/{geometry → mesh}/ImmutableTriangleMesh.md +5 -17
  394. package/dist/docs/reference/mesh/LoftMeshStation.md +32 -0
  395. package/dist/docs/reference/mesh/MeshRenderOptions.md +3 -3
  396. package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationFallbackReason.md +4 -8
  397. package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationOptions.md +4 -9
  398. package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationResult.md +4 -8
  399. package/dist/docs/reference/{geometry → mesh}/PlanarPatchQuality.md +4 -12
  400. package/dist/docs/reference/mesh/RenderMesh.md +19 -19
  401. package/dist/docs/reference/{geometry → mesh}/SolidMeshValidationOptions.md +4 -12
  402. package/dist/docs/reference/{geometry → mesh}/TriangleMesh.md +8 -12
  403. package/dist/docs/reference/{geometry → mesh}/TriangleMeshAnalysis.md +5 -14
  404. package/dist/docs/reference/{geometry → mesh}/TriangleMeshAnalysisOptions.md +4 -9
  405. package/dist/docs/reference/{geometry → mesh}/TriangleMeshInput.md +3 -7
  406. package/dist/docs/reference/{geometry → mesh}/TriangleMeshMeasurements.md +5 -14
  407. package/dist/docs/reference/{geometry → mesh}/TriangleMeshQualityOptions.md +4 -9
  408. package/dist/docs/reference/{geometry → mesh}/TriangleMeshQualityReport.md +3 -7
  409. package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignature.md +4 -9
  410. package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignatureOptions.md +3 -7
  411. package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignatureTolerances.md +3 -7
  412. package/dist/docs/reference/{geometry → mesh}/TriangleMeshTopologyAnalysis.md +5 -14
  413. package/dist/docs/reference/{geometry → mesh}/TriangleMeshValidationOptions.md +4 -9
  414. package/dist/docs/reference/mesh/analyze.md +26 -18
  415. package/dist/docs/reference/mesh/analyzeQuality.md +12 -12
  416. package/dist/docs/reference/mesh/bounds.md +5 -6
  417. package/dist/docs/reference/mesh/categories/operations.md +37 -4
  418. package/dist/docs/reference/mesh/centroid.md +5 -6
  419. package/dist/docs/reference/mesh/extrude.md +21 -20
  420. package/dist/docs/reference/mesh/heightfield.md +8 -8
  421. package/dist/docs/reference/mesh/immutable.md +7 -5
  422. package/dist/docs/reference/mesh/join.md +7 -7
  423. package/dist/docs/reference/mesh/loft.md +19 -18
  424. package/dist/docs/reference/mesh/optimizePlanarPatches.md +21 -21
  425. package/dist/docs/reference/mesh/preflightHeightfield.md +8 -8
  426. package/dist/docs/reference/mesh/preflightThreadSolid.md +22 -25
  427. package/dist/docs/reference/mesh/render.md +7 -5
  428. package/dist/docs/reference/mesh/reverse.md +7 -7
  429. package/dist/docs/reference/mesh/revolve.md +12 -14
  430. package/dist/docs/reference/mesh/signature.md +12 -12
  431. package/dist/docs/reference/mesh/sweep.md +96 -25
  432. package/dist/docs/reference/mesh/threadRidge.md +19 -18
  433. package/dist/docs/reference/mesh/threadSolid.md +23 -22
  434. package/dist/docs/reference/mesh/transform.md +8 -9
  435. package/dist/docs/reference/mesh/validate.md +11 -11
  436. package/dist/docs/reference/mesh/validateSolid.md +10 -10
  437. package/dist/docs/reference/mesh.md +8 -2
  438. package/dist/docs/reference/model/BoxEdge.md +23 -0
  439. package/dist/docs/reference/model/BoxEdgeSelection.md +27 -0
  440. package/dist/docs/reference/model/BoxEdgeTreatments.md +27 -0
  441. package/dist/docs/reference/{geometry → model}/BoxOptions.md +12 -12
  442. package/dist/docs/reference/model/CircleOptions.md +4 -5
  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/{HoleCutterOverrun.md → CutterOverrun.md} +8 -7
  446. package/dist/docs/reference/model/CylinderOptions.md +64 -0
  447. package/dist/docs/reference/model/DiagnosticOptions.md +2 -2
  448. package/dist/docs/reference/model/EdgeCutterOptions.md +129 -0
  449. package/dist/docs/reference/model/EllipseOptions.md +4 -5
  450. package/dist/docs/reference/model/EndTreatments.md +43 -0
  451. package/dist/docs/reference/model/ExtrudeOptions.md +153 -0
  452. package/dist/docs/reference/model/GenerateCallback.md +2 -2
  453. package/dist/docs/reference/model/GenerateContext.md +27 -3
  454. package/dist/docs/reference/model/GenerationDiagnostic.md +2 -2
  455. package/dist/docs/reference/model/GenerationError.md +2 -2
  456. package/dist/docs/reference/{geometry → model}/HeightfieldOptions.md +5 -23
  457. package/dist/docs/reference/model/HoleCutterOpening.md +27 -0
  458. package/dist/docs/reference/model/HoleCutterOptions.md +9 -22
  459. package/dist/docs/reference/model/HoleCutterRecess.md +5 -4
  460. package/dist/docs/reference/model/HullOptions.md +2 -3
  461. package/dist/docs/reference/model/ImmutableValue.md +2 -2
  462. package/dist/docs/reference/model/ImplicitOptions.md +3 -9
  463. package/dist/docs/reference/model/JoinOptions.md +2 -5
  464. package/dist/docs/reference/model/JoinTransition.md +2 -2
  465. package/dist/docs/reference/model/KnuckleHinge-type.md +2 -3
  466. package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +2 -2
  467. package/dist/docs/reference/model/KnuckleHingeOptions.md +3 -5
  468. package/dist/docs/reference/model/KnuckleHingeWeb.md +2 -2
  469. package/dist/docs/reference/{geometry → model}/LoftCorrespondence.md +8 -11
  470. package/dist/docs/reference/{geometry → model}/LoftOptions.md +11 -16
  471. package/dist/docs/reference/model/LoftStation.md +4 -5
  472. package/dist/docs/reference/model/Memo.md +2 -2
  473. package/dist/docs/reference/model/ModelProgram.md +2 -2
  474. package/dist/docs/reference/model/PartDeclaration.md +4 -5
  475. package/dist/docs/reference/model/PartGeometry.md +3 -5
  476. package/dist/docs/reference/model/PartOptions.md +4 -5
  477. package/dist/docs/reference/model/PatternSource.md +4 -4
  478. package/dist/docs/reference/model/PlaneOptions.md +3 -7
  479. package/dist/docs/reference/model/PolygonOptions.md +2 -7
  480. package/dist/docs/reference/model/PrimitiveAttachment.md +50 -0
  481. package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +111 -0
  482. package/dist/docs/reference/model/RectangleOptions.md +21 -26
  483. package/dist/docs/reference/model/RegularPolygonOptions.md +4 -37
  484. package/dist/docs/reference/{geometry → model}/RevolveOptions.md +15 -24
  485. package/dist/docs/reference/model/Section.md +115 -53
  486. package/dist/docs/reference/model/SectionHullOptions.md +2 -3
  487. package/dist/docs/reference/model/SectionInspection.md +2 -6
  488. package/dist/docs/reference/model/SectionOffsetJoin.md +2 -2
  489. package/dist/docs/reference/model/SectionOffsetOptions.md +2 -3
  490. package/dist/docs/reference/model/Solid.md +24 -12
  491. package/dist/docs/reference/model/SolidInspection.md +2 -6
  492. package/dist/docs/reference/model/SolidSegmentHit.md +2 -6
  493. package/dist/docs/reference/model/SphereOptions.md +27 -0
  494. package/dist/docs/reference/model/StarOptions.md +21 -23
  495. package/dist/docs/reference/model/SvgOrigin.md +2 -2
  496. package/dist/docs/reference/model/SvgPathSectionOptions.md +3 -5
  497. package/dist/docs/reference/model/SvgSectionOptions.md +3 -6
  498. package/dist/docs/reference/model/SweepOptions.md +109 -0
  499. package/dist/docs/reference/model/SweepOrientation.md +119 -0
  500. package/dist/docs/reference/model/SweepTransformOptions.md +105 -0
  501. package/dist/docs/reference/model/TextSectionOptions.md +2 -7
  502. package/dist/docs/reference/{geometry → model}/TorusOptions.md +11 -10
  503. package/dist/docs/reference/model/TubeOptions.md +84 -0
  504. package/dist/docs/reference/model/box.md +11 -10
  505. package/dist/docs/reference/model/categories/boolean-operations.md +9 -3
  506. package/dist/docs/reference/model/categories/bounded-surfaces.md +13 -1
  507. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +26 -7
  508. package/dist/docs/reference/model/categories/generation.md +11 -3
  509. package/dist/docs/reference/model/categories/hinges.md +7 -1
  510. package/dist/docs/reference/model/categories/mesh-inspection.md +7 -1
  511. package/dist/docs/reference/model/categories/primitives.md +34 -6
  512. package/dist/docs/reference/model/categories/sections.md +8 -2
  513. package/dist/docs/reference/model/categories/threads.md +8 -5
  514. package/dist/docs/reference/model/categories/transforms-placement.md +15 -10
  515. package/dist/docs/reference/model/circle.md +7 -3
  516. package/dist/docs/reference/model/cornerCutter.md +88 -0
  517. package/dist/docs/reference/model/cylinder.md +6 -5
  518. package/dist/docs/reference/model/edgeCutter.md +91 -0
  519. package/dist/docs/reference/model/ellipse.md +7 -3
  520. package/dist/docs/reference/model/extrude.md +29 -23
  521. package/dist/docs/reference/model/generate.md +4 -2
  522. package/dist/docs/reference/model/gridPattern.md +11 -4
  523. package/dist/docs/reference/model/heightfield.md +5 -5
  524. package/dist/docs/reference/model/holeCutter.md +26 -12
  525. package/dist/docs/reference/model/hull.md +2 -2
  526. package/dist/docs/reference/model/implicit.md +3 -3
  527. package/dist/docs/reference/model/internalThreadCutter.md +32 -21
  528. package/dist/docs/reference/model/intersect.md +7 -3
  529. package/dist/docs/reference/model/join.md +6 -2
  530. package/dist/docs/reference/model/knuckleHinge.md +2 -3
  531. package/dist/docs/reference/model/linearPattern.md +11 -4
  532. package/dist/docs/reference/model/loft.md +28 -24
  533. package/dist/docs/reference/model/minkowskiSum.md +3 -3
  534. package/dist/docs/reference/model/pathPattern.md +17 -8
  535. package/dist/docs/reference/model/polygon.md +8 -3
  536. package/dist/docs/reference/model/radialPattern.md +11 -4
  537. package/dist/docs/reference/model/rectangle.md +11 -7
  538. package/dist/docs/reference/model/regularPolygon.md +7 -3
  539. package/dist/docs/reference/model/revolve.md +18 -12
  540. package/dist/docs/reference/model/solidFromMesh.md +10 -6
  541. package/dist/docs/reference/model/sphere.md +7 -6
  542. package/dist/docs/reference/model/star.md +11 -7
  543. package/dist/docs/reference/model/stroke.md +12 -8
  544. package/dist/docs/reference/model/svgPathSection.md +10 -4
  545. package/dist/docs/reference/model/svgSection.md +10 -4
  546. package/dist/docs/reference/model/sweep.md +102 -25
  547. package/dist/docs/reference/model/textSection.md +7 -3
  548. package/dist/docs/reference/model/threadRidge.md +16 -17
  549. package/dist/docs/reference/model/threadedNut.md +25 -22
  550. package/dist/docs/reference/model/threadedRod.md +21 -18
  551. package/dist/docs/reference/model/torus.md +13 -12
  552. package/dist/docs/reference/model/tube.md +6 -5
  553. package/dist/docs/reference/model/union.md +7 -3
  554. package/dist/docs/reference/model.md +10 -5
  555. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +2 -2
  556. package/dist/docs/reference/text/VectorFont.md +38 -34
  557. package/dist/docs/reference/text/VectorFontOptions.md +2 -2
  558. package/dist/docs/reference/{geometry → text}/VectorTextArcBaseline.md +2 -11
  559. package/dist/docs/reference/{geometry → text}/VectorTextLayoutOptions.md +3 -11
  560. package/dist/docs/reference/{geometry → text}/VectorTextOptions.md +2 -10
  561. package/dist/docs/reference/text/categories/font-preparation.md +10 -1
  562. package/dist/docs/reference/text/prepareVectorFont.md +4 -2
  563. package/dist/docs/reference/text.md +7 -1
  564. package/dist/engine/execution.js +5 -3
  565. package/dist/engine/finalization.js +5 -5
  566. package/dist/engine/index.js +9 -4
  567. package/dist/engine/native/adapter.js +1 -1
  568. package/dist/engine/native/construction-mesh.js +15 -5
  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 +2 -2
  572. package/dist/engine/native/mesh-observation.js +1 -1
  573. package/dist/engine/native/regions.js +44 -24
  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 +13 -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 +42 -16
  583. package/dist/engine/operations/hole-cutter.js +125 -114
  584. package/dist/engine/operations/join-collar-profile.js +19 -19
  585. package/dist/engine/operations/join.js +86 -73
  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 +86 -30
  598. package/dist/engine/session/declarations.js +98 -0
  599. package/dist/engine/session/dependencies.js +81 -28
  600. package/dist/engine/session/graph.js +39 -137
  601. package/dist/engine/session/parameters.js +78 -0
  602. package/dist/engine/session/session.js +2 -2
  603. package/dist/engine/session/snapshot-cache.js +2 -2
  604. package/dist/engine/shape-anchors.js +13 -6
  605. package/dist/export/3mf.js +9 -2
  606. package/dist/export/capture.js +10 -6
  607. package/dist/export/glb.js +7 -2
  608. package/dist/export/stl.js +21 -6
  609. package/dist/geometry/{bounds.js → bounds/operations.js} +3 -1
  610. package/dist/geometry/{bounds-value.js → bounds/value.js} +20 -16
  611. package/dist/geometry/curves/evaluation.js +5 -6
  612. package/dist/geometry/curves/sampling.js +30 -6
  613. package/dist/geometry/{extrusion.js → extrusion/controls.js} +58 -35
  614. package/dist/geometry/extrusion/mesh.js +92 -0
  615. package/dist/geometry/extrusion/stations.js +35 -0
  616. package/dist/geometry/extrusion/twisted-chamfer.js +265 -0
  617. package/dist/geometry/immutable-buffer.js +7 -1
  618. package/dist/geometry/index.js +24 -32
  619. package/dist/geometry/{model-limits.js → limits.js} +1 -1
  620. package/dist/geometry/loft/{loft-correspondence.js → correspondence.js} +31 -20
  621. package/dist/geometry/loft/{loft-geometry.js → geometry.js} +15 -17
  622. package/dist/geometry/loft/mesh.js +53 -0
  623. package/dist/geometry/loft/{loft-options.js → options.js} +13 -11
  624. package/dist/geometry/loft/{loft-simple-mesh.js → simple-mesh.js} +26 -17
  625. package/dist/geometry/math/interpolation.js +9 -0
  626. package/dist/geometry/math/vector-value.js +12 -3
  627. package/dist/geometry/math/vector2.js +18 -5
  628. package/dist/geometry/math/vector3.js +28 -5
  629. package/dist/geometry/math-api.js +4 -0
  630. package/dist/geometry/mechanical/gear-motion.js +7 -5
  631. package/dist/geometry/mechanical/gears.js +21 -4
  632. package/dist/geometry/mechanical/knuckle-hinge.js +7 -5
  633. package/dist/geometry/mechanical/threads/fit.js +8 -2
  634. package/dist/geometry/mechanical/threads/helices.js +4 -2
  635. package/dist/geometry/mechanical/threads/mesh-plan.js +4 -2
  636. package/dist/geometry/mechanical/threads/mesh.js +12 -9
  637. package/dist/geometry/mechanical/threads/profiles.js +18 -4
  638. package/dist/geometry/mechanical/threads/solids.js +11 -2
  639. package/dist/geometry/mechanical-api.js +10 -0
  640. package/dist/geometry/mesh/{mesh-centroid.js → centroid.js} +2 -1
  641. package/dist/geometry/{heightfield.js → mesh/heightfield.js} +9 -5
  642. package/dist/geometry/{join-geometry.js → mesh/join-layers.js} +53 -59
  643. package/dist/geometry/mesh/{mesh.js → operations.js} +11 -18
  644. package/dist/geometry/mesh/{mesh-planar.js → planar.js} +8 -18
  645. package/dist/geometry/mesh/{mesh-quality.js → quality.js} +10 -42
  646. package/dist/geometry/mesh/{mesh-render.js → render-buffers.js} +22 -7
  647. package/dist/geometry/mesh/{mesh-signature.js → signature.js} +1 -1
  648. package/dist/geometry/mesh/{mesh-solid-intersections.js → solid-intersections.js} +2 -0
  649. package/dist/geometry/mesh/{mesh-solid.js → solid.js} +4 -4
  650. package/dist/geometry/mesh/triangle-quality.js +42 -0
  651. package/dist/geometry/mesh/winding.js +11 -0
  652. package/dist/geometry/{numeric.js → mesh/write-vertex.js} +1 -1
  653. package/dist/geometry/mesh-api.js +12 -11
  654. package/dist/geometry/paths/distribution.js +43 -0
  655. package/dist/geometry/paths/editing.js +76 -0
  656. package/dist/geometry/paths/frames.js +16 -11
  657. package/dist/geometry/paths/helix.js +1 -1
  658. package/dist/geometry/paths/resampling.js +46 -61
  659. package/dist/geometry/paths/{planar.js → rounding.js} +8 -67
  660. package/dist/geometry/paths/spline.js +116 -0
  661. package/dist/geometry/paths/traversal.js +107 -0
  662. package/dist/geometry/paths/{path-value.js → value.js} +97 -18
  663. package/dist/geometry/patterns/placements.js +20 -29
  664. package/dist/geometry/{patterns.js → patterns/transforms.js} +11 -7
  665. package/dist/geometry/primitives/cutters.js +70 -0
  666. package/dist/geometry/{cylinder.js → primitives/cylinder.js} +4 -4
  667. package/dist/geometry/{edge-finishing.js → primitives/edges.js} +5 -5
  668. package/dist/geometry/{primitive-resolvers.js → primitives/resolvers.js} +9 -9
  669. package/dist/geometry/primitives/sampling.js +41 -0
  670. package/dist/geometry/profiles/contour.js +19 -7
  671. package/dist/geometry/profiles/{match-profiles.js → matching.js} +9 -6
  672. package/dist/geometry/profiles/primitives/circle.js +1 -1
  673. package/dist/geometry/profiles/primitives/ellipse.js +2 -2
  674. package/dist/geometry/profiles/primitives/rectangle.js +8 -8
  675. package/dist/geometry/profiles/primitives/star.js +1 -1
  676. package/dist/geometry/profiles/side-profile.js +8 -5
  677. package/dist/geometry/profiles/validation.js +1 -1
  678. package/dist/geometry/{polygon-clipping.js → regions/clipping.js} +1 -1
  679. package/dist/geometry/{convex-offset.js → regions/convex-offset.js} +1 -1
  680. package/dist/geometry/{region-offset.js → regions/offset.js} +7 -5
  681. package/dist/geometry/{regions.js → regions/operations.js} +59 -22
  682. package/dist/geometry/{stroke-path.js → regions/stroke.js} +46 -20
  683. package/dist/geometry/{loft/loft-triangulation.js → regions/triangulation.js} +35 -2
  684. package/dist/geometry/revolve/{revolve-mesh.js → mesh.js} +9 -10
  685. package/dist/geometry/{circular-sampling.js → sampling/circular.js} +3 -3
  686. package/dist/geometry/{sampling-limits.js → sampling/limits.js} +6 -2
  687. package/dist/geometry/{resolution.js → sampling/resolution.js} +15 -14
  688. package/dist/geometry/svg/fill.js +4 -3
  689. package/dist/geometry/svg/import.js +47 -64
  690. package/dist/geometry/svg/path.js +3 -3
  691. package/dist/geometry/sweep/closed.js +55 -0
  692. package/dist/geometry/sweep/mesh.js +30 -0
  693. package/dist/geometry/{sweeps/sweep-open.js → sweep/open.js} +9 -24
  694. package/dist/geometry/{sweeps → sweep}/orientation.js +14 -11
  695. package/dist/geometry/sweep/seam.js +30 -0
  696. package/dist/geometry/{sweeps → sweep}/stations.js +75 -10
  697. package/dist/geometry/sweep/transforms.js +30 -0
  698. package/dist/geometry/{sweeps → sweep}/validation.js +4 -4
  699. package/dist/geometry/{text-contours.js → text/contours.js} +3 -3
  700. package/dist/geometry/{text-fitting.js → text/fitting.js} +4 -3
  701. package/dist/geometry/text/layout.js +1 -0
  702. package/dist/geometry/{transform3.js → transforms/affine3.js} +31 -46
  703. package/dist/geometry/{anchors.js → transforms/anchors.js} +43 -24
  704. package/dist/geometry/{transform-geometry.js → transforms/apply.js} +8 -5
  705. package/dist/geometry/{transform2.js → transforms/dimensions.js} +23 -19
  706. package/dist/geometry/transforms/frame.js +64 -0
  707. package/dist/geometry/{transform-matrix.js → transforms/matrix-input.js} +8 -1
  708. package/dist/geometry/{transform-value.js → transforms/value.js} +29 -11
  709. package/dist/index.js +3 -9
  710. package/dist/model/cutters.js +1 -0
  711. package/dist/model/execution-binding.js +3 -3
  712. package/dist/model/generation.js +2 -0
  713. package/dist/model/immutable-generation-data.js +2 -0
  714. package/dist/model/operations.js +130 -94
  715. package/dist/model/recipe-declaration.js +5 -7
  716. package/dist/text/index.js +3 -0
  717. package/dist/text/vector-text-layout.js +1 -0
  718. package/package.json +15 -17
  719. package/dist/api/export-3mf.d.ts +0 -2
  720. package/dist/api/export-glb.d.ts +0 -2
  721. package/dist/api/export-stl.d.ts +0 -2
  722. package/dist/docs/reference/geometry/BoxEdge.md +0 -17
  723. package/dist/docs/reference/geometry/BoxEdgeSelection.md +0 -24
  724. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +0 -25
  725. package/dist/docs/reference/geometry/CylinderOptions.md +0 -63
  726. package/dist/docs/reference/geometry/EndTreatments.md +0 -44
  727. package/dist/docs/reference/geometry/ExtrudeMeshOptions.md +0 -144
  728. package/dist/docs/reference/geometry/ExtrudeOptions.md +0 -156
  729. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +0 -25
  730. package/dist/docs/reference/geometry/LoftMeshStation.md +0 -41
  731. package/dist/docs/reference/geometry/PrimitiveAttachment.md +0 -39
  732. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +0 -114
  733. package/dist/docs/reference/geometry/SphereOptions.md +0 -25
  734. package/dist/docs/reference/geometry/SweepOptions.md +0 -127
  735. package/dist/docs/reference/geometry/SweepOrientation.md +0 -127
  736. package/dist/docs/reference/geometry/TubeOptions.md +0 -72
  737. package/dist/docs/reference/geometry/add2.md +0 -43
  738. package/dist/docs/reference/geometry/add3.md +0 -49
  739. package/dist/docs/reference/geometry/applyTransformDirection3.md +0 -52
  740. package/dist/docs/reference/geometry/applyTransformPoint3.md +0 -50
  741. package/dist/docs/reference/geometry/categories/meshes.md +0 -68
  742. package/dist/docs/reference/geometry/composeTransform3.md +0 -51
  743. package/dist/docs/reference/geometry/cross2.md +0 -43
  744. package/dist/docs/reference/geometry/cross3.md +0 -49
  745. package/dist/docs/reference/geometry/distance2.md +0 -43
  746. package/dist/docs/reference/geometry/distance3.md +0 -43
  747. package/dist/docs/reference/geometry/dot2.md +0 -43
  748. package/dist/docs/reference/geometry/dot3.md +0 -49
  749. package/dist/docs/reference/geometry/eulerTransform3.md +0 -49
  750. package/dist/docs/reference/geometry/frameTransform3.md +0 -55
  751. package/dist/docs/reference/geometry/inverseTransform3.md +0 -41
  752. package/dist/docs/reference/geometry/length2.md +0 -37
  753. package/dist/docs/reference/geometry/length3.md +0 -37
  754. package/dist/docs/reference/geometry/lerp2.md +0 -49
  755. package/dist/docs/reference/geometry/lerp3.md +0 -49
  756. package/dist/docs/reference/geometry/normalize2.md +0 -46
  757. package/dist/docs/reference/geometry/normalize3.md +0 -46
  758. package/dist/docs/reference/geometry/projectOntoPlane3.md +0 -43
  759. package/dist/docs/reference/geometry/rotate2.md +0 -43
  760. package/dist/docs/reference/geometry/rotationTransform3.md +0 -60
  761. package/dist/docs/reference/geometry/scale2.md +0 -43
  762. package/dist/docs/reference/geometry/scale3.md +0 -49
  763. package/dist/docs/reference/geometry/scaleTransform3.md +0 -45
  764. package/dist/docs/reference/geometry/subtract2.md +0 -43
  765. package/dist/docs/reference/geometry/subtract3.md +0 -49
  766. package/dist/docs/reference/geometry/transformDeterminant3.md +0 -43
  767. package/dist/docs/reference/geometry/translationTransform3.md +0 -42
  768. package/dist/docs/reference/geometry/validateRigidTransform3.md +0 -41
  769. package/dist/docs/reference/geometry/validateTransform3.md +0 -54
  770. package/dist/docs/reference/model/Profile.md +0 -30
  771. package/dist/docs/reference/model/categories/explicit-profiles.md +0 -21
  772. package/dist/docs/reference/model/matchProfiles.md +0 -48
  773. package/dist/docs/reference/model/preflightInternalThreadCutter.md +0 -93
  774. package/dist/docs/reference/model/preflightThreadedNut.md +0 -109
  775. package/dist/docs/reference/model/preflightThreadedRod.md +0 -93
  776. package/dist/engine/operations/patterns.js +0 -47
  777. package/dist/geometry/loft/loft.js +0 -105
  778. package/dist/geometry/mechanical/index.js +0 -14
  779. package/dist/geometry/primitive-resolution.js +0 -20
  780. package/dist/geometry/svg/index.js +0 -1
  781. package/dist/geometry/sweeps/options.js +0 -29
  782. package/dist/geometry/sweeps/sweep-closed.js +0 -96
  783. package/dist/geometry/sweeps/sweep-mesh.js +0 -32
  784. /package/dist/geometry/mechanical/{standards.js → fastener-standards.js} +0 -0
  785. /package/dist/geometry/mesh/{mesh-edge-table.js → edge-table.js} +0 -0
  786. /package/dist/geometry/mesh/{mesh-types.js → types.js} +0 -0
  787. /package/dist/geometry/mesh/{mesh-view-cache.js → view-cache.js} +0 -0
  788. /package/dist/geometry/{primitive-options.js → primitives/options.js} +0 -0
  789. /package/dist/geometry/{text-layout.js → sweep/options.js} +0 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
  Axis-aligned box with uniform or disjoint named edge/group treatments.
4
4
 
5
- **box**(`options`: [`BoxOptions`](../geometry/BoxOptions.md)): [`Solid`](Solid.md)
5
+ **box**(`options`: [`BoxOptions`](BoxOptions.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
@@ -20,25 +20,25 @@ box({ size: [30, 20, 8], treatment: { kind: "round", radius: 2 } });
20
20
 
21
21
  <a id="options"></a>
22
22
 
23
- **`options`** · [`BoxOptions`](../geometry/BoxOptions.md) · Required
23
+ **`options`** · [`BoxOptions`](BoxOptions.md) · Required
24
24
 
25
- - [`size`](../geometry/BoxOptions.md#size) · `number` \| [`Vector3Input`](../geometry/Vector3Input.md) · Required
25
+ - [`size`](BoxOptions.md#size) · `number` \| [`Vector3Input`](../geometry/Vector3Input.md) · Required
26
26
 
27
27
  Positive uniform size or explicit `[X, Y, Z]` extents in millimetres.
28
28
 
29
- - [`limits`](../geometry/BoxOptions.md#limits) · `Partial`\<[`GeometrySamplingLimits`](../geometry/GeometrySamplingLimits.md)\> · Optional
29
+ - [`limits`](BoxOptions.md#limits) · `Partial`\<[`GeometrySamplingLimits`](../geometry/GeometrySamplingLimits.md)\> · Optional
30
30
 
31
31
  Explicit sampling ceilings for edge treatments, bounded by the host policy.
32
32
 
33
- - [`center`](../geometry/BoxOptions.md#center) · `boolean` · Optional · Default: `true`
33
+ - [`center`](BoxOptions.md#center) · `boolean` · Optional · Default: `true`
34
34
 
35
35
  Centers the box on the XYZ origin when `true`; otherwise its minimum corner is at the origin.
36
36
 
37
- - [`treatment`](../geometry/BoxOptions.md#treatment) · [`EdgeTreatment`](../geometry/EdgeTreatment.md) \| `Readonly`\<`Partial`\<`Record`\<[`BoxEdgeSelection`](../geometry/BoxEdgeSelection.md), [`EdgeTreatment`](../geometry/EdgeTreatment.md)\>\>\> · Optional
37
+ - [`treatment`](BoxOptions.md#treatment) · [`EdgeTreatment`](../geometry/EdgeTreatment.md) \| `Readonly`\<`Partial`\<`Record`\<[`BoxEdgeSelection`](BoxEdgeSelection.md), [`EdgeTreatment`](../geometry/EdgeTreatment.md)\>\>\> · Optional
38
38
 
39
39
  Uniform treatment or independent disjoint nominal edge/group treatments.
40
40
 
41
- - [`attachment`](../geometry/BoxOptions.md#attachment) · [`PrimitiveAttachmentOptions`](../geometry/PrimitiveAttachmentOptions.md) · Optional
41
+ - [`attachment`](BoxOptions.md#attachment) · [`PrimitiveAttachmentOptions`](PrimitiveAttachmentOptions.md) · Optional
42
42
 
43
43
  Applied after local construction; Section attachment must preserve the XY plane.
44
44
 
@@ -51,7 +51,7 @@ box({ size: [30, 20, 8], treatment: { kind: "round", radius: 2 } });
51
51
 
52
52
  ## Related APIs
53
53
 
54
- - [BoxOptions](../geometry/BoxOptions.md)
54
+ - [BoxOptions](BoxOptions.md)
55
55
  - [Solid](Solid.md)
56
56
 
57
57
  ## Guides
@@ -59,11 +59,12 @@ box({ size: [30, 20, 8], treatment: { kind: "round", radius: 2 } });
59
59
  - [Choose a primitive](../../guides/profiles-and-extrusion.md#choose-a-primitive)
60
60
  - [Treated boxes, frustums, and mirrored arrays](../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
61
61
  - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
62
+ - [Shape openings and local edges](../../guides/profiles-and-extrusion.md#shape-openings-and-local-edges)
62
63
 
63
- ## Supported imports
64
+ ## Import
64
65
 
65
66
  ```ts
66
67
  import { box } from "@metamesh/modeling";
67
68
  ```
68
69
 
69
- Package: `@metamesh/modeling@0.19.0`.
70
+ Package: `@metamesh/modeling@0.20.0`.
@@ -19,7 +19,7 @@ Keep Boolean overtravel separate from physical fit clearance.
19
19
  | [hull](../hull.md) | Convex hull of points or solids. |
20
20
  | [intersect](../intersect.md) | Robust intersection of one or more shapes; empty input rejects during declaration. |
21
21
  | [join](../join.md) | Fuses two positioned solids with a dimensioned transition at the feature's source datum. |
22
- | [minkowskiSum](../minkowskiSum.md) | Three-dimensional Minkowski sum. |
22
+ | [minkowskiSum](../minkowskiSum.md) | Declares the three-dimensional Minkowski sum of two Solid recipes. |
23
23
  | [union](../union.md) | Robust union of one or more shapes; empty input rejects during declaration. |
24
24
 
25
25
  ## Interfaces
@@ -28,7 +28,7 @@ Keep Boolean overtravel separate from physical fit clearance.
28
28
  | --- | --- |
29
29
  | [JoinOptions](../JoinOptions.md) | Options for joining two positioned solids through a validated local straight feature collar. |
30
30
  | [JoinTransition](../JoinTransition.md) | Connection profile and setbacks, independent of feature construction. |
31
- | [PlaneOptions](../PlaneOptions.md) | A world-space cutting plane, retaining the half-space in the normal's direction. |
31
+ | [PlaneOptions](../PlaneOptions.md) | A world-space cutting plane defined by a normal and signed millimetre offset. |
32
32
 
33
33
  ## Type aliases
34
34
 
@@ -43,4 +43,10 @@ Keep Boolean overtravel separate from physical fit clearance.
43
43
  - [Primitive booleans and repeated placement](../../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
44
44
  - [Join an independently modeled feature](../../../guides/solid-joins.md#join-an-independently-modeled-feature)
45
45
 
46
- Package: `@metamesh/modeling@0.19.0`.
46
+ ## Import
47
+
48
+ ```ts
49
+ import * as model from "@metamesh/modeling";
50
+ ```
51
+
52
+ Package: `@metamesh/modeling@0.20.0`.
@@ -19,4 +19,16 @@ Implicit sampling requires finite bounds, positive grid spacing, and fixed algor
19
19
  | --- | --- |
20
20
  | [ImplicitOptions](../ImplicitOptions.md) | Positive-inside sampling, bounded to 4M native BCC grid slots and 8M field calls. |
21
21
 
22
- Package: `@metamesh/modeling@0.19.0`.
22
+ ## Type aliases
23
+
24
+ | API | Summary |
25
+ | --- | --- |
26
+ | [HeightfieldOptions](../HeightfieldOptions.md) | A closed rectilinear heightfield above a flat base, with uniform or explicit XY samples in millimetres. |
27
+
28
+ ## Import
29
+
30
+ ```ts
31
+ import * as model from "@metamesh/modeling";
32
+ ```
33
+
34
+ Package: `@metamesh/modeling@0.20.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,22 +18,41 @@ 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
+
25
+ ## Interfaces
26
+
27
+ | API | Summary |
28
+ | --- | --- |
29
+ | [ExtrudeOptions](../ExtrudeOptions.md) | Native +Z extrusion with optional inward end treatments. |
30
+ | [LoftOptions](../LoftOptions.md) | Shared controls for native and pure lofts. Point data and arbitrary Sections default to direct correspondence. |
31
+ | [RevolveOptions](../RevolveOptions.md) | Circumferential sampling and degree sweep shared by pure and filled revolution. |
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. |
24
34
 
25
35
  ## Type aliases
26
36
 
27
37
  | API | Summary |
28
38
  | --- | --- |
29
- | [LoftStation](../LoftStation.md) | A Section or point loop at an explicit height or frame. |
39
+ | [LoftStation](../LoftStation.md) | A Section or point loop at a horizontal height or explicit affine transform. |
40
+ | [LoftCorrespondence](../LoftCorrespondence.md) | Associates ordered loft contours without inferring component identities or repairing topology. |
41
+ | [SweepOrientation](../SweepOrientation.md) | Explicit profile-X frame policy; all normals are directed, and selected singular policies reject. |
30
42
 
31
43
  ## Guides
32
44
 
33
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)
34
47
  - [Revolve a radial profile](../../../guides/profiles-and-extrusion.md#revolve-a-radial-profile)
35
48
  - [Rotation-minimizing path sweep](../../../guides/sweeps-and-lofts.md#rotation-minimizing-path-sweep)
36
49
  - [Matched-section loft](../../../guides/sweeps-and-lofts.md#matched-section-loft)
37
50
  - [Choose a modeling path](../../../guides/recipes.md#choose-a-technique)
38
51
 
39
- Package: `@metamesh/modeling@0.19.0`.
52
+ ## Import
53
+
54
+ ```ts
55
+ import * as model from "@metamesh/modeling";
56
+ ```
57
+
58
+ Package: `@metamesh/modeling@0.20.0`.
@@ -6,9 +6,11 @@ Start with `generate(({ params, part, assert }) => ...)` and return one `part(..
6
6
 
7
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 |
@@ -27,7 +29,7 @@ Start with `generate(({ params, part, assert }) => ...)` and return one `part(..
27
29
  | --- | --- |
28
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. |
29
31
  | [DiagnosticOptions](../DiagnosticOptions.md) | Typed parameter association for an assertion or warning. |
30
- | [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. |
31
33
  | [PartDeclaration](../PartDeclaration.md) | One declared output part. Construct with the context's `part` helper. |
32
34
  | [GenerationDiagnostic](../GenerationDiagnostic.md) | Structured user-facing issue associated with the attempted revision. |
33
35
  | [ModelProgram](../ModelProgram.md) | Stateless portable program descriptor. Execution and caches belong to an engine session. |
@@ -45,4 +47,10 @@ Start with `generate(({ params, part, assert }) => ...)` and return one `part(..
45
47
 
46
48
  - [Complete standalone model example](../../../guides/standalone-model.md#minimal-model-entry)
47
49
 
48
- Package: `@metamesh/modeling@0.19.0`.
50
+ ## Import
51
+
52
+ ```ts
53
+ import * as model from "@metamesh/modeling";
54
+ ```
55
+
56
+ Package: `@metamesh/modeling@0.20.0`.
@@ -32,4 +32,10 @@ Radial clearance is per side; axial gap is the total gap between adjacent interv
32
32
  | --- | --- |
33
33
  | [KnuckleHingeOptions](../KnuckleHingeOptions.md) | Joint declaration with independent attachments; unspecified sampling inherits the evaluating host. |
34
34
 
35
- Package: `@metamesh/modeling@0.19.0`.
35
+ ## Import
36
+
37
+ ```ts
38
+ import * as model from "@metamesh/modeling";
39
+ ```
40
+
41
+ Package: `@metamesh/modeling@0.20.0`.
@@ -33,4 +33,10 @@ Inspection does not certify wall thickness, overhangs, printer fit, or material
33
33
 
34
34
  - [Solid inspection](../../../guides/resolution-and-inspection.md#solid-inspection)
35
35
 
36
- Package: `@metamesh/modeling@0.19.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 extrusions support independent bottom/top treatments. Straight extrusion finishing admits concavity, holes, and disconnected components when every boundary survives without contact or collapse.
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,35 +21,63 @@ 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
 
37
43
  | API | Summary |
38
44
  | --- | --- |
39
45
  | [Solid](../Solid.md) | Immutable deferred solid recipe. |
40
- | [HoleCutterOverrun](../HoleCutterOverrun.md) | Explicit extra cutter length outside the nominal Z=0..height interval, in millimetres. |
46
+ | [BoxOptions](../BoxOptions.md) | Dimensions, placement, and uniform or independently selected finishing for an axis-aligned box. |
47
+ | [TorusOptions](../TorusOptions.md) | Dimensions and independent ring/profile tessellation for a torus around the Z axis. |
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. |
41
54
 
42
55
  ## Type aliases
43
56
 
44
57
  | API | Summary |
45
58
  | --- | --- |
46
- | [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. |
47
60
  | [HoleCutterRecess](../HoleCutterRecess.md) | Circular screw seating dimensions in millimetres; allowances belong to the caller. |
61
+ | [BoxEdge](../BoxEdge.md) | Box edges use +Z top, +Y front and +X right; vertical names list front/back first. |
62
+ | [BoxEdgeSelection](../BoxEdgeSelection.md) | Named individual edges or top/bottom rims and all four vertical edges. |
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. |
48
69
 
49
70
  ## Guides
50
71
 
51
72
  - [Choose a primitive](../../../guides/profiles-and-extrusion.md#choose-a-primitive)
52
73
  - [Treated boxes, frustums, and mirrored arrays](../../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
53
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
+ ```
54
82
 
55
- Package: `@metamesh/modeling@0.19.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. |
@@ -53,4 +53,10 @@ Create immutable filled XY shapes, including prepared text and bounded painted S
53
53
  - [SVG sections: fills and strokes are different inputs](../../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
54
54
  - [Text and font variability](../../../guides/svg-and-text.md#text-and-font-variability)
55
55
 
56
- Package: `@metamesh/modeling@0.19.0`.
56
+ ## Import
57
+
58
+ ```ts
59
+ import * as model from "@metamesh/modeling";
60
+ ```
61
+
62
+ Package: `@metamesh/modeling@0.20.0`.
@@ -11,16 +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. |
16
+ | [threadRidge](../threadRidge.md) | Declares a helical ridge Solid recipe along +Z, with lengths in millimetres. |
20
17
 
21
18
  ## Guides
22
19
 
23
20
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
24
21
  - [Preflight guarantees and host settings](../../../guides/resolution-and-inspection.md#check-preflight-guarantees)
25
22
 
26
- Package: `@metamesh/modeling@0.19.0`.
23
+ ## Import
24
+
25
+ ```ts
26
+ import * as model from "@metamesh/modeling";
27
+ ```
28
+
29
+ Package: `@metamesh/modeling@0.20.0`.
@@ -1,15 +1,14 @@
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
 
@@ -24,12 +23,18 @@ Use `vector2`/`vector3` for immutable arithmetic and `transform2`/`transform3` f
24
23
 
25
24
  | API | Summary |
26
25
  | --- | --- |
27
- | [PatternSource](../PatternSource.md) | One immutable shape, or a synchronous factory called once per copy in index order. |
26
+ | [PatternSource](../PatternSource.md) | One immutable shape, or a synchronous factory called once per copy in zero-based index order. |
28
27
 
29
28
  ## Guides
30
29
 
31
30
  - [Named anchors and custom frames](../../../guides/transforms-and-placement.md#named-anchors-and-custom-frames)
32
31
  - [Primitive booleans and repeated placement](../../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
33
- - [Fluent values and standalone algorithms](../../../guides/geometry-values.md#choose-fluent-values-or-standalone-algorithms)
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
+ ```
34
39
 
35
- Package: `@metamesh/modeling@0.19.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>
@@ -36,10 +40,10 @@ circle({ diameter: 12, sizing: "face" });
36
40
  - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
37
41
  - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
38
42
 
39
- ## Supported imports
43
+ ## Import
40
44
 
41
45
  ```ts
42
46
  import { circle } from "@metamesh/modeling";
43
47
  ```
44
48
 
45
- Package: `@metamesh/modeling@0.19.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`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  +Z cylinder or frustum. Face sizing compensates polygon faceting.
4
4
 
5
- **cylinder**(`options`: [`CylinderOptions`](../geometry/CylinderOptions.md)): [`Solid`](Solid.md)
5
+ **cylinder**(`options`: [`CylinderOptions`](CylinderOptions.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
@@ -30,7 +30,7 @@ cylinder({ height: 20, radius: [10, 0] });
30
30
 
31
31
  <a id="options"></a>
32
32
 
33
- **`options`** · [`CylinderOptions`](../geometry/CylinderOptions.md) · Required
33
+ **`options`** · [`CylinderOptions`](CylinderOptions.md) · Required
34
34
 
35
35
 
36
36
 
@@ -41,7 +41,7 @@ cylinder({ height: 20, radius: [10, 0] });
41
41
 
42
42
  ## Related APIs
43
43
 
44
- - [CylinderOptions](../geometry/CylinderOptions.md)
44
+ - [CylinderOptions](CylinderOptions.md)
45
45
  - [Solid](Solid.md)
46
46
 
47
47
  ## Guides
@@ -49,11 +49,12 @@ cylinder({ height: 20, radius: [10, 0] });
49
49
  - [Choose a primitive](../../guides/profiles-and-extrusion.md#choose-a-primitive)
50
50
  - [Treated boxes, frustums, and mirrored arrays](../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
51
51
  - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
52
+ - [Shape openings and local edges](../../guides/profiles-and-extrusion.md#shape-openings-and-local-edges)
52
53
 
53
- ## Supported imports
54
+ ## Import
54
55
 
55
56
  ```ts
56
57
  import { cylinder } from "@metamesh/modeling";
57
58
  ```
58
59
 
59
- Package: `@metamesh/modeling@0.19.0`.
60
+ Package: `@metamesh/modeling@0.20.0`.