fluidcad 0.0.32 → 0.0.34

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 (279) hide show
  1. package/README.md +3 -2
  2. package/bin/commands/init.js +55 -0
  3. package/bin/commands/mcp.js +33 -0
  4. package/bin/commands/serve.js +77 -0
  5. package/bin/fluidcad.js +15 -107
  6. package/lib/dist/common/scene-object.d.ts +4 -1
  7. package/lib/dist/common/scene-object.js +9 -2
  8. package/lib/dist/common/solid.d.ts +4 -1
  9. package/lib/dist/common/solid.js +13 -0
  10. package/lib/dist/core/2d/tarc.d.ts +20 -2
  11. package/lib/dist/core/2d/tarc.js +24 -0
  12. package/lib/dist/core/index.d.ts +2 -1
  13. package/lib/dist/core/index.js +1 -0
  14. package/lib/dist/core/interfaces.d.ts +107 -2
  15. package/lib/dist/core/load.d.ts +2 -2
  16. package/lib/dist/core/repeat.js +62 -46
  17. package/lib/dist/core/rib.d.ts +18 -0
  18. package/lib/dist/core/rib.js +37 -0
  19. package/lib/dist/features/2d/arc.d.ts +8 -2
  20. package/lib/dist/features/2d/arc.js +94 -17
  21. package/lib/dist/features/2d/back.js +3 -2
  22. package/lib/dist/features/2d/sketch.d.ts +4 -0
  23. package/lib/dist/features/2d/sketch.js +21 -0
  24. package/lib/dist/features/2d/tarc-constrained.d.ts +2 -0
  25. package/lib/dist/features/2d/tarc-constrained.js +8 -0
  26. package/lib/dist/features/2d/tarc-radius-to-object.d.ts +16 -0
  27. package/lib/dist/features/2d/tarc-radius-to-object.js +58 -0
  28. package/lib/dist/features/2d/tarc-to-object.d.ts +18 -0
  29. package/lib/dist/features/2d/tarc-to-object.js +66 -0
  30. package/lib/dist/features/2d/tarc-to-point-tangent.d.ts +2 -0
  31. package/lib/dist/features/2d/tarc-to-point-tangent.js +3 -0
  32. package/lib/dist/features/2d/tarc-to-point.d.ts +2 -0
  33. package/lib/dist/features/2d/tarc-to-point.js +3 -0
  34. package/lib/dist/features/2d/tarc-with-tangent.d.ts +2 -0
  35. package/lib/dist/features/2d/tarc-with-tangent.js +3 -0
  36. package/lib/dist/features/2d/tarc.d.ts +2 -0
  37. package/lib/dist/features/2d/tarc.js +3 -0
  38. package/lib/dist/features/extrude-base.d.ts +9 -0
  39. package/lib/dist/features/extrude-base.js +22 -0
  40. package/lib/dist/features/extrude-to-face.js +1 -5
  41. package/lib/dist/features/extrude-two-distances.js +1 -2
  42. package/lib/dist/features/extrude.js +1 -2
  43. package/lib/dist/features/load.d.ts +6 -0
  44. package/lib/dist/features/load.js +53 -1
  45. package/lib/dist/features/mirror-feature.d.ts +3 -2
  46. package/lib/dist/features/mirror-feature.js +1 -1
  47. package/lib/dist/features/repeat-circular.d.ts +3 -3
  48. package/lib/dist/features/repeat-circular.js +8 -1
  49. package/lib/dist/features/repeat-linear.d.ts +4 -2
  50. package/lib/dist/features/repeat-linear.js +10 -1
  51. package/lib/dist/features/repeat-matrix.d.ts +3 -1
  52. package/lib/dist/features/repeat-matrix.js +7 -2
  53. package/lib/dist/features/rib.d.ts +31 -0
  54. package/lib/dist/features/rib.js +321 -0
  55. package/lib/dist/features/select.d.ts +1 -0
  56. package/lib/dist/features/select.js +81 -10
  57. package/lib/dist/features/shell.d.ts +4 -1
  58. package/lib/dist/features/shell.js +14 -3
  59. package/lib/dist/filters/edge/belongs-to-face.d.ts +12 -9
  60. package/lib/dist/filters/edge/belongs-to-face.js +64 -15
  61. package/lib/dist/filters/filter-builder-base.d.ts +25 -0
  62. package/lib/dist/filters/filter-builder-base.js +47 -0
  63. package/lib/dist/filters/filter.js +39 -14
  64. package/lib/dist/filters/from-object.d.ts +4 -0
  65. package/lib/dist/filters/from-object.js +10 -0
  66. package/lib/dist/helpers/clone-transform.d.ts +2 -1
  67. package/lib/dist/helpers/scene-helpers.d.ts +1 -1
  68. package/lib/dist/helpers/scene-helpers.js +146 -12
  69. package/lib/dist/index.d.ts +7 -1
  70. package/lib/dist/index.js +3 -3
  71. package/lib/dist/io/file-import.d.ts +5 -1
  72. package/lib/dist/io/file-import.js +29 -18
  73. package/lib/dist/math/lazy-matrix.d.ts +31 -0
  74. package/lib/dist/math/lazy-matrix.js +66 -0
  75. package/lib/dist/oc/color-transfer.d.ts +19 -8
  76. package/lib/dist/oc/color-transfer.js +70 -12
  77. package/lib/dist/oc/constraints/constraint-solver-adaptor.d.ts +5 -0
  78. package/lib/dist/oc/constraints/constraint-solver-adaptor.js +16 -0
  79. package/lib/dist/oc/constraints/constraint-solver.d.ts +4 -0
  80. package/lib/dist/oc/constraints/curve/curve-constraint-solver.d.ts +4 -0
  81. package/lib/dist/oc/constraints/curve/curve-constraint-solver.js +3 -0
  82. package/lib/dist/oc/constraints/geometric/geometric-constraint-solver.d.ts +6 -1
  83. package/lib/dist/oc/constraints/geometric/geometric-constraint-solver.js +4 -0
  84. package/lib/dist/oc/constraints/geometric/tangent-arc-from-point-tangent.d.ts +8 -0
  85. package/lib/dist/oc/constraints/geometric/tangent-arc-from-point-tangent.js +111 -0
  86. package/lib/dist/oc/constraints/geometric/tangent-arc-radius-to-object.d.ts +8 -0
  87. package/lib/dist/oc/constraints/geometric/tangent-arc-radius-to-object.js +161 -0
  88. package/lib/dist/oc/extrude-ops.d.ts +2 -1
  89. package/lib/dist/oc/extrude-ops.js +51 -2
  90. package/lib/dist/oc/mesh.d.ts +9 -4
  91. package/lib/dist/oc/mesh.js +14 -13
  92. package/lib/dist/oc/rib-ops.d.ts +35 -0
  93. package/lib/dist/oc/rib-ops.js +619 -0
  94. package/lib/dist/oc/shell-ops.d.ts +2 -1
  95. package/lib/dist/oc/shell-ops.js +5 -2
  96. package/lib/dist/oc/topology-index.d.ts +6 -0
  97. package/lib/dist/oc/topology-index.js +36 -0
  98. package/lib/dist/rendering/mesh-builder.d.ts +3 -0
  99. package/lib/dist/rendering/mesh-builder.js +8 -4
  100. package/lib/dist/rendering/render-edge.d.ts +2 -1
  101. package/lib/dist/rendering/render-edge.js +2 -2
  102. package/lib/dist/rendering/render-face.d.ts +2 -1
  103. package/lib/dist/rendering/render-face.js +2 -2
  104. package/lib/dist/rendering/render-solid.d.ts +2 -1
  105. package/lib/dist/rendering/render-solid.js +3 -5
  106. package/lib/dist/rendering/render-wire.d.ts +2 -1
  107. package/lib/dist/rendering/render-wire.js +2 -2
  108. package/lib/dist/rendering/render.d.ts +4 -0
  109. package/lib/dist/rendering/render.js +50 -2
  110. package/lib/dist/rendering/scene-compare.js +3 -0
  111. package/lib/dist/rendering/scene.d.ts +1 -0
  112. package/lib/dist/rendering/scene.js +4 -0
  113. package/lib/dist/scene-manager.d.ts +4 -2
  114. package/lib/dist/scene-manager.js +12 -4
  115. package/lib/dist/tests/features/2d/arc.test.js +64 -0
  116. package/lib/dist/tests/features/2d/back.test.js +17 -1
  117. package/lib/dist/tests/features/2d/tarc.test.js +157 -0
  118. package/lib/dist/tests/features/color-lineage.test.js +18 -0
  119. package/lib/dist/tests/features/filter-positional.test.d.ts +1 -0
  120. package/lib/dist/tests/features/filter-positional.test.js +129 -0
  121. package/lib/dist/tests/features/repeat-user-repro.test.d.ts +1 -0
  122. package/lib/dist/tests/features/repeat-user-repro.test.js +60 -0
  123. package/lib/dist/tests/features/rib.test.d.ts +1 -0
  124. package/lib/dist/tests/features/rib.test.js +598 -0
  125. package/lib/dist/tests/features/shell.test.js +36 -0
  126. package/lib/dist/tests/global-setup.js +2 -1
  127. package/lib/dist/tests/helpers/extract-blocks.d.ts +9 -0
  128. package/lib/dist/tests/helpers/extract-blocks.js +56 -0
  129. package/lib/dist/tests/llm-docs-examples.test.d.ts +1 -0
  130. package/lib/dist/tests/llm-docs-examples.test.js +62 -0
  131. package/lib/dist/tests/scene-compare.test.d.ts +1 -0
  132. package/lib/dist/tests/scene-compare.test.js +77 -0
  133. package/lib/dist/tests/setup.js +2 -1
  134. package/lib/dist/tsconfig.tsbuildinfo +1 -1
  135. package/llm-docs/.coverage-allowlist.txt +9 -0
  136. package/llm-docs/api/arc.md +48 -0
  137. package/llm-docs/api/axis.md +42 -0
  138. package/llm-docs/api/bezier.md +42 -0
  139. package/llm-docs/api/booleans.md +44 -0
  140. package/llm-docs/api/chamfer.md +40 -0
  141. package/llm-docs/api/circle.md +36 -0
  142. package/llm-docs/api/color.md +34 -0
  143. package/llm-docs/api/connect.md +41 -0
  144. package/llm-docs/api/constraint-qualifiers.md +48 -0
  145. package/llm-docs/api/copy.md +63 -0
  146. package/llm-docs/api/cursor-lines.md +50 -0
  147. package/llm-docs/api/cursor-move.md +61 -0
  148. package/llm-docs/api/cut.md +55 -0
  149. package/llm-docs/api/draft.md +36 -0
  150. package/llm-docs/api/edge-filter.md +57 -0
  151. package/llm-docs/api/ellipse.md +34 -0
  152. package/llm-docs/api/extrude.md +74 -0
  153. package/llm-docs/api/face-filter.md +61 -0
  154. package/llm-docs/api/fillet.md +51 -0
  155. package/llm-docs/api/index.json +139 -0
  156. package/llm-docs/api/line.md +42 -0
  157. package/llm-docs/api/load.md +37 -0
  158. package/llm-docs/api/local.md +38 -0
  159. package/llm-docs/api/loft.md +37 -0
  160. package/llm-docs/api/mirror.md +44 -0
  161. package/llm-docs/api/offset.md +36 -0
  162. package/llm-docs/api/part.md +40 -0
  163. package/llm-docs/api/plane.md +44 -0
  164. package/llm-docs/api/polygon.md +37 -0
  165. package/llm-docs/api/primitive-solids.md +39 -0
  166. package/llm-docs/api/project-intersect.md +48 -0
  167. package/llm-docs/api/rect.md +48 -0
  168. package/llm-docs/api/remove.md +32 -0
  169. package/llm-docs/api/repeat.md +79 -0
  170. package/llm-docs/api/revolve.md +38 -0
  171. package/llm-docs/api/rib.md +40 -0
  172. package/llm-docs/api/rotate.md +37 -0
  173. package/llm-docs/api/select.md +41 -0
  174. package/llm-docs/api/shell.md +41 -0
  175. package/llm-docs/api/sketch.md +76 -0
  176. package/llm-docs/api/slot.md +36 -0
  177. package/llm-docs/api/split-trim.md +42 -0
  178. package/llm-docs/api/sweep.md +43 -0
  179. package/llm-docs/api/tarc.md +45 -0
  180. package/llm-docs/api/tcircle.md +38 -0
  181. package/llm-docs/api/tline.md +42 -0
  182. package/llm-docs/api/translate.md +40 -0
  183. package/llm-docs/api/types/aline.md +35 -0
  184. package/llm-docs/api/types/arc-angles.md +29 -0
  185. package/llm-docs/api/types/arc-points.md +48 -0
  186. package/llm-docs/api/types/axis-like.md +38 -0
  187. package/llm-docs/api/types/axis.md +21 -0
  188. package/llm-docs/api/types/boolean-operation.md +50 -0
  189. package/llm-docs/api/types/circular-repeat-options.md +31 -0
  190. package/llm-docs/api/types/common.md +32 -0
  191. package/llm-docs/api/types/cut.md +125 -0
  192. package/llm-docs/api/types/draft.md +21 -0
  193. package/llm-docs/api/types/extrudable-geometry.md +23 -0
  194. package/llm-docs/api/types/extrude.md +194 -0
  195. package/llm-docs/api/types/geometry.md +51 -0
  196. package/llm-docs/api/types/hline.md +35 -0
  197. package/llm-docs/api/types/linear-repeat-options.md +31 -0
  198. package/llm-docs/api/types/loft.md +154 -0
  199. package/llm-docs/api/types/mirror.md +35 -0
  200. package/llm-docs/api/types/offset.md +31 -0
  201. package/llm-docs/api/types/plane-like.md +35 -0
  202. package/llm-docs/api/types/plane-transform-options.md +29 -0
  203. package/llm-docs/api/types/plane.md +21 -0
  204. package/llm-docs/api/types/point-like.md +22 -0
  205. package/llm-docs/api/types/point2dlike.md +26 -0
  206. package/llm-docs/api/types/polygon.md +46 -0
  207. package/llm-docs/api/types/rect.md +128 -0
  208. package/llm-docs/api/types/revolve.md +102 -0
  209. package/llm-docs/api/types/rib.md +133 -0
  210. package/llm-docs/api/types/scene-object.md +33 -0
  211. package/llm-docs/api/types/select.md +21 -0
  212. package/llm-docs/api/types/shell.md +54 -0
  213. package/llm-docs/api/types/slot.md +43 -0
  214. package/llm-docs/api/types/sweep.md +189 -0
  215. package/llm-docs/api/types/tangent-arc-two-objects.md +46 -0
  216. package/llm-docs/api/types/transformable.md +93 -0
  217. package/llm-docs/api/types/trim.md +27 -0
  218. package/llm-docs/api/types/two-objects-tangent-line.md +46 -0
  219. package/llm-docs/api/types/vertex.md +17 -0
  220. package/llm-docs/api/types/vline.md +35 -0
  221. package/llm-docs/concepts/coordinate-system.md +45 -0
  222. package/llm-docs/concepts/history-and-rollback.md +40 -0
  223. package/llm-docs/concepts/last-selection.md +49 -0
  224. package/llm-docs/concepts/scene-graph.md +37 -0
  225. package/llm-docs/index.json +1750 -0
  226. package/mcp/dist/client.d.ts +64 -0
  227. package/mcp/dist/client.js +248 -0
  228. package/mcp/dist/discovery.d.ts +11 -0
  229. package/mcp/dist/discovery.js +78 -0
  230. package/mcp/dist/docs-index.d.ts +81 -0
  231. package/mcp/dist/docs-index.js +261 -0
  232. package/mcp/dist/resources.d.ts +4 -0
  233. package/mcp/dist/resources.js +115 -0
  234. package/mcp/dist/server.d.ts +12 -0
  235. package/mcp/dist/server.js +489 -0
  236. package/mcp/dist/tools/coordination.d.ts +9 -0
  237. package/mcp/dist/tools/coordination.js +46 -0
  238. package/mcp/dist/tools/docs.d.ts +66 -0
  239. package/mcp/dist/tools/docs.js +122 -0
  240. package/mcp/dist/tools/engine.d.ts +56 -0
  241. package/mcp/dist/tools/engine.js +145 -0
  242. package/mcp/dist/tools/inspection.d.ts +75 -0
  243. package/mcp/dist/tools/inspection.js +121 -0
  244. package/mcp/dist/tools/screenshot.d.ts +63 -0
  245. package/mcp/dist/tools/screenshot.js +263 -0
  246. package/mcp/dist/tools/source.d.ts +84 -0
  247. package/mcp/dist/tools/source.js +434 -0
  248. package/mcp/dist/tools/workspaces.d.ts +13 -0
  249. package/mcp/dist/tools/workspaces.js +33 -0
  250. package/mcp/dist/types.d.ts +18 -0
  251. package/mcp/dist/types.js +11 -0
  252. package/package.json +19 -5
  253. package/server/dist/code-editor.d.ts +36 -0
  254. package/server/dist/code-editor.js +8 -0
  255. package/server/dist/fluidcad-server.d.ts +50 -0
  256. package/server/dist/fluidcad-server.js +153 -1
  257. package/server/dist/global-registry.d.ts +30 -0
  258. package/server/dist/global-registry.js +126 -0
  259. package/server/dist/index.js +171 -26
  260. package/server/dist/instance-file.d.ts +31 -0
  261. package/server/dist/instance-file.js +73 -0
  262. package/server/dist/lint-fluid-js.d.ts +15 -0
  263. package/server/dist/lint-fluid-js.js +271 -0
  264. package/server/dist/routes/editor.d.ts +24 -0
  265. package/server/dist/routes/editor.js +44 -0
  266. package/server/dist/routes/export.d.ts +1 -1
  267. package/server/dist/routes/export.js +45 -8
  268. package/server/dist/routes/health.d.ts +7 -0
  269. package/server/dist/routes/health.js +14 -0
  270. package/server/dist/routes/lint.d.ts +10 -0
  271. package/server/dist/routes/lint.js +28 -0
  272. package/server/dist/routes/render.d.ts +33 -0
  273. package/server/dist/routes/render.js +34 -0
  274. package/server/dist/routes/scene.d.ts +5 -0
  275. package/server/dist/routes/scene.js +48 -0
  276. package/server/dist/routes/screenshot.js +68 -1
  277. package/server/dist/ws-protocol.d.ts +56 -2
  278. package/ui/dist/assets/{index-DMw0OYCF.js → index-BdqrMDRu.js} +30 -30
  279. package/ui/dist/index.html +1 -1
