@metamesh/modeling 0.15.0 → 0.16.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 (700) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +33 -6
  3. package/dist/api/engine.d.ts +4 -3
  4. package/dist/api/geometry.d.ts +529 -242
  5. package/dist/api/index.d.ts +363 -104
  6. package/dist/api/text.d.ts +6 -6
  7. package/dist/docs/guides/concepts.md +295 -106
  8. package/dist/docs/guides/fonts.md +9 -8
  9. package/dist/docs/guides/fundamentals.md +17 -21
  10. package/dist/docs/guides/generation.md +24 -23
  11. package/dist/docs/guides/hosting.md +25 -20
  12. package/dist/docs/guides/recipes.md +35 -30
  13. package/dist/docs/guides/standalone-model.md +42 -0
  14. package/dist/docs/manifest.json +846 -243
  15. package/dist/docs/reference/engine/Export3mfOptions.md +1 -1
  16. package/dist/docs/reference/engine/ExportMeshPart.md +1 -1
  17. package/dist/docs/reference/engine/GenerationOptions.md +1 -1
  18. package/dist/docs/reference/engine/GeometryResource.md +1 -1
  19. package/dist/docs/reference/engine/ModelDependencies.md +1 -1
  20. package/dist/docs/reference/engine/ModelEngine.md +1 -1
  21. package/dist/docs/reference/engine/ModelEngineOptions.md +1 -1
  22. package/dist/docs/reference/engine/ModelSession.md +1 -1
  23. package/dist/docs/reference/engine/ModelSnapshot.md +2 -2
  24. package/dist/docs/reference/engine/SessionOptions.md +1 -1
  25. package/dist/docs/reference/engine/SnapshotPart.md +7 -4
  26. package/dist/docs/reference/engine/categories/host-lifecycle.md +8 -3
  27. package/dist/docs/reference/engine/createModelEngine.md +1 -1
  28. package/dist/docs/reference/engine/defaultModelingLimits.md +1 -1
  29. package/dist/docs/reference/engine/modelingWasmUrl.md +1 -1
  30. package/dist/docs/reference/engine/validateModel.md +1 -1
  31. package/dist/docs/reference/engine.md +6 -2
  32. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +5 -1
  33. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +1 -1
  34. package/dist/docs/reference/geometry/Anchor3-type.md +6 -5
  35. package/dist/docs/reference/geometry/ArcCurve2.md +7 -3
  36. package/dist/docs/reference/geometry/ArcCurve3.md +9 -5
  37. package/dist/docs/reference/geometry/AttachOptions.md +2 -1
  38. package/dist/docs/reference/geometry/AxisAngleRotation3.md +2 -1
  39. package/dist/docs/reference/geometry/Bounds2-type.md +127 -0
  40. package/dist/docs/reference/geometry/Bounds2Data.md +45 -0
  41. package/dist/docs/reference/geometry/Bounds2Input.md +21 -0
  42. package/dist/docs/reference/geometry/Bounds3-type.md +127 -0
  43. package/dist/docs/reference/geometry/Bounds3Data.md +45 -0
  44. package/dist/docs/reference/geometry/Bounds3Input.md +21 -0
  45. package/dist/docs/reference/geometry/BoundsFit2.md +6 -5
  46. package/dist/docs/reference/geometry/BoundsFit3.md +6 -5
  47. package/dist/docs/reference/geometry/BoundsFitOptions.md +2 -1
  48. package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +2 -1
  49. package/dist/docs/reference/geometry/BoxAnchorFace.md +2 -1
  50. package/dist/docs/reference/geometry/BoxAnchorOptions.md +5 -4
  51. package/dist/docs/reference/geometry/BoxEdge.md +1 -1
  52. package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
  53. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
  54. package/dist/docs/reference/geometry/BoxOptions.md +3 -3
  55. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +8 -1
  56. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +5 -1
  57. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
  58. package/dist/docs/reference/geometry/CircleContourOptions.md +5 -1
  59. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -1
  60. package/dist/docs/reference/geometry/CircularResolutionOptions.md +1 -1
  61. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +6 -1
  62. package/dist/docs/reference/geometry/ClearanceHoleFit.md +8 -1
  63. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +6 -1
  64. package/dist/docs/reference/geometry/Contour.md +10 -4
  65. package/dist/docs/reference/geometry/ContourCurve.md +5 -1
  66. package/dist/docs/reference/geometry/ContourPoint.md +6 -1
  67. package/dist/docs/reference/geometry/ContourSegment.md +5 -1
  68. package/dist/docs/reference/geometry/CorrespondingComponent.md +5 -1
  69. package/dist/docs/reference/geometry/CorrespondingContour.md +5 -1
  70. package/dist/docs/reference/geometry/CorrespondingProfile.md +5 -1
  71. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +5 -1
  72. package/dist/docs/reference/geometry/CubicBezierCurve2.md +10 -6
  73. package/dist/docs/reference/geometry/CubicBezierCurve3.md +10 -6
  74. package/dist/docs/reference/geometry/Curve2.md +5 -1
  75. package/dist/docs/reference/geometry/Curve3.md +5 -1
  76. package/dist/docs/reference/geometry/CurveSamplingOptions.md +5 -1
  77. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +7 -3
  78. package/dist/docs/reference/geometry/CylinderAnchorFace.md +2 -1
  79. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +4 -3
  80. package/dist/docs/reference/geometry/CylinderOptions.md +1 -1
  81. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +6 -1
  82. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +8 -1
  83. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +5 -1
  84. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +5 -1
  85. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +5 -1
  86. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +6 -1
  87. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +5 -1
  88. package/dist/docs/reference/geometry/CylindricalGearSpec.md +6 -1
  89. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
  90. package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
  91. package/dist/docs/reference/geometry/EllipseContourOptions.md +7 -3
  92. package/dist/docs/reference/geometry/EndTreatments.md +1 -1
  93. package/dist/docs/reference/geometry/ExtrudeOptions.md +5 -1
  94. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +5 -1
  95. package/dist/docs/reference/geometry/FittedTextLayout.md +7 -3
  96. package/dist/docs/reference/geometry/Frame3.md +10 -6
  97. package/dist/docs/reference/geometry/GeometryError.md +1 -1
  98. package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
  99. package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
  100. package/dist/docs/reference/geometry/GeometryResolution.md +1 -1
  101. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +5 -1
  102. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
  103. package/dist/docs/reference/geometry/GridPatternOptions.md +4 -4
  104. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +5 -1
  105. package/dist/docs/reference/geometry/HeightfieldOptions.md +9 -5
  106. package/dist/docs/reference/geometry/HeightfieldPreflight.md +9 -4
  107. package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +5 -1
  108. package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +5 -1
  109. package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +7 -2
  110. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +4 -3
  111. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +5 -1
  112. package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +82 -0
  113. package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +148 -0
  114. package/dist/docs/reference/geometry/KnuckleHingeInterval.md +46 -0
  115. package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +51 -0
  116. package/dist/docs/reference/geometry/KnuckleHingeSpec.md +22 -0
  117. package/dist/docs/reference/geometry/LineCurve2.md +8 -4
  118. package/dist/docs/reference/geometry/LineCurve3.md +8 -4
  119. package/dist/docs/reference/geometry/LinearPatternOptions.md +1 -1
  120. package/dist/docs/reference/geometry/LoftCorrespondence.md +6 -1
  121. package/dist/docs/reference/geometry/LoftMeshStation.md +5 -1
  122. package/dist/docs/reference/geometry/LoftOptions.md +5 -1
  123. package/dist/docs/reference/geometry/LoftPlacement.md +5 -1
  124. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +5 -1
  125. package/dist/docs/reference/geometry/MatchProfilesOptions.md +5 -1
  126. package/dist/docs/reference/geometry/MetricFastenerSize.md +9 -2
  127. package/dist/docs/reference/geometry/MetricFastenerStandard.md +5 -1
  128. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +6 -1
  129. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +6 -1
  130. package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
  131. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +5 -1
  132. package/dist/docs/reference/geometry/Path2-type.md +12 -8
  133. package/dist/docs/reference/geometry/Path2Data.md +40 -4
  134. package/dist/docs/reference/geometry/Path2Input.md +8 -3
  135. package/dist/docs/reference/geometry/Path3-type.md +12 -8
  136. package/dist/docs/reference/geometry/Path3Data.md +40 -4
  137. package/dist/docs/reference/geometry/Path3Input.md +8 -3
  138. package/dist/docs/reference/geometry/PathFrame.md +9 -5
  139. package/dist/docs/reference/geometry/PathLocation.md +5 -1
  140. package/dist/docs/reference/geometry/PathNormalGuide.md +8 -4
  141. package/dist/docs/reference/geometry/PathOptions.md +5 -1
  142. package/dist/docs/reference/geometry/PathPatternOptions.md +1 -1
  143. package/dist/docs/reference/geometry/PathPlacement.md +8 -4
  144. package/dist/docs/reference/geometry/PathResamplingOptions.md +5 -1
  145. package/dist/docs/reference/geometry/Pivot2Options.md +2 -1
  146. package/dist/docs/reference/geometry/Pivot3Options.md +2 -1
  147. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +8 -1
  148. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +5 -1
  149. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +5 -1
  150. package/dist/docs/reference/geometry/PlanarPatchQuality.md +7 -3
  151. package/dist/docs/reference/geometry/PolygonData.md +7 -2
  152. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +5 -1
  153. package/dist/docs/reference/geometry/PrimitiveAttachment.md +1 -1
  154. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +1 -1
  155. package/dist/docs/reference/geometry/PrintableThreadFit.md +8 -1
  156. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +6 -1
  157. package/dist/docs/reference/geometry/Profile.md +8 -2
  158. package/dist/docs/reference/geometry/ProfileComponent2.md +5 -1
  159. package/dist/docs/reference/geometry/ProfileContour2.md +8 -2
  160. package/dist/docs/reference/geometry/ProfileSpan2.md +7 -3
  161. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +3 -3
  162. package/dist/docs/reference/geometry/RackPitchDimensions.md +6 -1
  163. package/dist/docs/reference/geometry/RackPitchSpec.md +6 -1
  164. package/dist/docs/reference/geometry/RadialPatternOptions.md +1 -1
  165. package/dist/docs/reference/geometry/RadialSizing.md +1 -1
  166. package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
  167. package/dist/docs/reference/geometry/RectangleContourOptions.md +7 -3
  168. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +5 -1
  169. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +5 -1
  170. package/dist/docs/reference/geometry/RectangleProfileOptions.md +7 -3
  171. package/dist/docs/reference/geometry/RegionData.md +6 -2
  172. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +5 -1
  173. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
  174. package/dist/docs/reference/geometry/RevolveOptions.md +5 -1
  175. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
  176. package/dist/docs/reference/geometry/RowLayoutOptions.md +2 -1
  177. package/dist/docs/reference/geometry/SampleContourOptions.md +5 -1
  178. package/dist/docs/reference/geometry/SampleHelixOptions.md +5 -1
  179. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +5 -1
  180. package/dist/docs/reference/geometry/SampledCurve2.md +8 -4
  181. package/dist/docs/reference/geometry/SampledCurve3.md +8 -4
  182. package/dist/docs/reference/geometry/SampledThreadHelices.md +7 -3
  183. package/dist/docs/reference/geometry/SideProfileCurve.md +5 -1
  184. package/dist/docs/reference/geometry/SideProfilePoint.md +6 -1
  185. package/dist/docs/reference/geometry/SideProfileSegment.md +5 -1
  186. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
  187. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +5 -1
  188. package/dist/docs/reference/geometry/SphereOptions.md +1 -1
  189. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +5 -1
  190. package/dist/docs/reference/geometry/StrokeCap.md +8 -1
  191. package/dist/docs/reference/geometry/StrokeJoin.md +8 -1
  192. package/dist/docs/reference/geometry/StrokeOptions.md +5 -1
  193. package/dist/docs/reference/geometry/SvgImportOptions.md +5 -1
  194. package/dist/docs/reference/geometry/SvgRegionPreflight.md +6 -2
  195. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +7 -3
  196. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +6 -1
  197. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +6 -1
  198. package/dist/docs/reference/geometry/SweepOptions.md +5 -1
  199. package/dist/docs/reference/geometry/SweepOrientation.md +5 -1
  200. package/dist/docs/reference/geometry/ThreadBevelOptions.md +5 -1
  201. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +5 -1
  202. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +5 -1
  203. package/dist/docs/reference/geometry/ThreadEndStyle.md +8 -1
  204. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +5 -1
  205. package/dist/docs/reference/geometry/ThreadHandedness.md +8 -1
  206. package/dist/docs/reference/geometry/ThreadHelixOptions.md +5 -1
  207. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +8 -1
  208. package/dist/docs/reference/geometry/ThreadLeadInShape.md +8 -1
  209. package/dist/docs/reference/geometry/ThreadProfile-type.md +7 -3
  210. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +5 -1
  211. package/dist/docs/reference/geometry/ThreadProfileSpec.md +5 -1
  212. package/dist/docs/reference/geometry/ThreadRole.md +8 -1
  213. package/dist/docs/reference/geometry/ThreadedNutBevel.md +8 -1
  214. package/dist/docs/reference/geometry/ThreadedNutOptions.md +5 -1
  215. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +7 -3
  216. package/dist/docs/reference/geometry/ThreadedNutShape.md +8 -1
  217. package/dist/docs/reference/geometry/ThreadedRodOptions.md +5 -1
  218. package/dist/docs/reference/geometry/TorusOptions.md +1 -1
  219. package/dist/docs/reference/geometry/Transform2-type.md +6 -5
  220. package/dist/docs/reference/geometry/Transform2Data.md +15 -0
  221. package/dist/docs/reference/geometry/Transform2Input.md +4 -3
  222. package/dist/docs/reference/geometry/Transform3-type.md +6 -5
  223. package/dist/docs/reference/geometry/Transform3Data.md +18 -0
  224. package/dist/docs/reference/geometry/Transform3Input.md +4 -3
  225. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +5 -1
  226. package/dist/docs/reference/geometry/TriangleMesh.md +6 -1
  227. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +7 -3
  228. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +5 -1
  229. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +7 -3
  230. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +5 -1
  231. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +5 -1
  232. package/dist/docs/reference/geometry/TriangleMeshSignature.md +7 -3
  233. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +6 -1
  234. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +6 -1
  235. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +5 -1
  236. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +5 -1
  237. package/dist/docs/reference/geometry/TubeOptions.md +1 -1
  238. package/dist/docs/reference/geometry/Vector2-type.md +6 -5
  239. package/dist/docs/reference/geometry/Vector2Data.md +15 -0
  240. package/dist/docs/reference/geometry/Vector2Input.md +4 -3
  241. package/dist/docs/reference/geometry/Vector3-type.md +6 -5
  242. package/dist/docs/reference/geometry/Vector3Data.md +15 -0
  243. package/dist/docs/reference/geometry/Vector3Input.md +4 -3
  244. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +6 -1
  245. package/dist/docs/reference/geometry/VectorTextLayout.md +5 -1
  246. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +5 -1
  247. package/dist/docs/reference/geometry/VectorTextMetrics.md +7 -3
  248. package/dist/docs/reference/geometry/VectorTextOptions.md +5 -1
  249. package/dist/docs/reference/geometry/add2.md +7 -6
  250. package/dist/docs/reference/geometry/add3.md +7 -6
  251. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +5 -1
  252. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +5 -1
  253. package/dist/docs/reference/geometry/anchor3.md +2 -1
  254. package/dist/docs/reference/geometry/anchorFrame3.md +5 -1
  255. package/dist/docs/reference/geometry/applyTransformDirection3.md +8 -7
  256. package/dist/docs/reference/geometry/applyTransformPoint3.md +8 -7
  257. package/dist/docs/reference/geometry/attachmentTransform3.md +5 -4
  258. package/dist/docs/reference/geometry/bounds2.md +38 -0
  259. package/dist/docs/reference/geometry/bounds3.md +38 -0
  260. package/dist/docs/reference/geometry/boundsCenter.md +12 -11
  261. package/dist/docs/reference/geometry/boundsFromSize.md +12 -11
  262. package/dist/docs/reference/geometry/boundsSize.md +12 -11
  263. package/dist/docs/reference/geometry/boxAnchor3.md +4 -3
  264. package/dist/docs/reference/geometry/categories/bounds-layout.md +23 -6
  265. package/dist/docs/reference/geometry/categories/curves-paths.md +21 -9
  266. package/dist/docs/reference/geometry/categories/mechanical.md +22 -10
  267. package/dist/docs/reference/geometry/categories/meshes.md +16 -7
  268. package/dist/docs/reference/geometry/categories/pattern-placement.md +6 -4
  269. package/dist/docs/reference/geometry/categories/primitive-options.md +8 -2
  270. package/dist/docs/reference/geometry/categories/profiles-regions.md +21 -12
  271. package/dist/docs/reference/geometry/categories/resolution-errors.md +5 -3
  272. package/dist/docs/reference/geometry/categories/transforms-math.md +21 -12
  273. package/dist/docs/reference/geometry/categories/vector-import.md +11 -5
  274. package/dist/docs/reference/geometry/circleContour.md +5 -1
  275. package/dist/docs/reference/geometry/closeToAxis.md +14 -5
  276. package/dist/docs/reference/geometry/compensateThreadDiameters.md +5 -1
  277. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +5 -1
  278. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +5 -1
  279. package/dist/docs/reference/geometry/composeTransform3.md +7 -6
  280. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +5 -1
  281. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +11 -2
  282. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +13 -5
  283. package/dist/docs/reference/geometry/computeTriangleMeshSignature.md +5 -1
  284. package/dist/docs/reference/geometry/containsBounds.md +10 -9
  285. package/dist/docs/reference/geometry/contourContainsPoint.md +8 -4
  286. package/dist/docs/reference/geometry/cross2.md +6 -5
  287. package/dist/docs/reference/geometry/cross3.md +7 -6
  288. package/dist/docs/reference/geometry/cylinderAnchor3.md +3 -2
  289. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +5 -1
  290. package/dist/docs/reference/geometry/distance2.md +6 -5
  291. package/dist/docs/reference/geometry/distance3.md +6 -5
  292. package/dist/docs/reference/geometry/distributeAlongPath.md +5 -1
  293. package/dist/docs/reference/geometry/dot2.md +6 -5
  294. package/dist/docs/reference/geometry/dot3.md +6 -5
  295. package/dist/docs/reference/geometry/ellipseContour.md +5 -1
  296. package/dist/docs/reference/geometry/eulerTransform3.md +7 -6
  297. package/dist/docs/reference/geometry/extrudeMesh.md +5 -1
  298. package/dist/docs/reference/geometry/fitBounds.md +10 -9
  299. package/dist/docs/reference/geometry/fitTextLayout.md +13 -5
  300. package/dist/docs/reference/geometry/frameTransform3.md +5 -4
  301. package/dist/docs/reference/geometry/getMetricClearanceHoleDiameter.md +5 -1
  302. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +5 -1
  303. package/dist/docs/reference/geometry/gridPatternTransforms.md +4 -4
  304. package/dist/docs/reference/geometry/heightfieldMesh.md +11 -2
  305. package/dist/docs/reference/geometry/helicalThreadRidgeMesh.md +5 -1
  306. package/dist/docs/reference/geometry/helicalThreadSolidMesh.md +5 -1
  307. package/dist/docs/reference/geometry/inverseTransform3.md +6 -5
  308. package/dist/docs/reference/geometry/isGeometryError.md +5 -2
  309. package/dist/docs/reference/geometry/joinTriangleMeshes.md +5 -1
  310. package/dist/docs/reference/geometry/layoutRow.md +11 -7
  311. package/dist/docs/reference/geometry/length2.md +5 -4
  312. package/dist/docs/reference/geometry/length3.md +5 -4
  313. package/dist/docs/reference/geometry/lerp2.md +7 -6
  314. package/dist/docs/reference/geometry/lerp3.md +7 -6
  315. package/dist/docs/reference/geometry/linearPatternTransforms.md +4 -4
  316. package/dist/docs/reference/geometry/loftMesh.md +5 -1
  317. package/dist/docs/reference/geometry/matchProfiles.md +11 -2
  318. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +5 -1
  319. package/dist/docs/reference/geometry/meshBounds.md +8 -4
  320. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +5 -1
  321. package/dist/docs/reference/geometry/normalize2.md +10 -6
  322. package/dist/docs/reference/geometry/normalize3.md +10 -6
  323. package/dist/docs/reference/geometry/normalizeContour.md +8 -4
  324. package/dist/docs/reference/geometry/normalizePolygon.md +5 -1
  325. package/dist/docs/reference/geometry/normalizeRegion.md +5 -1
  326. package/dist/docs/reference/geometry/optimizePlanarPatches.md +5 -1
  327. package/dist/docs/reference/geometry/path2.md +14 -2
  328. package/dist/docs/reference/geometry/path3.md +8 -1
  329. package/dist/docs/reference/geometry/pathPatternTransforms.md +9 -5
  330. package/dist/docs/reference/geometry/preflightHeightfield.md +11 -2
  331. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +11 -2
  332. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +13 -2
  333. package/dist/docs/reference/geometry/preflightSvgRegion.md +15 -2
  334. package/dist/docs/reference/geometry/preflightThreadedNut.md +12 -2
  335. package/dist/docs/reference/geometry/preflightThreadedRod.md +12 -2
  336. package/dist/docs/reference/geometry/projectOntoPlane3.md +7 -6
  337. package/dist/docs/reference/geometry/radialPatternTransforms.md +4 -4
  338. package/dist/docs/reference/geometry/rectangleContour.md +10 -3
  339. package/dist/docs/reference/geometry/rectangleProfile.md +10 -2
  340. package/dist/docs/reference/geometry/regionArea.md +5 -1
  341. package/dist/docs/reference/geometry/regionBounds.md +8 -4
  342. package/dist/docs/reference/geometry/regularPolygonContour.md +8 -4
  343. package/dist/docs/reference/geometry/resamplePolyline2.md +8 -4
  344. package/dist/docs/reference/geometry/resamplePolyline3.md +8 -4
  345. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +1 -1
  346. package/dist/docs/reference/geometry/resolveArcSegments.md +1 -1
  347. package/dist/docs/reference/geometry/resolveCircularSegments.md +1 -1
  348. package/dist/docs/reference/geometry/resolveCylindricalGear.md +5 -1
  349. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +5 -1
  350. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +5 -1
  351. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +5 -1
  352. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
  353. package/dist/docs/reference/geometry/resolveKnuckleHinge.md +59 -0
  354. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +5 -1
  355. package/dist/docs/reference/geometry/resolveRackPitch.md +5 -1
  356. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +5 -1
  357. package/dist/docs/reference/geometry/reverseTriangleMesh.md +5 -1
  358. package/dist/docs/reference/geometry/revolveMesh.md +5 -1
  359. package/dist/docs/reference/geometry/rotate2.md +6 -5
  360. package/dist/docs/reference/geometry/rotationTransform3.md +7 -6
  361. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +8 -4
  362. package/dist/docs/reference/geometry/sampleContour.md +12 -2
  363. package/dist/docs/reference/geometry/sampleCurve2.md +6 -3
  364. package/dist/docs/reference/geometry/sampleCurve3.md +5 -1
  365. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +5 -1
  366. package/dist/docs/reference/geometry/sampleHelix.md +13 -5
  367. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +5 -1
  368. package/dist/docs/reference/geometry/sampleRackToothPath.md +8 -4
  369. package/dist/docs/reference/geometry/sampleSideProfile.md +15 -5
  370. package/dist/docs/reference/geometry/sampleTextContours.md +5 -1
  371. package/dist/docs/reference/geometry/sampleThreadHelices.md +5 -1
  372. package/dist/docs/reference/geometry/scale2.md +6 -5
  373. package/dist/docs/reference/geometry/scale3.md +6 -5
  374. package/dist/docs/reference/geometry/scaleTransform3.md +7 -6
  375. package/dist/docs/reference/geometry/signedContourArea.md +5 -1
  376. package/dist/docs/reference/geometry/starContour.md +8 -4
  377. package/dist/docs/reference/geometry/strokeRegionData.md +5 -1
  378. package/dist/docs/reference/geometry/subtract2.md +7 -6
  379. package/dist/docs/reference/geometry/subtract3.md +7 -6
  380. package/dist/docs/reference/geometry/sweepMesh.md +5 -1
  381. package/dist/docs/reference/geometry/threadProfile.md +5 -1
  382. package/dist/docs/reference/geometry/transform2.md +14 -7
  383. package/dist/docs/reference/geometry/transform3.md +16 -7
  384. package/dist/docs/reference/geometry/transformDeterminant3.md +5 -4
  385. package/dist/docs/reference/geometry/transformRegionData.md +5 -1
  386. package/dist/docs/reference/geometry/transformTriangleMesh.md +5 -1
  387. package/dist/docs/reference/geometry/translationTransform3.md +7 -6
  388. package/dist/docs/reference/geometry/triangulateContour.md +5 -1
  389. package/dist/docs/reference/geometry/validateSolidMesh.md +9 -2
  390. package/dist/docs/reference/geometry/validateTransform3.md +6 -5
  391. package/dist/docs/reference/geometry/validateTriangleMesh.md +5 -1
  392. package/dist/docs/reference/geometry/vector2.md +10 -2
  393. package/dist/docs/reference/geometry/vector3.md +10 -2
  394. package/dist/docs/reference/geometry.md +7 -5
  395. package/dist/docs/reference/model/Anchor3.md +6 -5
  396. package/dist/docs/reference/model/AttachOptions.md +2 -1
  397. package/dist/docs/reference/model/Bounds2-type.md +125 -0
  398. package/dist/docs/reference/model/Bounds2Data.md +44 -0
  399. package/dist/docs/reference/model/Bounds2Input.md +19 -0
  400. package/dist/docs/reference/model/Bounds3-type.md +125 -0
  401. package/dist/docs/reference/model/Bounds3Data.md +44 -0
  402. package/dist/docs/reference/model/Bounds3Input.md +19 -0
  403. package/dist/docs/reference/model/BoxEdge.md +1 -1
  404. package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
  405. package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
  406. package/dist/docs/reference/model/BoxOptions.md +3 -3
  407. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
  408. package/dist/docs/reference/model/CircleContourOptions.md +1 -1
  409. package/dist/docs/reference/model/CircleOptions.md +1 -1
  410. package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -1
  411. package/dist/docs/reference/model/Computed.md +6 -1
  412. package/dist/docs/reference/model/ComputedValue.md +5 -1
  413. package/dist/docs/reference/model/Contour.md +6 -4
  414. package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
  415. package/dist/docs/reference/model/CorrespondingContour.md +1 -1
  416. package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
  417. package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
  418. package/dist/docs/reference/model/CylinderOptions.md +1 -1
  419. package/dist/docs/reference/model/DiagnosticOptions.md +6 -1
  420. package/dist/docs/reference/model/EdgeTreatment.md +1 -1
  421. package/dist/docs/reference/model/EllipseContourOptions.md +3 -3
  422. package/dist/docs/reference/model/EllipseOptions.md +1 -1
  423. package/dist/docs/reference/model/EndTreatments.md +1 -1
  424. package/dist/docs/reference/model/ExtrudeOptions.md +1 -1
  425. package/dist/docs/reference/model/FinalizedModel.md +3 -3
  426. package/dist/docs/reference/model/FinalizedPart.md +1 -1
  427. package/dist/docs/reference/model/Frame3.md +6 -6
  428. package/dist/docs/reference/model/GenerateCallback.md +5 -1
  429. package/dist/docs/reference/model/GenerateContext.md +5 -1
  430. package/dist/docs/reference/model/GeneratedPart.md +5 -1
  431. package/dist/docs/reference/model/GenerationDiagnostic.md +6 -1
  432. package/dist/docs/reference/model/GenerationError.md +5 -1
  433. package/dist/docs/reference/model/GeometryResolution.md +1 -1
  434. package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
  435. package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
  436. package/dist/docs/reference/model/GridPatternOptions.md +5 -4
  437. package/dist/docs/reference/model/HeightfieldOptions.md +5 -5
  438. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +2 -1
  439. package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +3 -2
  440. package/dist/docs/reference/model/HullOptions.md +1 -1
  441. package/dist/docs/reference/model/ImmutableBuffer-type.md +5 -1
  442. package/dist/docs/reference/model/ImmutableTriangleMesh.md +5 -1
  443. package/dist/docs/reference/model/ImplicitOptions.md +6 -6
  444. package/dist/docs/reference/model/InternalThreadCutterOptions.md +2 -1
  445. package/dist/docs/reference/model/KnuckleHinge-type.md +47 -0
  446. package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +77 -0
  447. package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +34 -0
  448. package/dist/docs/reference/model/KnuckleHingeOptions.md +38 -0
  449. package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +47 -0
  450. package/dist/docs/reference/model/KnuckleHingeSpec.md +18 -0
  451. package/dist/docs/reference/model/KnuckleHingeWeb.md +53 -0
  452. package/dist/docs/reference/model/LinearPatternOptions.md +2 -1
  453. package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
  454. package/dist/docs/reference/model/LoftOptions.md +1 -1
  455. package/dist/docs/reference/model/LoftPlacement.md +1 -1
  456. package/dist/docs/reference/model/LoftStation.md +1 -1
  457. package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
  458. package/dist/docs/reference/model/ModelProgram.md +5 -1
  459. package/dist/docs/reference/model/ModelingLimits.md +1 -1
  460. package/dist/docs/reference/model/NumericArray.md +8 -1
  461. package/dist/docs/reference/model/PartGeometry.md +5 -1
  462. package/dist/docs/reference/model/PartOptions.md +5 -1
  463. package/dist/docs/reference/model/Path2-type.md +12 -8
  464. package/dist/docs/reference/model/Path2Data.md +40 -4
  465. package/dist/docs/reference/model/Path2Input.md +8 -3
  466. package/dist/docs/reference/model/Path3-type.md +12 -8
  467. package/dist/docs/reference/model/Path3Data.md +40 -4
  468. package/dist/docs/reference/model/Path3Input.md +8 -3
  469. package/dist/docs/reference/model/PathLocation.md +5 -1
  470. package/dist/docs/reference/model/PathNormalGuide.md +4 -4
  471. package/dist/docs/reference/model/PathOptions.md +5 -1
  472. package/dist/docs/reference/model/PathPatternOptions.md +2 -1
  473. package/dist/docs/reference/model/PathResamplingOptions.md +5 -1
  474. package/dist/docs/reference/model/PatternSource.md +2 -1
  475. package/dist/docs/reference/model/Pivot2Options.md +2 -1
  476. package/dist/docs/reference/model/Pivot3Options.md +2 -1
  477. package/dist/docs/reference/model/PlaneOptions.md +1 -1
  478. package/dist/docs/reference/model/PolygonData.md +3 -2
  479. package/dist/docs/reference/model/PolygonOptions.md +1 -1
  480. package/dist/docs/reference/model/PrimitiveAttachment.md +2 -1
  481. package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +2 -1
  482. package/dist/docs/reference/model/PrintableThreadFit.md +2 -1
  483. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +2 -1
  484. package/dist/docs/reference/model/Profile.md +4 -2
  485. package/dist/docs/reference/model/ProfileComponent2.md +1 -1
  486. package/dist/docs/reference/model/ProfileContour2.md +4 -2
  487. package/dist/docs/reference/model/ProfileSpan2.md +3 -3
  488. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +3 -3
  489. package/dist/docs/reference/model/RadialPatternOptions.md +2 -1
  490. package/dist/docs/reference/model/RadialSizing.md +1 -1
  491. package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
  492. package/dist/docs/reference/model/RectangleContourOptions.md +3 -3
  493. package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
  494. package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
  495. package/dist/docs/reference/model/RectangleOptions.md +3 -3
  496. package/dist/docs/reference/model/RegionData.md +2 -2
  497. package/dist/docs/reference/model/RegularPolygonOptions.md +1 -1
  498. package/dist/docs/reference/model/RevolveOptions.md +1 -1
  499. package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
  500. package/dist/docs/reference/model/Section.md +9 -2
  501. package/dist/docs/reference/model/SectionHullOptions.md +1 -1
  502. package/dist/docs/reference/model/SectionInspection.md +4 -4
  503. package/dist/docs/reference/model/SectionOffsetJoin.md +1 -1
  504. package/dist/docs/reference/model/SectionOffsetOptions.md +1 -1
  505. package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
  506. package/dist/docs/reference/model/Solid.md +9 -2
  507. package/dist/docs/reference/model/SolidInspection.md +4 -4
  508. package/dist/docs/reference/model/SolidSegmentHit.md +4 -4
  509. package/dist/docs/reference/model/SphereOptions.md +1 -1
  510. package/dist/docs/reference/model/StarOptions.md +1 -1
  511. package/dist/docs/reference/model/StrokeCap.md +1 -1
  512. package/dist/docs/reference/model/StrokeJoin.md +1 -1
  513. package/dist/docs/reference/model/StrokeOptions.md +1 -1
  514. package/dist/docs/reference/model/SvgOrigin.md +1 -1
  515. package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
  516. package/dist/docs/reference/model/SvgSectionOptions.md +1 -1
  517. package/dist/docs/reference/model/SweepOptions.md +1 -1
  518. package/dist/docs/reference/model/SweepOrientation.md +1 -1
  519. package/dist/docs/reference/model/TextSectionOptions.md +1 -1
  520. package/dist/docs/reference/model/ThreadEndStyle.md +2 -1
  521. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +2 -1
  522. package/dist/docs/reference/model/ThreadHandedness.md +2 -1
  523. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +2 -1
  524. package/dist/docs/reference/model/ThreadLeadInShape.md +2 -1
  525. package/dist/docs/reference/model/ThreadProfile.md +4 -3
  526. package/dist/docs/reference/model/ThreadRidgeOptions.md +2 -1
  527. package/dist/docs/reference/model/ThreadedNutBevel.md +2 -1
  528. package/dist/docs/reference/model/ThreadedNutOptions.md +2 -1
  529. package/dist/docs/reference/model/ThreadedNutPreflight.md +4 -3
  530. package/dist/docs/reference/model/ThreadedNutShape.md +2 -1
  531. package/dist/docs/reference/model/ThreadedRodOptions.md +2 -1
  532. package/dist/docs/reference/model/TorusOptions.md +1 -1
  533. package/dist/docs/reference/model/Transform2-type.md +6 -5
  534. package/dist/docs/reference/model/Transform2Data.md +16 -0
  535. package/dist/docs/reference/model/Transform2Input.md +4 -3
  536. package/dist/docs/reference/model/Transform3-type.md +6 -5
  537. package/dist/docs/reference/model/Transform3Data.md +19 -0
  538. package/dist/docs/reference/model/Transform3Input.md +4 -3
  539. package/dist/docs/reference/model/TriangleMesh.md +1 -1
  540. package/dist/docs/reference/model/TriangleMeshAnalysis.md +3 -3
  541. package/dist/docs/reference/model/TriangleMeshMeasurements.md +3 -3
  542. package/dist/docs/reference/model/TubeOptions.md +1 -1
  543. package/dist/docs/reference/model/Vector2-type.md +6 -5
  544. package/dist/docs/reference/model/{Vector2Tuple.md → Vector2Data.md} +3 -3
  545. package/dist/docs/reference/model/Vector2Input.md +4 -3
  546. package/dist/docs/reference/model/Vector3-type.md +6 -5
  547. package/dist/docs/reference/model/{Vector3Tuple.md → Vector3Data.md} +3 -3
  548. package/dist/docs/reference/model/Vector3Input.md +4 -3
  549. package/dist/docs/reference/model/VectorTextLayout.md +1 -1
  550. package/dist/docs/reference/model/VectorTextMetrics.md +3 -3
  551. package/dist/docs/reference/model/anchor.md +2 -1
  552. package/dist/docs/reference/model/bounds2.md +36 -0
  553. package/dist/docs/reference/model/bounds3.md +36 -0
  554. package/dist/docs/reference/model/box.md +2 -2
  555. package/dist/docs/reference/model/castSegment.md +1 -1
  556. package/dist/docs/reference/model/categories/boolean-operations.md +10 -3
  557. package/dist/docs/reference/model/categories/bounded-surfaces.md +5 -3
  558. package/dist/docs/reference/model/categories/bounds.md +36 -0
  559. package/dist/docs/reference/model/categories/contracts.md +4 -2
  560. package/dist/docs/reference/model/categories/core-values-errors.md +11 -11
  561. package/dist/docs/reference/model/categories/explicit-profiles.md +6 -4
  562. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +12 -3
  563. package/dist/docs/reference/model/categories/generation.md +11 -2
  564. package/dist/docs/reference/model/categories/hinges.md +38 -0
  565. package/dist/docs/reference/model/categories/inspection.md +9 -2
  566. package/dist/docs/reference/model/categories/mesh-inspection.md +5 -3
  567. package/dist/docs/reference/model/categories/paths.md +15 -7
  568. package/dist/docs/reference/model/categories/primitives.md +10 -4
  569. package/dist/docs/reference/model/categories/resolution.md +4 -2
  570. package/dist/docs/reference/model/categories/sections.md +10 -5
  571. package/dist/docs/reference/model/categories/threads.md +10 -7
  572. package/dist/docs/reference/model/categories/transforms-placement.md +17 -9
  573. package/dist/docs/reference/model/circle.md +1 -1
  574. package/dist/docs/reference/model/components.md +1 -1
  575. package/dist/docs/reference/model/compose.md +1 -1
  576. package/dist/docs/reference/model/cylinder.md +1 -1
  577. package/dist/docs/reference/model/distance.md +1 -1
  578. package/dist/docs/reference/model/ellipse.md +1 -1
  579. package/dist/docs/reference/model/extrude.md +1 -1
  580. package/dist/docs/reference/model/generate.md +5 -1
  581. package/dist/docs/reference/model/gridPattern.md +2 -1
  582. package/dist/docs/reference/model/heightfield.md +5 -2
  583. package/dist/docs/reference/model/hull.md +1 -1
  584. package/dist/docs/reference/model/immutableBuffer.md +5 -1
  585. package/dist/docs/reference/model/immutableMesh.md +5 -1
  586. package/dist/docs/reference/model/implicit.md +3 -3
  587. package/dist/docs/reference/model/inspectSection.md +1 -1
  588. package/dist/docs/reference/model/inspectSolid.md +1 -1
  589. package/dist/docs/reference/model/internalThreadCutter.md +2 -1
  590. package/dist/docs/reference/model/intersect.md +1 -1
  591. package/dist/docs/reference/model/isEmpty.md +1 -1
  592. package/dist/docs/reference/model/knuckleHinge.md +47 -0
  593. package/dist/docs/reference/model/linearPattern.md +2 -1
  594. package/dist/docs/reference/model/loft.md +1 -1
  595. package/dist/docs/reference/model/matchProfiles.md +1 -1
  596. package/dist/docs/reference/model/minkowskiSum.md +1 -1
  597. package/dist/docs/reference/model/path2.md +14 -2
  598. package/dist/docs/reference/model/path3.md +8 -1
  599. package/dist/docs/reference/model/pathPattern.md +2 -1
  600. package/dist/docs/reference/model/polygon.md +5 -2
  601. package/dist/docs/reference/model/preflightInternalThreadCutter.md +8 -2
  602. package/dist/docs/reference/model/preflightThreadedNut.md +8 -2
  603. package/dist/docs/reference/model/preflightThreadedRod.md +8 -2
  604. package/dist/docs/reference/model/radialPattern.md +2 -1
  605. package/dist/docs/reference/model/rectangle.md +5 -2
  606. package/dist/docs/reference/model/regularPolygon.md +1 -1
  607. package/dist/docs/reference/model/revolve.md +1 -1
  608. package/dist/docs/reference/model/solidFromMesh.md +1 -1
  609. package/dist/docs/reference/model/sphere.md +1 -1
  610. package/dist/docs/reference/model/split.md +1 -1
  611. package/dist/docs/reference/model/splitByPlane.md +1 -1
  612. package/dist/docs/reference/model/star.md +1 -1
  613. package/dist/docs/reference/model/stroke.md +1 -1
  614. package/dist/docs/reference/model/svgPathSection.md +1 -1
  615. package/dist/docs/reference/model/svgSection.md +1 -1
  616. package/dist/docs/reference/model/sweep.md +1 -1
  617. package/dist/docs/reference/model/textSection.md +1 -1
  618. package/dist/docs/reference/model/threadRidge.md +2 -1
  619. package/dist/docs/reference/model/threadedNut.md +2 -1
  620. package/dist/docs/reference/model/threadedRod.md +2 -1
  621. package/dist/docs/reference/model/torus.md +1 -1
  622. package/dist/docs/reference/model/transform2.md +14 -7
  623. package/dist/docs/reference/model/transform3.md +16 -7
  624. package/dist/docs/reference/model/tube.md +1 -1
  625. package/dist/docs/reference/model/union.md +1 -1
  626. package/dist/docs/reference/model/vector2.md +10 -2
  627. package/dist/docs/reference/model/vector3.md +10 -2
  628. package/dist/docs/reference/model.md +15 -8
  629. package/dist/docs/reference/text/Bounds2Data.md +34 -0
  630. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
  631. package/dist/docs/reference/text/Vector2Data.md +7 -0
  632. package/dist/docs/reference/text/VectorFont.md +1 -1
  633. package/dist/docs/reference/text/VectorFontOptions.md +1 -1
  634. package/dist/docs/reference/text/VectorTextArcBaseline.md +1 -1
  635. package/dist/docs/reference/text/VectorTextLayout.md +1 -1
  636. package/dist/docs/reference/text/VectorTextLayoutOptions.md +1 -1
  637. package/dist/docs/reference/text/VectorTextMetrics.md +3 -3
  638. package/dist/docs/reference/text/VectorTextOptions.md +1 -1
  639. package/dist/docs/reference/text/categories/font-preparation.md +6 -4
  640. package/dist/docs/reference/text/prepareVectorFont.md +1 -1
  641. package/dist/docs/reference/text.md +4 -2
  642. package/dist/engine/construction-operations.js +1 -1
  643. package/dist/engine/knuckle-hinge-operation.js +85 -0
  644. package/dist/engine/loft-operations.js +1 -1
  645. package/dist/engine/mechanical-operations.js +3 -1
  646. package/dist/engine/modeling-context.js +8 -1
  647. package/dist/engine/recipe-realization.js +4 -2
  648. package/dist/engine/section-operations.js +1 -1
  649. package/dist/engine/transform-operations.js +3 -3
  650. package/dist/geometry/bounds-value.js +93 -0
  651. package/dist/geometry/bounds.js +10 -8
  652. package/dist/geometry/curves/sampling.js +1 -2
  653. package/dist/geometry/errors.js +1 -0
  654. package/dist/geometry/heightfield.js +12 -1
  655. package/dist/geometry/index.js +3 -1
  656. package/dist/geometry/math/immutable-value.js +1 -1
  657. package/dist/geometry/math/vector-value.js +11 -3
  658. package/dist/geometry/math/vector2.js +1 -0
  659. package/dist/geometry/math/vector3.js +1 -0
  660. package/dist/geometry/mechanical/index.js +1 -0
  661. package/dist/geometry/mechanical/knuckle-hinge.js +110 -0
  662. package/dist/geometry/mechanical/thread-mesh-plan.js +7 -2
  663. package/dist/geometry/mechanical/thread-solids.js +29 -4
  664. package/dist/geometry/mesh/mesh-centroid.js +1 -0
  665. package/dist/geometry/mesh/mesh-solid.js +1 -0
  666. package/dist/geometry/paths/frames.js +1 -0
  667. package/dist/geometry/paths/helix.js +1 -0
  668. package/dist/geometry/paths/path-value.js +43 -27
  669. package/dist/geometry/paths/resampling.js +2 -2
  670. package/dist/geometry/patterns/placements.js +3 -3
  671. package/dist/geometry/patterns.js +3 -1
  672. package/dist/geometry/profiles/contour.js +1 -0
  673. package/dist/geometry/profiles/matched.js +1 -0
  674. package/dist/geometry/profiles/rectangle.js +10 -1
  675. package/dist/geometry/profiles/side-profile.js +2 -0
  676. package/dist/geometry/svg-import.js +8 -2
  677. package/dist/geometry/sweeps/options.js +1 -1
  678. package/dist/geometry/text-fitting.js +1 -0
  679. package/dist/geometry/transform-matrix.js +1 -1
  680. package/dist/geometry/{transform-chain.js → transform-value.js} +24 -15
  681. package/dist/index.js +2 -1
  682. package/dist/model/execution-binding.js +1 -1
  683. package/dist/model/geometry-recipes.js +1 -1
  684. package/dist/model/immutable-generation-data.js +4 -12
  685. package/dist/model/knuckle-hinge.js +1 -0
  686. package/dist/model/operations.js +57 -3
  687. package/dist/model/recipe-declaration.js +10 -2
  688. package/package.json +1 -1
  689. package/dist/docs/reference/geometry/Bounds2.md +0 -39
  690. package/dist/docs/reference/geometry/Bounds3.md +0 -39
  691. package/dist/docs/reference/geometry/Transform2Matrix.md +0 -14
  692. package/dist/docs/reference/geometry/Transform3Matrix.md +0 -17
  693. package/dist/docs/reference/geometry/Vector2Tuple.md +0 -14
  694. package/dist/docs/reference/geometry/Vector3Tuple.md +0 -14
  695. package/dist/docs/reference/model/Bounds2.md +0 -39
  696. package/dist/docs/reference/model/Bounds3.md +0 -39
  697. package/dist/docs/reference/model/Transform2Matrix.md +0 -15
  698. package/dist/docs/reference/model/Transform3Matrix.md +0 -18
  699. package/dist/docs/reference/text/Bounds2.md +0 -34
  700. package/dist/docs/reference/text/Vector2Tuple.md +0 -7
