@metamesh/modeling 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (654) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +52 -9
  3. package/dist/api/engine.d.ts +3 -3
  4. package/dist/api/geometry.d.ts +521 -185
  5. package/dist/api/index.d.ts +414 -145
  6. package/dist/api/text.d.ts +3 -3
  7. package/dist/docs/guides/concepts.md +114 -11
  8. package/dist/docs/guides/fonts.md +8 -0
  9. package/dist/docs/guides/fundamentals.md +4 -2
  10. package/dist/docs/guides/generation.md +6 -4
  11. package/dist/docs/guides/hosting.md +7 -4
  12. package/dist/docs/guides/recipes.md +52 -2
  13. package/dist/docs/manifest.json +1246 -394
  14. package/dist/docs/reference/engine/Export3mfOptions.md +1 -1
  15. package/dist/docs/reference/engine/ExportMeshPart.md +1 -1
  16. package/dist/docs/reference/engine/GenerationOptions.md +1 -1
  17. package/dist/docs/reference/engine/GeometryResource.md +1 -1
  18. package/dist/docs/reference/engine/ModelDependencies.md +1 -1
  19. package/dist/docs/reference/engine/ModelEngine.md +1 -1
  20. package/dist/docs/reference/engine/ModelEngineOptions.md +1 -1
  21. package/dist/docs/reference/engine/ModelSession.md +1 -1
  22. package/dist/docs/reference/engine/ModelSnapshot.md +1 -1
  23. package/dist/docs/reference/engine/SessionOptions.md +1 -1
  24. package/dist/docs/reference/engine/SnapshotPart.md +3 -3
  25. package/dist/docs/reference/engine/categories/host-lifecycle.md +1 -1
  26. package/dist/docs/reference/engine/createModelEngine.md +1 -1
  27. package/dist/docs/reference/engine/defaultModelingLimits.md +1 -1
  28. package/dist/docs/reference/engine/modelingWasmUrl.md +1 -1
  29. package/dist/docs/reference/engine/validateModel.md +1 -1
  30. package/dist/docs/reference/engine.md +1 -1
  31. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +1 -1
  32. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +14 -1
  33. package/dist/docs/reference/geometry/Anchor3.md +9 -5
  34. package/dist/docs/reference/geometry/ArcCurve2.md +3 -3
  35. package/dist/docs/reference/geometry/ArcCurve3.md +5 -5
  36. package/dist/docs/reference/geometry/AttachTransformOptions.md +5 -1
  37. package/dist/docs/reference/geometry/AxisAngleRotation3.md +6 -1
  38. package/dist/docs/reference/geometry/Bounds2.md +4 -4
  39. package/dist/docs/reference/geometry/Bounds3.md +4 -4
  40. package/dist/docs/reference/geometry/BoundsFit2.md +3 -3
  41. package/dist/docs/reference/geometry/BoundsFit3.md +3 -3
  42. package/dist/docs/reference/geometry/BoundsFitOptions.md +1 -1
  43. package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +1 -1
  44. package/dist/docs/reference/geometry/BoxAnchorFace.md +8 -1
  45. package/dist/docs/reference/geometry/BoxAnchorOptions.md +8 -4
  46. package/dist/docs/reference/geometry/BoxEdge.md +1 -1
  47. package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
  48. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
  49. package/dist/docs/reference/geometry/BoxOptions.md +3 -3
  50. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +1 -1
  51. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +1 -1
  52. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
  53. package/dist/docs/reference/geometry/CircleContourOptions.md +1 -1
  54. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -1
  55. package/dist/docs/reference/geometry/CircularResolutionOptions.md +107 -0
  56. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +1 -1
  57. package/dist/docs/reference/geometry/ClearanceHoleFit.md +1 -1
  58. package/dist/docs/reference/geometry/ClosestPointOnPathOptions.md +34 -0
  59. package/dist/docs/reference/geometry/ClosestPointOnPathResult.md +65 -0
  60. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +1 -1
  61. package/dist/docs/reference/geometry/Contour.md +3 -3
  62. package/dist/docs/reference/geometry/ContourCurve.md +1 -1
  63. package/dist/docs/reference/geometry/ContourPoint.md +1 -1
  64. package/dist/docs/reference/geometry/ContourSegment.md +1 -1
  65. package/dist/docs/reference/geometry/CorrespondingComponent.md +1 -1
  66. package/dist/docs/reference/geometry/CorrespondingContour.md +1 -1
  67. package/dist/docs/reference/geometry/CorrespondingProfile.md +1 -1
  68. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +1 -1
  69. package/dist/docs/reference/geometry/CubicBezierCurve2.md +6 -6
  70. package/dist/docs/reference/geometry/CubicBezierCurve3.md +6 -6
  71. package/dist/docs/reference/geometry/Curve2.md +1 -1
  72. package/dist/docs/reference/geometry/Curve3.md +1 -1
  73. package/dist/docs/reference/geometry/CurveSamplingOptions.md +1 -1
  74. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +3 -3
  75. package/dist/docs/reference/geometry/CylinderAnchorFace.md +8 -1
  76. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +7 -3
  77. package/dist/docs/reference/geometry/CylinderOptions.md +1 -1
  78. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +1 -1
  79. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +1 -1
  80. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +1 -1
  81. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +1 -1
  82. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +1 -1
  83. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +1 -1
  84. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +1 -1
  85. package/dist/docs/reference/geometry/CylindricalGearSpec.md +1 -1
  86. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
  87. package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
  88. package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -3
  89. package/dist/docs/reference/geometry/EndTreatments.md +1 -1
  90. package/dist/docs/reference/geometry/ExtrudeOptions.md +3 -3
  91. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +3 -3
  92. package/dist/docs/reference/geometry/FittedTextLayout.md +1 -1
  93. package/dist/docs/reference/geometry/Frame3.md +6 -6
  94. package/dist/docs/reference/geometry/GeometryError.md +1 -1
  95. package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
  96. package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
  97. package/dist/docs/reference/geometry/GeometryResolution.md +10 -1
  98. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +1 -1
  99. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
  100. package/dist/docs/reference/geometry/GridPatternOptions.md +4 -4
  101. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +1 -1
  102. package/dist/docs/reference/geometry/HeightfieldOptions.md +5 -5
  103. package/dist/docs/reference/geometry/HeightfieldPreflight.md +1 -1
  104. package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +1 -1
  105. package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +1 -1
  106. package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +1 -1
  107. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +7 -3
  108. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +1 -1
  109. package/dist/docs/reference/geometry/LineCurve2.md +4 -4
  110. package/dist/docs/reference/geometry/LineCurve3.md +4 -4
  111. package/dist/docs/reference/geometry/LinearPatternOptions.md +3 -3
  112. package/dist/docs/reference/geometry/LoftCorrespondence.md +1 -1
  113. package/dist/docs/reference/geometry/LoftMeshStation.md +1 -1
  114. package/dist/docs/reference/geometry/LoftOptions.md +1 -1
  115. package/dist/docs/reference/geometry/LoftPlacement.md +1 -1
  116. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +1 -1
  117. package/dist/docs/reference/geometry/MatchProfilesOptions.md +1 -1
  118. package/dist/docs/reference/geometry/MetricFastenerSize.md +1 -1
  119. package/dist/docs/reference/geometry/MetricFastenerStandard.md +1 -1
  120. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +1 -1
  121. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +1 -1
  122. package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
  123. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +1 -1
  124. package/dist/docs/reference/geometry/Path2.md +3 -3
  125. package/dist/docs/reference/geometry/Path3.md +3 -3
  126. package/dist/docs/reference/geometry/PathFrame.md +5 -5
  127. package/dist/docs/reference/geometry/PathNormalGuide.md +5 -5
  128. package/dist/docs/reference/geometry/PathPatternOptions.md +1 -1
  129. package/dist/docs/reference/geometry/PathPlacement.md +4 -4
  130. package/dist/docs/reference/geometry/Pivot2Options.md +26 -0
  131. package/dist/docs/reference/geometry/Pivot3Options.md +26 -0
  132. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +1 -1
  133. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +1 -1
  134. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +1 -1
  135. package/dist/docs/reference/geometry/PlanarPatchQuality.md +3 -3
  136. package/dist/docs/reference/geometry/{Polygon.md → PolygonData.md} +2 -2
  137. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +1 -1
  138. package/dist/docs/reference/geometry/PrimitivePlacement.md +1 -1
  139. package/dist/docs/reference/geometry/PrimitivePlacementOptions.md +1 -1
  140. package/dist/docs/reference/geometry/PrintableThreadFit.md +1 -1
  141. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +1 -1
  142. package/dist/docs/reference/geometry/Profile.md +1 -1
  143. package/dist/docs/reference/geometry/ProfileComponent2.md +1 -1
  144. package/dist/docs/reference/geometry/ProfileContour2.md +1 -1
  145. package/dist/docs/reference/geometry/ProfileSpan2.md +3 -3
  146. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +3 -3
  147. package/dist/docs/reference/geometry/RackPitchDimensions.md +1 -1
  148. package/dist/docs/reference/geometry/RackPitchSpec.md +1 -1
  149. package/dist/docs/reference/geometry/RadialPatternOptions.md +4 -4
  150. package/dist/docs/reference/geometry/RadialSizing.md +1 -1
  151. package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
  152. package/dist/docs/reference/geometry/RectangleContourOptions.md +3 -3
  153. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +1 -1
  154. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +1 -1
  155. package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
  156. package/dist/docs/reference/geometry/RegionData.md +14 -0
  157. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +1 -1
  158. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
  159. package/dist/docs/reference/geometry/RevolveOptions.md +1 -1
  160. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
  161. package/dist/docs/reference/geometry/RowLayoutOptions.md +1 -1
  162. package/dist/docs/reference/geometry/SampleContourOptions.md +1 -1
  163. package/dist/docs/reference/geometry/SampleHelixOptions.md +1 -1
  164. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +1 -1
  165. package/dist/docs/reference/geometry/SampledCurve2.md +4 -4
  166. package/dist/docs/reference/geometry/SampledCurve3.md +4 -4
  167. package/dist/docs/reference/geometry/SampledThreadHelices.md +1 -1
  168. package/dist/docs/reference/geometry/SideProfileCurve.md +1 -1
  169. package/dist/docs/reference/geometry/SideProfilePoint.md +1 -1
  170. package/dist/docs/reference/geometry/SideProfileSegment.md +1 -1
  171. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
  172. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +1 -1
  173. package/dist/docs/reference/geometry/SphereOptions.md +1 -1
  174. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +1 -1
  175. package/dist/docs/reference/geometry/StrokePathCap.md +1 -1
  176. package/dist/docs/reference/geometry/StrokePathJoin.md +1 -1
  177. package/dist/docs/reference/geometry/StrokePathRegionOptions.md +2 -2
  178. package/dist/docs/reference/geometry/SvgImportOptions.md +1 -1
  179. package/dist/docs/reference/geometry/SvgRegionPreflight.md +3 -3
  180. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +1 -1
  181. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +1 -1
  182. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +1 -1
  183. package/dist/docs/reference/geometry/SweepOptions.md +3 -3
  184. package/dist/docs/reference/geometry/SweepOrientation.md +7 -7
  185. package/dist/docs/reference/geometry/ThreadBevelOptions.md +1 -1
  186. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +1 -1
  187. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +1 -1
  188. package/dist/docs/reference/geometry/ThreadEndStyle.md +1 -1
  189. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +1 -1
  190. package/dist/docs/reference/geometry/ThreadHandedness.md +1 -1
  191. package/dist/docs/reference/geometry/ThreadHelixOptions.md +1 -1
  192. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +1 -1
  193. package/dist/docs/reference/geometry/ThreadLeadInShape.md +1 -1
  194. package/dist/docs/reference/geometry/ThreadProfile.md +3 -3
  195. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +1 -1
  196. package/dist/docs/reference/geometry/ThreadProfileSpec.md +1 -1
  197. package/dist/docs/reference/geometry/ThreadRole.md +1 -1
  198. package/dist/docs/reference/geometry/ThreadedNutBevel.md +1 -1
  199. package/dist/docs/reference/geometry/ThreadedNutOptions.md +1 -1
  200. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +1 -1
  201. package/dist/docs/reference/geometry/ThreadedNutShape.md +1 -1
  202. package/dist/docs/reference/geometry/ThreadedRodOptions.md +1 -1
  203. package/dist/docs/reference/geometry/TorusOptions.md +1 -1
  204. package/dist/docs/reference/geometry/Transform2-type.md +255 -0
  205. package/dist/docs/reference/geometry/Transform2Input.md +19 -0
  206. package/dist/docs/reference/geometry/Transform2Matrix.md +14 -0
  207. package/dist/docs/reference/geometry/Transform3-type.md +295 -0
  208. package/dist/docs/reference/geometry/Transform3Input.md +19 -0
  209. package/dist/docs/reference/geometry/Transform3Matrix.md +17 -0
  210. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +1 -1
  211. package/dist/docs/reference/geometry/TriangleMesh.md +1 -1
  212. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +1 -1
  213. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +1 -1
  214. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +1 -1
  215. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +1 -1
  216. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +1 -1
  217. package/dist/docs/reference/geometry/TriangleMeshSignature.md +1 -1
  218. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +1 -1
  219. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +1 -1
  220. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +1 -1
  221. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +1 -1
  222. package/dist/docs/reference/geometry/TubeOptions.md +1 -1
  223. package/dist/docs/reference/geometry/Vector2-type.md +269 -0
  224. package/dist/docs/reference/geometry/Vector2Input.md +19 -0
  225. package/dist/docs/reference/geometry/Vector2Tuple.md +14 -0
  226. package/dist/docs/reference/geometry/Vector3-type.md +281 -0
  227. package/dist/docs/reference/geometry/Vector3Input.md +19 -0
  228. package/dist/docs/reference/geometry/Vector3Tuple.md +14 -0
  229. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +1 -1
  230. package/dist/docs/reference/geometry/VectorTextLayout.md +1 -1
  231. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +1 -1
  232. package/dist/docs/reference/geometry/VectorTextMetrics.md +1 -1
  233. package/dist/docs/reference/geometry/VectorTextOptions.md +1 -1
  234. package/dist/docs/reference/geometry/add2.md +36 -0
  235. package/dist/docs/reference/geometry/add3.md +10 -6
  236. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +1 -1
  237. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +1 -1
  238. package/dist/docs/reference/geometry/anchorFrame3.md +1 -1
  239. package/dist/docs/reference/geometry/applyTransformDirection3.md +11 -7
  240. package/dist/docs/reference/geometry/applyTransformPoint3.md +11 -7
  241. package/dist/docs/reference/geometry/attachTransform.md +8 -4
  242. package/dist/docs/reference/geometry/boundsCenter.md +7 -7
  243. package/dist/docs/reference/geometry/boundsFromSize.md +7 -7
  244. package/dist/docs/reference/geometry/boundsSize.md +7 -7
  245. package/dist/docs/reference/geometry/boxAnchor3.md +7 -3
  246. package/dist/docs/reference/geometry/buildHelicalThreadRidgeMesh.md +1 -1
  247. package/dist/docs/reference/geometry/buildHelicalThreadSolidMesh.md +1 -1
  248. package/dist/docs/reference/geometry/categories/bounds-layout.md +1 -1
  249. package/dist/docs/reference/geometry/categories/curves-paths.md +6 -3
  250. package/dist/docs/reference/geometry/categories/mechanical.md +1 -1
  251. package/dist/docs/reference/geometry/categories/meshes.md +1 -1
  252. package/dist/docs/reference/geometry/categories/pattern-placement.md +2 -2
  253. package/dist/docs/reference/geometry/categories/primitive-options.md +1 -1
  254. package/dist/docs/reference/geometry/categories/profiles-regions.md +6 -6
  255. package/dist/docs/reference/geometry/categories/resolution-errors.md +3 -2
  256. package/dist/docs/reference/geometry/categories/transforms-math.md +37 -8
  257. package/dist/docs/reference/geometry/categories/vector-import.md +2 -2
  258. package/dist/docs/reference/geometry/circleContour.md +1 -1
  259. package/dist/docs/reference/geometry/closeToAxis.md +4 -4
  260. package/dist/docs/reference/geometry/closestPointOnPath.md +110 -0
  261. package/dist/docs/reference/geometry/compensateThreadDiameters.md +1 -1
  262. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +1 -1
  263. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +1 -1
  264. package/dist/docs/reference/geometry/composeTransform3.md +10 -6
  265. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +5 -5
  266. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +5 -5
  267. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +4 -4
  268. package/dist/docs/reference/geometry/containsBounds.md +1 -1
  269. package/dist/docs/reference/geometry/contourContainsPoint.md +4 -4
  270. package/dist/docs/reference/geometry/createAnchor3.md +10 -6
  271. package/dist/docs/reference/geometry/createThreadProfile.md +1 -1
  272. package/dist/docs/reference/geometry/createTriangleMeshSignature.md +1 -1
  273. package/dist/docs/reference/geometry/cross2.md +36 -0
  274. package/dist/docs/reference/geometry/cross3.md +10 -6
  275. package/dist/docs/reference/geometry/cumulativePathLengths.md +4 -4
  276. package/dist/docs/reference/geometry/cylinderAnchor3.md +6 -2
  277. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +1 -1
  278. package/dist/docs/reference/geometry/distance2.md +36 -0
  279. package/dist/docs/reference/geometry/distance3.md +36 -0
  280. package/dist/docs/reference/geometry/distributeAlongPath.md +4 -4
  281. package/dist/docs/reference/geometry/dot2.md +36 -0
  282. package/dist/docs/reference/geometry/dot3.md +9 -5
  283. package/dist/docs/reference/geometry/ellipseContour.md +1 -1
  284. package/dist/docs/reference/geometry/eulerTransform3.md +10 -6
  285. package/dist/docs/reference/geometry/extrudeMesh.md +2 -2
  286. package/dist/docs/reference/geometry/fitBounds.md +1 -1
  287. package/dist/docs/reference/geometry/fitTextLayout.md +1 -1
  288. package/dist/docs/reference/geometry/frameTransform3.md +8 -4
  289. package/dist/docs/reference/geometry/getMetricClearanceHole.md +1 -1
  290. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +1 -1
  291. package/dist/docs/reference/geometry/gridPatternTransforms.md +4 -4
  292. package/dist/docs/reference/geometry/heightfieldMesh.md +1 -1
  293. package/dist/docs/reference/geometry/inverseTransform3.md +9 -5
  294. package/dist/docs/reference/geometry/isGeometryError.md +1 -1
  295. package/dist/docs/reference/geometry/joinTriangleMeshes.md +1 -1
  296. package/dist/docs/reference/geometry/layoutRow.md +4 -4
  297. package/dist/docs/reference/geometry/length2.md +30 -0
  298. package/dist/docs/reference/geometry/length3.md +8 -4
  299. package/dist/docs/reference/geometry/lerp2.md +42 -0
  300. package/dist/docs/reference/geometry/lerp3.md +10 -6
  301. package/dist/docs/reference/geometry/linearPatternTransforms.md +4 -4
  302. package/dist/docs/reference/geometry/loftMesh.md +1 -1
  303. package/dist/docs/reference/geometry/matchProfiles.md +1 -1
  304. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +3 -2
  305. package/dist/docs/reference/geometry/measureTriangleMesh.md +1 -1
  306. package/dist/docs/reference/geometry/meshBounds.md +1 -1
  307. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +1 -1
  308. package/dist/docs/reference/geometry/normalize2.md +36 -0
  309. package/dist/docs/reference/geometry/normalize3.md +10 -6
  310. package/dist/docs/reference/geometry/normalizeContour.md +4 -4
  311. package/dist/docs/reference/geometry/normalizePolygon.md +5 -5
  312. package/dist/docs/reference/geometry/normalizeRegion.md +5 -5
  313. package/dist/docs/reference/geometry/optimizePlanarPatches.md +1 -1
  314. package/dist/docs/reference/geometry/pathLength.md +4 -4
  315. package/dist/docs/reference/geometry/pathPatternTransforms.md +6 -6
  316. package/dist/docs/reference/geometry/preflightHeightfield.md +1 -1
  317. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +1 -1
  318. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +1 -1
  319. package/dist/docs/reference/geometry/preflightSvgRegion.md +1 -1
  320. package/dist/docs/reference/geometry/preflightThreadedNut.md +1 -1
  321. package/dist/docs/reference/geometry/preflightThreadedRod.md +1 -1
  322. package/dist/docs/reference/geometry/projectOntoPlane3.md +10 -6
  323. package/dist/docs/reference/geometry/radialPatternTransforms.md +6 -6
  324. package/dist/docs/reference/geometry/rectangleContour.md +2 -2
  325. package/dist/docs/reference/geometry/rectangleProfile.md +2 -2
  326. package/dist/docs/reference/geometry/regionArea.md +4 -4
  327. package/dist/docs/reference/geometry/regionBounds.md +4 -4
  328. package/dist/docs/reference/geometry/regularPolygonContour.md +4 -4
  329. package/dist/docs/reference/geometry/resamplePolyline2.md +4 -4
  330. package/dist/docs/reference/geometry/resamplePolyline3.md +4 -4
  331. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +5 -1
  332. package/dist/docs/reference/geometry/resolveArcSegments.md +4 -4
  333. package/dist/docs/reference/geometry/resolveCircularSegments.md +6 -5
  334. package/dist/docs/reference/geometry/resolveCylindricalGear.md +1 -1
  335. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +1 -1
  336. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +5 -5
  337. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +1 -1
  338. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
  339. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +1 -1
  340. package/dist/docs/reference/geometry/resolveRackPitch.md +1 -1
  341. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +1 -1
  342. package/dist/docs/reference/geometry/reverseTriangleMesh.md +1 -1
  343. package/dist/docs/reference/geometry/revolveMesh.md +4 -4
  344. package/dist/docs/reference/geometry/rotate2.md +36 -0
  345. package/dist/docs/reference/geometry/rotationTransform3.md +10 -6
  346. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +5 -5
  347. package/dist/docs/reference/geometry/sampleContour.md +1 -1
  348. package/dist/docs/reference/geometry/sampleCurve2.md +1 -1
  349. package/dist/docs/reference/geometry/sampleCurve3.md +1 -1
  350. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +1 -1
  351. package/dist/docs/reference/geometry/sampleHelix.md +4 -4
  352. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +1 -1
  353. package/dist/docs/reference/geometry/sampleRackToothPath.md +1 -1
  354. package/dist/docs/reference/geometry/sampleSideProfile.md +4 -4
  355. package/dist/docs/reference/geometry/sampleTextContours.md +1 -1
  356. package/dist/docs/reference/geometry/sampleThreadHelices.md +1 -1
  357. package/dist/docs/reference/geometry/scale2.md +36 -0
  358. package/dist/docs/reference/geometry/scale3.md +9 -5
  359. package/dist/docs/reference/geometry/scaleTransform3.md +10 -6
  360. package/dist/docs/reference/geometry/signedContourArea.md +1 -1
  361. package/dist/docs/reference/geometry/starContour.md +4 -4
  362. package/dist/docs/reference/geometry/strokePathRegion.md +4 -4
  363. package/dist/docs/reference/geometry/subtract2.md +36 -0
  364. package/dist/docs/reference/geometry/subtract3.md +10 -6
  365. package/dist/docs/reference/geometry/sweepMesh.md +5 -5
  366. package/dist/docs/reference/geometry/transform2.md +38 -0
  367. package/dist/docs/reference/geometry/transform3.md +38 -0
  368. package/dist/docs/reference/geometry/transformContour.md +5 -5
  369. package/dist/docs/reference/geometry/transformDeterminant3.md +8 -4
  370. package/dist/docs/reference/geometry/transformPath2.md +5 -5
  371. package/dist/docs/reference/geometry/transformPath3.md +5 -5
  372. package/dist/docs/reference/geometry/transformRegionData.md +40 -0
  373. package/dist/docs/reference/geometry/transformTriangleMesh.md +4 -4
  374. package/dist/docs/reference/geometry/translationTransform3.md +10 -6
  375. package/dist/docs/reference/geometry/triangulateContour.md +1 -1
  376. package/dist/docs/reference/geometry/validateSolidMesh.md +1 -1
  377. package/dist/docs/reference/geometry/validateTransform3.md +9 -5
  378. package/dist/docs/reference/geometry/validateTriangleMesh.md +1 -1
  379. package/dist/docs/reference/geometry/vector2.md +31 -0
  380. package/dist/docs/reference/geometry/vector3.md +38 -0
  381. package/dist/docs/reference/geometry.md +2 -2
  382. package/dist/docs/reference/model/Anchor3.md +5 -5
  383. package/dist/docs/reference/model/AttachOptions.md +1 -1
  384. package/dist/docs/reference/model/Bounds2.md +4 -4
  385. package/dist/docs/reference/model/Bounds3.md +4 -4
  386. package/dist/docs/reference/model/BoxEdge.md +1 -1
  387. package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
  388. package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
  389. package/dist/docs/reference/model/BoxOptions.md +3 -3
  390. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
  391. package/dist/docs/reference/model/CircleContourOptions.md +1 -1
  392. package/dist/docs/reference/model/CircleOptions.md +1 -1
  393. package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -1
  394. package/dist/docs/reference/model/Computed.md +1 -1
  395. package/dist/docs/reference/model/ComputedValue.md +1 -1
  396. package/dist/docs/reference/model/Contour.md +3 -3
  397. package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
  398. package/dist/docs/reference/model/CorrespondingContour.md +1 -1
  399. package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
  400. package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
  401. package/dist/docs/reference/model/CylinderOptions.md +1 -1
  402. package/dist/docs/reference/model/DiagnosticOptions.md +1 -1
  403. package/dist/docs/reference/model/EdgeTreatment.md +1 -1
  404. package/dist/docs/reference/model/EllipseContourOptions.md +3 -3
  405. package/dist/docs/reference/model/EllipseOptions.md +1 -1
  406. package/dist/docs/reference/model/EndTreatments.md +1 -1
  407. package/dist/docs/reference/model/ExtrudeOptions.md +3 -3
  408. package/dist/docs/reference/model/FinalizedModel.md +1 -1
  409. package/dist/docs/reference/model/FinalizedPart.md +1 -1
  410. package/dist/docs/reference/model/Frame3.md +6 -6
  411. package/dist/docs/reference/model/GenerateCallback.md +1 -1
  412. package/dist/docs/reference/model/GenerateContext.md +5 -5
  413. package/dist/docs/reference/model/GeneratedPart.md +6 -6
  414. package/dist/docs/reference/model/GenerationDiagnostic.md +1 -1
  415. package/dist/docs/reference/model/GenerationError.md +1 -1
  416. package/dist/docs/reference/model/GeometryResolution.md +1 -1
  417. package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
  418. package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
  419. package/dist/docs/reference/model/GridPatternOptions.md +4 -4
  420. package/dist/docs/reference/model/HeightfieldOptions.md +5 -5
  421. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +1 -1
  422. package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +1 -1
  423. package/dist/docs/reference/model/HullOptions.md +7 -7
  424. package/dist/docs/reference/model/ImmutableBuffer-type.md +1 -1
  425. package/dist/docs/reference/model/ImmutableTriangleMesh.md +1 -1
  426. package/dist/docs/reference/model/ImplicitOptions.md +4 -4
  427. package/dist/docs/reference/model/InternalThreadCutterOptions.md +1 -1
  428. package/dist/docs/reference/model/LinearPatternOptions.md +3 -3
  429. package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
  430. package/dist/docs/reference/model/LoftOptions.md +1 -1
  431. package/dist/docs/reference/model/LoftPlacement.md +1 -1
  432. package/dist/docs/reference/model/LoftStation.md +2 -2
  433. package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
  434. package/dist/docs/reference/model/ModelProgram.md +1 -1
  435. package/dist/docs/reference/model/ModelingLimits.md +1 -1
  436. package/dist/docs/reference/model/NumericArray.md +1 -1
  437. package/dist/docs/reference/model/PartGeometry.md +1 -1
  438. package/dist/docs/reference/model/PartOptions.md +6 -6
  439. package/dist/docs/reference/model/{fromRegion.md → Path2.md} +5 -18
  440. package/dist/docs/reference/model/PathNormalGuide.md +5 -5
  441. package/dist/docs/reference/model/PathPatternOptions.md +1 -1
  442. package/dist/docs/reference/model/PatternSource.md +2 -2
  443. package/dist/docs/reference/model/Pivot2Options.md +27 -0
  444. package/dist/docs/reference/model/Pivot3Options.md +27 -0
  445. package/dist/docs/reference/model/PlaneOptions.md +3 -3
  446. package/dist/docs/reference/model/{Polygon-type.md → PolygonData.md} +2 -2
  447. package/dist/docs/reference/model/PolygonOptions.md +81 -4
  448. package/dist/docs/reference/model/PrimitivePlacement.md +1 -1
  449. package/dist/docs/reference/model/PrimitivePlacementOptions.md +1 -1
  450. package/dist/docs/reference/model/PrintableThreadFit.md +1 -1
  451. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +1 -1
  452. package/dist/docs/reference/model/Profile.md +1 -1
  453. package/dist/docs/reference/model/ProfileComponent2.md +1 -1
  454. package/dist/docs/reference/model/ProfileContour2.md +1 -1
  455. package/dist/docs/reference/model/ProfileSpan2.md +3 -3
  456. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +3 -3
  457. package/dist/docs/reference/model/RadialPatternOptions.md +4 -4
  458. package/dist/docs/reference/model/RadialSizing.md +1 -1
  459. package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
  460. package/dist/docs/reference/model/RectangleContourOptions.md +3 -3
  461. package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
  462. package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
  463. package/dist/docs/reference/model/RectangleOptions.md +3 -3
  464. package/dist/docs/reference/model/{Region.md → RegionData.md} +4 -4
  465. package/dist/docs/reference/model/RegularPolygonOptions.md +1 -1
  466. package/dist/docs/reference/model/RevolveOptions.md +1 -1
  467. package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
  468. package/dist/docs/reference/model/Section.md +75 -35
  469. package/dist/docs/reference/model/SectionHullOptions.md +7 -7
  470. package/dist/docs/reference/model/SectionInspection.md +4 -4
  471. package/dist/docs/reference/model/{RegionOffsetJoin.md → SectionOffsetJoin.md} +3 -3
  472. package/dist/docs/reference/model/{RegionOffsetOptions.md → SectionOffsetOptions.md} +4 -4
  473. package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
  474. package/dist/docs/reference/model/Solid.md +44 -21
  475. package/dist/docs/reference/model/SolidInspection.md +4 -4
  476. package/dist/docs/reference/model/SolidRayHit.md +4 -4
  477. package/dist/docs/reference/model/SphereOptions.md +1 -1
  478. package/dist/docs/reference/model/StarOptions.md +1 -1
  479. package/dist/docs/reference/model/StrokeOptions.md +91 -0
  480. package/dist/docs/reference/model/StrokePathCap.md +16 -0
  481. package/dist/docs/reference/model/StrokePathJoin.md +16 -0
  482. package/dist/docs/reference/model/SvgOrigin.md +1 -1
  483. package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
  484. package/dist/docs/reference/model/SvgSectionOptions.md +1 -1
  485. package/dist/docs/reference/model/SweepOptions.md +3 -3
  486. package/dist/docs/reference/model/SweepOrientation.md +7 -7
  487. package/dist/docs/reference/model/TextSectionOptions.md +1 -1
  488. package/dist/docs/reference/model/ThreadEndStyle.md +1 -1
  489. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +1 -1
  490. package/dist/docs/reference/model/ThreadHandedness.md +1 -1
  491. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +1 -1
  492. package/dist/docs/reference/model/ThreadLeadInShape.md +1 -1
  493. package/dist/docs/reference/model/ThreadProfile.md +3 -3
  494. package/dist/docs/reference/model/ThreadRidgeOptions.md +1 -1
  495. package/dist/docs/reference/model/ThreadedNutBevel.md +1 -1
  496. package/dist/docs/reference/model/ThreadedNutOptions.md +1 -1
  497. package/dist/docs/reference/model/ThreadedNutPreflight.md +1 -1
  498. package/dist/docs/reference/model/ThreadedNutShape.md +1 -1
  499. package/dist/docs/reference/model/ThreadedRodOptions.md +1 -1
  500. package/dist/docs/reference/model/TorusOptions.md +1 -1
  501. package/dist/docs/reference/model/Transform2-type.md +256 -0
  502. package/dist/docs/reference/model/Transform2Input.md +20 -0
  503. package/dist/docs/reference/model/Transform2Matrix.md +15 -0
  504. package/dist/docs/reference/model/Transform3-type.md +296 -0
  505. package/dist/docs/reference/model/Transform3Input.md +20 -0
  506. package/dist/docs/reference/model/{Transform3.md → Transform3Matrix.md} +3 -3
  507. package/dist/docs/reference/model/TriangleMesh.md +1 -1
  508. package/dist/docs/reference/model/TriangleMeshAnalysis.md +1 -1
  509. package/dist/docs/reference/model/TriangleMeshMeasurements.md +1 -1
  510. package/dist/docs/reference/model/TubeOptions.md +1 -1
  511. package/dist/docs/reference/model/Vector2-type.md +270 -0
  512. package/dist/docs/reference/model/Vector2Input.md +20 -0
  513. package/dist/docs/reference/model/{Vector2.md → Vector2Tuple.md} +3 -3
  514. package/dist/docs/reference/model/Vector3-type.md +282 -0
  515. package/dist/docs/reference/model/Vector3Input.md +20 -0
  516. package/dist/docs/reference/model/{Vector3.md → Vector3Tuple.md} +3 -3
  517. package/dist/docs/reference/model/VectorTextLayout.md +1 -1
  518. package/dist/docs/reference/model/VectorTextMetrics.md +1 -1
  519. package/dist/docs/reference/model/anchor.md +1 -1
  520. package/dist/docs/reference/model/box.md +2 -2
  521. package/dist/docs/reference/model/categories/boolean-operations.md +4 -4
  522. package/dist/docs/reference/model/categories/bounded-surfaces.md +3 -3
  523. package/dist/docs/reference/model/categories/contracts.md +1 -1
  524. package/dist/docs/reference/model/categories/core-values-errors.md +5 -5
  525. package/dist/docs/reference/model/categories/explicit-profiles.md +2 -2
  526. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +1 -1
  527. package/dist/docs/reference/model/categories/generation.md +1 -1
  528. package/dist/docs/reference/model/categories/inspection.md +5 -5
  529. package/dist/docs/reference/model/categories/mesh-inspection.md +2 -2
  530. package/dist/docs/reference/model/categories/primitives.md +2 -2
  531. package/dist/docs/reference/model/categories/resolution.md +1 -1
  532. package/dist/docs/reference/model/categories/sections.md +11 -8
  533. package/dist/docs/reference/model/categories/threads.md +1 -1
  534. package/dist/docs/reference/model/categories/transforms-placement.md +21 -7
  535. package/dist/docs/reference/model/circle.md +1 -1
  536. package/dist/docs/reference/model/components.md +7 -4
  537. package/dist/docs/reference/model/compose.md +1 -1
  538. package/dist/docs/reference/model/cylinder.md +1 -1
  539. package/dist/docs/reference/model/distance.md +2 -2
  540. package/dist/docs/reference/model/ellipse.md +1 -1
  541. package/dist/docs/reference/model/extrude.md +2 -2
  542. package/dist/docs/reference/model/generate.md +1 -1
  543. package/dist/docs/reference/model/gridPattern.md +1 -1
  544. package/dist/docs/reference/model/heightfield.md +2 -2
  545. package/dist/docs/reference/model/hull.md +2 -2
  546. package/dist/docs/reference/model/immutableBuffer.md +1 -1
  547. package/dist/docs/reference/model/immutableMesh.md +1 -1
  548. package/dist/docs/reference/model/implicit.md +3 -3
  549. package/dist/docs/reference/model/inspectSection.md +1 -1
  550. package/dist/docs/reference/model/inspectSolid.md +1 -1
  551. package/dist/docs/reference/model/internalThreadCutter.md +1 -1
  552. package/dist/docs/reference/model/intersect.md +1 -1
  553. package/dist/docs/reference/model/isEmpty.md +2 -2
  554. package/dist/docs/reference/model/linearPattern.md +1 -1
  555. package/dist/docs/reference/model/loft.md +1 -1
  556. package/dist/docs/reference/model/matchProfiles.md +1 -1
  557. package/dist/docs/reference/model/minkowskiSum.md +1 -1
  558. package/dist/docs/reference/model/pathPattern.md +6 -6
  559. package/dist/docs/reference/model/polygon.md +1 -1
  560. package/dist/docs/reference/model/preflightInternalThreadCutter.md +1 -1
  561. package/dist/docs/reference/model/preflightThreadedNut.md +1 -1
  562. package/dist/docs/reference/model/preflightThreadedRod.md +1 -1
  563. package/dist/docs/reference/model/radialPattern.md +5 -5
  564. package/dist/docs/reference/model/rayCast.md +5 -5
  565. package/dist/docs/reference/model/rectangle.md +2 -2
  566. package/dist/docs/reference/model/regularPolygon.md +1 -1
  567. package/dist/docs/reference/model/revolve.md +1 -1
  568. package/dist/docs/reference/model/solidFromMesh.md +1 -1
  569. package/dist/docs/reference/model/sphere.md +1 -1
  570. package/dist/docs/reference/model/split.md +1 -1
  571. package/dist/docs/reference/model/splitByPlane.md +1 -1
  572. package/dist/docs/reference/model/star.md +1 -1
  573. package/dist/docs/reference/model/stroke.md +74 -0
  574. package/dist/docs/reference/model/svgPathSection.md +1 -1
  575. package/dist/docs/reference/model/svgSection.md +1 -1
  576. package/dist/docs/reference/model/sweep.md +5 -5
  577. package/dist/docs/reference/model/textSection.md +1 -1
  578. package/dist/docs/reference/model/threadRidge.md +1 -1
  579. package/dist/docs/reference/model/threadedNut.md +1 -1
  580. package/dist/docs/reference/model/threadedRod.md +1 -1
  581. package/dist/docs/reference/model/toTriangleMesh.md +1 -1
  582. package/dist/docs/reference/model/torus.md +1 -1
  583. package/dist/docs/reference/model/transform2.md +39 -0
  584. package/dist/docs/reference/model/transform3.md +39 -0
  585. package/dist/docs/reference/model/tube.md +1 -1
  586. package/dist/docs/reference/model/union.md +1 -1
  587. package/dist/docs/reference/model/vector2.md +32 -0
  588. package/dist/docs/reference/model/vector3.md +39 -0
  589. package/dist/docs/reference/model.md +7 -7
  590. package/dist/docs/reference/text/Bounds2.md +4 -4
  591. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
  592. package/dist/docs/reference/text/Vector2Tuple.md +7 -0
  593. package/dist/docs/reference/text/VectorFont.md +1 -1
  594. package/dist/docs/reference/text/VectorFontOptions.md +1 -1
  595. package/dist/docs/reference/text/VectorTextArcBaseline.md +1 -1
  596. package/dist/docs/reference/text/VectorTextLayout.md +1 -1
  597. package/dist/docs/reference/text/VectorTextLayoutOptions.md +1 -1
  598. package/dist/docs/reference/text/VectorTextMetrics.md +1 -1
  599. package/dist/docs/reference/text/VectorTextOptions.md +1 -1
  600. package/dist/docs/reference/text/categories/font-preparation.md +2 -2
  601. package/dist/docs/reference/text/prepareVectorFont.md +1 -1
  602. package/dist/docs/reference/text.md +1 -1
  603. package/dist/engine/deferred-context.js +11 -181
  604. package/dist/engine/native/transforms.js +6 -1
  605. package/dist/engine/pattern-operations.js +2 -2
  606. package/dist/engine/primitive-profiles.js +1 -0
  607. package/dist/engine/recipe-realization.js +29 -21
  608. package/dist/engine/section-operations.js +19 -3
  609. package/dist/engine/session-graph.js +1 -1
  610. package/dist/engine/session-native.js +1 -1
  611. package/dist/engine/session-snapshot.js +3 -2
  612. package/dist/engine/session.js +3 -3
  613. package/dist/engine/shape-anchors.js +3 -9
  614. package/dist/engine/transform-operations.js +42 -25
  615. package/dist/geometry/index.js +6 -2
  616. package/dist/geometry/math/immutable-value.js +20 -0
  617. package/dist/geometry/math/vector-value.js +168 -0
  618. package/dist/geometry/math/vector2.js +80 -0
  619. package/dist/geometry/math/vector3.js +37 -7
  620. package/dist/geometry/mechanical/gear-motion.js +7 -4
  621. package/dist/geometry/mesh/mesh-solid-intersections.js +5 -1
  622. package/dist/geometry/paths/closest-point.js +74 -0
  623. package/dist/geometry/paths/frames.js +3 -3
  624. package/dist/geometry/primitive-resolution.js +4 -1
  625. package/dist/geometry/resolution.js +17 -5
  626. package/dist/geometry/stroke-path.js +48 -44
  627. package/dist/geometry/sweeps/stations.js +4 -4
  628. package/dist/geometry/sweeps/sweep-closed.js +3 -3
  629. package/dist/geometry/sweeps/sweep-open.js +3 -3
  630. package/dist/geometry/transform-chain.js +172 -0
  631. package/dist/geometry/transform-geometry.js +28 -24
  632. package/dist/geometry/transform-matrix.js +14 -0
  633. package/dist/geometry/transform2.js +60 -0
  634. package/dist/geometry/transform3.js +70 -26
  635. package/dist/index.js +3 -0
  636. package/dist/model/execution-binding.js +10 -5
  637. package/dist/model/geometry-recipes.js +15 -0
  638. package/dist/{engine → model}/immutable-generation-data.js +25 -3
  639. package/dist/model/operation-dispatch.js +10 -3
  640. package/dist/model/operations.js +21 -10
  641. package/dist/model/recipe-declaration.js +193 -0
  642. package/dist/model/shape-handles.js +15 -4
  643. package/package.json +1 -1
  644. package/dist/docs/reference/geometry/Region.md +0 -14
  645. package/dist/docs/reference/geometry/Transform3.md +0 -12
  646. package/dist/docs/reference/geometry/Vector2.md +0 -7
  647. package/dist/docs/reference/geometry/Vector3.md +0 -7
  648. package/dist/docs/reference/geometry/rotateAroundAxis3.md +0 -38
  649. package/dist/docs/reference/geometry/transformRegion.md +0 -40
  650. package/dist/docs/reference/model/Transform2.md +0 -15
  651. package/dist/docs/reference/model/toRegion.md +0 -33
  652. package/dist/docs/reference/text/Vector2.md +0 -7
  653. package/dist/engine/geometry-recipes.js +0 -12
  654. package/dist/engine/pattern-transform.js +0 -9
