@metamesh/modeling 0.17.0 → 0.19.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 (832) hide show
  1. package/CHANGELOG.md +186 -0
  2. package/README.md +147 -157
  3. package/dist/api/engine.d.ts +106 -83
  4. package/dist/api/export-3mf.d.ts +2 -0
  5. package/dist/api/export-glb.d.ts +2 -0
  6. package/dist/api/export-stl.d.ts +2 -0
  7. package/dist/api/export.d.ts +160 -0
  8. package/dist/api/geometry.d.ts +250 -461
  9. package/dist/api/index.d.ts +470 -445
  10. package/dist/api/mesh.d.ts +489 -0
  11. package/dist/api/text.d.ts +1 -1
  12. package/dist/docs/guides/concepts.md +32 -495
  13. package/dist/docs/guides/fonts.md +14 -13
  14. package/dist/docs/guides/fundamentals.md +30 -29
  15. package/dist/docs/guides/generation.md +84 -64
  16. package/dist/docs/guides/geometry-values.md +193 -0
  17. package/dist/docs/guides/hosting.md +147 -48
  18. package/dist/docs/guides/profiles-and-extrusion.md +252 -0
  19. package/dist/docs/guides/recipes.md +33 -769
  20. package/dist/docs/guides/resolution-and-inspection.md +133 -0
  21. package/dist/docs/guides/solid-joins.md +126 -0
  22. package/dist/docs/guides/standalone-model.md +8 -7
  23. package/dist/docs/guides/svg-and-text.md +215 -0
  24. package/dist/docs/guides/sweeps-and-lofts.md +179 -0
  25. package/dist/docs/guides/transforms-and-placement.md +313 -0
  26. package/dist/docs/manifest.json +3224 -4430
  27. package/dist/docs/reference/engine/GenerationOptions.md +12 -5
  28. package/dist/docs/reference/engine/GeometryResource.md +19 -13
  29. package/dist/docs/reference/engine/ModelDependencies.md +9 -3
  30. package/dist/docs/reference/engine/ModelEngine.md +33 -24
  31. package/dist/docs/reference/engine/ModelEngineOptions.md +13 -2
  32. package/dist/docs/reference/engine/ModelPart.md +114 -0
  33. package/dist/docs/reference/engine/ModelResult.md +181 -0
  34. package/dist/docs/reference/engine/ModelRunArguments.md +34 -0
  35. package/dist/docs/reference/engine/ModelRunOptions.md +110 -0
  36. package/dist/docs/reference/engine/ModelSession.md +22 -16
  37. package/dist/docs/reference/engine/SessionOptions.md +21 -10
  38. package/dist/docs/reference/engine/categories/host-lifecycle.md +20 -15
  39. package/dist/docs/reference/engine/checkModel.md +49 -0
  40. package/dist/docs/reference/engine/createModelEngine.md +11 -13
  41. package/dist/docs/reference/engine/defaultModelingLimits.md +15 -2
  42. package/dist/docs/reference/engine/modelingWasmUrl.md +7 -1
  43. package/dist/docs/reference/engine.md +8 -15
  44. package/dist/docs/reference/export/Export3mfOptions.md +24 -0
  45. package/dist/docs/reference/export/ExportDiagnostic.md +59 -0
  46. package/dist/docs/reference/export/ExportFormat.md +25 -0
  47. package/dist/docs/reference/export/ExportGeometry.md +39 -0
  48. package/dist/docs/reference/export/ExportGlbOptions.md +118 -0
  49. package/dist/docs/reference/export/ExportLimits.md +83 -0
  50. package/dist/docs/reference/export/ExportMaterial.md +47 -0
  51. package/dist/docs/reference/export/ExportOptions.md +94 -0
  52. package/dist/docs/reference/export/ExportPart.md +88 -0
  53. package/dist/docs/reference/export/ExportReport.md +82 -0
  54. package/dist/docs/reference/export/ExportSink.md +39 -0
  55. package/dist/docs/reference/export/ExportStlOptions.md +24 -0
  56. package/dist/docs/reference/export/ExportedFile.md +110 -0
  57. package/dist/docs/reference/export/categories/mesh-serialization.md +47 -0
  58. package/dist/docs/reference/export/defaultExportLimits.md +20 -0
  59. package/dist/docs/reference/export/export3mf.md +64 -0
  60. package/dist/docs/reference/export/exportGlb.md +68 -0
  61. package/dist/docs/reference/export/exportStl.md +64 -0
  62. package/dist/docs/reference/export/write3mf.md +71 -0
  63. package/dist/docs/reference/export/writeGlb.md +75 -0
  64. package/dist/docs/reference/export/writeStl.md +71 -0
  65. package/dist/docs/reference/export.md +21 -0
  66. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +16 -2
  67. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +7 -1
  68. package/dist/docs/reference/geometry/Anchor3-type.md +13 -3
  69. package/dist/docs/reference/geometry/ArcCurve2.md +8 -2
  70. package/dist/docs/reference/geometry/ArcCurve3.md +8 -2
  71. package/dist/docs/reference/geometry/AttachOptions.md +13 -3
  72. package/dist/docs/reference/geometry/AxisAngleRotation3.md +9 -3
  73. package/dist/docs/reference/geometry/Bevel.md +32 -0
  74. package/dist/docs/reference/geometry/BevelSize.md +28 -0
  75. package/dist/docs/reference/geometry/Bounds2-type.md +18 -4
  76. package/dist/docs/reference/geometry/Bounds2Data.md +22 -4
  77. package/dist/docs/reference/geometry/Bounds2Input.md +18 -4
  78. package/dist/docs/reference/geometry/Bounds2Options.md +61 -11
  79. package/dist/docs/reference/geometry/Bounds3-type.md +18 -4
  80. package/dist/docs/reference/geometry/Bounds3Data.md +18 -4
  81. package/dist/docs/reference/geometry/Bounds3Input.md +18 -4
  82. package/dist/docs/reference/geometry/Bounds3Options.md +61 -11
  83. package/dist/docs/reference/geometry/BoundsFit2.md +10 -4
  84. package/dist/docs/reference/geometry/BoundsFit3.md +10 -4
  85. package/dist/docs/reference/geometry/BoundsFitOptions.md +10 -4
  86. package/dist/docs/reference/geometry/BoxAnchorFace.md +9 -3
  87. package/dist/docs/reference/geometry/BoxAnchorOptions.md +12 -6
  88. package/dist/docs/reference/geometry/BoxEdge.md +11 -1
  89. package/dist/docs/reference/geometry/BoxEdgeSelection.md +11 -1
  90. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +11 -1
  91. package/dist/docs/reference/geometry/BoxOptions.md +13 -3
  92. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +16 -2
  93. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +16 -2
  94. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +11 -1
  95. package/dist/docs/reference/geometry/CircleContourOptions.md +12 -2
  96. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +15 -3
  97. package/dist/docs/reference/geometry/CircularResolutionOptions.md +7 -1
  98. package/dist/docs/reference/geometry/CircularSampling.md +7 -1
  99. package/dist/docs/reference/geometry/CircularSamplingOptions.md +7 -1
  100. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +8 -2
  101. package/dist/docs/reference/geometry/ClearanceHoleFit.md +8 -2
  102. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +8 -2
  103. package/dist/docs/reference/geometry/Contour.md +12 -2
  104. package/dist/docs/reference/geometry/ContourCurve.md +8 -2
  105. package/dist/docs/reference/geometry/ContourPoint.md +8 -2
  106. package/dist/docs/reference/geometry/ContourSegment.md +8 -2
  107. package/dist/docs/reference/geometry/CorrespondingComponent.md +12 -2
  108. package/dist/docs/reference/geometry/CorrespondingContour.md +12 -2
  109. package/dist/docs/reference/geometry/CorrespondingProfile.md +12 -2
  110. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +12 -2
  111. package/dist/docs/reference/geometry/CubicBezierCurve2.md +8 -2
  112. package/dist/docs/reference/geometry/CubicBezierCurve3.md +8 -2
  113. package/dist/docs/reference/geometry/Curve2.md +8 -2
  114. package/dist/docs/reference/geometry/Curve3.md +8 -2
  115. package/dist/docs/reference/geometry/CurveSamplingOptions.md +16 -2
  116. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +16 -2
  117. package/dist/docs/reference/geometry/CylinderAnchorFace.md +9 -3
  118. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +11 -5
  119. package/dist/docs/reference/geometry/CylinderOptions.md +11 -1
  120. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +8 -2
  121. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +8 -2
  122. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +8 -2
  123. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +8 -2
  124. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +8 -2
  125. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +8 -2
  126. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +8 -2
  127. package/dist/docs/reference/geometry/CylindricalGearSpec.md +8 -2
  128. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +7 -1
  129. package/dist/docs/reference/geometry/EdgeTreatment.md +11 -1
  130. package/dist/docs/reference/geometry/EllipseContourOptions.md +14 -4
  131. package/dist/docs/reference/geometry/EndTreatments.md +12 -2
  132. package/dist/docs/reference/{model/ExtrudeOptions.md → geometry/ExtrudeMeshOptions.md} +30 -26
  133. package/dist/docs/reference/geometry/ExtrudeOptions.md +29 -11
  134. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +18 -4
  135. package/dist/docs/reference/geometry/FittedTextLayout.md +8 -2
  136. package/dist/docs/reference/geometry/Frame3.md +16 -2
  137. package/dist/docs/reference/geometry/GeometryError.md +11 -1
  138. package/dist/docs/reference/geometry/GeometryErrorCode.md +11 -1
  139. package/dist/docs/reference/geometry/GeometryErrorContext.md +11 -1
  140. package/dist/docs/reference/geometry/GeometryResolution.md +15 -1
  141. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +16 -2
  142. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +15 -1
  143. package/dist/docs/reference/geometry/GridPatternOptions.md +12 -2
  144. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +12 -2
  145. package/dist/docs/reference/geometry/HeightfieldOptions.md +18 -3
  146. package/dist/docs/reference/geometry/HeightfieldPreflight.md +12 -2
  147. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +9 -3
  148. package/dist/docs/reference/geometry/ImmutableBuffer-type.md +110 -0
  149. package/dist/docs/reference/geometry/ImmutableTriangleMesh.md +57 -0
  150. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +63 -84
  151. package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +12 -2
  152. package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +8 -2
  153. package/dist/docs/reference/geometry/KnuckleHingeInterval.md +8 -2
  154. package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +12 -2
  155. package/dist/docs/reference/geometry/KnuckleHingeSpec.md +12 -2
  156. package/dist/docs/reference/geometry/LineCurve2.md +8 -2
  157. package/dist/docs/reference/geometry/LineCurve3.md +8 -2
  158. package/dist/docs/reference/geometry/LinearPatternOptions.md +12 -2
  159. package/dist/docs/reference/geometry/LoftCorrespondence.md +16 -2
  160. package/dist/docs/reference/geometry/LoftMeshStation.md +12 -2
  161. package/dist/docs/reference/geometry/LoftOptions.md +18 -4
  162. package/dist/docs/reference/geometry/LoftPlacement.md +16 -2
  163. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +8 -2
  164. package/dist/docs/reference/geometry/MatchProfilesOptions.md +12 -2
  165. package/dist/docs/reference/geometry/MetricFastenerSize.md +8 -2
  166. package/dist/docs/reference/geometry/MetricFastenerStandard.md +8 -2
  167. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +8 -2
  168. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +8 -2
  169. package/dist/docs/reference/geometry/ModelingLimits.md +19 -1
  170. package/dist/docs/reference/geometry/NumericArray.md +28 -0
  171. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +8 -2
  172. package/dist/docs/reference/geometry/Path2-type.md +16 -2
  173. package/dist/docs/reference/geometry/Path2Data.md +16 -2
  174. package/dist/docs/reference/geometry/Path2Input.md +16 -2
  175. package/dist/docs/reference/geometry/Path3-type.md +16 -2
  176. package/dist/docs/reference/geometry/Path3Data.md +16 -2
  177. package/dist/docs/reference/geometry/Path3Input.md +16 -2
  178. package/dist/docs/reference/geometry/PathFrame.md +8 -2
  179. package/dist/docs/reference/geometry/PathLocation.md +16 -2
  180. package/dist/docs/reference/geometry/PathNormalGuide.md +16 -2
  181. package/dist/docs/reference/geometry/PathOptions.md +12 -2
  182. package/dist/docs/reference/geometry/PathPatternOptions.md +12 -2
  183. package/dist/docs/reference/geometry/PathPlacement.md +8 -2
  184. package/dist/docs/reference/geometry/PathResamplingOptions.md +16 -2
  185. package/dist/docs/reference/geometry/Pivot2Options.md +17 -3
  186. package/dist/docs/reference/geometry/Pivot3Options.md +17 -3
  187. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +12 -2
  188. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +12 -2
  189. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +12 -2
  190. package/dist/docs/reference/geometry/PlanarPatchQuality.md +12 -2
  191. package/dist/docs/reference/geometry/PolygonData.md +12 -2
  192. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +8 -2
  193. package/dist/docs/reference/geometry/PrimitiveAttachment.md +11 -3
  194. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +11 -1
  195. package/dist/docs/reference/geometry/PrintableThreadFit.md +12 -2
  196. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +12 -2
  197. package/dist/docs/reference/geometry/Profile.md +8 -2
  198. package/dist/docs/reference/geometry/ProfileComponent2.md +12 -2
  199. package/dist/docs/reference/geometry/ProfileContour2.md +12 -2
  200. package/dist/docs/reference/geometry/ProfileSpan2.md +12 -2
  201. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +11 -1
  202. package/dist/docs/reference/geometry/RackPitchDimensions.md +8 -2
  203. package/dist/docs/reference/geometry/RackPitchSpec.md +8 -2
  204. package/dist/docs/reference/geometry/RadialPatternOptions.md +12 -2
  205. package/dist/docs/reference/geometry/RadialSizing.md +11 -1
  206. package/dist/docs/reference/geometry/RadialSizingOptions.md +11 -1
  207. package/dist/docs/reference/geometry/RectangleContourOptions.md +14 -4
  208. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +12 -2
  209. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +12 -2
  210. package/dist/docs/reference/geometry/RectangleProfileOptions.md +10 -4
  211. package/dist/docs/reference/geometry/RegionData.md +12 -2
  212. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +8 -2
  213. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +7 -1
  214. package/dist/docs/reference/geometry/RevolveOptions.md +17 -3
  215. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +11 -1
  216. package/dist/docs/reference/geometry/RowLayoutOptions.md +10 -4
  217. package/dist/docs/reference/geometry/SampleContourOptions.md +8 -2
  218. package/dist/docs/reference/geometry/SampleHelixOptions.md +8 -2
  219. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +8 -2
  220. package/dist/docs/reference/geometry/SampledCurve2.md +8 -2
  221. package/dist/docs/reference/geometry/SampledCurve3.md +8 -2
  222. package/dist/docs/reference/geometry/SampledThreadHelices.md +8 -2
  223. package/dist/docs/reference/geometry/SideProfileCurve.md +8 -2
  224. package/dist/docs/reference/geometry/SideProfilePoint.md +8 -2
  225. package/dist/docs/reference/geometry/SideProfileSegment.md +8 -2
  226. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +11 -1
  227. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +12 -2
  228. package/dist/docs/reference/geometry/SphereOptions.md +11 -1
  229. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +16 -2
  230. package/dist/docs/reference/geometry/StarContourOptions.md +84 -0
  231. package/dist/docs/reference/geometry/StrokeCap.md +12 -2
  232. package/dist/docs/reference/geometry/StrokeJoin.md +12 -2
  233. package/dist/docs/reference/geometry/StrokeOptions.md +12 -2
  234. package/dist/docs/reference/geometry/SvgImportOptions.md +8 -2
  235. package/dist/docs/reference/geometry/SvgRegionPreflight.md +8 -2
  236. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +8 -2
  237. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +8 -2
  238. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +8 -2
  239. package/dist/docs/reference/geometry/SweepOptions.md +16 -2
  240. package/dist/docs/reference/geometry/SweepOrientation.md +16 -2
  241. package/dist/docs/reference/geometry/ThreadBevelOptions.md +18 -31
  242. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +8 -2
  243. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +8 -2
  244. package/dist/docs/reference/geometry/ThreadEndStyle.md +16 -2
  245. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +16 -2
  246. package/dist/docs/reference/geometry/ThreadHandedness.md +16 -2
  247. package/dist/docs/reference/geometry/ThreadHelixOptions.md +8 -2
  248. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +16 -2
  249. package/dist/docs/reference/geometry/ThreadLeadInShape.md +16 -2
  250. package/dist/docs/reference/geometry/ThreadProfile-type.md +17 -3
  251. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +16 -2
  252. package/dist/docs/reference/geometry/ThreadProfileSpec.md +16 -2
  253. package/dist/docs/reference/geometry/{HelicalThreadRidgeMeshOptions.md → ThreadRidgeOptions.md} +19 -5
  254. package/dist/docs/reference/geometry/ThreadRole.md +8 -2
  255. package/dist/docs/reference/geometry/{HelicalThreadSolidMeshOptions.md → ThreadSolidOptions.md} +29 -66
  256. package/dist/docs/reference/geometry/{HelicalThreadSolidMeshPreflight.md → ThreadSolidPreflight.md} +17 -3
  257. package/dist/docs/reference/geometry/ThreadedNutOptions.md +86 -87
  258. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +29 -7
  259. package/dist/docs/reference/geometry/ThreadedNutShape.md +12 -2
  260. package/dist/docs/reference/geometry/ThreadedRodOptions.md +63 -84
  261. package/dist/docs/reference/geometry/TorusOptions.md +11 -1
  262. package/dist/docs/reference/geometry/Transform2-type.md +17 -3
  263. package/dist/docs/reference/geometry/Transform2Data.md +17 -3
  264. package/dist/docs/reference/geometry/Transform2Input.md +17 -3
  265. package/dist/docs/reference/geometry/Transform3-type.md +17 -3
  266. package/dist/docs/reference/geometry/Transform3Data.md +17 -3
  267. package/dist/docs/reference/geometry/Transform3Input.md +17 -3
  268. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +16 -2
  269. package/dist/docs/reference/geometry/TriangleMesh.md +19 -6
  270. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +25 -5
  271. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +13 -3
  272. package/dist/docs/reference/geometry/TriangleMeshInput.md +29 -0
  273. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +16 -2
  274. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +12 -2
  275. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +12 -2
  276. package/dist/docs/reference/geometry/TriangleMeshSignature.md +14 -4
  277. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +12 -2
  278. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +12 -2
  279. package/dist/docs/reference/geometry/TriangleMeshTopologyAnalysis.md +145 -0
  280. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +12 -2
  281. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +16 -2
  282. package/dist/docs/reference/geometry/TubeOptions.md +20 -86
  283. package/dist/docs/reference/geometry/Vector2-type.md +17 -3
  284. package/dist/docs/reference/geometry/Vector2Data.md +21 -3
  285. package/dist/docs/reference/geometry/Vector2Input.md +17 -3
  286. package/dist/docs/reference/geometry/Vector3-type.md +17 -3
  287. package/dist/docs/reference/geometry/Vector3Data.md +17 -3
  288. package/dist/docs/reference/geometry/Vector3Input.md +17 -3
  289. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +12 -2
  290. package/dist/docs/reference/geometry/VectorTextLayout.md +16 -2
  291. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +14 -4
  292. package/dist/docs/reference/geometry/VectorTextMetrics.md +16 -2
  293. package/dist/docs/reference/geometry/VectorTextOptions.md +12 -2
  294. package/dist/docs/reference/geometry/add2.md +9 -3
  295. package/dist/docs/reference/geometry/add3.md +9 -3
  296. package/dist/docs/reference/geometry/anchor3.md +9 -3
  297. package/dist/docs/reference/geometry/anchorFrame3.md +8 -2
  298. package/dist/docs/reference/geometry/applyTransformDirection3.md +9 -3
  299. package/dist/docs/reference/geometry/applyTransformPoint3.md +9 -3
  300. package/dist/docs/reference/geometry/attachmentTransform3.md +9 -3
  301. package/dist/docs/reference/geometry/bounds2.md +18 -8
  302. package/dist/docs/reference/geometry/bounds3.md +18 -8
  303. package/dist/docs/reference/geometry/boundsCenter.md +10 -4
  304. package/dist/docs/reference/geometry/boundsSize.md +10 -4
  305. package/dist/docs/reference/geometry/boxAnchor3.md +11 -5
  306. package/dist/docs/reference/geometry/categories/bounds-layout.md +6 -6
  307. package/dist/docs/reference/geometry/categories/curves-paths.md +3 -3
  308. package/dist/docs/reference/geometry/categories/mechanical.md +9 -11
  309. package/dist/docs/reference/geometry/categories/meshes.md +20 -33
  310. package/dist/docs/reference/geometry/categories/pattern-placement.md +3 -3
  311. package/dist/docs/reference/geometry/categories/primitive-options.md +4 -4
  312. package/dist/docs/reference/geometry/categories/profiles-regions.md +6 -5
  313. package/dist/docs/reference/geometry/categories/resolution-errors.md +3 -3
  314. package/dist/docs/reference/geometry/categories/transforms-math.md +5 -4
  315. package/dist/docs/reference/geometry/categories/vector-import.md +4 -4
  316. package/dist/docs/reference/geometry/circleContour.md +8 -2
  317. package/dist/docs/reference/geometry/closeToAxis.md +8 -2
  318. package/dist/docs/reference/geometry/compensateThreadDiameters.md +8 -2
  319. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +8 -2
  320. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +8 -2
  321. package/dist/docs/reference/geometry/composeTransform3.md +9 -3
  322. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +8 -2
  323. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +8 -2
  324. package/dist/docs/reference/geometry/contourContainsPoint.md +8 -2
  325. package/dist/docs/reference/geometry/cross2.md +9 -3
  326. package/dist/docs/reference/geometry/cross3.md +9 -3
  327. package/dist/docs/reference/geometry/cylinderAnchor3.md +10 -4
  328. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +8 -2
  329. package/dist/docs/reference/geometry/distance2.md +9 -3
  330. package/dist/docs/reference/geometry/distance3.md +9 -3
  331. package/dist/docs/reference/geometry/distributeAlongPath.md +8 -2
  332. package/dist/docs/reference/geometry/dot2.md +9 -3
  333. package/dist/docs/reference/geometry/dot3.md +9 -3
  334. package/dist/docs/reference/geometry/ellipseContour.md +8 -2
  335. package/dist/docs/reference/geometry/eulerTransform3.md +9 -3
  336. package/dist/docs/reference/geometry/fitBounds.md +10 -4
  337. package/dist/docs/reference/geometry/fitTextLayout.md +8 -2
  338. package/dist/docs/reference/geometry/frameTransform3.md +9 -3
  339. package/dist/docs/reference/geometry/getMetricClearanceHoleDiameter.md +8 -2
  340. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +8 -2
  341. package/dist/docs/reference/geometry/gridPatternTransforms.md +8 -2
  342. package/dist/docs/reference/{model → geometry}/immutableBuffer.md +13 -2
  343. package/dist/docs/reference/geometry/inverseTransform3.md +9 -3
  344. package/dist/docs/reference/geometry/isGeometryError.md +11 -1
  345. package/dist/docs/reference/geometry/layoutRow.md +10 -4
  346. package/dist/docs/reference/geometry/length2.md +9 -3
  347. package/dist/docs/reference/geometry/length3.md +9 -3
  348. package/dist/docs/reference/geometry/lerp2.md +9 -3
  349. package/dist/docs/reference/geometry/lerp3.md +9 -3
  350. package/dist/docs/reference/geometry/linearPatternTransforms.md +8 -2
  351. package/dist/docs/reference/geometry/matchProfiles.md +8 -2
  352. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +8 -2
  353. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +8 -2
  354. package/dist/docs/reference/geometry/normalize2.md +9 -3
  355. package/dist/docs/reference/geometry/normalize3.md +9 -3
  356. package/dist/docs/reference/geometry/normalizeContour.md +8 -2
  357. package/dist/docs/reference/geometry/normalizePolygon.md +8 -2
  358. package/dist/docs/reference/geometry/normalizeRegion.md +8 -2
  359. package/dist/docs/reference/geometry/path2.md +12 -2
  360. package/dist/docs/reference/geometry/path3.md +12 -2
  361. package/dist/docs/reference/geometry/pathPatternTransforms.md +8 -2
  362. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +25 -26
  363. package/dist/docs/reference/geometry/preflightSvgRegion.md +8 -2
  364. package/dist/docs/reference/geometry/preflightThreadedNut.md +31 -27
  365. package/dist/docs/reference/geometry/preflightThreadedRod.md +25 -26
  366. package/dist/docs/reference/geometry/projectOntoPlane3.md +9 -3
  367. package/dist/docs/reference/geometry/radialPatternTransforms.md +8 -2
  368. package/dist/docs/reference/geometry/rectangleContour.md +17 -6
  369. package/dist/docs/reference/geometry/rectangleProfile.md +9 -3
  370. package/dist/docs/reference/geometry/regionArea.md +8 -2
  371. package/dist/docs/reference/geometry/regionBounds.md +8 -2
  372. package/dist/docs/reference/geometry/regularPolygonContour.md +9 -3
  373. package/dist/docs/reference/geometry/resamplePolyline2.md +8 -2
  374. package/dist/docs/reference/geometry/resamplePolyline3.md +8 -2
  375. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +7 -1
  376. package/dist/docs/reference/geometry/resolveArcSegments.md +7 -1
  377. package/dist/docs/reference/geometry/resolveCircularSampling.md +7 -1
  378. package/dist/docs/reference/geometry/resolveCircularSegments.md +7 -1
  379. package/dist/docs/reference/geometry/resolveCylindricalGear.md +8 -2
  380. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +8 -2
  381. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +8 -2
  382. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +8 -2
  383. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +7 -1
  384. package/dist/docs/reference/geometry/resolveKnuckleHinge.md +8 -2
  385. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +8 -2
  386. package/dist/docs/reference/geometry/resolveRackPitch.md +8 -2
  387. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +8 -2
  388. package/dist/docs/reference/geometry/rotate2.md +9 -3
  389. package/dist/docs/reference/geometry/rotationTransform3.md +9 -3
  390. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +8 -2
  391. package/dist/docs/reference/geometry/sampleContour.md +8 -2
  392. package/dist/docs/reference/geometry/sampleCurve2.md +8 -2
  393. package/dist/docs/reference/geometry/sampleCurve3.md +8 -2
  394. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +8 -2
  395. package/dist/docs/reference/geometry/sampleHelix.md +8 -2
  396. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +8 -2
  397. package/dist/docs/reference/geometry/sampleRackToothPath.md +8 -2
  398. package/dist/docs/reference/geometry/sampleSideProfile.md +8 -2
  399. package/dist/docs/reference/geometry/sampleTextContours.md +8 -2
  400. package/dist/docs/reference/geometry/sampleThreadHelices.md +8 -2
  401. package/dist/docs/reference/geometry/scale2.md +9 -3
  402. package/dist/docs/reference/geometry/scale3.md +9 -3
  403. package/dist/docs/reference/geometry/scaleTransform3.md +9 -3
  404. package/dist/docs/reference/geometry/signedContourArea.md +8 -2
  405. package/dist/docs/reference/geometry/starContour.md +24 -16
  406. package/dist/docs/reference/geometry/strokeRegionData.md +8 -2
  407. package/dist/docs/reference/geometry/subtract2.md +9 -3
  408. package/dist/docs/reference/geometry/subtract3.md +9 -3
  409. package/dist/docs/reference/geometry/threadProfile.md +8 -2
  410. package/dist/docs/reference/geometry/transform2.md +13 -3
  411. package/dist/docs/reference/geometry/transform3.md +13 -3
  412. package/dist/docs/reference/geometry/transformDeterminant3.md +9 -3
  413. package/dist/docs/reference/geometry/transformRegionData.md +8 -2
  414. package/dist/docs/reference/geometry/translationTransform3.md +9 -3
  415. package/dist/docs/reference/geometry/triangulateContour.md +8 -2
  416. package/dist/docs/reference/geometry/validateRigidTransform3.md +41 -0
  417. package/dist/docs/reference/geometry/validateTransform3.md +9 -3
  418. package/dist/docs/reference/geometry/vector2.md +13 -3
  419. package/dist/docs/reference/geometry/vector3.md +13 -3
  420. package/dist/docs/reference/geometry.md +10 -10
  421. package/dist/docs/reference/mesh/MeshRenderOptions.md +28 -0
  422. package/dist/docs/reference/mesh/RenderMesh.md +68 -0
  423. package/dist/docs/reference/mesh/analyze.md +102 -0
  424. package/dist/docs/reference/mesh/analyzeQuality.md +62 -0
  425. package/dist/docs/reference/mesh/bounds.md +45 -0
  426. package/dist/docs/reference/mesh/categories/operations.md +57 -0
  427. package/dist/docs/reference/mesh/centroid.md +45 -0
  428. package/dist/docs/reference/mesh/extrude.md +79 -0
  429. package/dist/docs/reference/mesh/heightfield.md +57 -0
  430. package/dist/docs/reference/mesh/immutable.md +51 -0
  431. package/dist/docs/reference/mesh/join.md +47 -0
  432. package/dist/docs/reference/mesh/loft.md +83 -0
  433. package/dist/docs/reference/mesh/optimizePlanarPatches.md +102 -0
  434. package/dist/docs/reference/mesh/preflightHeightfield.md +48 -0
  435. package/dist/docs/reference/mesh/preflightThreadSolid.md +96 -0
  436. package/dist/docs/reference/mesh/render.md +57 -0
  437. package/dist/docs/reference/mesh/reverse.md +41 -0
  438. package/dist/docs/reference/{geometry/revolveMesh.md → mesh/revolve.md} +23 -17
  439. package/dist/docs/reference/mesh/signature.md +70 -0
  440. package/dist/docs/reference/mesh/sweep.md +92 -0
  441. package/dist/docs/reference/mesh/threadRidge.md +78 -0
  442. package/dist/docs/reference/mesh/threadSolid.md +96 -0
  443. package/dist/docs/reference/mesh/transform.md +53 -0
  444. package/dist/docs/reference/mesh/validate.md +75 -0
  445. package/dist/docs/reference/{geometry/validateSolidMesh.md → mesh/validateSolid.md} +23 -11
  446. package/dist/docs/reference/mesh.md +21 -0
  447. package/dist/docs/reference/model/CircleOptions.md +13 -7
  448. package/dist/docs/reference/model/DiagnosticOptions.md +21 -1
  449. package/dist/docs/reference/model/EllipseOptions.md +13 -7
  450. package/dist/docs/reference/model/GenerateCallback.md +11 -5
  451. package/dist/docs/reference/model/GenerateContext.md +26 -99
  452. package/dist/docs/reference/model/GenerationDiagnostic.md +19 -1
  453. package/dist/docs/reference/model/GenerationError.md +8 -2
  454. package/dist/docs/reference/model/HoleCutterOptions.md +17 -10
  455. package/dist/docs/reference/model/HoleCutterOverrun.md +10 -3
  456. package/dist/docs/reference/model/HoleCutterRecess.md +10 -3
  457. package/dist/docs/reference/model/HullOptions.md +13 -6
  458. package/dist/docs/reference/model/ImmutableValue.md +26 -0
  459. package/dist/docs/reference/model/ImplicitOptions.md +12 -6
  460. package/dist/docs/reference/model/JoinOptions.md +76 -0
  461. package/dist/docs/reference/model/JoinTransition.md +54 -0
  462. package/dist/docs/reference/model/KnuckleHinge-type.md +9 -3
  463. package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +7 -1
  464. package/dist/docs/reference/model/KnuckleHingeOptions.md +10 -4
  465. package/dist/docs/reference/model/KnuckleHingeWeb.md +7 -1
  466. package/dist/docs/reference/model/LoftStation.md +16 -9
  467. package/dist/docs/reference/model/Memo.md +54 -0
  468. package/dist/docs/reference/model/ModelProgram.md +8 -2
  469. package/dist/docs/reference/model/PartDeclaration.md +87 -0
  470. package/dist/docs/reference/model/PartGeometry.md +10 -4
  471. package/dist/docs/reference/model/PartOptions.md +16 -22
  472. package/dist/docs/reference/model/PatternSource.md +10 -4
  473. package/dist/docs/reference/model/PlaneOptions.md +11 -4
  474. package/dist/docs/reference/model/PolygonOptions.md +20 -14
  475. package/dist/docs/reference/model/Profile.md +10 -4
  476. package/dist/docs/reference/model/RectangleOptions.md +28 -22
  477. package/dist/docs/reference/model/RegularPolygonOptions.md +13 -7
  478. package/dist/docs/reference/model/Section.md +196 -77
  479. package/dist/docs/reference/model/SectionHullOptions.md +13 -6
  480. package/dist/docs/reference/model/SectionInspection.md +12 -18
  481. package/dist/docs/reference/model/SectionOffsetJoin.md +10 -4
  482. package/dist/docs/reference/model/SectionOffsetOptions.md +12 -6
  483. package/dist/docs/reference/model/Solid.md +339 -54
  484. package/dist/docs/reference/model/SolidInspection.md +12 -18
  485. package/dist/docs/reference/model/SolidSegmentHit.md +14 -4
  486. package/dist/docs/reference/model/StarOptions.md +53 -25
  487. package/dist/docs/reference/model/SvgOrigin.md +10 -4
  488. package/dist/docs/reference/model/SvgPathSectionOptions.md +14 -8
  489. package/dist/docs/reference/model/SvgSectionOptions.md +16 -10
  490. package/dist/docs/reference/model/TextSectionOptions.md +14 -8
  491. package/dist/docs/reference/model/box.md +18 -11
  492. package/dist/docs/reference/model/categories/boolean-operations.md +13 -11
  493. package/dist/docs/reference/model/categories/bounded-surfaces.md +1 -7
  494. package/dist/docs/reference/model/categories/explicit-profiles.md +1 -14
  495. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +11 -23
  496. package/dist/docs/reference/model/categories/generation.md +10 -15
  497. package/dist/docs/reference/model/categories/hinges.md +1 -4
  498. package/dist/docs/reference/model/categories/mesh-inspection.md +14 -9
  499. package/dist/docs/reference/model/categories/primitives.md +8 -24
  500. package/dist/docs/reference/model/categories/sections.md +6 -16
  501. package/dist/docs/reference/model/categories/threads.md +3 -30
  502. package/dist/docs/reference/model/categories/transforms-placement.md +5 -35
  503. package/dist/docs/reference/model/circle.md +10 -4
  504. package/dist/docs/reference/model/cylinder.md +13 -6
  505. package/dist/docs/reference/model/ellipse.md +10 -4
  506. package/dist/docs/reference/model/extrude.md +28 -20
  507. package/dist/docs/reference/model/generate.md +10 -4
  508. package/dist/docs/reference/model/gridPattern.md +15 -9
  509. package/dist/docs/reference/model/heightfield.md +10 -4
  510. package/dist/docs/reference/model/holeCutter.md +21 -4
  511. package/dist/docs/reference/model/hull.md +9 -2
  512. package/dist/docs/reference/model/implicit.md +9 -3
  513. package/dist/docs/reference/model/internalThreadCutter.md +31 -33
  514. package/dist/docs/reference/model/intersect.md +11 -4
  515. package/dist/docs/reference/model/join.md +89 -0
  516. package/dist/docs/reference/model/knuckleHinge.md +8 -2
  517. package/dist/docs/reference/model/linearPattern.md +15 -9
  518. package/dist/docs/reference/model/loft.md +36 -28
  519. package/dist/docs/reference/model/matchProfiles.md +14 -8
  520. package/dist/docs/reference/model/minkowskiSum.md +9 -2
  521. package/dist/docs/reference/model/pathPattern.md +25 -19
  522. package/dist/docs/reference/model/polygon.md +13 -7
  523. package/dist/docs/reference/model/preflightInternalThreadCutter.md +33 -35
  524. package/dist/docs/reference/model/preflightThreadedNut.md +43 -40
  525. package/dist/docs/reference/model/preflightThreadedRod.md +33 -35
  526. package/dist/docs/reference/model/radialPattern.md +15 -9
  527. package/dist/docs/reference/model/rectangle.md +14 -8
  528. package/dist/docs/reference/model/regularPolygon.md +10 -4
  529. package/dist/docs/reference/model/revolve.md +25 -17
  530. package/dist/docs/reference/model/solidFromMesh.md +16 -9
  531. package/dist/docs/reference/model/sphere.md +13 -6
  532. package/dist/docs/reference/model/star.md +17 -11
  533. package/dist/docs/reference/model/stroke.md +21 -15
  534. package/dist/docs/reference/model/svgPathSection.md +12 -6
  535. package/dist/docs/reference/model/svgSection.md +13 -7
  536. package/dist/docs/reference/model/sweep.md +29 -21
  537. package/dist/docs/reference/model/textSection.md +15 -9
  538. package/dist/docs/reference/model/threadRidge.md +21 -15
  539. package/dist/docs/reference/model/threadedNut.md +41 -38
  540. package/dist/docs/reference/model/threadedRod.md +31 -33
  541. package/dist/docs/reference/model/torus.md +20 -13
  542. package/dist/docs/reference/model/tube.md +13 -41
  543. package/dist/docs/reference/model/union.md +11 -4
  544. package/dist/docs/reference/model.md +11 -20
  545. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +8 -2
  546. package/dist/docs/reference/text/VectorFont.md +39 -33
  547. package/dist/docs/reference/text/VectorFontOptions.md +7 -1
  548. package/dist/docs/reference/text/categories/font-preparation.md +3 -15
  549. package/dist/docs/reference/text/prepareVectorFont.md +7 -1
  550. package/dist/docs/reference/text.md +4 -4
  551. package/dist/engine/execution.js +10 -6
  552. package/dist/engine/finalization.js +2 -74
  553. package/dist/engine/index.js +24 -30
  554. package/dist/engine/model-parts.js +8 -0
  555. package/dist/engine/model-summary.js +5 -5
  556. package/dist/engine/native/construction-mesh.js +41 -0
  557. package/dist/engine/native/index.js +1 -1
  558. package/dist/engine/native/material-components.js +5 -54
  559. package/dist/engine/native/mesh-observation.js +55 -0
  560. package/dist/engine/native/operations.js +0 -7
  561. package/dist/engine/native/regions.js +2 -1
  562. package/dist/engine/native/scoped-primitives.js +5 -4
  563. package/dist/engine/native/threads.js +14 -14
  564. package/dist/engine/{construction-operations.js → operations/construction.js} +25 -23
  565. package/dist/engine/{modeling-context.js → operations/context.js} +12 -10
  566. package/dist/engine/{operation-environment.js → operations/environment.js} +2 -2
  567. package/dist/engine/{extrusion-finishing.js → operations/extrusion-finishing.js} +23 -22
  568. package/dist/engine/{hole-cutter-operation.js → operations/hole-cutter.js} +3 -3
  569. package/dist/engine/{inspection-operations.js → operations/inspection.js} +6 -6
  570. package/dist/engine/operations/join-collar-profile.js +120 -0
  571. package/dist/engine/operations/join.js +508 -0
  572. package/dist/engine/{knuckle-hinge-operation.js → operations/knuckle-hinge.js} +4 -4
  573. package/dist/engine/{loft-operations.js → operations/loft.js} +13 -12
  574. package/dist/engine/{mechanical-operations.js → operations/mechanical.js} +2 -2
  575. package/dist/engine/{pattern-operations.js → operations/patterns.js} +4 -4
  576. package/dist/engine/{primitive-anchors.js → operations/primitives/anchors.js} +9 -4
  577. package/dist/engine/{primitive-operations.js → operations/primitives/construction.js} +18 -19
  578. package/dist/engine/{primitive-correspondence.js → operations/primitives/correspondence.js} +4 -4
  579. package/dist/engine/{profile-mesh.js → operations/primitives/profile-mesh.js} +12 -12
  580. package/dist/engine/{primitive-profiles.js → operations/primitives/profiles.js} +7 -7
  581. package/dist/engine/{section-operations.js → operations/sections.js} +8 -8
  582. package/dist/engine/{transform-operations.js → operations/transforms.js} +8 -8
  583. package/dist/engine/placement.js +3 -4
  584. package/dist/engine/recipe-realization.js +2 -2
  585. package/dist/engine/{deferred-context.js → session/deferred-context.js} +4 -4
  586. package/dist/engine/session/dependencies.js +93 -0
  587. package/dist/engine/session/graph.js +428 -0
  588. package/dist/engine/{session-native.js → session/native-cache.js} +2 -2
  589. package/dist/engine/{session.js → session/session.js} +20 -14
  590. package/dist/engine/{session-snapshot.js → session/snapshot-cache.js} +30 -60
  591. package/dist/export/3mf.js +190 -0
  592. package/dist/export/capture.js +178 -0
  593. package/dist/export/glb.js +209 -0
  594. package/dist/export/index.js +5 -0
  595. package/dist/export/limits.js +18 -0
  596. package/dist/export/stl.js +105 -0
  597. package/dist/export/types.js +1 -0
  598. package/dist/export/writer.js +54 -0
  599. package/dist/geometry/anchors.js +4 -11
  600. package/dist/geometry/bounds-value.js +22 -12
  601. package/dist/geometry/heightfield.js +10 -12
  602. package/dist/{model → geometry}/immutable-buffer.js +31 -12
  603. package/dist/geometry/index.js +16 -22
  604. package/dist/geometry/join-geometry.js +839 -0
  605. package/dist/geometry/loft/loft.js +11 -6
  606. package/dist/geometry/mechanical/index.js +5 -5
  607. package/dist/geometry/mechanical/threads/bevel.js +24 -0
  608. package/dist/geometry/mechanical/{threads.js → threads/fit.js} +4 -4
  609. package/dist/geometry/mechanical/{thread-helices.js → threads/helices.js} +3 -3
  610. package/dist/geometry/mechanical/{thread-mesh-plan.js → threads/mesh-plan.js} +38 -53
  611. package/dist/geometry/mechanical/{thread-mesh.js → threads/mesh.js} +9 -9
  612. package/dist/geometry/mechanical/{thread-profiles.js → threads/profiles.js} +3 -3
  613. package/dist/geometry/mechanical/{thread-solids.js → threads/solids.js} +58 -89
  614. package/dist/geometry/mechanical/{thread-surface.js → threads/surface.js} +7 -8
  615. package/dist/geometry/mesh/mesh-centroid.js +3 -2
  616. package/dist/geometry/mesh/mesh-planar.js +27 -8
  617. package/dist/geometry/mesh/mesh-quality.js +2 -1
  618. package/dist/geometry/mesh/mesh-render.js +205 -0
  619. package/dist/geometry/mesh/mesh-signature.js +7 -6
  620. package/dist/geometry/mesh/mesh-solid-intersections.js +43 -17
  621. package/dist/geometry/mesh/mesh-solid.js +8 -5
  622. package/dist/geometry/mesh/mesh-types.js +1 -0
  623. package/dist/geometry/mesh/mesh.js +13 -22
  624. package/dist/geometry/mesh-api.js +15 -0
  625. package/dist/geometry/primitive-resolvers.js +42 -14
  626. package/dist/geometry/profiles/primitives/circle.js +19 -0
  627. package/dist/geometry/profiles/{shapes.js → primitives/ellipse.js} +6 -10
  628. package/dist/geometry/profiles/{rectangle.js → primitives/rectangle.js} +14 -12
  629. package/dist/geometry/profiles/primitives/regular-polygon.js +33 -0
  630. package/dist/geometry/profiles/primitives/star.js +28 -0
  631. package/dist/geometry/region-offset.js +278 -0
  632. package/dist/geometry/regions.js +11 -1
  633. package/dist/geometry/revolve/revolve-mesh.js +1 -1
  634. package/dist/geometry/{svg-import.js → svg/import.js} +10 -10
  635. package/dist/geometry/sweeps/sweep-mesh.js +1 -1
  636. package/dist/geometry/transform3.js +29 -0
  637. package/dist/index.js +2 -1
  638. package/dist/model/diagnostic-path.js +26 -0
  639. package/dist/model/execution-binding.js +3 -3
  640. package/dist/model/generation.js +9 -3
  641. package/dist/model/geometry-recipes.js +1 -1
  642. package/dist/model/immutable-generation-data.js +45 -14
  643. package/dist/model/join.js +1 -0
  644. package/dist/model/operations.js +34 -144
  645. package/dist/model/recipe-declaration.js +7 -2
  646. package/dist/model/shape-handles.js +31 -7
  647. package/dist/text/index.js +1 -1
  648. package/package.json +38 -11
  649. package/dist/docs/reference/engine/Export3mfOptions.md +0 -29
  650. package/dist/docs/reference/engine/ExportMeshPart.md +0 -65
  651. package/dist/docs/reference/engine/ModelSnapshot.md +0 -184
  652. package/dist/docs/reference/engine/SnapshotPart.md +0 -133
  653. package/dist/docs/reference/engine/validateModel.md +0 -48
  654. package/dist/docs/reference/geometry/ThreadedNutBevel.md +0 -14
  655. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +0 -61
  656. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +0 -56
  657. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +0 -39
  658. package/dist/docs/reference/geometry/computeTriangleMeshSignature.md +0 -64
  659. package/dist/docs/reference/geometry/extrudeMesh.md +0 -77
  660. package/dist/docs/reference/geometry/heightfieldMesh.md +0 -52
  661. package/dist/docs/reference/geometry/helicalThreadRidgeMesh.md +0 -72
  662. package/dist/docs/reference/geometry/helicalThreadSolidMesh.md +0 -106
  663. package/dist/docs/reference/geometry/joinTriangleMeshes.md +0 -40
  664. package/dist/docs/reference/geometry/loftMesh.md +0 -77
  665. package/dist/docs/reference/geometry/meshBounds.md +0 -39
  666. package/dist/docs/reference/geometry/optimizePlanarPatches.md +0 -95
  667. package/dist/docs/reference/geometry/preflightHeightfield.md +0 -43
  668. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +0 -105
  669. package/dist/docs/reference/geometry/reverseTriangleMesh.md +0 -34
  670. package/dist/docs/reference/geometry/sweepMesh.md +0 -86
  671. package/dist/docs/reference/geometry/transformTriangleMesh.md +0 -46
  672. package/dist/docs/reference/geometry/validateTriangleMesh.md +0 -63
  673. package/dist/docs/reference/model/Anchor3.md +0 -55
  674. package/dist/docs/reference/model/AttachOptions.md +0 -69
  675. package/dist/docs/reference/model/Bounds2-type.md +0 -125
  676. package/dist/docs/reference/model/Bounds2Data.md +0 -44
  677. package/dist/docs/reference/model/Bounds2Input.md +0 -19
  678. package/dist/docs/reference/model/Bounds2Options.md +0 -70
  679. package/dist/docs/reference/model/Bounds3-type.md +0 -125
  680. package/dist/docs/reference/model/Bounds3Data.md +0 -44
  681. package/dist/docs/reference/model/Bounds3Input.md +0 -19
  682. package/dist/docs/reference/model/Bounds3Options.md +0 -70
  683. package/dist/docs/reference/model/BoxEdge.md +0 -15
  684. package/dist/docs/reference/model/BoxEdgeSelection.md +0 -19
  685. package/dist/docs/reference/model/BoxEdgeTreatments.md +0 -20
  686. package/dist/docs/reference/model/BoxOptions.md +0 -92
  687. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +0 -35
  688. package/dist/docs/reference/model/CircleContourOptions.md +0 -21
  689. package/dist/docs/reference/model/CircularPrimitiveOptions.md +0 -64
  690. package/dist/docs/reference/model/Computed.md +0 -40
  691. package/dist/docs/reference/model/ComputedValue.md +0 -24
  692. package/dist/docs/reference/model/Contour.md +0 -24
  693. package/dist/docs/reference/model/CorrespondingComponent.md +0 -46
  694. package/dist/docs/reference/model/CorrespondingContour.md +0 -46
  695. package/dist/docs/reference/model/CorrespondingProfile.md +0 -22
  696. package/dist/docs/reference/model/CorrespondingProfileStation.md +0 -27
  697. package/dist/docs/reference/model/CylinderOptions.md +0 -58
  698. package/dist/docs/reference/model/EdgeTreatment.md +0 -22
  699. package/dist/docs/reference/model/EllipseContourOptions.md +0 -21
  700. package/dist/docs/reference/model/EndTreatments.md +0 -39
  701. package/dist/docs/reference/model/FinalizedModel.md +0 -131
  702. package/dist/docs/reference/model/FinalizedPart.md +0 -87
  703. package/dist/docs/reference/model/Frame3.md +0 -63
  704. package/dist/docs/reference/model/GeneratedPart.md +0 -97
  705. package/dist/docs/reference/model/GeometryResolution.md +0 -70
  706. package/dist/docs/reference/model/GeometrySamplingLimits.md +0 -62
  707. package/dist/docs/reference/model/GeometryToleranceOptions.md +0 -46
  708. package/dist/docs/reference/model/GridPatternOptions.md +0 -50
  709. package/dist/docs/reference/model/HeightfieldOptions.md +0 -67
  710. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +0 -141
  711. package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +0 -59
  712. package/dist/docs/reference/model/ImmutableBuffer-type.md +0 -84
  713. package/dist/docs/reference/model/ImmutableTriangleMesh.md +0 -38
  714. package/dist/docs/reference/model/InternalThreadCutterOptions.md +0 -246
  715. package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +0 -77
  716. package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +0 -47
  717. package/dist/docs/reference/model/KnuckleHingeSpec.md +0 -18
  718. package/dist/docs/reference/model/LinearPatternOptions.md +0 -39
  719. package/dist/docs/reference/model/LoftCorrespondence.md +0 -27
  720. package/dist/docs/reference/model/LoftOptions.md +0 -91
  721. package/dist/docs/reference/model/LoftPlacement.md +0 -73
  722. package/dist/docs/reference/model/MatchProfilesOptions.md +0 -35
  723. package/dist/docs/reference/model/ModelingLimits.md +0 -126
  724. package/dist/docs/reference/model/NumericArray.md +0 -14
  725. package/dist/docs/reference/model/Path2-type.md +0 -196
  726. package/dist/docs/reference/model/Path2Data.md +0 -50
  727. package/dist/docs/reference/model/Path2Input.md +0 -20
  728. package/dist/docs/reference/model/Path3-type.md +0 -196
  729. package/dist/docs/reference/model/Path3Data.md +0 -50
  730. package/dist/docs/reference/model/Path3Input.md +0 -20
  731. package/dist/docs/reference/model/PathLocation.md +0 -69
  732. package/dist/docs/reference/model/PathNormalGuide.md +0 -46
  733. package/dist/docs/reference/model/PathOptions.md +0 -38
  734. package/dist/docs/reference/model/PathPatternOptions.md +0 -48
  735. package/dist/docs/reference/model/PathResamplingOptions.md +0 -83
  736. package/dist/docs/reference/model/Pivot2Options.md +0 -28
  737. package/dist/docs/reference/model/Pivot3Options.md +0 -28
  738. package/dist/docs/reference/model/PolygonData.md +0 -44
  739. package/dist/docs/reference/model/PrimitiveAttachment.md +0 -41
  740. package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +0 -110
  741. package/dist/docs/reference/model/PrintableThreadFit.md +0 -15
  742. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +0 -51
  743. package/dist/docs/reference/model/ProfileComponent2.md +0 -46
  744. package/dist/docs/reference/model/ProfileContour2.md +0 -36
  745. package/dist/docs/reference/model/ProfileSpan2.md +0 -47
  746. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +0 -41
  747. package/dist/docs/reference/model/RadialPatternOptions.md +0 -59
  748. package/dist/docs/reference/model/RadialSizing.md +0 -15
  749. package/dist/docs/reference/model/RadialSizingOptions.md +0 -40
  750. package/dist/docs/reference/model/RectangleContourOptions.md +0 -72
  751. package/dist/docs/reference/model/RectangleCornerTreatment.md +0 -40
  752. package/dist/docs/reference/model/RectangleCornerTreatments.md +0 -20
  753. package/dist/docs/reference/model/RegionData.md +0 -19
  754. package/dist/docs/reference/model/RevolveOptions.md +0 -94
  755. package/dist/docs/reference/model/RoundedEdgeTreatment.md +0 -96
  756. package/dist/docs/reference/model/SmoothEdgeTreatment.md +0 -76
  757. package/dist/docs/reference/model/SphereOptions.md +0 -20
  758. package/dist/docs/reference/model/StrokeCap.md +0 -16
  759. package/dist/docs/reference/model/StrokeJoin.md +0 -16
  760. package/dist/docs/reference/model/StrokeOptions.md +0 -91
  761. package/dist/docs/reference/model/SweepOptions.md +0 -116
  762. package/dist/docs/reference/model/SweepOrientation.md +0 -116
  763. package/dist/docs/reference/model/ThreadEndStyle.md +0 -15
  764. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +0 -118
  765. package/dist/docs/reference/model/ThreadHandedness.md +0 -15
  766. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +0 -15
  767. package/dist/docs/reference/model/ThreadLeadInShape.md +0 -15
  768. package/dist/docs/reference/model/ThreadProfile.md +0 -87
  769. package/dist/docs/reference/model/ThreadRidgeOptions.md +0 -19
  770. package/dist/docs/reference/model/ThreadedNutBevel.md +0 -15
  771. package/dist/docs/reference/model/ThreadedNutOptions.md +0 -274
  772. package/dist/docs/reference/model/ThreadedNutPreflight.md +0 -99
  773. package/dist/docs/reference/model/ThreadedNutShape.md +0 -15
  774. package/dist/docs/reference/model/ThreadedRodOptions.md +0 -246
  775. package/dist/docs/reference/model/TorusOptions.md +0 -110
  776. package/dist/docs/reference/model/Transform2-type.md +0 -257
  777. package/dist/docs/reference/model/Transform2Data.md +0 -16
  778. package/dist/docs/reference/model/Transform2Input.md +0 -21
  779. package/dist/docs/reference/model/Transform3-type.md +0 -297
  780. package/dist/docs/reference/model/Transform3Data.md +0 -19
  781. package/dist/docs/reference/model/Transform3Input.md +0 -21
  782. package/dist/docs/reference/model/TriangleMesh.md +0 -42
  783. package/dist/docs/reference/model/TriangleMeshAnalysis.md +0 -123
  784. package/dist/docs/reference/model/TriangleMeshMeasurements.md +0 -79
  785. package/dist/docs/reference/model/TubeOptions.md +0 -143
  786. package/dist/docs/reference/model/Vector2-type.md +0 -271
  787. package/dist/docs/reference/model/Vector2Data.md +0 -15
  788. package/dist/docs/reference/model/Vector2Input.md +0 -21
  789. package/dist/docs/reference/model/Vector3-type.md +0 -283
  790. package/dist/docs/reference/model/Vector3Data.md +0 -15
  791. package/dist/docs/reference/model/Vector3Input.md +0 -21
  792. package/dist/docs/reference/model/VectorTextLayout.md +0 -40
  793. package/dist/docs/reference/model/VectorTextMetrics.md +0 -100
  794. package/dist/docs/reference/model/anchor.md +0 -47
  795. package/dist/docs/reference/model/bounds2.md +0 -37
  796. package/dist/docs/reference/model/bounds3.md +0 -37
  797. package/dist/docs/reference/model/castSegment.md +0 -40
  798. package/dist/docs/reference/model/categories/bounds.md +0 -38
  799. package/dist/docs/reference/model/categories/contracts.md +0 -18
  800. package/dist/docs/reference/model/categories/core-values-errors.md +0 -30
  801. package/dist/docs/reference/model/categories/inspection.md +0 -29
  802. package/dist/docs/reference/model/categories/paths.md +0 -41
  803. package/dist/docs/reference/model/categories/resolution.md +0 -20
  804. package/dist/docs/reference/model/components.md +0 -71
  805. package/dist/docs/reference/model/compose.md +0 -31
  806. package/dist/docs/reference/model/distance.md +0 -45
  807. package/dist/docs/reference/model/immutableMesh.md +0 -44
  808. package/dist/docs/reference/model/inspectSection.md +0 -38
  809. package/dist/docs/reference/model/inspectSolid.md +0 -38
  810. package/dist/docs/reference/model/isEmpty.md +0 -39
  811. package/dist/docs/reference/model/path2.md +0 -54
  812. package/dist/docs/reference/model/path3.md +0 -49
  813. package/dist/docs/reference/model/split.md +0 -54
  814. package/dist/docs/reference/model/splitByPlane.md +0 -66
  815. package/dist/docs/reference/model/transform2.md +0 -46
  816. package/dist/docs/reference/model/transform3.md +0 -48
  817. package/dist/docs/reference/model/vector2.md +0 -40
  818. package/dist/docs/reference/model/vector3.md +0 -47
  819. package/dist/docs/reference/text/Bounds2Data.md +0 -34
  820. package/dist/docs/reference/text/Vector2Data.md +0 -7
  821. package/dist/docs/reference/text/VectorTextArcBaseline.md +0 -53
  822. package/dist/docs/reference/text/VectorTextLayout.md +0 -34
  823. package/dist/docs/reference/text/VectorTextLayoutOptions.md +0 -111
  824. package/dist/docs/reference/text/VectorTextMetrics.md +0 -94
  825. package/dist/docs/reference/text/VectorTextOptions.md +0 -50
  826. package/dist/engine/export-3mf.js +0 -116
  827. package/dist/engine/model-dependencies.js +0 -46
  828. package/dist/engine/session-graph.js +0 -449
  829. package/dist/geometry/profiles/profiles.js +0 -71
  830. /package/dist/engine/{primitive-profile-types.js → operations/primitives/profile-types.js} +0 -0
  831. /package/dist/{engine → geometry/mesh}/mesh-view-cache.js +0 -0
  832. /package/dist/geometry/profiles/{matched.js → match-profiles.js} +0 -0