@@ -1,15 +1,13 @@
1
1
  # Modeling fundamentals
2
2
 
3
- Understand watertight solids, coordinates, transforms, Boolean operations, and geometry ownership in Studio code Projects.
3
+ Combine watertight solids with Booleans and transforms, and understand geometry ownership in Studio code Projects.
4
4
 
5
- [Manifold](https://manifoldcad.org/docs/jsapi/) is the solid-modeling kernel behind MetaMesh. Its
6
- core idea is a **manifold** mesh: an oriented, watertight boundary in which every edge belongs to a
7
- valid solid. That invariant makes Boolean operations and manufacturing output more dependable than
8
- working with an arbitrary triangle soup.
5
+ Build parts by combining primitives, applying transforms, and removing material with cutters.
6
+ MetaMesh uses [Manifold](https://manifoldcad.org/docs/jsapi/), a solid-modeling kernel that works
7
+ with **manifold meshes**: closed, consistently oriented boundaries representing solid material.
9
8
 
10
- Studio code Projects use Manifold through the curated `@metamesh/modeling` API. The public
11
- contract combines constructors and collection functions with fluent, opaque `Section` and `Solid`
12
- recipes. The engine owns the underlying kernel values.
9
+ Studio code Projects use `@metamesh/modeling` to construct immutable `Section` and `Solid` recipes.
10
+ The engine evaluates them and owns the underlying kernel values.
13
11
 
14
12
  ## Coordinates and units
15
13
 
@@ -47,9 +45,9 @@ The plate is centered about the origin. Its `4 mm` thickness occupies `Z = −2
47
45
  occupies `Z = −4…4 mm`. That overtravel makes the subtraction deliberate while the hole radius
48
46
  stays `3 mm`. Derive cutter placement from the same datum as the body when changing dimensions.
49
47
 
50
- Prefer a small number of named intermediate solids. If many repeated cutters are independent, build
51
- or arrange them first and perform one meaningful subtraction where the API allows it. Excessive
52
- high-resolution Boolean steps cost time and obscure design intent.
48
+ Name intermediate solids by their purpose. Arrange independent repeated cutters first, then
49
+ subtract them together where possible. Many high-resolution Boolean steps increase generation
50
+ time and obscure design intent.
53
51
 
54
52
  The `union` and `intersect` functions and `shape.subtract(cutters)` also combine filled Sections
55
53
  in XY. Choose one dimension for every operand in a call. Keep a Section native through its Boolean
@@ -109,30 +107,28 @@ The kernel can enforce solid topology, but it does not know your printer, materi
109
107
  tolerance stack, minimum wall, overhang strategy, or fit target. Encode supported input limits and
110
108
  cross-field errors in the Project, then verify the exported file in its downstream tool.
111
109
 
112
- Likewise, an empty or zero-volume result is invalid model output, but a non-empty result is not an
113
- engineering certification.
110
+ Empty or zero-volume output is invalid; non-empty output still needs engineering checks.
114
111
 
115
112
  ## Geometry ownership
116
113
 
117
- Geometry values allocate resources outside ordinary JavaScript objects. Studio's evaluator owns
118
- those resources for each run and cleans them up deterministically. Authored code should never
119
- initialize the kernel or manually delete a `Section` or `Solid`.
114
+ `Section` and `Solid` values are immutable recipes. Evaluating them creates native resources
115
+ owned and cleaned up by Studio. Do not initialize the kernel or manually delete shapes in
116
+ `model.ts`.
120
117
 
121
118
  Use `inspectSection()` or `inspectSolid()` for measurements such as bounds, area, volume, and
122
119
  `componentCount`. `components()` returns disconnected material pieces, preserving holes and
123
120
  enclosed cavities. A sealed hollow box is one component; adding a loose ball inside its cavity
124
121
  makes two. Recombining the pieces preserves the original material.
125
122
 
126
- Snapshot `stats.partCount` counts the named output parts declared with `part(...)`. One output
127
- part may contain several material components. Return one declaration or an array of them to hand
128
- the result back to Studio for preview and export.
123
+ Snapshot `stats.partCount` counts named `part(...)` declarations; one part may contain several
124
+ material components. Return one declaration or an array for Studio to preview and export.
129
125
 
130
126
 
131
127
 
132
128
  **Use the MetaMesh reference for authored code**
133
129
 
134
- The upstream Manifold documentation is useful background on the underlying mathematics. Exact
135
- code-Project symbols and guarantees come from the [Geometry API reference](../reference/model.md).
130
+ The upstream Manifold documentation is useful background on the underlying mathematics. Exact code
131
+ Project symbols and guarantees come from the [Model API reference](../reference/model.md).
136
132
 
137
133
 
138
134
 
@@ -1,6 +1,6 @@
1
1
  # Code Project contract
2
2
 
3
- Understand the supported source, computed values, parts, resource ownership, recovery, and visible-model export behavior.
3
+ Understand Studio’s TypeScript source contract, computed caches, parts, resource ownership, and recovery.
4
4
 
5
5
  An authored Project has one control definition and one TypeScript entry file. Studio supplies the
6
6
  compiler, prepared services, modeling engine, persistence and preview.
@@ -29,9 +29,8 @@ export default generate(({ params: parameters, part }) => {
29
29
 
30
30
 
31
31
 
32
- The helper infers `params` from **Model controls**. Values are ordinary readonly numbers,
33
- strings and structured controls; there is no global parameter type to remember. Import
34
- `type Parameters` from `@metamesh/project` when a separate helper needs that explicit type.
32
+ The helper infers `params` from **Model controls** as readonly numbers, strings, and structured
33
+ values. Import `type Parameters` from `@metamesh/project` when a separate helper needs the type.
35
34
 
36
35
  The outer callback runs for each edit. Return a single `part(...)` or a readonly array of parts;
37
36
  `computed` is optional.
@@ -92,9 +91,10 @@ Call other computed readers inside the callback too: `computed("finished", () =>
92
91
  tracks the base result automatically. In **New project → Cached panels**, changing **Gap** only
93
92
  moves the second panel; changing **Notch width** reuses the hole pattern for the finishing cut.
94
93
 
95
- An earlier read such as `const { height } = params` is an ordinary snapshot. Capturing it in a
96
- computation does not track that parameter and can reuse stale geometry. Prefer moving the read inside. When a changing value
97
- must be prepared outside, such as a loop item, list it in the optional third argument:
94
+ An earlier read such as `const { height } = params` captures a snapshot. Using it inside a
95
+ computation does not track the parameter and can reuse stale geometry. Move the read inside the
96
+ callback. If a changing value must be prepared outside, such as a loop item, list it in the optional
97
+ third argument:
98
98
 
99
99
 
100
100
 
@@ -114,19 +114,19 @@ The same capture rule applies to an eagerly read result such as `const value = o
114
114
  Select and call readers inside the callback when possible. Studio warns about common hidden captures
115
115
  while Code is open; its advisory checks cannot prove arbitrary JavaScript correct.
116
116
 
117
- Dependency entries compare with `Object.is`; object and array contents are not deeply compared.
118
- Use immutable parameter values, computed results, or scalar inputs. Other objects must be deeply
119
- frozen. Fresh object/array entries prevent cache reuse, so create temporary options inside the
120
- callback instead. Studio warns about obvious fresh dependencies without probing generation.
117
+ Dependency entries use `Object.is`, without comparing object or array contents. Use immutable
118
+ parameter values, computed results, or scalar inputs; other objects must be deeply frozen. Create
119
+ temporary options inside the callback, since fresh object or array dependencies prevent reuse.
120
+ Studio warns about obvious fresh dependencies without running generation.
121
121
 
122
122
  IDs identify logical computations, so loops and conditions work without hook call-order rules.
123
123
  IDs must be unique lowercase hyphen-separated alphanumeric names of at most 64 characters within
124
124
  their namespace.
125
125
 
126
- Calculations are synchronous and pure. Do not mutate cached values, read clocks or randomness,
127
- perform effects, or return promises/functions. Cache eviction and a worker restart preserve the
128
- same physical result. Keep expensive pure layouts or grids in their own computation rather than
129
- caching every small arithmetic expression.
126
+ Keep calculations synchronous and pure: do not mutate cached values, read clocks or randomness,
127
+ perform effects, or return promises or functions. The physical result must remain the same after
128
+ cache eviction or a worker restart. Cache expensive layouts or grids; cheap arithmetic usually
129
+ does not need its own computation.
130
130
 
131
131
  For cached numeric data, call [`immutableBuffer`](../reference/model/immutableBuffer.md) and use
132
132
  its `length`, `at(index)`, or `copy()` methods. Copy once before a dense sampling callback so its
@@ -185,7 +185,7 @@ export default generate(({ params: parameters, part }) => {
185
185
 
186
186
 
187
187
 
188
- Lengths are millimetres, rotation is degrees, coordinates are right-handed with **+Z up**.
188
+ Lengths use millimetres and rotations use degrees. Coordinates are right-handed with **+Z up**.
189
189
  Rotation applies about fixed X, then Y, then Z axes before translation. Part placement governs
190
190
  preview, picking, measurements and all exports. Changing placement or color can reuse cached
191
191
  geometry and renderer buffers. Studio's native part-color overrides update appearance directly.
@@ -199,13 +199,14 @@ instance limits, including cache hits. Empty output is invalid.
199
199
 
200
200
  ## Ownership and recovery
201
201
 
202
- Solids and Sections describe immutable deferred recipes. Ordinary recipes are reusable across
203
- sessions regardless of where constructed; unspecified resolution settings inherit the evaluating
204
- host's defaults. Observations such as `inspectSolid` realize required geometry synchronously and
205
- return copied facts. `components()` selections, and recipes using them, can only be evaluated in
206
- the originating session because their identity depends on evaluated topology. The host owns
207
- native allocations and cleanup on success and failure. Nested or asynchronous execution rejects.
208
- Apply local resolution explicitly to each affected constructor or Section operation.
202
+ Solids and Sections are immutable deferred recipes. Ordinary recipes can be reused across
203
+ sessions; unspecified resolution settings inherit the evaluating host's defaults. Apply local
204
+ resolution explicitly to each affected constructor or Section operation.
205
+
206
+ Observations such as `inspectSolid` evaluate required geometry synchronously and return copied
207
+ facts. `components()` selections and recipes using them can only be evaluated in their originating
208
+ session because their identity depends on evaluated topology. The host cleans up native
209
+ allocations on success and failure. Nested or asynchronous execution rejects.
209
210
 
210
211
  Source/control-definition changes invalidate the program session. Parameter edits reuse it.
211
212
  Failed or stale requests retain the last valid preview; fatal failures replace the worker.
@@ -53,26 +53,31 @@ move engine initialization out of the function and reuse that engine and its mod
53
53
 
54
54
  ## Keep execution synchronous
55
55
 
56
- Acquire assets before generation. Ordinary immutable Solid/Section recipes, vectors, paths and
57
- transforms can be constructed without an engine and reused across sessions. Explicit resolution
58
- settings stay with a recipe; omitted settings inherit the evaluating host's defaults. Computed
59
- readers and geometry observations require active synchronous generation and cannot cross an async
60
- boundary. Sessions cannot execute nested runs in one realm. Services are explicit synchronous
61
- capabilities supplied at session creation.
62
-
63
- A session owns evaluation, optional computed caches and native resources. It may retain evaluated
64
- computed shapes privately for later cuts or Booleans; temporary native allocations are cleaned after
65
- each run. Separate expensive base geometry from finishing operations to reuse it. Observed
66
- `components()` selections depend on evaluated topology and remain restricted to their originating
67
- session; ordinary recipes remain portable.
68
-
69
- A returned snapshot retains captured manufacturing buffers independently of its session. Accessing
70
- a part's `positions` or `indices`, including through its local `geometry` resource, returns a fresh
71
- owned copy on every read. Read each field once when processing its buffer. `session.dispose()`
72
- releases caches while captured snapshots remain usable. `snapshot.dispose()` releases its references
73
- and makes subsequent `parts`, `bounds` and `stats` access invalid; diagnostics, dependencies and parts
74
- already obtained remain usable. Disposing a snapshot does not affect another snapshot or an export
75
- already in progress. Release captured output when its consumer is done.
56
+ Acquire assets before generation and supply synchronous services when creating a session.
57
+ Computed readers and geometry observations require active synchronous generation. They cannot
58
+ cross an async boundary, and sessions cannot run inside another session run in the same realm.
59
+
60
+ Recipes and evaluated geometry have different lifetimes:
61
+
62
+ - Immutable `Solid` and `Section` recipes, vectors, paths, and transforms can be created without an
63
+ engine and reused across sessions. Explicit resolution settings stay with a recipe; omitted
64
+ settings inherit the evaluating host's defaults.
65
+ - A session owns evaluation, optional computed caches, and native resources. Temporary native
66
+ allocations are cleaned after each run. Computed shapes may stay cached for later cuts or
67
+ Booleans; separate expensive base geometry from finishing operations to reuse it.
68
+ - Observed `components()` selections depend on evaluated topology and belong to their originating
69
+ session. Ordinary recipes remain portable.
70
+
71
+ A snapshot retains captured manufacturing buffers independently of its session:
72
+
73
+ - Reading a part's `positions` or `indices`, including through its local `geometry` resource,
74
+ returns a fresh owned copy. Read each field once when processing its buffer.
75
+ - `session.dispose()` releases caches; captured snapshots remain usable.
76
+ - `snapshot.dispose()` releases its references and invalidates later `parts`, `bounds`, and `stats`
77
+ access. Diagnostics, dependencies, and parts already obtained remain usable. Other snapshots
78
+ and exports already in progress are unaffected.
79
+
80
+ Dispose each snapshot when its consumer is done.
76
81
 
77
82
  ## Load WASM in a browser Worker
78
83
 
@@ -1,10 +1,10 @@
1
1
  # Modeling recipes
2
2
 
3
- Adapt typechecked patterns for sections, SVG, text, extrusion, sweeps, heightfields, booleans, placement, anchors, and inspection.
3
+ Build plates, cups, routed tubes, lofts, repeated features, SVG shapes, and lettering with complete modeling examples.
4
4
 
5
- Build a plate, route a section through space, join profiles, or place repeated features. Each
6
- illustrated recipe pairs its complete source with a render of that exact source. Open
7
- the interactive preview to orbit the result; copy the code into a Studio code Project to edit it.
5
+ Choose a recipe, inspect its render, and copy the complete source into a Studio
6
+ [code Project](https://metamesh.studio/docs/develop/code-projects). Each illustrated recipe renders that same source;
7
+ open its interactive preview to orbit the result.
8
8
 
9
9
  | You want to make | Start here | Main decision |
10
10
  | ------------------------ | -------------------------------------------------------------- | --------------------------------------------------------- |
@@ -20,8 +20,8 @@ the interactive preview to orbit the result; copy the code into a Studio code Pr
20
20
 
21
21
  All dimensions in these recipes are millimetres. MetaMesh uses a right-handed coordinate system
22
22
  with +Z up, degrees for angular arguments including `rotate`, and non-duplicated contour seams.
23
- The examples default-export a synchronous `generate` program. Use ordinary assertions for constraints
24
- and optional `computed` values for expensive/shared dimensions, geometry or text layouts.
23
+ The examples default-export a synchronous `generate` program. Use assertions for constraints
24
+ and optional `computed` values to cache expensive shared calculations, geometry, or text layouts.
25
25
  [Define parameters and validation](https://metamesh.studio/docs/develop/parameters-and-validation) connects
26
26
  source values to controls.
27
27
 
@@ -47,9 +47,9 @@ Subtract the opening in 2D, offset the filled material, then extrude it into one
47
47
 
48
48
 
49
49
 
50
- `rectangle` and `circle` take object options and return filled Sections. `section.subtract(cutters)` and the `union` and `intersect` functions also support Solids,
51
- with same-dimensional operands in each call. `section.offset(distance)` preserves the filled
52
- topology. `section.extrude({ height })` preserves
50
+ `rectangle` and `circle` take object options and return filled Sections. `section.subtract(cutters)`,
51
+ `union`, and `intersect` also support Solids; every operand in a call must have the same dimension.
52
+ `section.offset(distance)` offsets the filled material. `section.extrude({ height })` preserves
53
53
  holes and places the bottom at zero unless `center: true` is requested.
54
54
 
55
55
  Positive offset grows material on every boundary: this example grows the outside by `1.2 mm` and
@@ -59,8 +59,8 @@ offset the outside first and subtract the hole afterward. See
59
59
 
60
60
  ## SVG parameter and extrusion
61
61
 
62
- An SVG control is exposed to authored code as a string on the immutable `parameters` argument. Pass
63
- that string directly to `svgSection`; no DOM parsing or editor-specific JSON is needed.
62
+ Pass an SVG control's string value from `params` directly to `svgSection`. This example aliases
63
+ `params` as `parameters`:
64
64
 
65
65
 
66
66
 
@@ -76,10 +76,10 @@ export default generate(({ params: parameters, part }) => {
76
76
 
77
77
 
78
78
 
79
- The property name is the control ID shown in the model-controls editor. For example, use
80
- `parameters.logo` when the SVG control ID is `logo`.
79
+ The property name matches the ID in **Model controls**: `profile6` in this example, or
80
+ `parameters.logo` for a control with ID `logo`.
81
81
 
82
- The same function also accepts literal SVG documents. Here two nested paths produce one badge
82
+ `svgSection` also accepts literal SVG documents. Here two nested subpaths make a badge
83
83
  with a rectangular opening:
84
84
 
85
85
 
@@ -286,7 +286,7 @@ export const placedBody = polygon({ outer: outline, holes: [] })
286
286
  .extrude({ height: 8 });
287
287
 
288
288
  // Paths accept the same placement. Matrices and tuples remain available for interchange.
289
- export const sectionMatrix = planarPlacement.toMatrix();
289
+ export const sectionMatrix = planarPlacement.toData();
290
290
  export const placedContour = path2(outline, { closed: true }).transform(planarPlacement);
291
291
  ```
292
292
 
@@ -299,7 +299,7 @@ Fill the transformed closed path with `polygon(placedContour)` when you need mat
299
299
  A negative scale factor reflects the placement. Paths retain traversal order, including closed
300
300
  paths; filled Sections and serialized regions restore outer and hole winding. `andThen(next)`
301
301
  composes another placement in execution order;
302
- reuse the placement instead of building a chain inside each point iteration. `toMatrix()` is
302
+ reuse the placement instead of building a chain inside each point iteration. `toData()` is
303
303
  available for matrix interchange.
304
304
 
305
305
  Section path patterns consume `Path2` values directly. Tangent orientation aligns the Section's
@@ -360,13 +360,16 @@ The asymmetric section makes its transported orientation visible as the path tur
360
360
 
361
361
 
362
362
 
363
- `section.sweep(path, options)` transports the filled shape along the path. Choose the starting profile-X direction with
364
- `orientation: { kind: "transport", initialNormal: [0, 1, 0] }`. Fixed normals, directed normal guides
365
- and discrete Frenet frames are explicit alternative policies; singular selected policies reject.
366
- `twist` adds total rotation, following physical path length by default; `twistBy: "stations"`
367
- uses the authored station schedule. `scale` accepts a positive uniform size, XY pair or one XY pair
368
- per normalized station. `closed: true` joins an implicitly closed path without repeated endpoints;
369
- orientation, scales and `seamProfileOffset` must describe a compatible closing seam.
363
+ `section.sweep(path, options)` transports a filled shape along a path:
364
+
365
+ - `orientation: { kind: "transport", initialNormal: [0, 1, 0] }` chooses the starting profile-X
366
+ direction. Fixed normals, directed normal guides, and discrete Frenet frames are alternatives;
367
+ singular selected policies reject.
368
+ - `twist` adds total rotation by physical path length. Set `twistBy: "stations"` to use the authored
369
+ station schedule instead.
370
+ - `scale` accepts a positive uniform size, an XY pair, or one XY pair per normalized station.
371
+ - `closed: true` joins an implicitly closed path without repeated endpoints. Orientation, scales,
372
+ and `seamProfileOffset` must describe a compatible closing seam.
370
373
 
371
374
  Start with the open path above, inspect the first cap and the turns, then replace the rectangle
372
375
  with a [`circle`](../reference/model/circle.md) for a round rod. A sweep follows the supplied path
@@ -413,9 +416,9 @@ move them. Tube and torus axial datums may lie over an opening; a cone has no ca
413
416
  Regular polygons and stars expose only `center`. Custom `Anchor3` frames, including pure
414
417
  `boxAnchor3` and `cylinderAnchor3` helpers, work wherever a source or target frame is required.
415
418
 
416
- Primitive `attachment` uses the same source/target anchor, `alignment`, `gap` and `spin`
417
- vocabulary as `attach`, including a named `source`. It applies after local shape construction. Filled Section attachment must
418
- preserve the XY plane.
419
+ Primitive `attachment` uses the same source/target anchor, `alignment`, `gap`, and `spin`
420
+ options as `attach`, including a named `source`. It applies after local construction; Section
421
+ attachment must preserve the XY plane.
419
422
 
420
423
  The `gap` here separates the two pieces along the target normal; it is a placement distance, not
421
424
  a radial fit clearance. Keep separate named parts for an assembly. For one fused part, remove the
@@ -534,8 +537,8 @@ reindex also chooses a cyclic phase, while distance methods optimize ordered con
534
537
 
535
538
  ## Sample a heightfield
536
539
 
537
- Build a relief tile from absolute Z heights over a rectangular XY grid. Imported
538
- [`heightfield`](../reference/model/heightfield.md) returns a Solid for booleans and placement during
540
+ Build a relief tile from absolute Z heights over a rectangular XY grid.
541
+ [`heightfield`](../reference/model/heightfield.md) returns a Solid for Booleans and placement during
539
542
  generation. Pure [`heightfieldMesh`](../reference/geometry/heightfieldMesh.md) accepts the same options
540
543
  and returns an indexed mesh without an engine. Pass it directly as a mesh part, or wrap it in
541
544
  [`immutableMesh`](../reference/model/immutableMesh.md) when returning it from a cached computation.
@@ -687,6 +690,8 @@ replacement. Studio does not support custom font uploads.
687
690
 
688
691
  ## Solid inspection
689
692
 
693
+ Use `inspectSolid()` during generation to check bounds, volume, and component count:
694
+
690
695
 
691
696
 
692
697
  ```ts
@@ -730,8 +735,8 @@ export const rowModel = generate<Record<never, never>>(({ part }) => {
730
735
 
731
736
  Inspection copies supported native facts. Manufacturing finalization checks finite, closed,
732
737
  oriented and reconstructable output before it becomes the preview or export snapshot. These
733
- checks do not certify manufacturability: product-specific minimum walls, overhangs, fits and
734
- parameter messages remain the Generator's job.
738
+ checks do not certify manufacturability. Keep minimum walls, overhangs, fits, and parameter
739
+ messages in your model's validation.
735
740
 
736
741
  After adapting a recipe, check its default, the largest and smallest supported dimensions, and
737
742
  every optional feature. Inspect the current result in Studio before exporting it. Continue with
@@ -0,0 +1,42 @@
1
+ # Write a standalone model
2
+
3
+ Write a TypeScript model for a plate with a hole, then check and run it with the CLI.
4
+
5
+ A standalone model uses `@metamesh/modeling` and default-exports a synchronous generation program.
6
+ The CLI or your application supplies the engine.
7
+
8
+ ## Minimal model entry
9
+
10
+ Save this complete example as `model.ts`. It makes a 30 × 20 × 6 mm plate with a through-hole:
11
+
12
+
13
+
14
+ ```ts
15
+ import { box, cylinder, generate } from "@metamesh/modeling";
16
+
17
+ export default generate<Record<never, never>>(({ part }) => {
18
+ const body = box({ size: [30, 20, 6] });
19
+ const bore = cylinder({ height: 8, radius: 3, sizing: "face" });
20
+ return part("plate", body.subtract([bore]));
21
+ });
22
+ ```
23
+
24
+
25
+
26
+ The cutter extends beyond both faces of the centered plate. `part("plate", ...)` gives the output
27
+ a stable identity. This model takes an empty parameter map.
28
+
29
+ ## Check and run
30
+
31
+ With [Modeling and the CLI installed](https://metamesh.studio/docs/develop/agent-authoring#install-and-discover-the-environment),
32
+ check the source and generate a captured result:
33
+
34
+ ```bash
35
+ pnpm exec metamesh check model.ts --kind model
36
+ pnpm exec metamesh run model.ts --kind model
37
+ ```
38
+
39
+ Continue with [inspection and rendering](https://metamesh.studio/docs/develop/agent-authoring#inspect-the-captured-result),
40
+ or [host the program in your application](hosting.md).
41
+ Use the [construction chooser](concepts.md#choose-a-modeling-path) when you
42
+ need to select another modeling approach.