@@ -0,0 +1,1750 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "generatedAt": "2026-05-23T14:34:43.886Z",
4
+ "docs": [
5
+ {
6
+ "id": "api/arc",
7
+ "title": "arc(end) / arc(radius, startAngle, endAngle)",
8
+ "summary": "Circular arc. Point form runs from the cursor (or explicit start) to `end`; angle form sweeps an angular range. Angles are relative to the current tangent and in degrees.",
9
+ "tags": [
10
+ "api",
11
+ "2d",
12
+ "primitive",
13
+ "curve"
14
+ ],
15
+ "symbols": [
16
+ "arc"
17
+ ],
18
+ "seeAlso": [
19
+ "api/circle",
20
+ "api/bezier",
21
+ "api/line"
22
+ ],
23
+ "file": "api/arc.md",
24
+ "bodyLength": 1033
25
+ },
26
+ {
27
+ "id": "api/axis",
28
+ "title": "axis(reference, options?)",
29
+ "summary": "Builds a reference axis from a world axis name, an edge, or the midaxis between two axes. Used by revolve, repeat, and 3D rotations.",
30
+ "tags": [
31
+ "api",
32
+ "reference",
33
+ "geometry"
34
+ ],
35
+ "symbols": [
36
+ "axis"
37
+ ],
38
+ "seeAlso": [
39
+ "api/plane",
40
+ "api/local",
41
+ "api/revolve",
42
+ "api/rotate"
43
+ ],
44
+ "file": "api/axis.md",
45
+ "bodyLength": 863
46
+ },
47
+ {
48
+ "id": "api/bezier",
49
+ "title": "bezier(...points)",
50
+ "summary": "Free-form bezier curve. The last point is the endpoint; preceding points are control points (degree = args − 1).",
51
+ "tags": [
52
+ "api",
53
+ "2d",
54
+ "primitive",
55
+ "curve"
56
+ ],
57
+ "symbols": [
58
+ "bezier"
59
+ ],
60
+ "seeAlso": [
61
+ "api/arc",
62
+ "api/line"
63
+ ],
64
+ "file": "api/bezier.md",
65
+ "bodyLength": 788
66
+ },
67
+ {
68
+ "id": "api/booleans",
69
+ "title": "fuse / subtract / common",
70
+ "summary": "Explicit 3D boolean operations. Most of the time auto-fusion does the right thing — reach for these when you need exact control.",
71
+ "tags": [
72
+ "api",
73
+ "3d",
74
+ "boolean"
75
+ ],
76
+ "symbols": [
77
+ "fuse",
78
+ "subtract",
79
+ "common"
80
+ ],
81
+ "seeAlso": [
82
+ "api/extrude",
83
+ "api/cut",
84
+ "concepts/scene-graph"
85
+ ],
86
+ "file": "api/booleans.md",
87
+ "bodyLength": 1146
88
+ },
89
+ {
90
+ "id": "api/chamfer",
91
+ "title": "chamfer(distance, ...edges?)",
92
+ "summary": "Flat angled break on a 3D edge. Symmetric, asymmetric (d1 × d2), or distance + angle forms.",
93
+ "tags": [
94
+ "api",
95
+ "3d",
96
+ "modifier",
97
+ "edges"
98
+ ],
99
+ "symbols": [
100
+ "chamfer"
101
+ ],
102
+ "seeAlso": [
103
+ "api/fillet",
104
+ "api/extrude"
105
+ ],
106
+ "file": "api/chamfer.md",
107
+ "bodyLength": 873
108
+ },
109
+ {
110
+ "id": "api/circle",
111
+ "title": "circle(diameter?)",
112
+ "summary": "Draws a circle on the active sketch plane. The numeric argument is the diameter, not the radius.",
113
+ "tags": [
114
+ "api",
115
+ "2d",
116
+ "primitive"
117
+ ],
118
+ "symbols": [
119
+ "circle"
120
+ ],
121
+ "seeAlso": [
122
+ "api/sketch",
123
+ "api/ellipse",
124
+ "api/arc"
125
+ ],
126
+ "file": "api/circle.md",
127
+ "bodyLength": 665
128
+ },
129
+ {
130
+ "id": "api/color",
131
+ "title": "color(value, selection?)",
132
+ "summary": "Paints a face, edge, or solid. Accepts CSS color strings (named, hex, rgb). Without a target, paints the last selection.",
133
+ "tags": [
134
+ "api",
135
+ "utility",
136
+ "appearance"
137
+ ],
138
+ "symbols": [
139
+ "color"
140
+ ],
141
+ "seeAlso": [
142
+ "api/select",
143
+ "api/face-filter"
144
+ ],
145
+ "file": "api/color.md",
146
+ "bodyLength": 649
147
+ },
148
+ {
149
+ "id": "api/connect",
150
+ "title": "connect(mode?)",
151
+ "summary": "Bridges the open ends of the current sketch's edges into one closed wire. Pass `\"arc\"` to bridge with tangent arcs instead of straight segments.",
152
+ "tags": [
153
+ "api",
154
+ "2d",
155
+ "primitive"
156
+ ],
157
+ "symbols": [
158
+ "connect"
159
+ ],
160
+ "seeAlso": [
161
+ "api/line",
162
+ "api/arc",
163
+ "api/sketch"
164
+ ],
165
+ "file": "api/connect.md",
166
+ "bodyLength": 946
167
+ },
168
+ {
169
+ "id": "api/constraint-qualifiers",
170
+ "title": "outside / enclosed / enclosing / unqualified",
171
+ "summary": "Wrap a geometry to disambiguate which solution a constrained primitive (tLine/tArc/tCircle) should pick.",
172
+ "tags": [
173
+ "api",
174
+ "2d",
175
+ "constrained",
176
+ "selection"
177
+ ],
178
+ "symbols": [
179
+ "outside",
180
+ "enclosed",
181
+ "enclosing",
182
+ "unqualified"
183
+ ],
184
+ "seeAlso": [
185
+ "api/tline",
186
+ "api/tarc",
187
+ "api/tcircle"
188
+ ],
189
+ "file": "api/constraint-qualifiers.md",
190
+ "bodyLength": 1081
191
+ },
192
+ {
193
+ "id": "api/copy",
194
+ "title": "copy(kind, axis | plane, options, ...objects)",
195
+ "summary": "Duplicates a finished shape at multiple positions. Each copy is independent of the original. Use `repeat()` when you instead want the modeling feature itself re-applied.",
196
+ "tags": [
197
+ "api",
198
+ "transform",
199
+ "pattern"
200
+ ],
201
+ "symbols": [
202
+ "copy"
203
+ ],
204
+ "seeAlso": [
205
+ "api/repeat",
206
+ "api/translate",
207
+ "api/mirror"
208
+ ],
209
+ "file": "api/copy.md",
210
+ "bodyLength": 1868
211
+ },
212
+ {
213
+ "id": "api/cursor-lines",
214
+ "title": "hLine / vLine / aLine",
215
+ "summary": "Axis-aligned and angle-relative line segments that start from the current cursor — the idiomatic substitute for hand-computed endpoint coordinates.",
216
+ "tags": [
217
+ "api",
218
+ "2d",
219
+ "cursor",
220
+ "primitive"
221
+ ],
222
+ "symbols": [
223
+ "hLine",
224
+ "vLine",
225
+ "aLine"
226
+ ],
227
+ "seeAlso": [
228
+ "api/line",
229
+ "api/cursor-move",
230
+ "api/sketch"
231
+ ],
232
+ "file": "api/cursor-lines.md",
233
+ "bodyLength": 1212
234
+ },
235
+ {
236
+ "id": "api/cursor-move",
237
+ "title": "move / hMove / vMove / rMove / pMove / center / back",
238
+ "summary": "Cursor positioning primitives. They move the active sketch's cursor (and tangent, for rMove) without drawing geometry.",
239
+ "tags": [
240
+ "api",
241
+ "2d",
242
+ "cursor"
243
+ ],
244
+ "symbols": [
245
+ "move",
246
+ "hMove",
247
+ "vMove",
248
+ "rMove",
249
+ "pMove",
250
+ "center"
251
+ ],
252
+ "seeAlso": [
253
+ "api/cursor-lines",
254
+ "api/sketch"
255
+ ],
256
+ "file": "api/cursor-move.md",
257
+ "bodyLength": 1423
258
+ },
259
+ {
260
+ "id": "api/cut",
261
+ "title": "cut(distance?, target?)",
262
+ "summary": "Subtractive extrude. Same calling conventions as extrude, but always removes material. Positive distance cuts opposite the sketch normal (into the solid); negative cuts along it. No-arg form goes through all.",
263
+ "tags": [
264
+ "api",
265
+ "3d",
266
+ "solid"
267
+ ],
268
+ "symbols": [
269
+ "cut"
270
+ ],
271
+ "seeAlso": [
272
+ "api/extrude",
273
+ "api/sketch",
274
+ "concepts/last-selection"
275
+ ],
276
+ "file": "api/cut.md",
277
+ "bodyLength": 1462
278
+ },
279
+ {
280
+ "id": "api/draft",
281
+ "title": "draft(angle, ...faces?)",
282
+ "summary": "Applies a draft angle to selected faces — pulls them outward (positive) or inward (negative) along a reference direction.",
283
+ "tags": [
284
+ "api",
285
+ "3d",
286
+ "modifier"
287
+ ],
288
+ "symbols": [
289
+ "draft"
290
+ ],
291
+ "seeAlso": [
292
+ "api/extrude",
293
+ "api/shell"
294
+ ],
295
+ "file": "api/draft.md",
296
+ "bodyLength": 700
297
+ },
298
+ {
299
+ "id": "api/edge-filter",
300
+ "title": "edge() — edge filter builder",
301
+ "summary": "Chainable predicate builder for selecting edges by shape, orientation, position, or parent face/object. Like `face()`, chained calls AND together and `.notX()` negates.",
302
+ "tags": [
303
+ "api",
304
+ "selection",
305
+ "filter"
306
+ ],
307
+ "symbols": [
308
+ "edge"
309
+ ],
310
+ "seeAlso": [
311
+ "api/face-filter",
312
+ "api/select"
313
+ ],
314
+ "file": "api/edge-filter.md",
315
+ "bodyLength": 1148
316
+ },
317
+ {
318
+ "id": "api/ellipse",
319
+ "title": "ellipse(rx, ry)",
320
+ "summary": "Draws an ellipse using semi-radii (half-widths) along the sketch plane's X and Y axes.",
321
+ "tags": [
322
+ "api",
323
+ "2d",
324
+ "primitive"
325
+ ],
326
+ "symbols": [
327
+ "ellipse"
328
+ ],
329
+ "seeAlso": [
330
+ "api/circle",
331
+ "api/sketch"
332
+ ],
333
+ "file": "api/ellipse.md",
334
+ "bodyLength": 495
335
+ },
336
+ {
337
+ "id": "api/extrude",
338
+ "title": "extrude(distance, target?)",
339
+ "summary": "Pulls the last sketch (or an explicit one) along the sketch plane normal. Auto-fuses with any solid it touches.",
340
+ "tags": [
341
+ "api",
342
+ "solid",
343
+ "primitive",
344
+ "3d"
345
+ ],
346
+ "symbols": [
347
+ "extrude"
348
+ ],
349
+ "seeAlso": [
350
+ "api/sketch",
351
+ "api/fillet",
352
+ "concepts/last-selection"
353
+ ],
354
+ "file": "api/extrude.md",
355
+ "bodyLength": 2422
356
+ },
357
+ {
358
+ "id": "api/face-filter",
359
+ "title": "face() — face filter builder",
360
+ "summary": "Chainable predicate builder for selecting faces by shape, orientation, position, topology, or source. Each chained call narrows the set (AND). Every predicate has a `.notX()` counterpart.",
361
+ "tags": [
362
+ "api",
363
+ "selection",
364
+ "filter"
365
+ ],
366
+ "symbols": [
367
+ "face"
368
+ ],
369
+ "seeAlso": [
370
+ "api/edge-filter",
371
+ "api/select",
372
+ "concepts/last-selection"
373
+ ],
374
+ "file": "api/face-filter.md",
375
+ "bodyLength": 1298
376
+ },
377
+ {
378
+ "id": "api/fillet",
379
+ "title": "fillet(radius, ...edges?)",
380
+ "summary": "Rounds 3D edges (or 2D corners). Defaults to the last selection if no edges are passed.",
381
+ "tags": [
382
+ "api",
383
+ "solid",
384
+ "edges",
385
+ "3d"
386
+ ],
387
+ "symbols": [
388
+ "fillet"
389
+ ],
390
+ "seeAlso": [
391
+ "api/extrude",
392
+ "concepts/last-selection"
393
+ ],
394
+ "file": "api/fillet.md",
395
+ "bodyLength": 1243
396
+ },
397
+ {
398
+ "id": "api/line",
399
+ "title": "line(end) / line(start, end)",
400
+ "summary": "Straight 2D line on the active sketch plane. The single-argument form draws from the cursor to `end`.",
401
+ "tags": [
402
+ "api",
403
+ "2d",
404
+ "primitive"
405
+ ],
406
+ "symbols": [
407
+ "line"
408
+ ],
409
+ "seeAlso": [
410
+ "api/sketch",
411
+ "api/connect",
412
+ "api/arc"
413
+ ],
414
+ "file": "api/line.md",
415
+ "bodyLength": 771
416
+ },
417
+ {
418
+ "id": "api/load",
419
+ "title": "load(fileName)",
420
+ "summary": "Imports a 3D model file (STEP, STL, etc.) from the project folder. Returns a Transformable SceneObject.",
421
+ "tags": [
422
+ "api",
423
+ "utility",
424
+ "io"
425
+ ],
426
+ "symbols": [
427
+ "load"
428
+ ],
429
+ "seeAlso": [
430
+ "api/translate",
431
+ "api/rotate"
432
+ ],
433
+ "file": "api/load.md",
434
+ "bodyLength": 675
435
+ },
436
+ {
437
+ "id": "api/local",
438
+ "title": "local(\"x\" | \"y\" | \"z\")",
439
+ "summary": "Returns an axis interpreted against the active sketch's plane, not the world. Use whenever you mean \"this sketch's X axis\" rather than world X.",
440
+ "tags": [
441
+ "api",
442
+ "reference",
443
+ "geometry",
444
+ "2d"
445
+ ],
446
+ "symbols": [
447
+ "local"
448
+ ],
449
+ "seeAlso": [
450
+ "api/axis",
451
+ "api/plane",
452
+ "concepts/coordinate-system"
453
+ ],
454
+ "file": "api/local.md",
455
+ "bodyLength": 762
456
+ },
457
+ {
458
+ "id": "api/loft",
459
+ "title": "loft(...profiles)",
460
+ "summary": "Builds a smooth solid that blends between two or more profile sketches at different positions.",
461
+ "tags": [
462
+ "api",
463
+ "3d",
464
+ "solid"
465
+ ],
466
+ "symbols": [
467
+ "loft"
468
+ ],
469
+ "seeAlso": [
470
+ "api/sketch",
471
+ "api/sweep",
472
+ "api/extrude"
473
+ ],
474
+ "file": "api/loft.md",
475
+ "bodyLength": 794
476
+ },
477
+ {
478
+ "id": "api/mirror",
479
+ "title": "mirror(plane | axis | line, ...targets?)",
480
+ "summary": "Reflects sketch geometry across a line/axis or 3D solids across a plane. World-axis strings stay world-axis even inside a sketch — use `local(\"x\")` for the sketch's local X.",
481
+ "tags": [
482
+ "api",
483
+ "2d",
484
+ "3d",
485
+ "transform"
486
+ ],
487
+ "symbols": [
488
+ "mirror"
489
+ ],
490
+ "seeAlso": [
491
+ "api/translate",
492
+ "api/rotate",
493
+ "concepts/coordinate-system"
494
+ ],
495
+ "file": "api/mirror.md",
496
+ "bodyLength": 961
497
+ },
498
+ {
499
+ "id": "api/offset",
500
+ "title": "offset(distance?, removeOriginal?)",
501
+ "summary": "Offsets the current sketch wire outward (positive) or inward (negative). Use `.close()` to cap an open offset.",
502
+ "tags": [
503
+ "api",
504
+ "2d",
505
+ "modifier"
506
+ ],
507
+ "symbols": [
508
+ "offset"
509
+ ],
510
+ "seeAlso": [
511
+ "api/sketch",
512
+ "api/extrude"
513
+ ],
514
+ "file": "api/offset.md",
515
+ "bodyLength": 661
516
+ },
517
+ {
518
+ "id": "api/part",
519
+ "title": "part(name, callback)",
520
+ "summary": "Isolation boundary for assembly modeling. Shapes inside a part only auto-fuse with each other, never with siblings outside.",
521
+ "tags": [
522
+ "api",
523
+ "utility",
524
+ "assembly"
525
+ ],
526
+ "symbols": [
527
+ "part"
528
+ ],
529
+ "seeAlso": [
530
+ "concepts/scene-graph"
531
+ ],
532
+ "file": "api/part.md",
533
+ "bodyLength": 717
534
+ },
535
+ {
536
+ "id": "api/plane",
537
+ "title": "plane(reference, options?)",
538
+ "summary": "Builds a reference plane from a standard name, an existing plane, a face, or the midpoint between two planes. Optional offset/rotation parametrize it.",
539
+ "tags": [
540
+ "api",
541
+ "reference",
542
+ "geometry"
543
+ ],
544
+ "symbols": [
545
+ "plane"
546
+ ],
547
+ "seeAlso": [
548
+ "api/axis",
549
+ "api/local",
550
+ "api/sketch"
551
+ ],
552
+ "file": "api/plane.md",
553
+ "bodyLength": 984
554
+ },
555
+ {
556
+ "id": "api/polygon",
557
+ "title": "polygon(n, diameter, mode?)",
558
+ "summary": "Regular n-sided polygon sized by the inscribed or circumscribed diameter — no manual `[r*cos, r*sin]` math.",
559
+ "tags": [
560
+ "api",
561
+ "2d",
562
+ "primitive"
563
+ ],
564
+ "symbols": [
565
+ "polygon"
566
+ ],
567
+ "seeAlso": [
568
+ "api/circle",
569
+ "api/sketch"
570
+ ],
571
+ "file": "api/polygon.md",
572
+ "bodyLength": 796
573
+ },
574
+ {
575
+ "id": "api/primitive-solids",
576
+ "title": "sphere / cylinder",
577
+ "summary": "Sketch-free primitive solids. Both return Transformable, so translate/rotate/mirror chain directly off the result.",
578
+ "tags": [
579
+ "api",
580
+ "3d",
581
+ "solid",
582
+ "primitive"
583
+ ],
584
+ "symbols": [
585
+ "sphere",
586
+ "cylinder"
587
+ ],
588
+ "seeAlso": [
589
+ "api/extrude",
590
+ "api/revolve"
591
+ ],
592
+ "file": "api/primitive-solids.md",
593
+ "bodyLength": 756
594
+ },
595
+ {
596
+ "id": "api/project-intersect",
597
+ "title": "project / intersect",
598
+ "summary": "Reduce 3D geometry to 2D sketch wires. `project` flattens edges along the sketch normal; `intersect` cuts the sketch plane through 3D objects.",
599
+ "tags": [
600
+ "api",
601
+ "2d",
602
+ "modifier",
603
+ "projection"
604
+ ],
605
+ "symbols": [
606
+ "project",
607
+ "intersect"
608
+ ],
609
+ "seeAlso": [
610
+ "api/sketch",
611
+ "api/offset"
612
+ ],
613
+ "file": "api/project-intersect.md",
614
+ "bodyLength": 1057
615
+ },
616
+ {
617
+ "id": "api/rect",
618
+ "title": "rect(width, height?)",
619
+ "summary": "Draws an axis-aligned rectangle on the active sketch plane. Optional corner radii via `.radius(...)` and edge/vertex accessors for downstream selections.",
620
+ "tags": [
621
+ "api",
622
+ "2d",
623
+ "primitive"
624
+ ],
625
+ "symbols": [
626
+ "rect"
627
+ ],
628
+ "seeAlso": [
629
+ "api/sketch",
630
+ "api/extrude"
631
+ ],
632
+ "file": "api/rect.md",
633
+ "bodyLength": 995
634
+ },
635
+ {
636
+ "id": "api/remove",
637
+ "title": "remove(...objects)",
638
+ "summary": "Deletes scene objects. Most useful after `.reusable()` once a profile is no longer needed.",
639
+ "tags": [
640
+ "api",
641
+ "utility"
642
+ ],
643
+ "symbols": [
644
+ "remove"
645
+ ],
646
+ "seeAlso": [
647
+ "api/sketch"
648
+ ],
649
+ "file": "api/remove.md",
650
+ "bodyLength": 506
651
+ },
652
+ {
653
+ "id": "api/repeat",
654
+ "title": "repeat(kind, axis | plane, options, ...features)",
655
+ "summary": "Re-applies a modeling feature (extrude, cut, fillet, …) at multiple positions, producing one solid with N copies of the feature.",
656
+ "tags": [
657
+ "api",
658
+ "pattern",
659
+ "transform"
660
+ ],
661
+ "symbols": [
662
+ "repeat"
663
+ ],
664
+ "seeAlso": [
665
+ "api/extrude",
666
+ "concepts/scene-graph"
667
+ ],
668
+ "file": "api/repeat.md",
669
+ "bodyLength": 2509
670
+ },
671
+ {
672
+ "id": "api/revolve",
673
+ "title": "revolve(axis, angle?)",
674
+ "summary": "Sweeps the last sketch around an axis. Full 360 by default; supply an angle for partial revolutions. The sketch plane must contain the axis.",
675
+ "tags": [
676
+ "api",
677
+ "3d",
678
+ "solid"
679
+ ],
680
+ "symbols": [
681
+ "revolve"
682
+ ],
683
+ "seeAlso": [
684
+ "api/sketch",
685
+ "api/sweep",
686
+ "api/extrude"
687
+ ],
688
+ "file": "api/revolve.md",
689
+ "bodyLength": 725
690
+ },
691
+ {
692
+ "id": "api/rib",
693
+ "title": "rib(thickness, spine?)",
694
+ "summary": "Builds a rib from an open spine sketch. Extends in the sketch plane normal until it meets surrounding solids.",
695
+ "tags": [
696
+ "api",
697
+ "3d",
698
+ "solid"
699
+ ],
700
+ "symbols": [
701
+ "rib"
702
+ ],
703
+ "seeAlso": [
704
+ "api/sketch",
705
+ "api/extrude"
706
+ ],
707
+ "file": "api/rib.md",
708
+ "bodyLength": 821
709
+ },
710
+ {
711
+ "id": "api/rotate",
712
+ "title": "rotate(axis, angle, ...targets?)",
713
+ "summary": "Rotates one or more objects around an axis (3D) or in the sketch plane (2D). Degrees, not radians.",
714
+ "tags": [
715
+ "api",
716
+ "3d",
717
+ "2d",
718
+ "transform"
719
+ ],
720
+ "symbols": [
721
+ "rotate"
722
+ ],
723
+ "seeAlso": [
724
+ "api/translate",
725
+ "api/mirror"
726
+ ],
727
+ "file": "api/rotate.md",
728
+ "bodyLength": 758
729
+ },
730
+ {
731
+ "id": "api/select",
732
+ "title": "select(...filters)",
733
+ "summary": "Runs filters across the entire scene and stores the result as the implicit \"last selection.\" The next op that needs a selection picks it up automatically.",
734
+ "tags": [
735
+ "api",
736
+ "selection"
737
+ ],
738
+ "symbols": [
739
+ "select"
740
+ ],
741
+ "seeAlso": [
742
+ "api/face-filter",
743
+ "api/edge-filter",
744
+ "concepts/last-selection"
745
+ ],
746
+ "file": "api/select.md",
747
+ "bodyLength": 1043
748
+ },
749
+ {
750
+ "id": "api/shell",
751
+ "title": "shell(thickness, ...openFaces?)",
752
+ "summary": "Hollows a solid into a thin wall. Pass faces to remove (open the shell). Negative thickness shells inward; positive shells outward.",
753
+ "tags": [
754
+ "api",
755
+ "3d",
756
+ "modifier"
757
+ ],
758
+ "symbols": [
759
+ "shell"
760
+ ],
761
+ "seeAlso": [
762
+ "api/extrude",
763
+ "api/fillet"
764
+ ],
765
+ "file": "api/shell.md",
766
+ "bodyLength": 985
767
+ },
768
+ {
769
+ "id": "api/sketch",
770
+ "title": "sketch(plane | face, sketcher)",
771
+ "summary": "Opens a 2D sketching context on a plane or a face. The active sketch is the implicit input to extrude/cut/revolve/sweep/loft.",
772
+ "tags": [
773
+ "api",
774
+ "2d",
775
+ "primitive"
776
+ ],
777
+ "symbols": [
778
+ "sketch"
779
+ ],
780
+ "seeAlso": [
781
+ "api/extrude",
782
+ "concepts/last-selection",
783
+ "concepts/scene-graph"
784
+ ],
785
+ "file": "api/sketch.md",
786
+ "bodyLength": 1888
787
+ },
788
+ {
789
+ "id": "api/slot",
790
+ "title": "slot(distance, radius)",
791
+ "summary": "Stadium-shaped slot — a rectangle with semicircular end caps — defined by length and end-cap radius.",
792
+ "tags": [
793
+ "api",
794
+ "2d",
795
+ "primitive"
796
+ ],
797
+ "symbols": [
798
+ "slot"
799
+ ],
800
+ "seeAlso": [
801
+ "api/rect",
802
+ "api/sketch"
803
+ ],
804
+ "file": "api/slot.md",
805
+ "bodyLength": 619
806
+ },
807
+ {
808
+ "id": "api/split-trim",
809
+ "title": "split / trim",
810
+ "summary": "Sketch-level cleanup. `split` breaks intersecting geometries at their crossings; `trim` discards the unwanted segments.",
811
+ "tags": [
812
+ "api",
813
+ "2d",
814
+ "modifier"
815
+ ],
816
+ "symbols": [
817
+ "split",
818
+ "trim"
819
+ ],
820
+ "seeAlso": [
821
+ "api/sketch",
822
+ "api/edge-filter"
823
+ ],
824
+ "file": "api/split-trim.md",
825
+ "bodyLength": 972
826
+ },
827
+ {
828
+ "id": "api/sweep",
829
+ "title": "sweep(path)",
830
+ "summary": "Sweeps the active sketch (profile) along a path sketch. The profile is consumed implicitly; the path is passed explicitly.",
831
+ "tags": [
832
+ "api",
833
+ "3d",
834
+ "solid"
835
+ ],
836
+ "symbols": [
837
+ "sweep"
838
+ ],
839
+ "seeAlso": [
840
+ "api/sketch",
841
+ "api/extrude",
842
+ "api/loft",
843
+ "api/revolve"
844
+ ],
845
+ "file": "api/sweep.md",
846
+ "bodyLength": 952
847
+ },
848
+ {
849
+ "id": "api/tarc",
850
+ "title": "tArc — tangent arc",
851
+ "summary": "The most flexible constrained primitive. Tangent-continues from the previous geometry; can target a point, a curve, or thread between two curves.",
852
+ "tags": [
853
+ "api",
854
+ "2d",
855
+ "constrained",
856
+ "curve"
857
+ ],
858
+ "symbols": [
859
+ "tArc"
860
+ ],
861
+ "seeAlso": [
862
+ "api/tline",
863
+ "api/tcircle",
864
+ "api/arc"
865
+ ],
866
+ "file": "api/tarc.md",
867
+ "bodyLength": 1205
868
+ },
869
+ {
870
+ "id": "api/tcircle",
871
+ "title": "tCircle — tangent circle",
872
+ "summary": "Full circle of given diameter tangent to two objects (or threading two points). Use qualifiers to disambiguate among the up-to-8 valid solutions.",
873
+ "tags": [
874
+ "api",
875
+ "2d",
876
+ "constrained",
877
+ "curve"
878
+ ],
879
+ "symbols": [
880
+ "tCircle"
881
+ ],
882
+ "seeAlso": [
883
+ "api/tline",
884
+ "api/tarc",
885
+ "api/circle"
886
+ ],
887
+ "file": "api/tcircle.md",
888
+ "bodyLength": 755
889
+ },
890
+ {
891
+ "id": "api/tline",
892
+ "title": "tLine — tangent line",
893
+ "summary": "Constrained tangent line — between two curves, from the cursor to one curve, or continuing the previous geometry's tangent.",
894
+ "tags": [
895
+ "api",
896
+ "2d",
897
+ "constrained",
898
+ "curve"
899
+ ],
900
+ "symbols": [
901
+ "tLine"
902
+ ],
903
+ "seeAlso": [
904
+ "api/tarc",
905
+ "api/tcircle",
906
+ "api/cursor-lines"
907
+ ],
908
+ "file": "api/tline.md",
909
+ "bodyLength": 981
910
+ },
911
+ {
912
+ "id": "api/translate",
913
+ "title": "translate(x, y?, z?, ...targets?)",
914
+ "summary": "Moves one or more objects by a vector. With no targets, operates on the last object. Pass `copy: true` to clone instead of moving.",
915
+ "tags": [
916
+ "api",
917
+ "3d",
918
+ "transform"
919
+ ],
920
+ "symbols": [
921
+ "translate"
922
+ ],
923
+ "seeAlso": [
924
+ "api/rotate",
925
+ "api/mirror",
926
+ "api/copy"
927
+ ],
928
+ "file": "api/translate.md",
929
+ "bodyLength": 858
930
+ },
931
+ {
932
+ "id": "api/types/aline",
933
+ "title": "ALine",
934
+ "summary": "The ALine type. Extends Geometry; adds 1 method.",
935
+ "tags": [
936
+ "api",
937
+ "type",
938
+ "interface"
939
+ ],
940
+ "symbols": [
941
+ "ALine",
942
+ "IALine"
943
+ ],
944
+ "seeAlso": [
945
+ "api/line",
946
+ "api/types/geometry"
947
+ ],
948
+ "file": "api/types/aline.md",
949
+ "bodyLength": 641
950
+ },
951
+ {
952
+ "id": "api/types/arc-angles",
953
+ "title": "ArcAngles",
954
+ "summary": "The ArcAngles type. Extends ExtrudableGeometry; adds 1 method.",
955
+ "tags": [
956
+ "api",
957
+ "type",
958
+ "interface"
959
+ ],
960
+ "symbols": [
961
+ "ArcAngles",
962
+ "IArcAngles"
963
+ ],
964
+ "seeAlso": [
965
+ "api/arc",
966
+ "api/types/extrudable-geometry"
967
+ ],
968
+ "file": "api/types/arc-angles.md",
969
+ "bodyLength": 367
970
+ },
971
+ {
972
+ "id": "api/types/arc-points",
973
+ "title": "ArcPoints",
974
+ "summary": "The ArcPoints type. Extends ExtrudableGeometry; adds 2 methods.",
975
+ "tags": [
976
+ "api",
977
+ "type",
978
+ "interface"
979
+ ],
980
+ "symbols": [
981
+ "ArcPoints",
982
+ "IArcPoints"
983
+ ],
984
+ "seeAlso": [
985
+ "api/arc",
986
+ "api/types/extrudable-geometry"
987
+ ],
988
+ "file": "api/types/arc-points.md",
989
+ "bodyLength": 840
990
+ },
991
+ {
992
+ "id": "api/types/axis-like",
993
+ "title": "AxisLike",
994
+ "summary": "An axis reference accepted by revolve(), repeat(), and other axis-based operations.",
995
+ "tags": [
996
+ "api",
997
+ "type",
998
+ "union"
999
+ ],
1000
+ "symbols": [
1001
+ "AxisLike",
1002
+ "AxisObjectBase"
1003
+ ],
1004
+ "seeAlso": [
1005
+ "api/revolve",
1006
+ "api/axis",
1007
+ "api/types/axis"
1008
+ ],
1009
+ "file": "api/types/axis-like.md",
1010
+ "bodyLength": 718
1011
+ },
1012
+ {
1013
+ "id": "api/types/axis",
1014
+ "title": "Axis",
1015
+ "summary": "The Axis type. Extends SceneObject.",
1016
+ "tags": [
1017
+ "api",
1018
+ "type",
1019
+ "interface"
1020
+ ],
1021
+ "symbols": [
1022
+ "Axis",
1023
+ "IAxis"
1024
+ ],
1025
+ "seeAlso": [
1026
+ "api/axis",
1027
+ "api/types/axis-like",
1028
+ "api/types/scene-object"
1029
+ ],
1030
+ "file": "api/types/axis.md",
1031
+ "bodyLength": 208
1032
+ },
1033
+ {
1034
+ "id": "api/types/boolean-operation",
1035
+ "title": "BooleanOperation",
1036
+ "summary": "The BooleanOperation type. Extends SceneObject; adds 4 methods.",
1037
+ "tags": [
1038
+ "api",
1039
+ "type",
1040
+ "interface"
1041
+ ],
1042
+ "symbols": [
1043
+ "BooleanOperation",
1044
+ "IBooleanOperation"
1045
+ ],
1046
+ "seeAlso": [
1047
+ "api/types/scene-object",
1048
+ "concepts/scene-graph"
1049
+ ],
1050
+ "file": "api/types/boolean-operation.md",
1051
+ "bodyLength": 976
1052
+ },
1053
+ {
1054
+ "id": "api/types/circular-repeat-options",
1055
+ "title": "CircularRepeatOptions",
1056
+ "summary": "Options for `repeat(\"circular\", ...)`.",
1057
+ "tags": [
1058
+ "api",
1059
+ "type",
1060
+ "options"
1061
+ ],
1062
+ "symbols": [
1063
+ "CircularRepeatOptions"
1064
+ ],
1065
+ "seeAlso": [
1066
+ "api/repeat"
1067
+ ],
1068
+ "file": "api/types/circular-repeat-options.md",
1069
+ "bodyLength": 853
1070
+ },
1071
+ {
1072
+ "id": "api/types/common",
1073
+ "title": "Common",
1074
+ "summary": "The Common type. Extends SceneObject; adds 1 method.",
1075
+ "tags": [
1076
+ "api",
1077
+ "type",
1078
+ "interface"
1079
+ ],
1080
+ "symbols": [
1081
+ "Common",
1082
+ "ICommon"
1083
+ ],
1084
+ "seeAlso": [
1085
+ "api/booleans",
1086
+ "api/types/scene-object"
1087
+ ],
1088
+ "file": "api/types/common.md",
1089
+ "bodyLength": 518
1090
+ },
1091
+ {
1092
+ "id": "api/types/cut",
1093
+ "title": "Cut",
1094
+ "summary": "The Cut type. Extends SceneObject; adds 10 methods.",
1095
+ "tags": [
1096
+ "api",
1097
+ "type",
1098
+ "interface"
1099
+ ],
1100
+ "symbols": [
1101
+ "Cut",
1102
+ "ICut"
1103
+ ],
1104
+ "seeAlso": [
1105
+ "api/cut",
1106
+ "api/types/scene-object"
1107
+ ],
1108
+ "file": "api/types/cut.md",
1109
+ "bodyLength": 3643
1110
+ },
1111
+ {
1112
+ "id": "api/types/draft",
1113
+ "title": "Draft",
1114
+ "summary": "The Draft type. Extends SceneObject.",
1115
+ "tags": [
1116
+ "api",
1117
+ "type",
1118
+ "interface"
1119
+ ],
1120
+ "symbols": [
1121
+ "Draft",
1122
+ "IDraft"
1123
+ ],
1124
+ "seeAlso": [
1125
+ "api/draft",
1126
+ "api/types/scene-object"
1127
+ ],
1128
+ "file": "api/types/draft.md",
1129
+ "bodyLength": 210
1130
+ },
1131
+ {
1132
+ "id": "api/types/extrudable-geometry",
1133
+ "title": "ExtrudableGeometry",
1134
+ "summary": "The ExtrudableGeometry type. Extends Geometry.",
1135
+ "tags": [
1136
+ "api",
1137
+ "type",
1138
+ "interface"
1139
+ ],
1140
+ "symbols": [
1141
+ "ExtrudableGeometry",
1142
+ "IExtrudableGeometry"
1143
+ ],
1144
+ "seeAlso": [
1145
+ "api/types/geometry",
1146
+ "api/extrude"
1147
+ ],
1148
+ "file": "api/types/extrudable-geometry.md",
1149
+ "bodyLength": 302
1150
+ },
1151
+ {
1152
+ "id": "api/types/extrude",
1153
+ "title": "Extrude",
1154
+ "summary": "The Extrude type. Extends BooleanOperation; adds 16 methods.",
1155
+ "tags": [
1156
+ "api",
1157
+ "type",
1158
+ "interface"
1159
+ ],
1160
+ "symbols": [
1161
+ "Extrude",
1162
+ "IExtrude"
1163
+ ],
1164
+ "seeAlso": [
1165
+ "api/extrude",
1166
+ "api/types/boolean-operation"
1167
+ ],
1168
+ "file": "api/types/extrude.md",
1169
+ "bodyLength": 6019
1170
+ },
1171
+ {
1172
+ "id": "api/types/geometry",
1173
+ "title": "Geometry",
1174
+ "summary": "The Geometry type. Extends SceneObject; adds 4 methods.",
1175
+ "tags": [
1176
+ "api",
1177
+ "type",
1178
+ "interface"
1179
+ ],
1180
+ "symbols": [
1181
+ "Geometry",
1182
+ "IGeometry"
1183
+ ],
1184
+ "seeAlso": [
1185
+ "api/types/scene-object"
1186
+ ],
1187
+ "file": "api/types/geometry.md",
1188
+ "bodyLength": 909
1189
+ },
1190
+ {
1191
+ "id": "api/types/hline",
1192
+ "title": "HLine",
1193
+ "summary": "The HLine type. Extends Geometry; adds 1 method.",
1194
+ "tags": [
1195
+ "api",
1196
+ "type",
1197
+ "interface"
1198
+ ],
1199
+ "symbols": [
1200
+ "HLine",
1201
+ "IHLine"
1202
+ ],
1203
+ "seeAlso": [
1204
+ "api/line",
1205
+ "api/types/geometry"
1206
+ ],
1207
+ "file": "api/types/hline.md",
1208
+ "bodyLength": 641
1209
+ },
1210
+ {
1211
+ "id": "api/types/linear-repeat-options",
1212
+ "title": "LinearRepeatOptions",
1213
+ "summary": "Options for `repeat(\"linear\", ...)`.",
1214
+ "tags": [
1215
+ "api",
1216
+ "type",
1217
+ "options"
1218
+ ],
1219
+ "symbols": [
1220
+ "LinearRepeatOptions"
1221
+ ],
1222
+ "seeAlso": [
1223
+ "api/repeat"
1224
+ ],
1225
+ "file": "api/types/linear-repeat-options.md",
1226
+ "bodyLength": 991
1227
+ },
1228
+ {
1229
+ "id": "api/types/loft",
1230
+ "title": "Loft",
1231
+ "summary": "The Loft type. Extends BooleanOperation; adds 11 methods.",
1232
+ "tags": [
1233
+ "api",
1234
+ "type",
1235
+ "interface"
1236
+ ],
1237
+ "symbols": [
1238
+ "Loft",
1239
+ "ILoft"
1240
+ ],
1241
+ "seeAlso": [
1242
+ "api/loft",
1243
+ "api/types/boolean-operation"
1244
+ ],
1245
+ "file": "api/types/loft.md",
1246
+ "bodyLength": 4832
1247
+ },
1248
+ {
1249
+ "id": "api/types/mirror",
1250
+ "title": "Mirror",
1251
+ "summary": "The Mirror type. Extends BooleanOperation; adds 1 method.",
1252
+ "tags": [
1253
+ "api",
1254
+ "type",
1255
+ "interface"
1256
+ ],
1257
+ "symbols": [
1258
+ "Mirror",
1259
+ "IMirror"
1260
+ ],
1261
+ "seeAlso": [
1262
+ "api/mirror",
1263
+ "api/types/boolean-operation"
1264
+ ],
1265
+ "file": "api/types/mirror.md",
1266
+ "bodyLength": 670
1267
+ },
1268
+ {
1269
+ "id": "api/types/offset",
1270
+ "title": "Offset",
1271
+ "summary": "The Offset type. Extends ExtrudableGeometry; adds 1 method.",
1272
+ "tags": [
1273
+ "api",
1274
+ "type",
1275
+ "interface"
1276
+ ],
1277
+ "symbols": [
1278
+ "Offset",
1279
+ "IOffset"
1280
+ ],
1281
+ "seeAlso": [
1282
+ "api/offset",
1283
+ "api/types/extrudable-geometry"
1284
+ ],
1285
+ "file": "api/types/offset.md",
1286
+ "bodyLength": 499
1287
+ },
1288
+ {
1289
+ "id": "api/types/plane-like",
1290
+ "title": "PlaneLike",
1291
+ "summary": "A plane reference accepted by sketch(), filters, and other plane-aware operations.",
1292
+ "tags": [
1293
+ "api",
1294
+ "type",
1295
+ "union"
1296
+ ],
1297
+ "symbols": [
1298
+ "PlaneLike",
1299
+ "PlaneObjectBase"
1300
+ ],
1301
+ "seeAlso": [
1302
+ "api/sketch",
1303
+ "api/plane",
1304
+ "api/types/plane",
1305
+ "api/types/scene-object"
1306
+ ],
1307
+ "file": "api/types/plane-like.md",
1308
+ "bodyLength": 1090
1309
+ },
1310
+ {
1311
+ "id": "api/types/plane-transform-options",
1312
+ "title": "PlaneTransformOptions",
1313
+ "summary": "Options accepted by `plane()` for offsetting and rotating a plane in its own frame.",
1314
+ "tags": [
1315
+ "api",
1316
+ "type",
1317
+ "options"
1318
+ ],
1319
+ "symbols": [
1320
+ "PlaneTransformOptions",
1321
+ "PlaneRenderableOptions"
1322
+ ],
1323
+ "seeAlso": [
1324
+ "api/plane"
1325
+ ],
1326
+ "file": "api/types/plane-transform-options.md",
1327
+ "bodyLength": 833
1328
+ },
1329
+ {
1330
+ "id": "api/types/plane",
1331
+ "title": "Plane",
1332
+ "summary": "The Plane type. Extends SceneObject.",
1333
+ "tags": [
1334
+ "api",
1335
+ "type",
1336
+ "interface"
1337
+ ],
1338
+ "symbols": [
1339
+ "Plane",
1340
+ "IPlane"
1341
+ ],
1342
+ "seeAlso": [
1343
+ "api/plane",
1344
+ "api/types/plane-like",
1345
+ "api/types/scene-object"
1346
+ ],
1347
+ "file": "api/types/plane.md",
1348
+ "bodyLength": 210
1349
+ },
1350
+ {
1351
+ "id": "api/types/point-like",
1352
+ "title": "PointLike",
1353
+ "summary": "A 3D point accepted by translate() and other 3D operations.",
1354
+ "tags": [
1355
+ "api",
1356
+ "type",
1357
+ "union"
1358
+ ],
1359
+ "symbols": [
1360
+ "PointLike"
1361
+ ],
1362
+ "seeAlso": [
1363
+ "api/translate"
1364
+ ],
1365
+ "file": "api/types/point-like.md",
1366
+ "bodyLength": 428
1367
+ },
1368
+ {
1369
+ "id": "api/types/point2dlike",
1370
+ "title": "Point2DLike",
1371
+ "summary": "A 2D point accepted by sketching functions.",
1372
+ "tags": [
1373
+ "api",
1374
+ "type",
1375
+ "union"
1376
+ ],
1377
+ "symbols": [
1378
+ "Point2DLike"
1379
+ ],
1380
+ "seeAlso": [
1381
+ "api/line",
1382
+ "api/rect",
1383
+ "api/types/vertex"
1384
+ ],
1385
+ "file": "api/types/point2dlike.md",
1386
+ "bodyLength": 553
1387
+ },
1388
+ {
1389
+ "id": "api/types/polygon",
1390
+ "title": "Polygon",
1391
+ "summary": "The Polygon type. Extends ExtrudableGeometry; adds 2 methods.",
1392
+ "tags": [
1393
+ "api",
1394
+ "type",
1395
+ "interface"
1396
+ ],
1397
+ "symbols": [
1398
+ "Polygon",
1399
+ "IPolygon"
1400
+ ],
1401
+ "seeAlso": [
1402
+ "api/polygon",
1403
+ "api/types/extrudable-geometry"
1404
+ ],
1405
+ "file": "api/types/polygon.md",
1406
+ "bodyLength": 789
1407
+ },
1408
+ {
1409
+ "id": "api/types/rect",
1410
+ "title": "Rect",
1411
+ "summary": "The Rect type. Extends ExtrudableGeometry; adds 14 methods.",
1412
+ "tags": [
1413
+ "api",
1414
+ "type",
1415
+ "interface"
1416
+ ],
1417
+ "symbols": [
1418
+ "Rect",
1419
+ "IRect"
1420
+ ],
1421
+ "seeAlso": [
1422
+ "api/rect",
1423
+ "api/types/extrudable-geometry"
1424
+ ],
1425
+ "file": "api/types/rect.md",
1426
+ "bodyLength": 2884
1427
+ },
1428
+ {
1429
+ "id": "api/types/revolve",
1430
+ "title": "Revolve",
1431
+ "summary": "The Revolve type. Extends BooleanOperation; adds 7 methods.",
1432
+ "tags": [
1433
+ "api",
1434
+ "type",
1435
+ "interface"
1436
+ ],
1437
+ "symbols": [
1438
+ "Revolve",
1439
+ "IRevolve"
1440
+ ],
1441
+ "seeAlso": [
1442
+ "api/revolve",
1443
+ "api/types/boolean-operation"
1444
+ ],
1445
+ "file": "api/types/revolve.md",
1446
+ "bodyLength": 3040
1447
+ },
1448
+ {
1449
+ "id": "api/types/rib",
1450
+ "title": "Rib",
1451
+ "summary": "The Rib type. Extends BooleanOperation; adds 11 methods.",
1452
+ "tags": [
1453
+ "api",
1454
+ "type",
1455
+ "interface"
1456
+ ],
1457
+ "symbols": [
1458
+ "Rib",
1459
+ "IRib"
1460
+ ],
1461
+ "seeAlso": [
1462
+ "api/rib",
1463
+ "api/types/boolean-operation"
1464
+ ],
1465
+ "file": "api/types/rib.md",
1466
+ "bodyLength": 3784
1467
+ },
1468
+ {
1469
+ "id": "api/types/scene-object",
1470
+ "title": "SceneObject",
1471
+ "summary": "The SceneObject type. Defines 2 methods.",
1472
+ "tags": [
1473
+ "api",
1474
+ "type",
1475
+ "interface"
1476
+ ],
1477
+ "symbols": [
1478
+ "SceneObject",
1479
+ "ISceneObject"
1480
+ ],
1481
+ "seeAlso": [
1482
+ "api/select",
1483
+ "concepts/scene-graph"
1484
+ ],
1485
+ "file": "api/types/scene-object.md",
1486
+ "bodyLength": 590
1487
+ },
1488
+ {
1489
+ "id": "api/types/select",
1490
+ "title": "Select",
1491
+ "summary": "The Select type. Extends SceneObject.",
1492
+ "tags": [
1493
+ "api",
1494
+ "type",
1495
+ "interface"
1496
+ ],
1497
+ "symbols": [
1498
+ "Select",
1499
+ "ISelect"
1500
+ ],
1501
+ "seeAlso": [
1502
+ "api/select",
1503
+ "api/types/scene-object"
1504
+ ],
1505
+ "file": "api/types/select.md",
1506
+ "bodyLength": 212
1507
+ },
1508
+ {
1509
+ "id": "api/types/shell",
1510
+ "title": "Shell",
1511
+ "summary": "The Shell type. Extends SceneObject; adds 3 methods.",
1512
+ "tags": [
1513
+ "api",
1514
+ "type",
1515
+ "interface"
1516
+ ],
1517
+ "symbols": [
1518
+ "Shell",
1519
+ "IShell"
1520
+ ],
1521
+ "seeAlso": [
1522
+ "api/shell",
1523
+ "api/types/scene-object"
1524
+ ],
1525
+ "file": "api/types/shell.md",
1526
+ "bodyLength": 1310
1527
+ },
1528
+ {
1529
+ "id": "api/types/slot",
1530
+ "title": "Slot",
1531
+ "summary": "The Slot type. Extends ExtrudableGeometry; adds 2 methods.",
1532
+ "tags": [
1533
+ "api",
1534
+ "type",
1535
+ "interface"
1536
+ ],
1537
+ "symbols": [
1538
+ "Slot",
1539
+ "ISlot"
1540
+ ],
1541
+ "seeAlso": [
1542
+ "api/slot",
1543
+ "api/types/extrudable-geometry"
1544
+ ],
1545
+ "file": "api/types/slot.md",
1546
+ "bodyLength": 811
1547
+ },
1548
+ {
1549
+ "id": "api/types/sweep",
1550
+ "title": "Sweep",
1551
+ "summary": "The Sweep type. Extends BooleanOperation; adds 15 methods.",
1552
+ "tags": [
1553
+ "api",
1554
+ "type",
1555
+ "interface"
1556
+ ],
1557
+ "symbols": [
1558
+ "Sweep",
1559
+ "ISweep"
1560
+ ],
1561
+ "seeAlso": [
1562
+ "api/sweep",
1563
+ "api/types/boolean-operation"
1564
+ ],
1565
+ "file": "api/types/sweep.md",
1566
+ "bodyLength": 5797
1567
+ },
1568
+ {
1569
+ "id": "api/types/tangent-arc-two-objects",
1570
+ "title": "TangentArcTwoObjects",
1571
+ "summary": "The TangentArcTwoObjects type. Extends Geometry; adds 2 methods.",
1572
+ "tags": [
1573
+ "api",
1574
+ "type",
1575
+ "interface"
1576
+ ],
1577
+ "symbols": [
1578
+ "TangentArcTwoObjects",
1579
+ "ITangentArcTwoObjects"
1580
+ ],
1581
+ "seeAlso": [
1582
+ "api/tarc",
1583
+ "api/types/geometry"
1584
+ ],
1585
+ "file": "api/types/tangent-arc-two-objects.md",
1586
+ "bodyLength": 847
1587
+ },
1588
+ {
1589
+ "id": "api/types/transformable",
1590
+ "title": "Transformable",
1591
+ "summary": "Scene objects that can be chained with world-space transformations.",
1592
+ "tags": [
1593
+ "api",
1594
+ "type",
1595
+ "interface"
1596
+ ],
1597
+ "symbols": [
1598
+ "Transformable",
1599
+ "ITransformable"
1600
+ ],
1601
+ "seeAlso": [
1602
+ "api/types/scene-object",
1603
+ "api/translate",
1604
+ "api/rotate"
1605
+ ],
1606
+ "file": "api/types/transformable.md",
1607
+ "bodyLength": 2186
1608
+ },
1609
+ {
1610
+ "id": "api/types/trim",
1611
+ "title": "Trim",
1612
+ "summary": "The Trim type. Defines 1 method.",
1613
+ "tags": [
1614
+ "api",
1615
+ "type",
1616
+ "interface"
1617
+ ],
1618
+ "symbols": [
1619
+ "Trim",
1620
+ "ITrim"
1621
+ ],
1622
+ "seeAlso": [
1623
+ "api/split-trim"
1624
+ ],
1625
+ "file": "api/types/trim.md",
1626
+ "bodyLength": 428
1627
+ },
1628
+ {
1629
+ "id": "api/types/two-objects-tangent-line",
1630
+ "title": "TwoObjectsTangentLine",
1631
+ "summary": "The TwoObjectsTangentLine type. Extends Geometry; adds 2 methods.",
1632
+ "tags": [
1633
+ "api",
1634
+ "type",
1635
+ "interface"
1636
+ ],
1637
+ "symbols": [
1638
+ "TwoObjectsTangentLine",
1639
+ "ITwoObjectsTangentLine"
1640
+ ],
1641
+ "seeAlso": [
1642
+ "api/tline",
1643
+ "api/types/geometry"
1644
+ ],
1645
+ "file": "api/types/two-objects-tangent-line.md",
1646
+ "bodyLength": 853
1647
+ },
1648
+ {
1649
+ "id": "api/types/vertex",
1650
+ "title": "Vertex",
1651
+ "summary": "A lazy-evaluated vertex representing a point on existing geometry.",
1652
+ "tags": [
1653
+ "api",
1654
+ "type",
1655
+ "union"
1656
+ ],
1657
+ "symbols": [
1658
+ "Vertex",
1659
+ "LazyVertex"
1660
+ ],
1661
+ "seeAlso": [
1662
+ "api/types/point2dlike"
1663
+ ],
1664
+ "file": "api/types/vertex.md",
1665
+ "bodyLength": 347
1666
+ },
1667
+ {
1668
+ "id": "api/types/vline",
1669
+ "title": "VLine",
1670
+ "summary": "The VLine type. Extends Geometry; adds 1 method.",
1671
+ "tags": [
1672
+ "api",
1673
+ "type",
1674
+ "interface"
1675
+ ],
1676
+ "symbols": [
1677
+ "VLine",
1678
+ "IVLine"
1679
+ ],
1680
+ "seeAlso": [
1681
+ "api/line",
1682
+ "api/types/geometry"
1683
+ ],
1684
+ "file": "api/types/vline.md",
1685
+ "bodyLength": 641
1686
+ },
1687
+ {
1688
+ "id": "concepts/coordinate-system",
1689
+ "title": "Coordinate systems and sketch axes",
1690
+ "summary": "World axes are x, y, z. Standard planes are xy, xz, yz. \"x\"/\"y\"/\"z\" always mean world axes — even inside a sketch. Use local(\"x\" | \"y\" | \"z\") for the sketch plane's local axes.",
1691
+ "tags": [
1692
+ "concept",
1693
+ "geometry"
1694
+ ],
1695
+ "seeAlso": [
1696
+ "api/sketch"
1697
+ ],
1698
+ "file": "concepts/coordinate-system.md",
1699
+ "bodyLength": 1063
1700
+ },
1701
+ {
1702
+ "id": "concepts/history-and-rollback",
1703
+ "title": "History and rollback",
1704
+ "summary": "The feature tree is also a timeline. Rollback shows the scene at any earlier point; breakpoints stop evaluation there for inspection.",
1705
+ "tags": [
1706
+ "concept",
1707
+ "debug"
1708
+ ],
1709
+ "seeAlso": [
1710
+ "concepts/scene-graph"
1711
+ ],
1712
+ "file": "concepts/history-and-rollback.md",
1713
+ "bodyLength": 1266
1714
+ },
1715
+ {
1716
+ "id": "concepts/last-selection",
1717
+ "title": "Implicit \"last-X\" context (last sketch, last selection)",
1718
+ "summary": "Many operations have a default target. extrude consumes the last sketch; fillet consumes the last selection. Pass arguments explicitly to override.",
1719
+ "tags": [
1720
+ "concept",
1721
+ "architecture"
1722
+ ],
1723
+ "seeAlso": [
1724
+ "concepts/scene-graph",
1725
+ "api/sketch",
1726
+ "api/extrude",
1727
+ "api/fillet"
1728
+ ],
1729
+ "file": "concepts/last-selection.md",
1730
+ "bodyLength": 1535
1731
+ },
1732
+ {
1733
+ "id": "concepts/scene-graph",
1734
+ "title": "The scene graph and feature tree",
1735
+ "summary": "Each call to a feature (sketch, extrude, fillet, …) appends a SceneObject to an ordered feature tree. The tree drives history, rollback, and shape reuse across re-renders.",
1736
+ "tags": [
1737
+ "concept",
1738
+ "architecture"
1739
+ ],
1740
+ "seeAlso": [
1741
+ "concepts/last-selection",
1742
+ "concepts/history-and-rollback",
1743
+ "api/sketch",
1744
+ "api/extrude"
1745
+ ],
1746
+ "file": "concepts/scene-graph.md",
1747
+ "bodyLength": 1323
1748
+ }
1749
+ ]
1750
+ }