@@ -1,11 +1,11 @@
1
1
  # Primitives
2
2
 
3
- Create foundational solid geometry and configure its dimensions and tessellation.
3
+ Create basic solids with explicit dimensions and tessellation.
4
4
 
5
5
  All primitives use millimetres and one options object. Boxes, cylinders, and tubes are centered by default.
6
6
 
7
7
  - **Dimensions:** `box` accepts a scalar or XYZ size. `cylinder` accepts exactly one radius or diameter, uniform or a bottom/top tuple along +Z. Radial sizing selects polygon vertices or compensated faces.
8
- - **Treatments:** choose `{ kind: "round", radius }`, `{ kind: "chamfer", distance }`, `{ kind: "smooth", distance }`, or `{ kind: "profile", profile }`. Boxes support named edges; cylinders and straight convex extrusions support independent bottom/top treatments.
8
+ - **Treatments:** choose `{ kind: "round", radius }`, `{ kind: "chamfer", distance }`, `{ kind: "smooth", distance }`, or `{ kind: "profile", profile }`. Boxes support named edges; cylinders and straight extrusions support independent bottom/top treatments. Straight extrusion finishing admits concavity, holes, and disconnected components when every boundary survives without contact or collapse.
9
9
  - **Placement:** `attachment` maps a named or explicit local anchor onto a world anchor after construction.