@@ -0,0 +1,282 @@
1
+ # Vector3
2
+
3
+ Immutable XYZ arithmetic; vector operations return new values and measurements return numbers.
4
+
5
+ ## Properties
6
+
7
+ ### x
8
+
9
+
10
+
11
+ `readonly` **x**: `number`
12
+
13
+
14
+
15
+ X coordinate in the vector's coordinate units.
16
+
17
+ ***
18
+
19
+ ### y
20
+
21
+
22
+
23
+ `readonly` **y**: `number`
24
+
25
+
26
+
27
+ Y coordinate in the vector's coordinate units.
28
+
29
+ ***
30
+
31
+ ### z
32
+
33
+
34
+
35
+ `readonly` **z**: `number`
36
+
37
+
38
+
39
+ Z coordinate in the vector's coordinate units.
40
+
41
+ ## Methods
42
+
43
+ ### add()
44
+
45
+
46
+
47
+ **add**(`other`: [`Vector3Input`](Vector3Input.md)): `Vector3`
48
+
49
+
50
+
51
+ Adds another vector component-wise.
52
+
53
+ #### Parameters
54
+
55
+ <a id="other"></a>
56
+
57
+ **`other`** · [`Vector3Input`](Vector3Input.md) · Required
58
+
59
+
60
+
61
+ #### Returns
62
+
63
+ `Vector3`
64
+
65
+ ***
66
+
67
+ ### subtract()
68
+
69
+
70
+
71
+ **subtract**(`other`: [`Vector3Input`](Vector3Input.md)): `Vector3`
72
+
73
+
74
+
75
+ Subtracts another vector component-wise.
76
+
77
+ #### Parameters
78
+
79
+ <a id="other-1"></a>
80
+
81
+ **`other`** · [`Vector3Input`](Vector3Input.md) · Required
82
+
83
+
84
+
85
+ #### Returns
86
+
87
+ `Vector3`
88
+
89
+ ***
90
+
91
+ ### scale()
92
+
93
+
94
+
95
+ **scale**(`factor`: `number`): `Vector3`
96
+
97
+
98
+
99
+ Multiplies by a finite dimensionless scalar.
100
+
101
+ #### Parameters
102
+
103
+ <a id="factor"></a>
104
+
105
+ **`factor`** · `number` · Required
106
+
107
+
108
+
109
+ #### Returns
110
+
111
+ `Vector3`
112
+
113
+ ***
114
+
115
+ ### normalize()
116
+
117
+
118
+
119
+ **normalize**(`epsilon?`: `number`): `Vector3`
120
+
121
+
122
+
123
+ Returns a unit vector; rejects length at or below finite nonnegative `epsilon` (default `1e-12`).
124
+
125
+ #### Parameters
126
+
127
+ <a id="epsilon"></a>
128
+
129
+ **`epsilon`** · `number` · Optional
130
+
131
+
132
+
133
+ #### Returns
134
+
135
+ `Vector3`
136
+
137
+ ***
138
+
139
+ ### lerp()
140
+
141
+
142
+
143
+ **lerp**(`other`: [`Vector3Input`](Vector3Input.md), `t`: `number`): `Vector3`
144
+
145
+
146
+
147
+ Interpolates toward another vector by finite dimensionless `t`; extrapolation is allowed.
148
+
149
+ #### Parameters
150
+
151
+ <a id="other-2"></a>
152
+
153
+ **`other`** · [`Vector3Input`](Vector3Input.md) · Required
154
+
155
+
156
+
157
+ <a id="t"></a>
158
+
159
+ **`t`** · `number` · Required
160
+
161
+
162
+
163
+ #### Returns
164
+
165
+ `Vector3`
166
+
167
+ ***
168
+
169
+ ### dot()
170
+
171
+
172
+
173
+ **dot**(`other`: [`Vector3Input`](Vector3Input.md)): `number`
174
+
175
+
176
+
177
+ Returns the scalar dot product.
178
+
179
+ #### Parameters
180
+
181
+ <a id="other-3"></a>
182
+
183
+ **`other`** · [`Vector3Input`](Vector3Input.md) · Required
184
+
185
+
186
+
187
+ #### Returns
188
+
189
+ `number`
190
+
191
+ ***
192
+
193
+ ### cross()
194
+
195
+
196
+
197
+ **cross**(`other`: [`Vector3Input`](Vector3Input.md)): `Vector3`
198
+
199
+
200
+
201
+ Returns the right-handed cross product as a new vector.
202
+
203
+ #### Parameters
204
+
205
+ <a id="other-4"></a>
206
+
207
+ **`other`** · [`Vector3Input`](Vector3Input.md) · Required
208
+
209
+
210
+
211
+ #### Returns
212
+
213
+ `Vector3`
214
+
215
+ ***
216
+
217
+ ### length()
218
+
219
+
220
+
221
+ **length**(): `number`
222
+
223
+
224
+
225
+ Returns Euclidean length in the vector's coordinate units.
226
+
227
+ #### Returns
228
+
229
+ `number`
230
+
231
+ ***
232
+
233
+ ### distance()
234
+
235
+
236
+
237
+ **distance**(`other`: [`Vector3Input`](Vector3Input.md)): `number`
238
+
239
+
240
+
241
+ Returns Euclidean distance to another vector in the same coordinate units.
242
+
243
+ #### Parameters
244
+
245
+ <a id="other-5"></a>
246
+
247
+ **`other`** · [`Vector3Input`](Vector3Input.md) · Required
248
+
249
+
250
+
251
+ #### Returns
252
+
253
+ `number`
254
+
255
+ ***
256
+
257
+ ### toArray()
258
+
259
+
260
+
261
+ **toArray**(): [`Vector3Tuple`](Vector3Tuple.md)
262
+
263
+
264
+
265
+ Returns this value's frozen readonly tuple for interchange; repeated calls do not allocate.
266
+
267
+ #### Returns
268
+
269
+ [`Vector3Tuple`](Vector3Tuple.md)
270
+
271
+
272
+ ## Related APIs
273
+
274
+ - [Vector3Input](Vector3Input.md)
275
+ - [Vector3Tuple](Vector3Tuple.md)
276
+
277
+ ## Guides
278
+
279
+ - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
280
+ - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
281
+
282
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,20 @@
1
+ # Vector3Input
2
+
3
+ An XYZ tuple or immutable fluent vector accepted by vector operations.
4
+
5
+ **Vector3Input** = [`Vector3Tuple`](Vector3Tuple.md) \| [`Vector3`](Vector3-type.md)
6
+
7
+
8
+
9
+
10
+ ## Related APIs
11
+
12
+ - [Vector3](Vector3-type.md)
13
+ - [Vector3Tuple](Vector3Tuple.md)
14
+
15
+ ## Guides
16
+
17
+ - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
18
+ - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
19
+
20
+ Package: `@metamesh/modeling@0.14.0`.
@@ -1,8 +1,8 @@
1
- # Vector3
1
+ # Vector3Tuple
2
2
 
