@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
@@ -4,7 +4,8 @@ Alternating outer and inner vertices, centered on the XY origin.
4
4
 
5
5
  ## Extends
6
6
 
7
- - [`PrimitiveAttachment`](PrimitiveAttachment.md)
7
+ - [`StarContourOptions`](../geometry/StarContourOptions.md)
8
+ - [`PrimitiveAttachment`](../geometry/PrimitiveAttachment.md)
8
9
 
9
10
  ## Properties
10
11
 
@@ -12,7 +13,7 @@ Alternating outer and inner vertices, centered on the XY origin.
12
13
 
13
14
 
14
15
 
15
- `readonly` `optional` **attachment?**: [`PrimitiveAttachmentOptions`](PrimitiveAttachmentOptions.md)
16
+ `readonly` `optional` **attachment?**: [`PrimitiveAttachmentOptions`](../geometry/PrimitiveAttachmentOptions.md)
16
17
 
17
18
 
18
19
 
@@ -20,19 +21,7 @@ Applied after local construction; Section attachment must preserve the XY plane.
20
21
 
21
22
  #### Inherited from
22
23
 
23
- [`PrimitiveAttachment`](PrimitiveAttachment.md).[`attachment`](PrimitiveAttachment.md#attachment)
24
-
25
- ***
26
-
27
- ### limits?
28
-
29
-
30
-
31
- `readonly` `optional` **limits?**: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>
32
-
33
-
34
-
35
- Explicit sampling ceilings, bounded by the host policy.
24
+ [`PrimitiveAttachment`](../geometry/PrimitiveAttachment.md).[`attachment`](../geometry/PrimitiveAttachment.md#attachment)
36
25
 
37
26
  ***
38
27
 
@@ -46,6 +35,10 @@ Explicit sampling ceilings, bounded by the host policy.
46
35
 
47
36
  Positive outer vertex radius in millimetres.
48
37
 
38
+ #### Inherited from
39
+
40
+ [`StarContourOptions`](../geometry/StarContourOptions.md).[`outerRadius`](../geometry/StarContourOptions.md#outerradius)
41
+
49
42
  ***
50
43
 
51
44
  ### innerRadius
@@ -56,7 +49,11 @@ Positive outer vertex radius in millimetres.
56
49
 
57
50
 
58
51
 
59
- Positive inner vertex radius, smaller than the outer radius.
52
+ Positive inner vertex radius in millimetres, smaller than the outer radius.
53
+
54
+ #### Inherited from
55
+
56
+ [`StarContourOptions`](../geometry/StarContourOptions.md).[`innerRadius`](../geometry/StarContourOptions.md#innerradius)
60
57
 
61
58
  ***
62
59
 
@@ -68,7 +65,11 @@ Positive inner vertex radius, smaller than the outer radius.
68
65
 
69
66
 
70
67
 
71
- Integer outer point count from three through 50000.
68
+ Integer outer point count, at least three; output contains twice as many vertices.
69
+
70
+ #### Inherited from
71
+
72
+ [`StarContourOptions`](../geometry/StarContourOptions.md).[`points`](../geometry/StarContourOptions.md#points)
72
73
 
73
74
  ***
74
75
 
@@ -80,19 +81,46 @@ Integer outer point count from three through 50000.
80
81
 
81
82
 
82
83
 
83
- Initial counterclockwise rotation in degrees; defaults to zero.
84
+ Counterclockwise rotation in degrees; defaults to zero with an outer vertex on +X.
85
+
86
+ #### Inherited from
87
+
88
+ [`StarContourOptions`](../geometry/StarContourOptions.md).[`rotation`](../geometry/StarContourOptions.md#rotation)
89
+
90
+ ***
91
+
92
+ ### limits?
93
+
94
+
95
+
96
+ `readonly` `optional` **limits?**: `Partial`\<[`GeometrySamplingLimits`](../geometry/GeometrySamplingLimits.md)\>
97
+
98
+
99
+
100
+ Explicit sampling ceilings, bounded by the host policy during modeling.
101
+
102
+ #### Inherited from
103
+
104
+ [`StarContourOptions`](../geometry/StarContourOptions.md).[`limits`](../geometry/StarContourOptions.md#limits)
84
105
 
85
106
 
86
107
  ## Related APIs
87
108
 
88
- - [GeometrySamplingLimits](GeometrySamplingLimits.md)
89
- - [PrimitiveAttachment](PrimitiveAttachment.md)
90
- - [PrimitiveAttachmentOptions](PrimitiveAttachmentOptions.md)
109
+ - [GeometrySamplingLimits](../geometry/GeometrySamplingLimits.md)
110
+ - [PrimitiveAttachment](../geometry/PrimitiveAttachment.md)
111
+ - [PrimitiveAttachmentOptions](../geometry/PrimitiveAttachmentOptions.md)
112
+ - [StarContourOptions](../geometry/StarContourOptions.md)
91
113
 
92
114
  ## Guides
93
115
 
94
- - [Section, hole, offset, and extrusion](../../guides/recipes.md#section-hole-offset-and-extrusion)
95
- - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
96
- - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
116
+ - [Section, hole, offset, and extrusion](../../guides/profiles-and-extrusion.md#section-hole-offset-and-extrusion)
117
+ - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
118
+ - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
119
+
120
+ ## Supported imports
121
+
122
+ ```ts
123
+ import type { StarOptions } from "@metamesh/modeling";
124
+ ```
97
125
 
98
- Package: `@metamesh/modeling@0.17.0`.
126
+ Package: `@metamesh/modeling@0.19.0`.
@@ -9,8 +9,14 @@ Placement of painted SVG geometry after SVG Y-axis inversion.
9
9
 
10
10
  ## Guides
11
11
 
12
- - [Section, hole, offset, and extrusion](../../guides/recipes.md#section-hole-offset-and-extrusion)
13
- - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
14
- - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
12
+ - [Section, hole, offset, and extrusion](../../guides/profiles-and-extrusion.md#section-hole-offset-and-extrusion)
13
+ - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
14
+ - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
15
15
 
16
- Package: `@metamesh/modeling@0.17.0`.
16
+ ## Supported imports
17
+
18
+ ```ts
19
+ import type { SvgOrigin } from "@metamesh/modeling";
20
+ ```
21
+
22
+ Package: `@metamesh/modeling@0.19.0`.
@@ -8,7 +8,7 @@ Bounded filled SVG path sampling. Path scale converts user units to millimetres.
8
8
 
9
9
 
10
10
 
11
- `readonly` `optional` **limits?**: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>
11
+ `readonly` `optional` **limits?**: `Partial`\<[`GeometrySamplingLimits`](../geometry/GeometrySamplingLimits.md)\>
12
12
 
13
13
 
14
14
 
@@ -32,7 +32,7 @@ Nonzero or even-odd filled-contour rule; defaults to nonzero.
32
32
 
33
33
 
34
34
 
35
- `readonly` `optional` **resolution?**: [`GeometryResolution`](GeometryResolution.md)
35
+ `readonly` `optional` **resolution?**: [`GeometryResolution`](../geometry/GeometryResolution.md)
36
36
 
37
37
 
38
38
 
@@ -65,14 +65,20 @@ Positive uniform factor converting SVG user units to millimetres; defaults to on
65
65
 
66
66
  ## Related APIs
67
67
 
68
- - [GeometryResolution](GeometryResolution.md)
69
- - [GeometrySamplingLimits](GeometrySamplingLimits.md)
68
+ - [GeometryResolution](../geometry/GeometryResolution.md)
69
+ - [GeometrySamplingLimits](../geometry/GeometrySamplingLimits.md)
70
70
  - [SvgOrigin](SvgOrigin.md)
71
71
 
72
72
  ## Guides
73
73
 
74
- - [Section, hole, offset, and extrusion](../../guides/recipes.md#section-hole-offset-and-extrusion)
75
- - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
76
- - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
74
+ - [Section, hole, offset, and extrusion](../../guides/profiles-and-extrusion.md#section-hole-offset-and-extrusion)
75
+ - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
76
+ - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
77
77
 
78
- Package: `@metamesh/modeling@0.17.0`.
78
+ ## Supported imports
79
+
80
+ ```ts
81
+ import type { SvgPathSectionOptions } from "@metamesh/modeling";
82
+ ```
83
+
84
+ Package: `@metamesh/modeling@0.19.0`.
@@ -8,7 +8,7 @@ Bounded SVG document sampling. Center origin uses the final painted bounds.
8
8
 
9
9
 
10
10
 
11
- `readonly` `optional` **fit?**: [`Bounds2Input`](Bounds2Input.md)
11
+ `readonly` `optional` **fit?**: [`Bounds2Input`](../geometry/Bounds2Input.md)
12
12
 
13
13
 
14
14
 
@@ -20,7 +20,7 @@ Fit painted bounds uniformly inside positioned XY millimetre bounds; adaptive re
20
20
 
21
21
 
22
22
 
23
- `readonly` `optional` **limits?**: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>
23
+ `readonly` `optional` **limits?**: `Partial`\<[`GeometrySamplingLimits`](../geometry/GeometrySamplingLimits.md)\>
24
24
 
25
25
 
26
26
 
@@ -44,7 +44,7 @@ Exact circular tessellation count overriding physical sampling.
44
44
 
45
45
 
46
46
 
47
- `readonly` `optional` **resolution?**: [`GeometryResolution`](GeometryResolution.md)
47
+ `readonly` `optional` **resolution?**: [`GeometryResolution`](../geometry/GeometryResolution.md)
48
48
 
49
49
 
50
50
 
@@ -65,15 +65,21 @@ Place the painted bounds around the origin or preserve document coordinates.
65
65
 
66
66
  ## Related APIs
67
67
 
68
- - [Bounds2Input](Bounds2Input.md)
69
- - [GeometryResolution](GeometryResolution.md)
70
- - [GeometrySamplingLimits](GeometrySamplingLimits.md)
68
+ - [Bounds2Input](../geometry/Bounds2Input.md)
69
+ - [GeometryResolution](../geometry/GeometryResolution.md)
70
+ - [GeometrySamplingLimits](../geometry/GeometrySamplingLimits.md)
71
71
  - [SvgOrigin](SvgOrigin.md)
72
72
 
73
73
  ## Guides
74
74
 
75
- - [Section, hole, offset, and extrusion](../../guides/recipes.md#section-hole-offset-and-extrusion)
76
- - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
77
- - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
75
+ - [Section, hole, offset, and extrusion](../../guides/profiles-and-extrusion.md#section-hole-offset-and-extrusion)
76
+ - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
77
+ - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
78
78
 
79
- Package: `@metamesh/modeling@0.17.0`.
79
+ ## Supported imports
80
+
81
+ ```ts
82
+ import type { SvgSectionOptions } from "@metamesh/modeling";
83
+ ```
84
+
85
+ Package: `@metamesh/modeling@0.19.0`.
@@ -8,7 +8,7 @@ Physical curve sampling applied to already prepared vector text.
8
8
 
9
9
 
10
10
 
11
- `readonly` `optional` **limits?**: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>
11
+ `readonly` `optional` **limits?**: `Partial`\<[`GeometrySamplingLimits`](../geometry/GeometrySamplingLimits.md)\>
12
12
 
13
13
 
14
14
 
@@ -20,7 +20,7 @@ Local allocation ceilings may only lower the configured engine policy.
20
20
 
21
21
 
22
22
 
23
- `readonly` `optional` **resolution?**: [`GeometryResolution`](GeometryResolution.md)
23
+ `readonly` `optional` **resolution?**: [`GeometryResolution`](../geometry/GeometryResolution.md)
24
24
 
25
25
 
26
26
 
@@ -29,13 +29,19 @@ Local physical sampling policy; exact interval counts take precedence.
29
29
 
30
30
  ## Related APIs
31
31
 
32
- - [GeometryResolution](GeometryResolution.md)
33
- - [GeometrySamplingLimits](GeometrySamplingLimits.md)
32
+ - [GeometryResolution](../geometry/GeometryResolution.md)
33
+ - [GeometrySamplingLimits](../geometry/GeometrySamplingLimits.md)
34
34
 
35
35
  ## Guides
36
36
 
37
- - [Section, hole, offset, and extrusion](../../guides/recipes.md#section-hole-offset-and-extrusion)
38
- - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
39
- - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
37
+ - [Section, hole, offset, and extrusion](../../guides/profiles-and-extrusion.md#section-hole-offset-and-extrusion)
38
+ - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
39
+ - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
40
40
 
41
- Package: `@metamesh/modeling@0.17.0`.
41
+ ## Supported imports
42
+
43
+ ```ts
44
+ import type { TextSectionOptions } from "@metamesh/modeling";
45
+ ```
46
+
47
+ Package: `@metamesh/modeling@0.19.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Axis-aligned box with uniform or disjoint named edge/group treatments.
4
4
 
5
- **box**(`options`: [`BoxOptions`](BoxOptions.md)): [`Solid`](Solid.md)
5
+ **box**(`options`: [`BoxOptions`](../geometry/BoxOptions.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
@@ -20,25 +20,25 @@ box({ size: [30, 20, 8], treatment: { kind: "round", radius: 2 } });
20
20
 
21
21
  <a id="options"></a>
22
22
 
23
- **`options`** · [`BoxOptions`](BoxOptions.md) · Required
23
+ **`options`** · [`BoxOptions`](../geometry/BoxOptions.md) · Required
24
24
 
25
- - [`size`](BoxOptions.md#size) · `number` \| [`Vector3Data`](Vector3Data.md) · Required
25
+ - [`size`](../geometry/BoxOptions.md#size) · `number` \| [`Vector3Input`](../geometry/Vector3Input.md) · Required
26
26
 
27
27
  Positive uniform size or explicit `[X, Y, Z]` extents in millimetres.
28
28
 
29
- - [`limits`](BoxOptions.md#limits) · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
29
+ - [`limits`](../geometry/BoxOptions.md#limits) · `Partial`\<[`GeometrySamplingLimits`](../geometry/GeometrySamplingLimits.md)\> · Optional
30
30
 
31
31
  Explicit sampling ceilings for edge treatments, bounded by the host policy.
32
32
 
33
- - [`center`](BoxOptions.md#center) · `boolean` · Optional · Default: `true`
33
+ - [`center`](../geometry/BoxOptions.md#center) · `boolean` · Optional · Default: `true`
34
34
 
35
35
  Centers the box on the XYZ origin when `true`; otherwise its minimum corner is at the origin.
36
36
 
37
- - [`treatment`](BoxOptions.md#treatment) · [`EdgeTreatment`](EdgeTreatment.md) \| `Readonly`\<`Partial`\<`Record`\<[`BoxEdgeSelection`](BoxEdgeSelection.md), [`EdgeTreatment`](EdgeTreatment.md)\>\>\> · Optional
37
+ - [`treatment`](../geometry/BoxOptions.md#treatment) · [`EdgeTreatment`](../geometry/EdgeTreatment.md) \| `Readonly`\<`Partial`\<`Record`\<[`BoxEdgeSelection`](../geometry/BoxEdgeSelection.md), [`EdgeTreatment`](../geometry/EdgeTreatment.md)\>\>\> · Optional
38
38
 
39
39
  Uniform treatment or independent disjoint nominal edge/group treatments.
40
40
 
41
- - [`attachment`](BoxOptions.md#attachment) · [`PrimitiveAttachmentOptions`](PrimitiveAttachmentOptions.md) · Optional
41
+ - [`attachment`](../geometry/BoxOptions.md#attachment) · [`PrimitiveAttachmentOptions`](../geometry/PrimitiveAttachmentOptions.md) · Optional
42
42
 
43
43
  Applied after local construction; Section attachment must preserve the XY plane.
44
44
 
@@ -51,12 +51,19 @@ box({ size: [30, 20, 8], treatment: { kind: "round", radius: 2 } });
51
51
 
52
52
  ## Related APIs
53
53
 
54
- - [BoxOptions](BoxOptions.md)
54
+ - [BoxOptions](../geometry/BoxOptions.md)
55
55
  - [Solid](Solid.md)
56
56
 
57
57
  ## Guides
58
58
 
59
- - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
60
- - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
59
+ - [Choose a primitive](../../guides/profiles-and-extrusion.md#choose-a-primitive)
60
+ - [Treated boxes, frustums, and mirrored arrays](../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
61
+ - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
61
62
 
62
- Package: `@metamesh/modeling@0.17.0`.
63
+ ## Supported imports
64
+
65
+ ```ts
66
+ import { box } from "@metamesh/modeling";
67
+ ```
68
+
69
+ Package: `@metamesh/modeling@0.19.0`.
@@ -2,12 +2,13 @@
2
2
 
3
3
  Combine, intersect and subtract same-dimensional shapes; construct solid envelopes and sums.
4
4
 
5
- Use `union` and `intersect` with arrays of Sections or Solids, or `shape.subtract(cutters)` to cut one base. All operands must have the same dimension. Section operations preserve holes and disconnected components.
5
+ Use `shape.union(operands)`, `shape.subtract(operands)`, and `shape.intersect(operands)` when continuing work on one body. Each method accepts one same-dimensional shape or a readonly array; an empty array preserves the receiver. Collection `union(shapes)` and `intersect(shapes)` combine peers and require at least one shape. Section operations preserve holes and disconnected components.
6
6
 
7
- - `compose` combines solid components without a Boolean union.
8
7
  - `hull` accepts compatible Solid or Section recipes, or finite points. `minkowskiSum` constructs solid sums.
9
- - `split` returns intersection followed by subtraction, reusing the cutter setup.
10
- - Plane operations use a nonzero normal and a signed millimetre offset along its normalized direction. Empty results remain queryable handles.
8
+ - `solid.split(cutter)` returns intersection followed by subtraction, reusing the cutter setup.
9
+ - `solid.splitByPlane(plane)` returns the positive-normal side followed by the negative side. The plane uses a nonzero normal and a signed millimetre offset along its normalized direction. Empty results can still be queried.
10
+
11
+ Use `base.join(feature, { source, transition: { width, height } })` to add a smooth or straight connection between independently positioned solids. `source` names a feature datum or supplies an explicit anchor. Only the local feature collar must be straight; a regular actual support patch may be angled or curved. The join preserves both operands and does not move or extend the feature. The default `transition.kind` is `"smooth"`; `"straight"` uses a linear profile along each sampled support facet. It does not promise a constant angle on curved support. Width/height describe projected offset and axial reach, not a circular radius.
11
12
 
12
13
  Keep Boolean overtravel separate from physical fit clearance.
13
14
 
@@ -15,18 +16,18 @@ Keep Boolean overtravel separate from physical fit clearance.
15
16
 
16
17
  | API | Summary |
17
18
  | --- | --- |
18
- | [compose](../compose.md) | Combines disjoint components without resolving overlap. |
19
19
  | [hull](../hull.md) | Convex hull of points or solids. |
20
- | [intersect](../intersect.md) | Robust intersection. |
20
+ | [intersect](../intersect.md) | Robust intersection of one or more shapes; empty input rejects during declaration. |
21
+ | [join](../join.md) | Fuses two positioned solids with a dimensioned transition at the feature's source datum. |
21
22
  | [minkowskiSum](../minkowskiSum.md) | Three-dimensional Minkowski sum. |
22
- | [union](../union.md) | Robust union. |
23
- | [split](../split.md) | Splits a solid into [inside the cutter, outside the cutter]. |
24
- | [splitByPlane](../splitByPlane.md) | Splits a solid into [positive-normal side, negative side] at a world-space plane. |
23
+ | [union](../union.md) | Robust union of one or more shapes; empty input rejects during declaration. |
25
24
 
26
25
  ## Interfaces
27
26
 
28
27
  | API | Summary |
29
28
  | --- | --- |
29
+ | [JoinOptions](../JoinOptions.md) | Options for joining two positioned solids through a validated local straight feature collar. |
30
+ | [JoinTransition](../JoinTransition.md) | Connection profile and setbacks, independent of feature construction. |
30
31
  | [PlaneOptions](../PlaneOptions.md) | A world-space cutting plane, retaining the half-space in the normal's direction. |
31
32
 
32
33
  ## Type aliases
@@ -39,6 +40,7 @@ Keep Boolean overtravel separate from physical fit clearance.
39
40
  ## Guides
40
41
 
41
42
  - [Choose the Boolean by the material you want](../../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
42
- - [Primitive booleans and repeated placement](../../../guides/recipes.md#primitive-booleans-and-repeated-placement)
43
+ - [Primitive booleans and repeated placement](../../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
44
+ - [Join an independently modeled feature](../../../guides/solid-joins.md#join-an-independently-modeled-feature)
43
45
 
44
- Package: `@metamesh/modeling@0.17.0`.
46
+ Package: `@metamesh/modeling@0.19.0`.
@@ -19,10 +19,4 @@ Implicit sampling requires finite bounds, positive grid spacing, and fixed algor
19
19
  | --- | --- |
20
20
  | [ImplicitOptions](../ImplicitOptions.md) | Positive-inside sampling, bounded to 4M native BCC grid slots and 8M field calls. |
21
21
 
22
- ## Type aliases
23
-
24
- | API | Summary |
25
- | --- | --- |
26
- | [HeightfieldOptions](../HeightfieldOptions.md) | A closed rectilinear heightfield above a flat base, with uniform or explicit XY samples in millimetres. |
27
-
28
- Package: `@metamesh/modeling@0.17.0`.
22
+ Package: `@metamesh/modeling@0.19.0`.
@@ -16,19 +16,6 @@ Call `matchProfiles` once over the complete family to produce `CorrespondingProf
16
16
 
17
17
  | API | Summary |
18
18
  | --- | --- |
19
- | [CorrespondingProfile](../CorrespondingProfile.md) | Shared logical contour sampling suitable for a loft or hollow sweep. |
20
- | [CorrespondingComponent](../CorrespondingComponent.md) | One sampled component retaining contour identities and logical point correspondence. |
21
- | [CorrespondingContour](../CorrespondingContour.md) | A sampled contour retaining logical slots, including intentionally collapsed spans. |
22
- | [MatchProfilesOptions](../MatchProfilesOptions.md) | Explicit family sampling settings; omitted values use physical package defaults. |
23
19
  | [Profile](../Profile.md) | An explicit component/contour/span topology, before shared family sampling with matchProfiles. Component, contour and span identities establish correspondence across a loft or sweep family. |
24
- | [ProfileComponent2](../ProfileComponent2.md) | One component and its explicitly identified holes. |
25
- | [ProfileContour2](../ProfileContour2.md) | An identified closed boundary of curve spans, before shared family sampling. Outer winding is CCW and hole winding is CW. matchProfiles retains span identities in sampled contours. |
26
20
 
27
- ## Type aliases
28
-
29
- | API | Summary |
30
- | --- | --- |
31
- | [CorrespondingProfileStation](../CorrespondingProfileStation.md) | One already matched profile at an explicit height or right-handed spatial frame. |
32
- | [ProfileSpan2](../ProfileSpan2.md) | An identified line, circular arc, or cubic Bézier between corresponding landmarks. |
33
-
34
- Package: `@metamesh/modeling@0.17.0`.
21
+ Package: `@metamesh/modeling@0.19.0`.
@@ -11,41 +11,29 @@ Turn filled Sections or explicitly matched profiles into solids:
11
11
 
12
12
  Lofts match compatible primitive landmarks directly, including circle/ellipse quadrants to rectangle corners. Other unlike primitive families use direct perimeter association from construction-local +X seams. Arbitrary Sections and loops require an explicit `direct`, `reindex`, `fast-distance`, or `distance` method. Identified `CorrespondingProfile` landmarks reject geometric remapping.
13
13
 
14
- Standalone `extrude`, `revolve`, and `sweep` accept only `CorrespondingProfile` data. Use Section methods for filled Sections.
14
+ Use Section methods in fluent modeling sequences. Imported `extrude`, `revolve`, and `sweep` accept `Section | CorrespondingProfile` for generic profile functions without branching. Both forms use the same operation contracts. Use `mesh.extrude`, `mesh.revolve`, and `mesh.sweep` for direct triangle-buffer construction.
15
15
 
16
16
  ## Functions
17
17
 
18
18
  | API | Summary |
19
19
  | --- | --- |
20
- | [extrude](../extrude.md) | Extrudes explicit corresponding contours along +Z with degree twist and top scaling. Filled Sections use `section.extrude(options)`. |
21
- | [loft](../loft.md) | Lofts primitive Sections at z heights or frames; arbitrary Sections and loops require an explicit correspondence method. |
22
- | [revolve](../revolve.md) | Revolves explicit corresponding radial/Z contours around +Z, with caps for partial sweeps. Filled Sections use `section.revolve(options)`. |
23
- | [sweep](../sweep.md) | Sweeps explicit corresponding contours using the selected frame policy. Filled Sections use `section.sweep(path, options)`. |
24
-
25
- ## Interfaces
26
-
27
- | API | Summary |
28
- | --- | --- |
29
- | [ExtrudeOptions](../ExtrudeOptions.md) | Dimensions and sampling shared by native and pure +Z extrusion. |
30
- | [LoftOptions](../LoftOptions.md) | Shared controls for native and pure lofts. Point data and arbitrary Sections require explicit correspondence. |
31
- | [RevolveOptions](../RevolveOptions.md) | Circumferential sampling and degree sweep shared by pure and filled revolution. |
32
- | [SweepOptions](../SweepOptions.md) | Controls shared by pure mesh construction and filled modeling sweeps. |
20
+ | [extrude](../extrude.md) | Extrudes a filled Section or explicit corresponding contours along +Z with degree twist and top scaling. Use `section.extrude(options)` in fluent sequences, or this function for generic profile inputs. |
21
+ | [loft](../loft.md) | Lofts Sections and point loops at z heights or frames. Known primitive landmarks are retained; other profiles default to direct correspondence, preserving their supplied seams. |
22
+ | [revolve](../revolve.md) | Revolves a filled Section or explicit corresponding radial/Z contours around +Z, with caps for partial sweeps. Use `section.revolve(options)` in fluent sequences, or this function for generic profile inputs. |
23
+ | [sweep](../sweep.md) | Sweeps a filled Section or explicit corresponding contours using the selected frame policy. Use `section.sweep(path, options)` in fluent sequences, or this function for generic profile inputs. |
33
24
 
34
25
  ## Type aliases
35
26
 
36
27
  | API | Summary |
37
28
  | --- | --- |
38
- | [LoftCorrespondence](../LoftCorrespondence.md) | Associates ordered loft contours without inferring component identities or repairing topology. |
39
- | [LoftPlacement](../LoftPlacement.md) | A horizontal XY station height, or an explicit right-handed spatial frame, never both. |
40
29
  | [LoftStation](../LoftStation.md) | A Section or point loop at an explicit height or frame. |
41
- | [PathNormalGuide](../PathNormalGuide.md) | Supplies a profile-X orientation guide for each original normalized sweep station. |
42
- | [SweepOrientation](../SweepOrientation.md) | Explicit profile-X frame policy; all normals are directed, and selected singular policies reject. |
43
30
 
44
31
  ## Guides
45
32
 
46
- - [Revolve a radial profile](../../../guides/recipes.md#revolve-a-radial-profile)
47
- - [Rotation-minimizing path sweep](../../../guides/recipes.md#rotation-minimizing-path-sweep)
48
- - [Matched-section loft](../../../guides/recipes.md#matched-section-loft)
49
- - [Choose a modeling path](../../../guides/concepts.md#choose-a-modeling-path)
33
+ - [Finish a profile with a hole](../../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
34
+ - [Revolve a radial profile](../../../guides/profiles-and-extrusion.md#revolve-a-radial-profile)
35
+ - [Rotation-minimizing path sweep](../../../guides/sweeps-and-lofts.md#rotation-minimizing-path-sweep)
36
+ - [Matched-section loft](../../../guides/sweeps-and-lofts.md#matched-section-loft)
37
+ - [Choose a modeling path](../../../guides/recipes.md#choose-a-technique)
50
38
 
51
- Package: `@metamesh/modeling@0.17.0`.
39
+ Package: `@metamesh/modeling@0.19.0`.
@@ -1,38 +1,34 @@
1
1
  # Model generation
2
2
 
3
- Declare typed programs, optional computations, semantic parts and structured diagnostics.
3
+ Build typed models with optional cached computations, named parts, and structured warnings or errors.
4
4
 
5
5
  Start with `generate(({ params, part, assert }) => ...)` and return one `part(...)` or a readonly array of parts. Parameter values are ordinary readonly data.
6
6
 
7
- - **Cache:** `computed(id, callback)` optionally caches pure data or geometry and tracks synchronous reads. List changing outer captures with `computed(id, () => ..., [value])`; dependency arrays supplement automatic tracking.
7
+ - **Cache:** `memo(fn, ...args)` eagerly reuses stable pure functions and returns immutable data or geometry. Pass actual inputs as arguments; the exact current params/context tracks fields read by the helper. Fresh functions safely recompute; ordinary object arguments must be deeply immutable.
8
8
  - **Report issues:** assertions stop immediately. Warnings continue and must be emitted in the outer callback.
9
- - **Place parts:** `position` uses millimetres; `rotation` uses fixed global XYZ degrees.
10
- - **Keep cached data immutable:** use `immutableBuffer` for numeric arrays and `immutableMesh` for indexed meshes. Buffers expose only `length`, `at(index)`, and `copy()`. Snapshots still contain ordinary typed arrays.
9
+ - **Place parts:** `transform` accepts a fluent `transform3()` value or row-major 16-number matrix. Only translation and proper rotation are supported; omission means identity. Pattern and attachment matrices work directly.
10
+ - **Keep cached data immutable:** use `immutableBuffer` for numeric arrays and `mesh.immutable` for indexed meshes. Buffers expose `length`, `at(index)`, standard iteration, and `copy()`. Results expose these immutable buffers; call `copy()` for mutable typed arrays.
11
11
 
12
12
  ## Functions
13
13
 
14
14
  | API | Summary |
15
15
  | --- | --- |
16
- | [generate](../generate.md) | Defines a typed model without executing it. Use `computed` only for work worth reusing. |
17
- | [immutableBuffer](../immutableBuffer.md) | Copies numeric data once into private storage. This pure helper needs no active generation. |
18
- | [immutableMesh](../immutableMesh.md) | Copies mesh buffers into immutable data; geometric validation still occurs when modeling or finalizing. |
16
+ | [generate](../generate.md) | Defines a typed model without executing it. Parameters are an object map of capturable data; runtime capture rejects arrays at the root, ordinary class instances, mutable buffers, and functions. Supply live capabilities through services. Use `memo` only for work worth reusing. |
19
17
 
20
18
  ## Classes
21
19
 
22
20
  | API | Summary |
23
21
  | --- | --- |
24
- | [GenerationError](../GenerationError.md) | A user-correctable assertion failure. Successful computation caches never retain failures. |
22
+ | [GenerationError](../GenerationError.md) | A user-correctable assertion failure. Successful memo caches never retain failures. |
25
23
 
26
24
  ## Interfaces
27
25
 
28
26
  | API | Summary |
29
27
  | --- | --- |
30
- | [ImmutableBuffer](../ImmutableBuffer-type.md) | Owned immutable numeric data. Use copy() to obtain mutable storage for numerical work. |
31
- | [ImmutableTriangleMesh](../ImmutableTriangleMesh.md) | Immutable local XYZ positions and triangle indices, suitable for a computed value or part. |
32
- | [Computed](../Computed.md) | Reads immutable data or a deferred recipe; evaluation is synchronous and cached. |
28
+ | [Memo](../Memo.md) | Invokes fn(...args) and returns captured immutable data. Stable helpers reuse work across runs. Arguments compare with Object.is and must be deeply immutable; the exact current params or generation context instead tracks parameter fields read by the function. Functions must be pure: supply changing inputs explicitly, and do not read changing globals or ambient state. |
33
29
  | [DiagnosticOptions](../DiagnosticOptions.md) | Typed parameter association for an assertion or warning. |
34
30
  | [GenerateContext](../GenerateContext.md) | The sole synchronous authoring context, supplied independently of Studio. |
35
- | [GeneratedPart](../GeneratedPart.md) | One declared output part. Construct with the context's `part` helper. |
31
+ | [PartDeclaration](../PartDeclaration.md) | One declared output part. Construct with the context's `part` helper. |
36
32
  | [GenerationDiagnostic](../GenerationDiagnostic.md) | Structured user-facing issue associated with the attempted revision. |
37
33
  | [ModelProgram](../ModelProgram.md) | Stateless portable program descriptor. Execution and caches belong to an engine session. |
38
34
  | [PartOptions](../PartOptions.md) | Appearance and rigid placement of a finished local manufacturing part. |
@@ -41,8 +37,7 @@ Start with `generate(({ params, part, assert }) => ...)` and return one `part(..
41
37
 
42
38
  | API | Summary |
43
39
  | --- | --- |
44
- | [NumericArray](../NumericArray.md) | Numeric storage supported by immutable generation buffers. |
45
- | [ComputedValue](../ComputedValue.md) | A value supplied immediately or by a lazy computed reader. |
40
+ | [ImmutableValue](../ImmutableValue.md) | Deeply readonly view of captured generation data, including nested arrays and tuples. Modeling value methods keep their signatures, including explicit mutable copies. This type does not make unsupported runtime values valid generation data. |
46
41
  | [GenerateCallback](../GenerateCallback.md) | Pure synchronous callback returning one declared part or an array; caches are optional. |
47
42
  | [PartGeometry](../PartGeometry.md) | Manufacturing geometry; filled sections are intermediate construction values. |
48
43
 
@@ -50,4 +45,4 @@ Start with `generate(({ params, part, assert }) => ...)` and return one `part(..
50
45
 
51
46
  - [Complete standalone model example](../../../guides/standalone-model.md#minimal-model-entry)
52
47
 
53
- Package: `@metamesh/modeling@0.17.0`.
48
+ Package: `@metamesh/modeling@0.19.0`.
@@ -23,8 +23,6 @@ Radial clearance is per side; axial gap is the total gap between adjacent interv
23
23
  | API | Summary |
24
24
  | --- | --- |
25
25
  | [KnuckleHinge](../KnuckleHinge-type.md) | Portable local geometry; consumers own plates, holes, part declarations, and final placement. |
26
- | [KnuckleHingeBaseSpec](../KnuckleHingeBaseSpec.md) | Shared knuckle-joint dimensions in millimetres, independent of mounting geometry. |
27
- | [KnuckleHingeSamplingOptions](../KnuckleHingeSamplingOptions.md) | Shared circular sampling for barrels, shafts, and bores. |
28
26
  | [KnuckleHingeHalfOptions](../KnuckleHingeHalfOptions.md) | Optional mounting and edge treatment for one knuckle owner. |
29
27
  | [KnuckleHingeWeb](../KnuckleHingeWeb.md) | Rectangular connection from the axis into a caller-owned mounting body, in millimetres. |
30
28
 
@@ -33,6 +31,5 @@ Radial clearance is per side; axial gap is the total gap between adjacent interv
33
31
  | API | Summary |
34
32
  | --- | --- |
35
33
  | [KnuckleHingeOptions](../KnuckleHingeOptions.md) | Joint declaration with independent attachments; unspecified sampling inherits the evaluating host. |
36
- | [KnuckleHingeSpec](../KnuckleHingeSpec.md) | Knuckle-joint construction modes and interval ownership. |
37
34
 
38
- Package: `@metamesh/modeling@0.17.0`.
35
+ Package: `@metamesh/modeling@0.19.0`.
@@ -1,8 +1,17 @@
1
1
  # Mesh and inspection
2
2
 
3
- Convert validated meshes and inspect stable section or solid measurements.
3
+ Convert validated meshes and read stable section or solid measurements.
4
4
 
5
- `inspectSection` and `inspectSolid` copy native scalar facts and bounds during active host execution. `Solid.toTriangleMesh()` returns copied manufacturing arrays; finalized engine output also receives strict mesh analysis.
5
+ Shape queries return copied scalar facts and finite bounds; the host owns the native resources. Call `shape.inspect()` during active synchronous execution. Mesh extraction with `solid.toMesh()` is explicit; finalized engine output is already copied and validated.
6
+
7
+ - `shape.components()` works with Sections or Solids. Observed selections and recipes using them can only be evaluated in their originating session; ordinary recipes remain reusable after session disposal.
8
+ - `simplify()` returns a new shape. `solid.projectSection()` and `solid.sliceSection()` return Sections.
9
+ - `shape.isEmpty()` distinguishes empty Boolean or split results.
10
+ - `solid.distance(other)` measures minimum separation between nonempty solids, returning zero for contact or overlapping material.
11
+ - `solid.castSegment(origin, endpoint)` returns intersections along a finite directed segment.
12
+ - `shape.anchor(name)` reads a copied named attachment frame.
13
+
14
+ Recipe handles cannot cross a Worker boundary.
6
15
 
7
16
  Inspection does not certify wall thickness, overhangs, printer fit, or material behavior.
8
17
 
@@ -10,8 +19,6 @@ Inspection does not certify wall thickness, overhangs, printer fit, or material
10
19
 
11
20
  | API | Summary |
12
21
  | --- | --- |
13
- | [inspectSection](../inspectSection.md) | Copies lightweight section measurements. |
14
- | [inspectSolid](../inspectSolid.md) | Reads immutable native facts once per solid; temporary components are owned by the build. |
15
22
  | [solidFromMesh](../solidFromMesh.md) | Imports a bounded closed indexed mesh. |
16
23
 
17
24
  ## Interfaces
@@ -20,12 +27,10 @@ Inspection does not certify wall thickness, overhangs, printer fit, or material
20
27
  | --- | --- |
21
28
  | [SectionInspection](../SectionInspection.md) | Immutable native filled section facts in millimetres and square millimetres. Repeated inspections of the same native shape share these facts within one revision. |
22
29
  | [SolidInspection](../SolidInspection.md) | Immutable solid bounds, emptiness, component count, volume, surface area and native tolerance. Repeated inspections of the same native shape share these facts within one revision. |
23
- | [TriangleMesh](../TriangleMesh.md) | A topology-preserving indexed triangle mesh with XYZ vertex positions. |
24
- | [TriangleMeshAnalysis](../TriangleMeshAnalysis.md) | Measurements and optional edge-connected topology from one validated mesh traversal. |
25
- | [TriangleMeshMeasurements](../TriangleMeshMeasurements.md) | Geometric measurements derived from a validated, non-empty triangle mesh. |
30
+ | [SolidSegmentHit](../SolidSegmentHit.md) | Copied surface intersection from a finite directed segment. Distance is in millimetres. |
26
31
 
27
32
  ## Guides
28
33
 
29
- - [Solid inspection](../../../guides/recipes.md#solid-inspection)
34
+ - [Solid inspection](../../../guides/resolution-and-inspection.md#solid-inspection)
30
35
 
31
- Package: `@metamesh/modeling@0.17.0`.
36
+ Package: `@metamesh/modeling@0.19.0`.