10
10
 
11
11
  Use imported primitives inside generation:
@@ -15,7 +15,7 @@ import { box, cylinder, generate } from "@metamesh/modeling";
15
15
  export default generate(({ part }) => {
16
16
  const plate = box({ size: [30, 20, 6], treatment: { kind: "chamfer", distance: 0.5 } });
17
17
  const bore = cylinder({ radius: 3, height: 8, sizing: "face" });
18
- return [part("plate", plate.subtract([bore]))];
18
+ return [part("plate", plate.subtract(bore))];
19
19
  });
20
20
  ```
21
21
 
@@ -27,7 +27,7 @@ A zero round radius or zero chamfer/smooth setback leaves a feature untreated. S
27
27
  | --- | --- |
28
28
  | [box](../box.md) | Axis-aligned box with uniform or disjoint named edge/group treatments. |
29
29
  | [cylinder](../cylinder.md) | +Z cylinder or frustum. Face sizing compensates polygon faceting. |
30
- | [holeCutter](../holeCutter.md) | Declares a +Z hole or blind-pocket cutter with explicit end overrun in millimetres. Choose exactly one circular diameter or existing Section. A 45-degree entry chamfer supports one strictly convex contour without holes; plain profiles may have any topology. Circular entries retain nominal frustum radii; profile entries offset the supplied polygon edges. Circular head recesses are mutually exclusive with entryChamfer. Both overrun ends default to zero, so the nominal bottom remains at Z=0 and blind pocket floors are preserved. Existing Section samples are authoritative; limits and unspecified circular sampling belong to the evaluating host. Compiled packages require runtime major 9. |
30
+ | [holeCutter](../holeCutter.md) | Declares a +Z hole or blind-pocket cutter with explicit end overrun in millimetres. |
31
31
  | [sphere](../sphere.md) | Origin-centered sphere. |
32
32
  | [torus](../torus.md) | Torus around +Z. |
33
33
  | [tube](../tube.md) | Hollow +Z tube. |
@@ -37,17 +37,7 @@ A zero round radius or zero chamfer/smooth setback leaves a feature untreated. S
37
37
  | API | Summary |
38
38
  | --- | --- |
39
39
  | [Solid](../Solid.md) | Immutable deferred solid recipe. |
40
- | [BoxOptions](../BoxOptions.md) | Dimensions, placement, and uniform or independently selected finishing for an axis-aligned box. |
41
- | [ChamferedEdgeTreatment](../ChamferedEdgeTreatment.md) | A planar edge or corner chamfer with equal or independent surface setbacks. |
42
- | [CircularPrimitiveOptions](../CircularPrimitiveOptions.md) | Tessellation controls shared by circular primitives across Geometry entry points. |
43
40
  | [HoleCutterOverrun](../HoleCutterOverrun.md) | Explicit extra cutter length outside the nominal Z=0..height interval, in millimetres. |
44
- | [EndTreatments](../EndTreatments.md) | Independent inward finishing on primitive or straight convex extrusion ends. Zero amounts leave the end untreated, including when all ends are disabled. |
45
- | [RadialSizingOptions](../RadialSizingOptions.md) | Nominal radial sizing shared by circular and regular polygon construction. |
46
- | [RoundedEdgeTreatment](../RoundedEdgeTreatment.md) | A circular edge or corner roundover with explicit physical sampling. |
47
- | [TorusOptions](../TorusOptions.md) | Dimensions and independent ring/profile tessellation for a torus around the Z axis. |
48
- | [TubeOptions](../TubeOptions.md) | Dimensions, placement, and tessellation for a hollow Z-axis tube. |
49
- | [SmoothEdgeTreatment](../SmoothEdgeTreatment.md) | A cubic corner transition with zero curvature at its straight tangent joins. |
50
- | [ProfiledEdgeTreatment](../ProfiledEdgeTreatment.md) | A deliberately sampled, inward-only corner profile with exact polyline geometry. |
51
41
 
52
42
  ## Type aliases
53
43
 
@@ -55,17 +45,11 @@ A zero round radius or zero chamfer/smooth setback leaves a feature untreated. S
55
45
  | --- | --- |
56
46
  | [HoleCutterOptions](../HoleCutterOptions.md) | A deferred +Z hole or pocket cutter, with exactly one circular diameter or existing Section. Profile entry chamfers expand one strictly convex contour without holes by parallel-edge offsets; the supplied sampled boundary remains authoritative. Plain profile cutters accept any Section. Circular entry chamfers retain nominal circular/frustum radii under the selected radial sizing. |
57
47
  | [HoleCutterRecess](../HoleCutterRecess.md) | Circular screw seating dimensions in millimetres; allowances belong to the caller. |
58
- | [CylinderOptions](../CylinderOptions.md) | Dimensions, placement, independent end finishing, and tessellation for a Z-axis cylinder or frustum. |
59
- | [EdgeTreatment](../EdgeTreatment.md) | Uniform finishing vocabulary shared by applicable solid edges and profile corners. |
60
- | [RadialSizing](../RadialSizing.md) | Radial dimensions refer to polygon vertices or compensate faceting to meet polygon faces. |
61
- | [SphereOptions](../SphereOptions.md) | Exactly one radius or diameter, placement, and tessellation for an origin-centered sphere. |
62
- | [BoxEdge](../BoxEdge.md) | Box edges use +Z top, +Y front and +X right; vertical names list front/back first. |
63
- | [BoxEdgeSelection](../BoxEdgeSelection.md) | Named individual edges or top/bottom rims and all four vertical edges. |
64
- | [BoxEdgeTreatments](../BoxEdgeTreatments.md) | Independent treatments for disjoint named edge selections; overlapping selections fail. |
65
48
 
66
49
  ## Guides
67
50
 
68
- - [Choose a primitive](../../../guides/recipes.md#choose-a-primitive)
69
- - [Treated boxes, frustums, and mirrored arrays](../../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
51
+ - [Choose a primitive](../../../guides/profiles-and-extrusion.md#choose-a-primitive)
52
+ - [Treated boxes, frustums, and mirrored arrays](../../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
53
+ - [Finish a profile with a hole](../../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
70
54
 
71
- Package: `@metamesh/modeling@0.17.0`.
55
+ Package: `@metamesh/modeling@0.19.0`.
@@ -2,11 +2,11 @@
2
2
 
3
3
  Create immutable filled XY shapes, including prepared text and bounded painted SVG.
4
4
 
5
- `Section` is an immutable filled XY shape with holes and disconnected components. `RegionData` is its serialized polygon data. Construction and composition require no engine; native evaluation belongs to the host.
5
+ `Section` is an immutable filled XY shape with holes and disconnected components. `RegionData` is its serialized polygon data. You can construct and compose Sections without an engine; the host handles native evaluation.
6
6
 
7
7
  - **Construct:** use `polygon(points)`, `polygon({ outer, holes })`, `polygon({ contours, fillRule })`, or `polygon({ polygons: data })`. Explicit topology validates boundaries and winding. Compound contours default to `nonzero` fill; select `evenodd` when needed.
8
8
  - **Inspect:** call `section.toRegionData()` during synchronous host execution.
9
- - **Build solids:** extrusion, revolution, and sweeps preserve filled topology. Compatible primitive Sections retain loft landmarks; arbitrary Sections need explicit correspondence.
9
+ - **Build solids:** extrusion, revolution, and sweeps preserve filled topology. Compatible primitive Sections retain loft landmarks; arbitrary Sections use direct correspondence by default.
10
10
  - **Add text:** `textSection` consumes a prepared `VectorTextLayout` without shaping again.
11
11
 
12
12
  ## Functions
@@ -29,29 +29,19 @@ Create immutable filled XY shapes, including prepared text and bounded painted S
29
29
  | API | Summary |
30
30
  | --- | --- |
31
31
  | [Section](../Section.md) | Immutable deferred filled XY section recipe. |
32
- | [StrokeOptions](../StrokeOptions.md) | Physical stroke and topology controls shared by pure regions and native Sections. |
33
- | [RectangleContourOptions](../RectangleContourOptions.md) | Shared rectangle dimensions, origin and uniform or per-corner treatment. |
34
32
  | [RectangleOptions](../RectangleOptions.md) | Rectangle dimensions, placement and uniform or per-corner treatment. |
35
33
  | [SectionOffsetOptions](../SectionOffsetOptions.md) | Options controlling robust Clipper2 region offsets. |
36
34
  | [StarOptions](../StarOptions.md) | Alternating outer and inner vertices, centered on the XY origin. |
37
35
  | [SvgPathSectionOptions](../SvgPathSectionOptions.md) | Bounded filled SVG path sampling. Path scale converts user units to millimetres. |
38
36
  | [SvgSectionOptions](../SvgSectionOptions.md) | Bounded SVG document sampling. Center origin uses the final painted bounds. |
39
37
  | [TextSectionOptions](../TextSectionOptions.md) | Physical curve sampling applied to already prepared vector text. |
40
- | [VectorTextLayout](../VectorTextLayout.md) | Immutable vector layout with no browser, font parser, or kernel ownership. |
41
- | [VectorTextMetrics](../VectorTextMetrics.md) | Text measurements from the same immutable layout that supplies geometry and SVG outlines. |
42
38
 
43
39
  ## Type aliases
44
40
 
45
41
  | API | Summary |
46
42
  | --- | --- |
47
- | [StrokeCap](../StrokeCap.md) | End-cap treatment for an open stroked path. |
48
- | [StrokeJoin](../StrokeJoin.md) | Join treatment where adjacent stroked path segments meet. |
49
- | [CircleContourOptions](../CircleContourOptions.md) | Circular profile dimensions with exactly one radius or diameter and explicit sampling. |
50
43
  | [CircleOptions](../CircleOptions.md) | Circular dimensions with exactly one nominal radius or diameter. |
51
- | [EllipseContourOptions](../EllipseContourOptions.md) | Ellipse dimensions with exactly one XY radii or full-size tuple and explicit sampling. |
52
44
  | [EllipseOptions](../EllipseOptions.md) | Ellipse dimensions in local XY, with exactly one radii or full-size tuple. |
53
- | [RectangleCornerTreatment](../RectangleCornerTreatment.md) | A rectangle corner, including an explicitly untreated corner in a treatment tuple. |
54
- | [RectangleCornerTreatments](../RectangleCornerTreatments.md) | Corner treatments ordered top-right, top-left, bottom-left, bottom-right. |
55
45
  | [RegularPolygonOptions](../RegularPolygonOptions.md) | Regular polygon dimensions, radial convention and degree rotation. |
56
46
  | [SectionOffsetJoin](../SectionOffsetJoin.md) | Clipper2 join styles accepted by robust region offsets. |
57
47
  | [PolygonOptions](../PolygonOptions.md) | Explicit polygon topology or compound contours; all closing edges are implicit. |
@@ -59,8 +49,8 @@ Create immutable filled XY shapes, including prepared text and bounded painted S
59
49
 
60
50
  ## Guides
61
51
 
62
- - [Section, hole, offset, and extrusion](../../../guides/recipes.md#section-hole-offset-and-extrusion)
63
- - [SVG sections: fills and strokes are different inputs](../../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
64
- - [Text and font variability](../../../guides/concepts.md#text-and-font-variability)
52
+ - [Section, hole, offset, and extrusion](../../../guides/profiles-and-extrusion.md#section-hole-offset-and-extrusion)
53
+ - [SVG sections: fills and strokes are different inputs](../../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
54
+ - [Text and font variability](../../../guides/svg-and-text.md#text-and-font-variability)
65
55
 
66
- Package: `@metamesh/modeling@0.17.0`.
56
+ Package: `@metamesh/modeling@0.19.0`.
@@ -4,7 +4,7 @@ Construct compensated thread forms and inspect bounded preflight facts.
4
4
 
5
5
  Thread pitch is adjacent axial spacing; lead is `pitch × starts`. Prepare shared dimensions once. Native rods, internal cutters, and nuts share printable fit and end-treatment options.
6
6
 
7
- Constructors enforce safety automatically. Optional preflight provides resource estimates or early validation for individual controls. These forms do not certify a structural rating or metrology class.
7
+ Constructors enforce safety automatically. Use optional preflight to estimate resources or validate individual controls before construction. These forms do not certify a structural rating or metrology class.
8
8
 
9
9
  ## Functions
10
10
 
@@ -18,36 +18,9 @@ Constructors enforce safety automatically. Optional preflight provides resource
18
18
  | [threadedRod](../threadedRod.md) | Compensated external threaded rod. |
19
19
  | [threadRidge](../threadRidge.md) | Helical ridge mesh construction. |
20
20
 
21
- ## Interfaces
22
-
23
- | API | Summary |
24
- | --- | --- |
25
- | [HelicalThreadRidgeMeshOptions](../HelicalThreadRidgeMeshOptions.md) | Runtime-neutral options for the dedicated helical ridge mesher. |
26
- | [HelicalThreadSolidMeshPreflight](../HelicalThreadSolidMeshPreflight.md) | Selected sampling counts and conservative allocation estimates, before thread mesh construction. |
27
- | [InternalThreadCutterOptions](../InternalThreadCutterOptions.md) | Options for a compensated internal-thread subtraction tool along +Z. |
28
- | [PrintableThreadFitPolicy](../PrintableThreadFitPolicy.md) | Explicit radial and axial allowances for a mating printed thread pair. |
29
- | [ThreadedNutOptions](../ThreadedNutOptions.md) | Options for a compensated nut with an internal thread. |
30
- | [ThreadedNutPreflight](../ThreadedNutPreflight.md) | Resolved body and end-face dimensions plus conservative allocation estimates for the thread cutter. |
31
- | [ThreadedRodOptions](../ThreadedRodOptions.md) | Options for a compensated external threaded rod along +Z. |
32
- | [ThreadEndTreatmentOptions](../ThreadEndTreatmentOptions.md) | Axial end controls for a generated ridge. |
33
- | [ThreadProfile](../ThreadProfile.md) | A validated immutable periodic thread profile in `[axial, radial]` millimetres. |
34
-
35
- ## Type aliases
36
-
37
- | API | Summary |
38
- | --- | --- |
39
- | [PrintableThreadFit](../PrintableThreadFit.md) | Named baseline fit policies for calibrated FDM-style printed threads. |
40
- | [ThreadedNutBevel](../ThreadedNutBevel.md) | Nut-edge bevel selection. |
41
- | [ThreadedNutShape](../ThreadedNutShape.md) | Supported printable nut body shapes. |
42
- | [ThreadEndStyle](../ThreadEndStyle.md) | End shape of a generated helical ridge. |
43
- | [ThreadHandedness](../ThreadHandedness.md) | Direction in which a conventional helical thread advances around +Z. |
44
- | [ThreadLeadInEnvelope](../ThreadLeadInEnvelope.md) | Radial envelope toward which a blunt lead-in collapses. |
45
- | [ThreadLeadInShape](../ThreadLeadInShape.md) | BOSL2-compatible cross-section scaling curve for a blunt thread lead-in. |
46
- | [ThreadRidgeOptions](../ThreadRidgeOptions.md) | Parameters for a helical ridge before solid construction. |
47
-
48
21
  ## Guides
49
22
 
50
23
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
51
- - [Preflight guarantees and host settings](../../../guides/concepts.md#check-preflight-guarantees)
24
+ - [Preflight guarantees and host settings](../../../guides/resolution-and-inspection.md#check-preflight-guarantees)
52
25
 
53
- Package: `@metamesh/modeling@0.17.0`.
26
+ Package: `@metamesh/modeling@0.19.0`.
@@ -1,6 +1,6 @@
1
1
  # Transforms, vectors, and placement
2
2
 
3
- Calculate with immutable vectors, reuse transforms, and arrange geometry with explicit placement contracts.
3
+ Calculate with immutable vectors, reuse transforms, and position geometry.
4
4
 
5
5
  Use `vector2`/`vector3` for immutable arithmetic and `transform2`/`transform3` for reusable placements. Tuples are accepted as operands; `dot()`, `length()`, and `distance()` return numbers. Shape `transform()` methods accept matching transforms directly.
6
6
 
@@ -15,51 +15,21 @@ Use `vector2`/`vector3` for immutable arithmetic and `transform2`/`transform3` f
15
15
 
16
16
  | API | Summary |
17
17
  | --- | --- |
18
- | [transform2](../transform2.md) | Creates an immutable XY transform, identity by default. |
19
- | [transform3](../transform3.md) | Creates an immutable XYZ transform, identity by default. |
20
- | [vector2](../vector2.md) | Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates. |
21
- | [vector3](../vector3.md) | Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates. |
22
- | [anchor](../anchor.md) | Reads a copied, immutable named anchor from this exact active generation. |
23
18
  | [gridPattern](../gridPattern.md) | XY or XYZ copies, optionally centered or placed in an explicit frame. |
24
19
  | [linearPattern](../linearPattern.md) | Repeats one solid along a normalized direction. |
25
20
  | [pathPattern](../pathPattern.md) | Physical arc-length copies along a sampled path, with optional tangent orientation. |
26
21
  | [radialPattern](../radialPattern.md) | Repeats one solid about an axis. |
27
22
 
28
- ## Interfaces
29
-
30
- | API | Summary |
31
- | --- | --- |
32
- | [Transform2](../Transform2-type.md) | Immutable reusable XY placement. Methods apply in written order; angles are degrees. |
33
- | [Transform3](../Transform3-type.md) | Immutable reusable XYZ placement. Methods apply in written order; angles are degrees. |
34
- | [Pivot2Options](../Pivot2Options.md) | A fixed XY point in world coordinates; omitted pivots use the coordinate origin. |
35
- | [Pivot3Options](../Pivot3Options.md) | A fixed XYZ point in world coordinates; omitted pivots use the coordinate origin. |
36
- | [Vector2](../Vector2-type.md) | Immutable XY arithmetic; vector operations return new values and measurements return numbers. |
37
- | [Vector3](../Vector3-type.md) | Immutable XYZ arithmetic; vector operations return new values and measurements return numbers. |
38
- | [Anchor3](../Anchor3.md) | An attachment pose on a solid or assembly. |
39
- | [AttachOptions](../AttachOptions.md) | Options controlling how one anchor is attached to another. |
40
- | [PathPatternOptions](../PathPatternOptions.md) | Equal physical arc-length placements along an open or implicitly closed sampled path. |
41
- | [PrimitiveAttachment](../PrimitiveAttachment.md) | Anchor attachment shared by solid and filled-section factories. |
42
- | [PrimitiveAttachmentOptions](../PrimitiveAttachmentOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
43
-
44
23
  ## Type aliases
45
24
 
46
25
  | API | Summary |
47
26
  | --- | --- |
48
- | [Transform2Input](../Transform2Input.md) | An immutable XY transform or its canonical row-major matrix for interchange. |
49
- | [Transform3Input](../Transform3Input.md) | An immutable XYZ transform or its canonical row-major matrix for interchange. |
50
- | [Vector2Input](../Vector2Input.md) | An XY tuple or immutable fluent vector accepted by vector operations. |
51
- | [Vector3Input](../Vector3Input.md) | An XYZ tuple or immutable fluent vector accepted by vector operations. |
52
- | [GridPatternOptions](../GridPatternOptions.md) | XY or XYZ grid with X varying fastest. The first item starts at the local origin. Dimension 2 restricts counts and spacing to XY; any frame must preserve the XY plane. |
53
- | [LinearPatternOptions](../LinearPatternOptions.md) | Equal linear intervals determined by exactly two of count, spacing and total length. Dimension defaults to 3; Section patterns use 2 and accept XY vector directions. |
54
27
  | [PatternSource](../PatternSource.md) | One immutable shape, or a synchronous factory called once per copy in index order. |
55
- | [RadialPatternOptions](../RadialPatternOptions.md) | Degree rotations about a fixed world-space pivot; XY patterns use the implicit +Z axis. |
56
- | [Transform2Data](../Transform2Data.md) | A row-major affine 3x3 XY matrix applied to column vectors. Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`. |
57
- | [Transform3Data](../Transform3Data.md) | A row-major affine 4x4 matrix applied to column vectors. |
58
28
 