3
3
  A three-dimensional Cartesian vector or point.
4
4
 
5
- **Vector3** = readonly \[`x`: `number`, `y`: `number`, `z`: `number`\]
5
+ **Vector3Tuple** = readonly \[`x`: `number`, `y`: `number`, `z`: `number`\]
6
6
 
7
7
 
8
8
 
@@ -12,4 +12,4 @@ A three-dimensional Cartesian vector or point.
12
12
  - [Geometry vocabulary](../../guides/concepts.md#geometry-vocabulary)
13
13
  - [Lifecycle and inspection](../../guides/concepts.md#lifecycle-and-inspection)
14
14
 
15
- Package: `@metamesh/modeling@0.13.0`.
15
+ Package: `@metamesh/modeling@0.14.0`.
@@ -37,4 +37,4 @@ Exact measurements of these paths and their logical text layout.
37
37
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
38
38
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
39
39
 
40
- Package: `@metamesh/modeling@0.13.0`.
40
+ Package: `@metamesh/modeling@0.14.0`.
@@ -97,4 +97,4 @@ Number of lines, including empty and trailing lines; empty text occupies one lin
97
97
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
98
98
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
99
99
 
100
- Package: `@metamesh/modeling@0.13.0`.
100
+ Package: `@metamesh/modeling@0.14.0`.
@@ -43,4 +43,4 @@ anchor(plate, "top"); // position [0, 0, 3], direction [0, 0, 1]
43
43
  - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
44
44
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
45
45
 
46
- Package: `@metamesh/modeling@0.13.0`.
46
+ Package: `@metamesh/modeling@0.14.0`.
@@ -22,7 +22,7 @@ box({ size: [30, 20, 8], treatment: { kind: "round", radius: 2 } });
22
22
 
23
23
  **`options`** · [`BoxOptions`](BoxOptions.md) · Required
24
24
 
25
- - [`size`](BoxOptions.md#size) · `number` \| [`Vector3`](Vector3.md) · Required
25
+ - [`size`](BoxOptions.md#size) · `number` \| [`Vector3Tuple`](Vector3Tuple.md) · Required
26
26
 
27
27
  Positive uniform size or explicit `[X, Y, Z]` extents in millimetres.
28
28
 
@@ -59,4 +59,4 @@ box({ size: [30, 20, 8], treatment: { kind: "round", radius: 2 } });
59
59
  - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
60
60
  - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
61
61
 
62
- Package: `@metamesh/modeling@0.13.0`.
62
+ Package: `@metamesh/modeling@0.14.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Combine, intersect and subtract same-dimensional shapes; construct solid envelopes and sums.
4
4
 
5
- union and intersect combine arrays of Sections or Solids; shape.subtract(cutters) cuts an array from one base. Every operand must have the same dimension. Section operations preserve filled holes and disconnected components. compose combines solid components without a Boolean union; hull and minkowskiSum construct envelopes. Keep Boolean overtravel separate from physical fit clearance. hull accepts same-session solids, sections, or finite points. split returns intersection then subtraction without repeating the cutter setup. Plane operations use a nonzero normal and a signed millimetre offset along its normalized direction; empty results remain queryable handles.
5
+ union and intersect combine arrays of Sections or Solids; shape.subtract(cutters) cuts an array from one base. Every operand must have the same dimension. Section operations preserve filled holes and disconnected components. compose combines solid components without a Boolean union; hull and minkowskiSum construct envelopes. Keep Boolean overtravel separate from physical fit clearance. hull accepts compatible solid and section recipes, or finite points. split returns intersection then subtraction without repeating the cutter setup. Plane operations use a nonzero normal and a signed millimetre offset along its normalized direction; empty results remain queryable handles.
6
6
 
7
7
  ## Functions
8
8
 
@@ -26,12 +26,12 @@ union and intersect combine arrays of Sections or Solids; shape.subtract(cutters
26
26
 
27
27
  | API | Summary |
28
28
  | --- | --- |
29
- | [HullOptions](../HullOptions.md) | Hull inputs are either finite points or same-session solids. |
30
- | [SectionHullOptions](../SectionHullOptions.md) | Planar convex hull inputs are finite XY points or same-session filled sections. |
29
+ | [HullOptions](../HullOptions.md) | Hull inputs are either finite points or solid recipes. |
30
+ | [SectionHullOptions](../SectionHullOptions.md) | Planar convex hull inputs are finite XY points or filled section recipes. |
31
31
 
32
32
  ## Guides
33
33
 
34
34
  - [Choose the Boolean by the material you want](../../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
35
35
  - [Primitive booleans and repeated placement](../../../guides/recipes.md#primitive-booleans-and-repeated-placement)
36
36
 
37
- Package: `@metamesh/modeling@0.13.0`.
37
+ Package: `@metamesh/modeling@0.14.0`.
@@ -8,8 +8,8 @@ Heightfields accept uniform or explicit uneven XY coordinates and close absolute
8
8
 
9
9
  | API | Summary |
10
10
  | --- | --- |
11
- | [heightfield](../heightfield.md) | Closed rectilinear top above a flat base, with uniform or explicit XY coordinates. Samples each grid height once; center-error triangulation also samples each cell centre. |
12
- | [implicit](../implicit.md) | Bounded positive-inside implicit field constructor. |
11
+ | [heightfield](../heightfield.md) | Closed rectilinear top above a flat base, with uniform or explicit XY coordinates. Samples each grid height once; center-error triangulation also samples each cell centre. The retained callback must capture independent immutable inputs, not live session readers or parameters. |
12
+ | [implicit](../implicit.md) | Bounded positive-inside implicit field constructor. The retained callback must capture independent immutable inputs, not live session readers or parameters. |
13
13
 
14
14
  ## Interfaces
15
15
 
@@ -23,4 +23,4 @@ Heightfields accept uniform or explicit uneven XY coordinates and close absolute
23
23
  | --- | --- |
24
24
  | [HeightfieldOptions](../HeightfieldOptions.md) | A closed rectilinear heightfield above a flat base, with uniform or explicit XY samples in millimetres. |
25
25
 
26
- Package: `@metamesh/modeling@0.13.0`.
26
+ Package: `@metamesh/modeling@0.14.0`.
@@ -13,4 +13,4 @@ Generation returns semantic parts from part(id, geometry) or placement/color opt
13
13
  | [GeometrySamplingLimits](../GeometrySamplingLimits.md) | Explicit allocation ceilings for pure sampling and host-owned modeling operations. |
14
14
  | [ModelingLimits](../ModelingLimits.md) | Aggregate manufacturing output ceilings selected by a trusted host. |
15
15
 
16
- Package: `@metamesh/modeling@0.13.0`.
16
+ Package: `@metamesh/modeling@0.14.0`.
@@ -9,7 +9,7 @@ Use the small shared vocabulary for authored geometry, coordinates, paths, and s
9
9
  | API | Summary |
10
10
  | --- | --- |
11
11
  | [Frame3](../Frame3.md) | A right-handed orthonormal coordinate frame expressed in world coordinates. |
12
- | [Polygon](../Polygon-type.md) | One bounded two-dimensional polygon. |
12
+ | [PolygonData](../PolygonData.md) | One bounded two-dimensional polygon. |
13
13
  | [Bounds2](../Bounds2.md) | Axis-aligned bounds in two-dimensional model space. |
14
14
  | [Bounds3](../Bounds3.md) | Axis-aligned bounds in three-dimensional model space. |
15
15
 
@@ -18,13 +18,13 @@ Use the small shared vocabulary for authored geometry, coordinates, paths, and s
18
18
  | API | Summary |
19
19
  | --- | --- |
20
20
  | [Contour](../Contour.md) | A closed two-dimensional boundary whose first point is not repeated at the end. |
21
- | [Region](../Region.md) | A two-dimensional region represented by disjoint filled polygons. |
22
- | [Vector2](../Vector2.md) | A two-dimensional Cartesian vector or point. |
23
- | [Vector3](../Vector3.md) | A three-dimensional Cartesian vector or point. |
21
+ | [RegionData](../RegionData.md) | A two-dimensional region represented by disjoint filled polygons. |
22
+ | [Vector2Tuple](../Vector2Tuple.md) | A two-dimensional Cartesian vector or point. |
23
+ | [Vector3Tuple](../Vector3Tuple.md) | A three-dimensional Cartesian vector or point. |
24
24
 
25
25
  ## Guides
26
26
 
27
27
  - [Geometry vocabulary](../../../guides/concepts.md#geometry-vocabulary)
28
28
  - [Lifecycle and inspection](../../../guides/concepts.md#lifecycle-and-inspection)
29
29
 
30
- Package: `@metamesh/modeling@0.13.0`.
30
+ Package: `@metamesh/modeling@0.14.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Build hollow or multicomponent lofts and sweeps using stable landmarks.
4
4
 
5
- Contour is plain point data with an implicit closing edge. Profile is an identified family specification with stable component, contour and span IDs; it is distinct from a filled native Section. Prepare matchProfiles over the complete family once to produce CorrespondingProfile values. All paired spans share a physical sampling grid, including logical slots for collapsed corners. loft and sweep consume this correspondence without guessing topology or rematching.
5
+ Contour is plain point data with an implicit closing edge. Profile is an identified family specification with stable component, contour and span IDs; it is distinct from a filled Section. Prepare matchProfiles over the complete family once to produce CorrespondingProfile values. All paired spans share a physical sampling grid, including logical slots for collapsed corners. loft and sweep consume this correspondence without guessing topology or rematching.
6
6
 
7
7
  ## Functions
8
8
 
@@ -29,4 +29,4 @@ Contour is plain point data with an implicit closing edge. Profile is an identif
29
29
  | [CorrespondingProfileStation](../CorrespondingProfileStation.md) | One already matched profile at an explicit height or right-handed spatial frame. |
30
30
  | [ProfileSpan2](../ProfileSpan2.md) | An identified line, circular arc, or cubic Bézier between corresponding landmarks. |
31
31
 
32
- Package: `@metamesh/modeling@0.13.0`.
32
+ Package: `@metamesh/modeling@0.14.0`.
@@ -39,4 +39,4 @@ Turn sections and paths into extruded, lofted, revolved, or swept solids.
39
39
  - [Matched-section loft](../../../guides/recipes.md#matched-section-loft)
40
40
  - [Choose a modeling path](../../../guides/concepts.md#choose-a-modeling-path)
41
41
 
42
- Package: `@metamesh/modeling@0.13.0`.
42
+ Package: `@metamesh/modeling@0.14.0`.
@@ -41,4 +41,4 @@ Start with `generate(({ params, part, assert }) => ...)` and return one `part(..
41
41
  | [GenerateCallback](../GenerateCallback.md) | Pure synchronous callback returning one declared part or an array; caches are optional. |
42
42
  | [PartGeometry](../PartGeometry.md) | Manufacturing geometry; filled sections are intermediate construction values. |
43
43
 
44
- Package: `@metamesh/modeling@0.13.0`.
44
+ Package: `@metamesh/modeling@0.14.0`.
@@ -1,17 +1,17 @@
1
1
  # Solid inspection
2
2
 
3
- Inspect and convert session-owned recipes while retaining host ownership.
3
+ Evaluate recipes and copy observations while the host owns native resources.
4
4
 
5
- Inspection returns copied scalar facts and finite bounds. Mesh extraction is explicit; finalized engine output is already copied and validated. A handle belongs to one session and cannot cross a worker or be used after session disposal. components accepts either dimension; simplify is an immutable shape method. Solid.projectSection and Solid.sliceSection return Sections. isEmpty distinguishes empty Boolean/split results; distance measures the minimum separation between nonempty solids and returns zero for contact or overlapping material.
5
+ Inspection returns copied scalar facts and finite bounds. Mesh extraction is explicit; finalized engine output is already copied and validated. Ordinary recipes remain reusable after session disposal. Observed component selections and recipes using them can only be evaluated in their originating session. Recipe handles cannot cross a Worker boundary. components accepts either dimension; simplify is an immutable shape method. Solid.projectSection and Solid.sliceSection return Sections. isEmpty distinguishes empty Boolean/split results; distance measures the minimum separation between nonempty solids and returns zero for contact or overlapping material.
6
6
 
7
7
  ## Functions
8
8
 
9
9
  | API | Summary |
10
10
  | --- | --- |
11
- | [components](../components.md) | Separates a solid's disconnected surface shells into same-session solid handles. |
11
+ | [components](../components.md) | Observes a solid's disconnected surface shells as session-restricted solid selections. |
12
12
  | [rayCast](../rayCast.md) | Copies intersections along the finite directed origin-to-endpoint segment. |
13
13
  | [toTriangleMesh](../toTriangleMesh.md) | Copies a handle to manufacturing mesh buffers. |
14
- | [isEmpty](../isEmpty.md) | Checks whether a same-session solid or filled section contains no geometry. |
14
+ | [isEmpty](../isEmpty.md) | Checks whether a solid or filled section contains no geometry during host execution. |
15
15
  | [distance](../distance.md) | Measures the minimum separation between two nonempty solids in millimetres. |
16
16
 
17
17
  ## Interfaces
@@ -20,4 +20,4 @@ Inspection returns copied scalar facts and finite bounds. Mesh extraction is exp
20
20
  | --- | --- |
21
21
  | [SolidRayHit](../SolidRayHit.md) | Copied surface intersection from a finite directed segment. Distance is in millimetres. |
22
22
 
23
- Package: `@metamesh/modeling@0.13.0`.
23
+ Package: `@metamesh/modeling@0.14.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Convert validated meshes and inspect stable section or solid measurements.
4
4
 
5
- inspectSection and inspectSolid copy native scalar facts and bounds from same-build handles. toTriangleMesh returns copied manufacturing arrays; final engine output also receives strict mesh analysis. Neither inspection certifies wall thickness, overhangs, printer fit or material behavior.
5
+ inspectSection and inspectSolid copy native scalar facts and bounds from recipes in the active host execution. toTriangleMesh returns copied manufacturing arrays; final engine output also receives strict mesh analysis. Neither inspection certifies wall thickness, overhangs, printer fit or material behavior.
6
6
 
7
7
  ## Functions
8
8
 
@@ -26,4 +26,4 @@ inspectSection and inspectSolid copy native scalar facts and bounds from same-bu
26
26
 
27
27
  - [Solid inspection](../../../guides/recipes.md#solid-inspection)
28
28
 
29
- Package: `@metamesh/modeling@0.13.0`.
29
+ Package: `@metamesh/modeling@0.14.0`.
@@ -29,7 +29,7 @@ export default generate(({ part }) => {
29
29
 
30
30
  | API | Summary |
31
31
  | --- | --- |
32
- | [Solid](../Solid.md) | Immutable deferred solid recipe belonging to exactly one model session. Methods run during synchronous generation, preserve their receiver, and use millimetres and degrees. A no-op may reuse the receiver; final part placement belongs in `part` options. |
32
+ | [Solid](../Solid.md) | Immutable deferred solid recipe. Construction and composition require no engine. Ordinary recipes may be reused across sessions regardless of where constructed. Explicit resolution settings are captured; unspecified settings inherit the evaluating host's defaults. Observed components and recipes using them can only be evaluated in their originating session. Methods leave the source unchanged and use millimetres and degrees. A no-op may reuse the receiver; final part placement belongs in `part` options. |
33
33
  | [BoxOptions](../BoxOptions.md) | Dimensions, placement, and uniform or independently selected finishing for an axis-aligned box. |
34
34
  | [ChamferedEdgeTreatment](../ChamferedEdgeTreatment.md) | A planar edge or corner chamfer with equal or independent surface setbacks. |
35
35
  | [CircularPrimitiveOptions](../CircularPrimitiveOptions.md) | Tessellation controls shared by circular primitives across Geometry entry points. |
@@ -58,4 +58,4 @@ export default generate(({ part }) => {
58
58
  - [Choose a primitive](../../../guides/recipes.md#choose-a-primitive)
59
59
  - [Treated boxes, frustums, and mirrored arrays](../../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
60
60
 
61
- Package: `@metamesh/modeling@0.13.0`.
61
+ Package: `@metamesh/modeling@0.14.0`.
@@ -15,4 +15,4 @@ Exact operation counts take precedence over the operation’s resolution policy,
15
15
 
16
16
  - [Coordinates, units, and resolution](../../../guides/concepts.md#coordinates-units-and-resolution)
17
17
 
18
- Package: `@metamesh/modeling@0.13.0`.
18
+ Package: `@metamesh/modeling@0.14.0`.
@@ -1,16 +1,16 @@
1
1
  # 2D Sections
2
2
 
3
- Create native filled XY sections, including prepared text and bounded painted SVG.
3
+ Create immutable filled XY shapes, including prepared text and bounded painted SVG.
4
4
 
5
- A Section is a filled native XY shape with holes and disconnected components. rectangle, circle, ellipse, regularPolygon and star take object options. Boolean and offset chains stay native until an explicit toRegion conversion. textSection consumes prepared VectorTextLayout without shaping again. Extrusion and revolution preserve filled topology; sweeps retain all contours. Compatible primitive Sections retain their authored landmarks for direct lofting; arbitrary Sections require explicit vertex correspondence. `polygon(points)` fills a single implicit closed contour. `polygon({ outer, holes })` validates explicit topology; `polygon({ contours, fillRule })` resolves compound winding with nonzero fill by default or evenodd fill. All forms return a Section.
5
+ Section is the filled XY modeling value with holes and disconnected components. RegionData is its serialized polygon data. Construct with `polygon(points)`, `polygon({ outer, holes })`, `polygon({ contours, fillRule })`, or `polygon({ polygons: data })`. Explicit topology validates boundaries and winding; compound contours use nonzero fill by default or evenodd fill. Observe evaluated coordinates with section.toRegionData() during synchronous host execution. Construction and composition are engine-independent; native evaluation is host-owned. textSection consumes prepared VectorTextLayout without shaping again. Extrusion, revolution and sweeps preserve filled topology. Compatible primitive Sections retain authored landmarks for lofting; arbitrary Sections need explicit correspondence.
6
6
 
7
7
  ## Functions
8
8
 
9
9
  | API | Summary |
10
10
  | --- | --- |
11
+ | [stroke](../stroke.md) | Creates a centered-width native Section along a sampled XY path. |
11
12
  | [circle](../circle.md) | Centered circular section. |
12
13
  | [ellipse](../ellipse.md) | Centered elliptical section. |
13
- | [fromRegion](../fromRegion.md) | Imports explicit region topology once. |
14
14
  | [rectangle](../rectangle.md) | Filled rectangular section with uniform or independently treated corners. |
15
15
  | [regularPolygon](../regularPolygon.md) | Regular polygon with a vertex on +X. |
16
16
  | [polygon](../polygon.md) | Fills one closed millimetre XY outline, explicit outer/hole topology, or compound contours. Closing edges are implicit. Compound contours use nonzero fill unless selected otherwise. Explicit topology must be simple and disjoint; compound winding may resolve overlaps. |
@@ -18,16 +18,16 @@ A Section is a filled native XY shape with holes and disconnected components. re
18
18
  | [svgPathSection](../svgPathSection.md) | Imports bounded filled SVG path data. |
19
19
  | [svgSection](../svgSection.md) | Imports bounded painted SVG document geometry. |
20
20
  | [textSection](../textSection.md) | Consumes a previously prepared layout; never shapes or fetches a font. |
21
- | [toRegion](../toRegion.md) | Explicit copied topology inspection; not needed for section operations. |
22
21
 
23
22
  ## Interfaces
24
23
 
25
24
  | API | Summary |
26
25
  | --- | --- |
27
- | [Section](../Section.md) | Immutable deferred filled XY section recipe belonging to exactly one model session. Methods run during synchronous generation and preserve their receiver. Distances use millimetres; rotations are counterclockwise degrees about the origin. Construction uses the session resolution unless the operation supplies explicit options. |
26
+ | [Section](../Section.md) | Immutable deferred filled XY section recipe. Construction and composition require no engine. Ordinary recipes may be reused across sessions regardless of where constructed. Observed components and recipes using them can only be evaluated in their originating session. Methods leave the source unchanged; observations require a synchronous model execution. Distances use millimetres; rotations use counterclockwise degrees. Explicit resolution settings are captured; unspecified settings inherit the evaluating host's defaults. |
27
+ | [StrokeOptions](../StrokeOptions.md) | Physical stroke and topology controls shared by pure regions and native Sections. |
28
28
  | [RectangleContourOptions](../RectangleContourOptions.md) | Shared rectangle dimensions, origin and uniform or per-corner treatment. |
29
29
  | [RectangleOptions](../RectangleOptions.md) | Rectangle dimensions, placement and uniform or per-corner treatment. |
30
- | [RegionOffsetOptions](../RegionOffsetOptions.md) | Options controlling robust Clipper2 region offsets. |
30
+ | [SectionOffsetOptions](../SectionOffsetOptions.md) | Options controlling robust Clipper2 region offsets. |
31
31
  | [StarOptions](../StarOptions.md) | Alternating outer and inner vertices, centered on the XY origin. |
32
32
  | [SvgPathSectionOptions](../SvgPathSectionOptions.md) | Bounded filled SVG path sampling. Path scale converts user units to millimetres. |
33
33
  | [SvgSectionOptions](../SvgSectionOptions.md) | Bounded SVG document sampling. Center origin uses the final painted bounds. |
@@ -39,6 +39,9 @@ A Section is a filled native XY shape with holes and disconnected components. re
39
39
 
40
40
  | API | Summary |
41
41
  | --- | --- |
42
+ | [Path2](../Path2.md) | An ordered, open sequence of two-dimensional points. |
43
+ | [StrokePathCap](../StrokePathCap.md) | End-cap treatment for an open stroked path. |
44
+ | [StrokePathJoin](../StrokePathJoin.md) | Join treatment where adjacent stroked path segments meet. |
42
45
  | [CircleContourOptions](../CircleContourOptions.md) | Circular profile dimensions with exactly one radius or diameter and explicit sampling. |
43
46
  | [CircleOptions](../CircleOptions.md) | Circular dimensions with exactly one nominal radius or diameter. |
44
47
  | [EllipseContourOptions](../EllipseContourOptions.md) | Ellipse dimensions with exactly one XY radii or full-size tuple and explicit sampling. |
@@ -46,7 +49,7 @@ A Section is a filled native XY shape with holes and disconnected components. re
46
49
  | [RectangleCornerTreatment](../RectangleCornerTreatment.md) | A rectangle corner, including an explicitly untreated corner in a treatment tuple. |
47
50
  | [RectangleCornerTreatments](../RectangleCornerTreatments.md) | Corner treatments ordered top-right, top-left, bottom-left, bottom-right. |
48
51
  | [RegularPolygonOptions](../RegularPolygonOptions.md) | Regular polygon dimensions, radial convention and degree rotation. |
49
- | [RegionOffsetJoin](../RegionOffsetJoin.md) | Clipper2 join styles accepted by robust region offsets. |
52
+ | [SectionOffsetJoin](../SectionOffsetJoin.md) | Clipper2 join styles accepted by robust region offsets. |
50
53
  | [PolygonOptions](../PolygonOptions.md) | Explicit polygon topology or compound contours; all closing edges are implicit. |
51
54
  | [SvgOrigin](../SvgOrigin.md) | Placement of painted SVG geometry after SVG Y-axis inversion. |
52
55
 
@@ -56,4 +59,4 @@ A Section is a filled native XY shape with holes and disconnected components. re
56
59
  - [SVG sections: fills and strokes are different inputs](../../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
57
60
  - [Text and font variability](../../../guides/concepts.md#text-and-font-variability)
58
61
 
59
- Package: `@metamesh/modeling@0.13.0`.
62
+ Package: `@metamesh/modeling@0.14.0`.
@@ -47,4 +47,4 @@ Thread pitch is adjacent axial spacing; lead equals pitch times starts. Prepare
47
47
 
48
48
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
49
49
 
50
- Package: `@metamesh/modeling@0.13.0`.
50
+ Package: `@metamesh/modeling@0.14.0`.