59
29
  ## Guides
60
30
 
61
- - [Named anchors and custom frames](../../../guides/recipes.md#named-anchors-and-custom-frames)
62
- - [Primitive booleans and repeated placement](../../../guides/recipes.md#primitive-booleans-and-repeated-placement)
63
- - [Fluent values and standalone algorithms](../../../guides/concepts.md#choose-fluent-values-or-standalone-algorithms)
31
+ - [Named anchors and custom frames](../../../guides/transforms-and-placement.md#named-anchors-and-custom-frames)
32
+ - [Primitive booleans and repeated placement](../../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
33
+ - [Fluent values and standalone algorithms](../../../guides/geometry-values.md#choose-fluent-values-or-standalone-algorithms)
64
34
 
65
- Package: `@metamesh/modeling@0.17.0`.
35
+ Package: `@metamesh/modeling@0.19.0`.
@@ -32,8 +32,14 @@ circle({ diameter: 12, sizing: "face" });
32
32
 
33
33
  ## Guides
34
34
 
35
- - [Section, hole, offset, and extrusion](../../guides/recipes.md#section-hole-offset-and-extrusion)
36
- - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
37
- - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
35
+ - [Section, hole, offset, and extrusion](../../guides/profiles-and-extrusion.md#section-hole-offset-and-extrusion)
36
+ - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
37
+ - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
38
38
 
39
- Package: `@metamesh/modeling@0.17.0`.
39
+ ## Supported imports
40
+
41
+ ```ts
42
+ import { circle } from "@metamesh/modeling";
43
+ ```
44
+
45
+ Package: `@metamesh/modeling@0.19.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  +Z cylinder or frustum. Face sizing compensates polygon faceting.
4
4
 
5
- **cylinder**(`options`: [`CylinderOptions`](CylinderOptions.md)): [`Solid`](Solid.md)
5
+ **cylinder**(`options`: [`CylinderOptions`](../geometry/CylinderOptions.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
@@ -30,7 +30,7 @@ cylinder({ height: 20, radius: [10, 0] });
30
30
 
31
31
  <a id="options"></a>
32
32
 
33
- **`options`** · [`CylinderOptions`](CylinderOptions.md) · Required
33
+ **`options`** · [`CylinderOptions`](../geometry/CylinderOptions.md) · Required
34
34
 
35
35
 
36
36
 
@@ -41,12 +41,19 @@ cylinder({ height: 20, radius: [10, 0] });
41
41
 
42
42
  ## Related APIs
43
43
 
44
- - [CylinderOptions](CylinderOptions.md)
44
+ - [CylinderOptions](../geometry/CylinderOptions.md)
45
45
  - [Solid](Solid.md)
46
46
 
47
47
  ## Guides
48
48
 
49
- - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
50
- - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
49
+ - [Choose a primitive](../../guides/profiles-and-extrusion.md#choose-a-primitive)
50
+ - [Treated boxes, frustums, and mirrored arrays](../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
51
+ - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
51
52
 
52
- Package: `@metamesh/modeling@0.17.0`.
53
+ ## Supported imports
54
+
55
+ ```ts
56
+ import { cylinder } from "@metamesh/modeling";
57
+ ```
58
+
59
+ Package: `@metamesh/modeling@0.19.0`.
@@ -32,8 +32,14 @@ ellipse({ size: [30, 20] });
32
32
 
33
33
  ## Guides
34
34
 
35
- - [Section, hole, offset, and extrusion](../../guides/recipes.md#section-hole-offset-and-extrusion)
36
- - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
37
- - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
35
+ - [Section, hole, offset, and extrusion](../../guides/profiles-and-extrusion.md#section-hole-offset-and-extrusion)
36
+ - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
37
+ - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
38
38
 
39
- Package: `@metamesh/modeling@0.17.0`.
39
+ ## Supported imports
40
+
41
+ ```ts
42
+ import { ellipse } from "@metamesh/modeling";
43
+ ```
44
+
45
+ Package: `@metamesh/modeling@0.19.0`.
@@ -1,8 +1,8 @@
1
1
  # extrude
2
2
 
3
- Extrudes explicit corresponding contours along +Z with degree twist and top scaling. Filled Sections use `section.extrude(options)`.
3
+ Extrudes a filled Section or explicit corresponding contours along +Z with degree twist and top scaling. Use `section.extrude(options)` in fluent sequences, or this function for generic profile inputs.
4
4
 
5
- **extrude**(`shape`: [`CorrespondingProfile`](CorrespondingProfile.md), `options`: [`ExtrudeOptions`](ExtrudeOptions.md)): [`Solid`](Solid.md)
5
+ **extrude**(`shape`: [`Section`](Section.md) \| [`CorrespondingProfile`](../geometry/CorrespondingProfile.md), `options`: [`ExtrudeOptions`](../geometry/ExtrudeOptions.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
@@ -20,43 +20,43 @@ extrude(profile!, { height: 8 });
20
20
 
21
21
  <a id="shape"></a>
22
22
 
23
- **`shape`** · [`CorrespondingProfile`](CorrespondingProfile.md) · Required
23
+ **`shape`** · [`Section`](Section.md) \| [`CorrespondingProfile`](../geometry/CorrespondingProfile.md) · Required
24
24
 
25
25
 
26
26
 
27
27
  <a id="options"></a>
28
28
 
29
- **`options`** · [`ExtrudeOptions`](ExtrudeOptions.md) · Required
29
+ **`options`** · [`ExtrudeOptions`](../geometry/ExtrudeOptions.md) · Required
30
30
 
31
- - [`height`](ExtrudeOptions.md#height) · `number` · Required
31
+ - [`height`](../geometry/ExtrudeOptions.md#height) · `number` · Required
32
32
 
33
33
  Positive extrusion height in millimetres.
34
34
 
35
- - [`center`](ExtrudeOptions.md#center) · `boolean` · Optional
35
+ - [`center`](../geometry/ExtrudeOptions.md#center) · `boolean` · Optional
36
36
 
37
37
  Center the extrusion on Z; otherwise its bottom is at zero. Defaults to false.
38
38
 
39
- - [`ends`](ExtrudeOptions.md#ends) · [`EndTreatments`](EndTreatments.md) · Optional
39
+ - [`ends`](../geometry/ExtrudeOptions.md#ends) · [`EndTreatments`](../geometry/EndTreatments.md) · Optional
40
40
 
41
- Independent inward end treatments on straight convex single-contour extrusions.
41
+ Independent inward treatments on every material rim of a straight, topology-preserving extrusion.
42
42
 
43
- - [`divisions`](ExtrudeOptions.md#divisions) · `number` · Optional
43
+ - [`divisions`](../geometry/ExtrudeOptions.md#divisions) · `number` · Optional
44
44
 
45
45
  Exact number of intermediate profiles, nonnegative; overrides physical sampling.
46
46
 
47
- - [`limits`](ExtrudeOptions.md#limits) · `Partial`\<[`ModelingLimits`](ModelingLimits.md)\> · Optional
47
+ - [`limits`](../geometry/ExtrudeOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
48
48
 
49
49
  Explicit output and sampling allocation ceilings.
50
50
 
51
- - [`resolution`](ExtrudeOptions.md#resolution) · [`GeometryResolution`](GeometryResolution.md) · Optional
51
+ - [`resolution`](../geometry/ExtrudeOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
52
52
 
53
53
  Operation-level physical policy over the nearest model scope.
54
54
 
55
- - [`scaleTop`](ExtrudeOptions.md#scaletop) · `number` \| [`Vector2Input`](Vector2Input.md) · Optional
55
+ - [`scaleTop`](../geometry/ExtrudeOptions.md#scaletop) · `number` \| [`Vector2Input`](../geometry/Vector2Input.md) · Optional
56
56
 
57
57
  Finite uniform or XY scale of the top profile; defaults to one.
58
58
 
59
- - [`twist`](ExtrudeOptions.md#twist) · `number` · Optional
59
+ - [`twist`](../geometry/ExtrudeOptions.md#twist) · `number` · Optional
60
60
 
61
61
  Finite rotation of the top profile about +Z, in degrees; defaults to zero.
62
62
 
@@ -69,15 +69,23 @@ extrude(profile!, { height: 8 });
69
69
 
70
70
  ## Related APIs
71
71
 
72
- - [CorrespondingProfile](CorrespondingProfile.md)
73
- - [ExtrudeOptions](ExtrudeOptions.md)
72
+ - [CorrespondingProfile](../geometry/CorrespondingProfile.md)
73
+ - [ExtrudeOptions](../geometry/ExtrudeOptions.md)
74
+ - [Section](Section.md)
74
75
  - [Solid](Solid.md)
75
76
 
76
77
  ## Guides
77
78
 
78
- - [Revolve a radial profile](../../guides/recipes.md#revolve-a-radial-profile)
79
- - [Rotation-minimizing path sweep](../../guides/recipes.md#rotation-minimizing-path-sweep)
80
- - [Matched-section loft](../../guides/recipes.md#matched-section-loft)
81
- - [Choose a modeling path](../../guides/concepts.md#choose-a-modeling-path)
79
+ - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
80
+ - [Revolve a radial profile](../../guides/profiles-and-extrusion.md#revolve-a-radial-profile)
81
+ - [Rotation-minimizing path sweep](../../guides/sweeps-and-lofts.md#rotation-minimizing-path-sweep)
82
+ - [Matched-section loft](../../guides/sweeps-and-lofts.md#matched-section-loft)
83
+ - [Choose a modeling path](../../guides/recipes.md#choose-a-technique)
82
84
 
83
- Package: `@metamesh/modeling@0.17.0`.
85
+ ## Supported imports
86
+
87
+ ```ts
88
+ import { extrude } from "@metamesh/modeling";
89
+ ```
90
+
91
+ Package: `@metamesh/modeling@0.19.0`.
@@ -1,8 +1,8 @@
1
1
  # generate
2
2
 
3
- Defines a typed model without executing it. Use `computed` only for work worth reusing.
3
+ Defines a typed model without executing it. Parameters are an object map of capturable data; runtime capture rejects arrays at the root, ordinary class instances, mutable buffers, and functions. Supply live capabilities through services. Use `memo` only for work worth reusing.
4
4
 
5
- **generate**\<`P`, `S` = `Record`\<`never`, `never`\>\>(`callback`: [`GenerateCallback`](GenerateCallback.md)\<`P`, `S`\>): [`ModelProgram`](ModelProgram.md)\<`P`, `S`\>
5
+ **generate**\<`P` *extends* `object`, `S` = `Record`\<`never`, `never`\>\>(`callback`: [`GenerateCallback`](GenerateCallback.md)\<`P`, `S`\>): [`ModelProgram`](ModelProgram.md)\<`P`, `S`\>
6
6
 
7
7
 
8
8
 
@@ -19,7 +19,7 @@ const model = generate<{ height: number }>(({ params, part, assert }) => {
19
19
 
20
20
  ### P
21
21
 
22
- `P`
22
+ `P` *extends* `object`
23
23
 
24
24
  ### S
25
25
 
@@ -47,4 +47,10 @@ const model = generate<{ height: number }>(({ params, part, assert }) => {
47
47
 
48
48
  - [Complete standalone model example](../../guides/standalone-model.md#minimal-model-entry)
49
49
 
50
- Package: `@metamesh/modeling@0.17.0`.
50
+ ## Supported imports
51
+
52
+ ```ts
53
+ import { generate } from "@metamesh/modeling";
54
+ ```
55
+
56
+ Package: `@metamesh/modeling@0.19.0`.
@@ -6,7 +6,7 @@ XY or XYZ copies, optionally centered or placed in an explicit frame.
6
6
 
7
7
 
8
8
 
9
- **gridPattern**(`source`: [`PatternSource`](PatternSource.md), `options`: [`GridPatternOptions`](GridPatternOptions.md)): readonly [`Solid`](Solid.md)[]
9
+ **gridPattern**(`source`: [`PatternSource`](PatternSource.md), `options`: [`GridPatternOptions`](../geometry/GridPatternOptions.md)): readonly [`Solid`](Solid.md)[]
10
10
 
11
11
 
12
12
 
@@ -28,7 +28,7 @@ XY or XYZ copies, optionally centered or placed in an explicit frame.
28
28
 
29
29
  <a id="options"></a>
30
30
 
31
- **`options`** · [`GridPatternOptions`](GridPatternOptions.md) · Required
31
+ **`options`** · [`GridPatternOptions`](../geometry/GridPatternOptions.md) · Required
32
32
 
33
33
 
34
34
 
@@ -40,7 +40,7 @@ readonly [`Solid`](Solid.md)[]
40
40
 
41
41
 
42
42
 
43
- **gridPattern**(`source`: [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\>, `options`: [`GridPatternOptions`](GridPatternOptions.md)\<`2`\>): readonly [`Section`](Section.md)[]
43
+ **gridPattern**(`source`: [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\>, `options`: [`GridPatternOptions`](../geometry/GridPatternOptions.md)\<`2`\>): readonly [`Section`](Section.md)[]
44
44
 
45
45
 
46
46
 
@@ -56,7 +56,7 @@ Repeats a filled Section on an XY grid; any explicit frame must preserve the XY
56
56
 
57
57
  <a id="options-1"></a>
58
58
 
59
- **`options`** · [`GridPatternOptions`](GridPatternOptions.md)\<`2`\> · Required
59
+ **`options`** · [`GridPatternOptions`](../geometry/GridPatternOptions.md)\<`2`\> · Required
60
60
 
61
61
 
62
62
 
@@ -67,15 +67,21 @@ readonly [`Section`](Section.md)[]
67
67
 
68
68
  ## Related APIs
69
69
 
70
- - [GridPatternOptions](GridPatternOptions.md)
70
+ - [GridPatternOptions](../geometry/GridPatternOptions.md)
71
71
  - [PatternSource](PatternSource.md)
72
72
  - [Section](Section.md)
73
73
  - [Solid](Solid.md)
74
74
 
75
75
  ## Guides
76
76
 
77
- - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
78
- - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
79
- - [Fluent values and standalone algorithms](../../guides/concepts.md#choose-fluent-values-or-standalone-algorithms)
77
+ - [Named anchors and custom frames](../../guides/transforms-and-placement.md#named-anchors-and-custom-frames)
78
+ - [Primitive booleans and repeated placement](../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
79
+ - [Fluent values and standalone algorithms](../../guides/geometry-values.md#choose-fluent-values-or-standalone-algorithms)
80
80
 
81
- Package: `@metamesh/modeling@0.17.0`.
81
+ ## Supported imports
82
+
83
+ ```ts
84
+ import { gridPattern } from "@metamesh/modeling";
85
+ ```
86
+
87
+ Package: `@metamesh/modeling@0.19.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Closed rectilinear top above a flat base, with uniform or explicit XY coordinates.
4
4
 
5
- **heightfield**(`options`: [`HeightfieldOptions`](HeightfieldOptions.md)): [`Solid`](Solid.md)
5
+ **heightfield**(`options`: [`HeightfieldOptions`](../geometry/HeightfieldOptions.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
@@ -26,7 +26,7 @@ The retained callback must capture independent immutable inputs, not live sessio
26
26
 
27
27
  <a id="options"></a>
28
28
 
29
- **`options`** · [`HeightfieldOptions`](HeightfieldOptions.md) · Required
29
+ **`options`** · [`HeightfieldOptions`](../geometry/HeightfieldOptions.md) · Required
30
30
 
31
31
 
32
32
 
@@ -37,7 +37,13 @@ The retained callback must capture independent immutable inputs, not live sessio
37
37
 
38
38
  ## Related APIs
39
39
 
40
- - [HeightfieldOptions](HeightfieldOptions.md)
40
+ - [HeightfieldOptions](../geometry/HeightfieldOptions.md)
41
41
  - [Solid](Solid.md)
42
42
 
43
- Package: `@metamesh/modeling@0.17.0`.
43
+ ## Supported imports
44
+
45
+ ```ts
46
+ import { heightfield } from "@metamesh/modeling";
47
+ ```
48
+
49
+ Package: `@metamesh/modeling@0.19.0`.
@@ -1,6 +1,6 @@
1
1
  # holeCutter
2
2
 
3
- Declares a +Z hole or blind-pocket cutter with explicit end overrun in millimetres. Choose exactly one circular diameter or existing Section. A 45-degree entry chamfer supports one strictly convex contour without holes; plain profiles may have any topology. Circular entries retain nominal frustum radii; profile entries offset the supplied polygon edges. Circular head recesses are mutually exclusive with entryChamfer. Both overrun ends default to zero, so the nominal bottom remains at Z=0 and blind pocket floors are preserved. Existing Section samples are authoritative; limits and unspecified circular sampling belong to the evaluating host. Compiled packages require runtime major 9.
3
+ Declares a +Z hole or blind-pocket cutter with explicit end overrun in millimetres.
4
4
 
5
5
  **holeCutter**(`options`: [`HoleCutterOptions`](HoleCutterOptions.md)): [`Solid`](Solid.md)
6
6
 
@@ -31,6 +31,16 @@ holeCutter({
31
31
 
32
32
  [`Solid`](Solid.md)
33
33
 
34
+ ## Remarks
35
+
36
+ Choose exactly one circular diameter or existing Section. A 45-degree entry chamfer
37
+ supports one strictly convex contour without holes; plain profiles may have any topology.
38
+ Circular entries retain nominal frustum radii; profile entries offset the supplied polygon edges.
39
+ Circular head recesses are mutually exclusive with entryChamfer. Both overrun ends default
40
+ to zero, so the nominal bottom remains at Z=0 and blind pocket floors are preserved.
41
+ Existing Section samples are authoritative; limits and unspecified circular sampling belong
42
+ to the evaluating host.
43
+
34
44
 
35
45
  ## Related APIs
36
46
 
@@ -39,7 +49,14 @@ holeCutter({
39
49
 
40
50
  ## Guides
41
51
 
42
- - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
43
- - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
52
+ - [Choose a primitive](../../guides/profiles-and-extrusion.md#choose-a-primitive)
53
+ - [Treated boxes, frustums, and mirrored arrays](../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
54
+ - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
55
+
56
+ ## Supported imports
57
+
58
+ ```ts
59
+ import { holeCutter } from "@metamesh/modeling";
60
+ ```
44
61
 
45
- Package: `@metamesh/modeling@0.17.0`.
62
+ Package: `@metamesh/modeling@0.19.0`.
@@ -69,6 +69,13 @@ Convex filled XY hull of finite points or filled section recipes.
69
69
  ## Guides
70
70
 
71
71
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
72
- - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
72
+ - [Primitive booleans and repeated placement](../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
73
+ - [Join an independently modeled feature](../../guides/solid-joins.md#join-an-independently-modeled-feature)
73
74
 
74
- Package: `@metamesh/modeling@0.17.0`.
75
+ ## Supported imports
76
+
77
+ ```ts
78
+ import { hull } from "@metamesh/modeling";
79
+ ```
80
+
81
+ Package: `@metamesh/modeling@0.19.0`.