forgecad 0.9.13 → 0.9.14

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 (57) hide show
  1. package/dist/assets/{AdminPage-DramHHDf.js → AdminPage-eWGs2K6H.js} +1 -1
  2. package/dist/assets/{BenchmarkPage-Bjgkh5m9.js → BenchmarkPage-CTrLKfpo.js} +1 -1
  3. package/dist/assets/{BlogPage-n_HGP3Qm.js → BlogPage-5nPesyds.js} +1 -1
  4. package/dist/assets/{DocsPage-WCIkPmzC.js → DocsPage-C4Y3nbYc.js} +1 -1
  5. package/dist/assets/{EditorApp-CP9Za6tm.js → EditorApp-lXv53A1m.js} +9 -29
  6. package/dist/assets/{EmbedViewer-DEZKqdfW.js → EmbedViewer-C8fB4n5U.js} +2 -2
  7. package/dist/assets/{LandingPageProofDriven-CeRIctuj.js → LandingPageProofDriven-jSz0LaMM.js} +1 -1
  8. package/dist/assets/{PricingPage-rIRa8p4Y.js → PricingPage-B83B90zh.js} +1 -1
  9. package/dist/assets/{SettingsPage-BqCUvEXM.js → SettingsPage-DY889pcu.js} +1 -1
  10. package/dist/assets/{app-BUZqJvSO.js → app-bEww1ic4.js} +26 -28
  11. package/dist/assets/cli/{render-lhGxj50Y.js → render-Cho2uKG_.js} +88 -25
  12. package/dist/assets/{constructionHistoryWorker-ipD1jcIv.js → constructionHistoryWorker-HYwzJY4m.js} +1 -1
  13. package/dist/assets/{evalWorker-CHXSe_-u.js → evalWorker-CjQwJSE-.js} +3 -3
  14. package/dist/assets/{forgecad_geometry-BVnIeXMG.js → forgecad_geometry-CH2nvuLA.js} +1 -1
  15. package/dist/assets/forgecad_geometry_bg-C5_E9Oa9.wasm +0 -0
  16. package/dist/assets/{manifold-D1LZIHqn.js → manifold-CG9Fokx-.js} +1 -1
  17. package/dist/assets/{manifold-BTkzxi9V.js → manifold-rmfAcdwF.js} +1 -1
  18. package/dist/assets/{manifold-C2fwoTgd.js → manifold-uRzgk5O8.js} +2 -2
  19. package/dist/assets/{reportWorker-Cq1qGmg0.js → reportWorker-4cW_ZpoS.js} +3 -3
  20. package/dist/assets/{scalar-sampling-budget-D9Qv_UlJ.js → scalar-sampling-budget-CfDiFvh7.js} +12 -18
  21. package/dist/assets/{solver-BZ9LPTHs.js → solver-DuJAO8S6.js} +1 -1
  22. package/dist/assets/solver_bg-CWvv4lnN.wasm +0 -0
  23. package/dist/assets/{renderSceneState-Dr0xPq1A.js → targets-D6PWsv6X.js} +27 -1
  24. package/dist/cli/render.html +1 -1
  25. package/dist/docs/index.html +2 -2
  26. package/dist/docs-raw/AI/usage.md +6 -5
  27. package/dist/docs-raw/CLI.md +41 -11
  28. package/dist/docs-raw/generated/concepts.md +3 -3
  29. package/dist/docs-raw/generated/viewport.md +3 -3
  30. package/dist/docs-raw/harbor-cli.md +854 -0
  31. package/dist/docs-raw/rl-environments.md +100 -258
  32. package/dist/docs-raw/skills/forgecad-3d-reconstruction.md +2 -2
  33. package/dist/docs-raw/skills/forgecad-make-a-model.md +3 -3
  34. package/dist/docs-raw/skills/forgecad-reconstruction-benchmark.md +3 -3
  35. package/dist/index.html +1 -1
  36. package/dist/sitemap.xml +7 -7
  37. package/dist-cli/{check-compiler-LOXCPEOI.js → check-compiler-U5SOPN7X.js} +2 -2
  38. package/dist-cli/{check-query-propagation-BAKNVWXR.js → check-query-propagation-XOKNSSYU.js} +2 -2
  39. package/dist-cli/{chunk-RY43WF46.js → chunk-EXWGNL6K.js} +342 -2
  40. package/dist-cli/{chunk-RY43WF46.js.map → chunk-EXWGNL6K.js.map} +1 -1
  41. package/dist-cli/forgecad.js +733 -352
  42. package/dist-cli/forgecad.js.map +1 -1
  43. package/dist-cli/forgecad_geometry_bg.wasm +0 -0
  44. package/dist-cli/solver_bg.wasm +0 -0
  45. package/dist-skill/CONTEXT.md +3 -3
  46. package/dist-skill/docs/CLI.md +41 -11
  47. package/dist-skill/docs/generated/viewport.md +3 -3
  48. package/dist-skill/docs-dev/CLI.md +41 -11
  49. package/dist-skill/docs-dev/generated/viewport.md +3 -3
  50. package/dist-skill/library/forgecad-3d-reconstruction/SKILL.md +2 -2
  51. package/dist-skill/library/forgecad-make-a-model/SKILL.md +3 -3
  52. package/dist-skill/library/forgecad-reconstruction-benchmark/SKILL.md +3 -3
  53. package/package.json +1 -6
  54. package/dist/assets/forgecad_geometry_bg-DufhhCBV.wasm +0 -0
  55. package/dist/assets/solver_bg-DAHZJ_rw.wasm +0 -0
  56. /package/dist-cli/{check-compiler-LOXCPEOI.js.map → check-compiler-U5SOPN7X.js.map} +0 -0
  57. /package/dist-cli/{check-query-propagation-BAKNVWXR.js.map → check-query-propagation-XOKNSSYU.js.map} +0 -0
Binary file
Binary file
@@ -9189,13 +9189,13 @@ Overloads:
9189
9189
  - `offset?: number` — Optional offset along the plane normal (primarily for object-form overload).
9190
9190
  - `exclude?: CutPlaneExcludeInput` — Object names to keep uncut for this plane.
9191
9191
 
9192
- #### `mock()` — Register a mock (context) object for visualization and collision checking.
9192
+ #### `mock()` — Register a mock (context) object for visualization and inspection.
9193
9193
 
9194
- Mock objects appear in the viewport and spatial analysis when you run a file directly, but are excluded when the file is imported via [`require()`](/docs/core#require). This lets you model the surrounding context — walls, bolts, mating parts — without polluting the module's exports.
9194
+ Mock objects appear in the viewport and inspection analysis when you run a file directly, but are excluded when the file is imported via [`require()`](/docs/core#require). This lets you model the surrounding context — walls, bolts, mating parts — without polluting the module's exports.
9195
9195
 
9196
9196
  The shape is returned unchanged, so you can reference it for alignment, dimensioning, and `verify` checks.
9197
9197
 
9198
- Mock objects participate in `forgecad run --spatial bounded|exact` collision detection and spatial analysis. Their names appear with a `(mock)` suffix in reports.
9198
+ Mock objects participate in focused inspection commands such as `forgecad inspect fit interference` and `forgecad inspect physical gaps`. Their names appear with a `(mock)` suffix in reports.
9199
9199
 
9200
9200
  In the viewport, mock objects render at reduced opacity so they are visually distinct from real geometry.
9201
9201
 
@@ -32,7 +32,7 @@ forgecad project push
32
32
  forgecad project open
33
33
  ```
34
34
 
35
- Most CLI commands require a ForgeCAD account. Run `forgecad login` and choose email/password or API token when prompted. Use `FORGECAD_TOKEN=fc_pat_... forgecad <command>` only for CI/CD and one-off automation. `forgecad studio` always requires an explicit project path; use `.` for the current project.
35
+ Local modeling, inspection, export, and skill-install commands do not require a ForgeCAD account. Hosted project sync, publishing, token management, and license activation require sign-in. Run `forgecad login` and choose email/password or API token when prompted. Use `FORGECAD_TOKEN=fc_pat_... forgecad <hosted-command>` only for CI/CD and one-off automation. `forgecad studio` always requires an explicit project path; use `.` for the current project.
36
36
 
37
37
  You can also start from the hosted starter project with `forgecad project clone start-here`, then `cd start-here` and `forgecad studio .`.
38
38
 
@@ -66,13 +66,13 @@ Execute scripts and produce images headless — no browser window. Renders use C
66
66
 
67
67
  ### `forgecad run`
68
68
 
69
- Execute a Forge script quickly and print the inner-loop build summary: returned objects, verification results, parameters, and timing.
69
+ Execute a Forge script quickly and print the inner-loop build summary: build count, verification results, parameters, and timing.
70
70
 
71
- The fast validation command. Runs your script with the real geometry kernel (no browser needed) and reports whether it built, which objects came back, any `verify.*` results, parameter values, script logs, and elapsed script time. This is the command agents should run frequently while editing a model.
71
+ The fast validation command. Runs your script with the real geometry kernel (no browser needed) and reports whether it built, how many objects came back, any `verify.*` results, parameter values, script logs, and elapsed script time. This is the command agents should run frequently while editing a model.
72
72
 
73
- **Fast by default** — a bare `forgecad run model.forge.js` does not compute per-object volumes, bounding boxes, construction history, feature tallies, spatial relationships, collision intersections, or solver profiles. Those diagnostics are useful, but they are no longer part of the hot path.
73
+ **Fast by default** — a bare `forgecad run model.forge.js` does not compute per-object volumes, bounding boxes, construction history, feature tallies, or solver profiles. Those run diagnostics are useful, but they are no longer part of the hot path.
74
74
 
75
- **Opt-in diagnostics** — use `--details` for volume/bounding-box/object geometry summaries, `--history` for the construction tree, `--features` for feature tallies, or `--solver-profile` for constraint solver timing. Use `--spatial bounded|exact` only when you want directional relationships and collision intersections from the run command itself.
75
+ **Opt-in diagnostics** — use `--details` for volume/bounding-box/object geometry summaries, `--history` for the construction tree, `--features` for feature tallies, or `--solver-profile` for constraint solver timing. Use `inspect fit interference`, `inspect physical gaps`, or `inspect mechanical-integrity --collisions` for spatial and collision evidence.
76
76
 
77
77
  **Verification results** — runs any `verify.*` checks in the script and reports pass/fail with expected vs actual values. Verification failures remain non-fatal so the model can still render and be inspected.
78
78
 
@@ -90,7 +90,6 @@ forgecad run examples/api/static-assembly-connectors.forge.js --focus
90
90
  forgecad run examples/api/static-assembly-connectors.forge.js --focus "Bench.Slat*"
91
91
  forgecad run examples/api/static-assembly-connectors.forge.js --hide "Bench.Slat0,Bench.Slat1"
92
92
  forgecad run examples/api/static-assembly-connectors.forge.js --details --history
93
- forgecad run examples/api/static-assembly-connectors.forge.js --spatial bounded
94
93
  forgecad run examples/products/cup.forge.js --connectivity
95
94
  forgecad run examples/products/cup.forge.js --journeys
96
95
  forgecad run examples/products/cup.forge.js --backend occt
@@ -100,14 +99,45 @@ forgecad run examples/products/cup.forge.js -p "Wall Thickness=3" -p "Body Heigh
100
99
  forgecad run examples/constraints/06-complex-spectrogram.forge.js --solver-debug-out tmp/spectrogram-debug
101
100
  ```
102
101
 
102
+ ### `forgecad ls`
103
+
104
+ List targetable scene objects for a model.
105
+
106
+ Runs the model headlessly and prints the exact object paths that CLI tools can target. Use this before focused renders or inspections when object names, groups, or assembly paths are not obvious.
107
+
108
+ The default output is a compact line-oriented list. Use `--tree` for an indented hierarchy, `--long` for geometry metrics, or `--json` for automation.
109
+
110
+ ```bash
111
+ forgecad ls examples/api/static-assembly-connectors.forge.js
112
+ forgecad ls examples/api/static-assembly-connectors.forge.js --tree
113
+ forgecad ls examples/api/static-assembly-connectors.forge.js Bench
114
+ forgecad ls examples/api/static-assembly-connectors.forge.js "Bench/Slat0" --long
115
+ forgecad ls examples/api/static-assembly-connectors.forge.js --json
116
+ ```
117
+
118
+ ### `forgecad show`
119
+
120
+ Render a quick target-focused viewport PNG.
121
+
122
+ The main quick visual path for agents. Pass a model and, optionally, a target path from `forgecad ls`; ForgeCAD resolves the target and renders that object or group through the existing viewport renderer. Use `--from` for fast camera directions, or pass the lower-level render camera flags when you need exact reproducibility.
123
+
124
+ Without a target, `show` renders the whole scene and behaves like a shorter, intent-first wrapper around `render 3d`.
125
+
126
+ ```bash
127
+ forgecad show examples/api/static-assembly-connectors.forge.js
128
+ forgecad show examples/api/static-assembly-connectors.forge.js Bench
129
+ forgecad show examples/api/static-assembly-connectors.forge.js "Bench/Slat0" --from front --out slat-front.png
130
+ forgecad show model.forge.js --camera "proj=perspective;pos=200,-160,120;target=0,0,20;up=0,0,1;fov=38"
131
+ ```
132
+
103
133
  ### Object Filtering: `--focus` and `--hide`
104
134
 
105
- Several CLI commands can filter the visible object set without changing model code: `run`, `render 3d`, `render wireframe`, `inspect <family> <mode>`, `capture`, and `check print`.
135
+ Several CLI commands can filter the visible object set without changing model code: `render 3d`, `render wireframe`, `inspect <family> <mode>`, `capture`, and `check print`.
106
136
 
107
- Use `forgecad run model.forge.js --quality live` to list returned object names quickly, then pass those names to `--focus` or `--hide`.
137
+ Use `forgecad ls model.forge.js` to list exact object paths quickly, then pass those names or globs to `--focus` or `--hide` on render and inspection commands.
108
138
 
109
139
  ```bash
110
- forgecad run examples/api/static-assembly-connectors.forge.js --quality live
140
+ forgecad ls examples/api/static-assembly-connectors.forge.js --tree
111
141
  forgecad render 3d examples/api/static-assembly-connectors.forge.js bench.png --focus "Bench.*"
112
142
  forgecad render 3d examples/api/static-assembly-connectors.forge.js slats.png --focus "Bench.Slat*"
113
143
  forgecad inspect fit interference examples/api/static-assembly-connectors.forge.js --focus "Bench.*"
@@ -327,7 +357,7 @@ forgecad render section examples/furniture/01-table.forge.js out/bold.svg --edge
327
357
  | `--render-mode <solid\|wireframe>` | Shaded solid (default) or wireframe only |
328
358
  | `--edges <off\|thin\|bold>` | Edge overlay preset in solid mode (default: off) |
329
359
  | `--render-style <classic\|studio\|fast\|glass\|inspection\|precision\|hybrid\|scan>` | Visual render style (render default: classic; inspect default: inspection) |
330
- | `--scan-granularity <12-72>` | Scan cells across the scene longest axis |
360
+ | `--scan-granularity <12-144>` | Scan cells across the scene longest axis |
331
361
  | `--port <n>` | Vite dev server port |
332
362
  | `--fresh-server` | Start a fresh renderer instead of reusing an existing one |
333
363
  | `--chrome-path <path>` | Chrome or Chromium executable path |
@@ -641,7 +671,7 @@ The CLI is free for personal non-commercial use. Pro covers human-operated comme
641
671
  | `run`, `dev`, `studio`, `render 3d`, `export stl`, `export 3mf`, `export svg`, `compare 3d`, `check print`, `inspect fit interference`, `inspect mechanical-integrity` for personal non-commercial use | `cut-list`, `export sketch-pdf`, `export step`, `export brep`, `export gcode`, `export sdf`, `export urdf`, `export report`, `export cutting-layout` are free to run for personal non-commercial use; Pro covers human-operated commercial CAD work | `render hq`, `capture gif`, `capture mp4` plus commercial coverage for client/customer work | Backend, hosted, embedded, or application workflows that call ForgeCAD automatically |
642
672
 
643
673
  ```bash
644
- forgecad license # Check signed-in account status
674
+ forgecad license # Check local license status
645
675
  forgecad license activate # Activate Pro for the signed-in account
646
676
  forgecad license deactivate # Remove license
647
677
  ```
@@ -384,13 +384,13 @@ Overloads:
384
384
  - `offset?: number` — Optional offset along the plane normal (primarily for object-form overload).
385
385
  - `exclude?: CutPlaneExcludeInput` — Object names to keep uncut for this plane.
386
386
 
387
- #### `mock()` — Register a mock (context) object for visualization and collision checking.
387
+ #### `mock()` — Register a mock (context) object for visualization and inspection.
388
388
 
389
- Mock objects appear in the viewport and spatial analysis when you run a file directly, but are excluded when the file is imported via [`require()`](/docs/core#require). This lets you model the surrounding context — walls, bolts, mating parts — without polluting the module's exports.
389
+ Mock objects appear in the viewport and inspection analysis when you run a file directly, but are excluded when the file is imported via [`require()`](/docs/core#require). This lets you model the surrounding context — walls, bolts, mating parts — without polluting the module's exports.
390
390
 
391
391
  The shape is returned unchanged, so you can reference it for alignment, dimensioning, and `verify` checks.
392
392
 
393
- Mock objects participate in `forgecad run --spatial bounded|exact` collision detection and spatial analysis. Their names appear with a `(mock)` suffix in reports.
393
+ Mock objects participate in focused inspection commands such as `forgecad inspect fit interference` and `forgecad inspect physical gaps`. Their names appear with a `(mock)` suffix in reports.
394
394
 
395
395
  In the viewport, mock objects render at reduced opacity so they are visually distinct from real geometry.
396
396
 
@@ -32,7 +32,7 @@ forgecad project push
32
32
  forgecad project open
33
33
  ```
34
34
 
35
- Most CLI commands require a ForgeCAD account. Run `forgecad login` and choose email/password or API token when prompted. Use `FORGECAD_TOKEN=fc_pat_... forgecad <command>` only for CI/CD and one-off automation. `forgecad studio` always requires an explicit project path; use `.` for the current project.
35
+ Local modeling, inspection, export, and skill-install commands do not require a ForgeCAD account. Hosted project sync, publishing, token management, and license activation require sign-in. Run `forgecad login` and choose email/password or API token when prompted. Use `FORGECAD_TOKEN=fc_pat_... forgecad <hosted-command>` only for CI/CD and one-off automation. `forgecad studio` always requires an explicit project path; use `.` for the current project.
36
36
 
37
37
  You can also start from the hosted starter project with `forgecad project clone start-here`, then `cd start-here` and `forgecad studio .`.
38
38
 
@@ -66,13 +66,13 @@ Execute scripts and produce images headless — no browser window. Renders use C
66
66
 
67
67
  ### `forgecad run`
68
68
 
69
- Execute a Forge script quickly and print the inner-loop build summary: returned objects, verification results, parameters, and timing.
69
+ Execute a Forge script quickly and print the inner-loop build summary: build count, verification results, parameters, and timing.
70
70
 
71
- The fast validation command. Runs your script with the real geometry kernel (no browser needed) and reports whether it built, which objects came back, any `verify.*` results, parameter values, script logs, and elapsed script time. This is the command agents should run frequently while editing a model.
71
+ The fast validation command. Runs your script with the real geometry kernel (no browser needed) and reports whether it built, how many objects came back, any `verify.*` results, parameter values, script logs, and elapsed script time. This is the command agents should run frequently while editing a model.
72
72
 
73
- **Fast by default** — a bare `forgecad run model.forge.js` does not compute per-object volumes, bounding boxes, construction history, feature tallies, spatial relationships, collision intersections, or solver profiles. Those diagnostics are useful, but they are no longer part of the hot path.
73
+ **Fast by default** — a bare `forgecad run model.forge.js` does not compute per-object volumes, bounding boxes, construction history, feature tallies, or solver profiles. Those run diagnostics are useful, but they are no longer part of the hot path.
74
74
 
75
- **Opt-in diagnostics** — use `--details` for volume/bounding-box/object geometry summaries, `--history` for the construction tree, `--features` for feature tallies, or `--solver-profile` for constraint solver timing. Use `--spatial bounded|exact` only when you want directional relationships and collision intersections from the run command itself.
75
+ **Opt-in diagnostics** — use `--details` for volume/bounding-box/object geometry summaries, `--history` for the construction tree, `--features` for feature tallies, or `--solver-profile` for constraint solver timing. Use `inspect fit interference`, `inspect physical gaps`, or `inspect mechanical-integrity --collisions` for spatial and collision evidence.
76
76
 
77
77
  **Verification results** — runs any `verify.*` checks in the script and reports pass/fail with expected vs actual values. Verification failures remain non-fatal so the model can still render and be inspected.
78
78
 
@@ -90,7 +90,6 @@ forgecad run examples/api/static-assembly-connectors.forge.js --focus
90
90
  forgecad run examples/api/static-assembly-connectors.forge.js --focus "Bench.Slat*"
91
91
  forgecad run examples/api/static-assembly-connectors.forge.js --hide "Bench.Slat0,Bench.Slat1"
92
92
  forgecad run examples/api/static-assembly-connectors.forge.js --details --history
93
- forgecad run examples/api/static-assembly-connectors.forge.js --spatial bounded
94
93
  forgecad run examples/products/cup.forge.js --connectivity
95
94
  forgecad run examples/products/cup.forge.js --journeys
96
95
  forgecad run examples/products/cup.forge.js --backend occt
@@ -100,14 +99,45 @@ forgecad run examples/products/cup.forge.js -p "Wall Thickness=3" -p "Body Heigh
100
99
  forgecad run examples/constraints/06-complex-spectrogram.forge.js --solver-debug-out tmp/spectrogram-debug
101
100
  ```
102
101
 
102
+ ### `forgecad ls`
103
+
104
+ List targetable scene objects for a model.
105
+
106
+ Runs the model headlessly and prints the exact object paths that CLI tools can target. Use this before focused renders or inspections when object names, groups, or assembly paths are not obvious.
107
+
108
+ The default output is a compact line-oriented list. Use `--tree` for an indented hierarchy, `--long` for geometry metrics, or `--json` for automation.
109
+
110
+ ```bash
111
+ forgecad ls examples/api/static-assembly-connectors.forge.js
112
+ forgecad ls examples/api/static-assembly-connectors.forge.js --tree
113
+ forgecad ls examples/api/static-assembly-connectors.forge.js Bench
114
+ forgecad ls examples/api/static-assembly-connectors.forge.js "Bench/Slat0" --long
115
+ forgecad ls examples/api/static-assembly-connectors.forge.js --json
116
+ ```
117
+
118
+ ### `forgecad show`
119
+
120
+ Render a quick target-focused viewport PNG.
121
+
122
+ The main quick visual path for agents. Pass a model and, optionally, a target path from `forgecad ls`; ForgeCAD resolves the target and renders that object or group through the existing viewport renderer. Use `--from` for fast camera directions, or pass the lower-level render camera flags when you need exact reproducibility.
123
+
124
+ Without a target, `show` renders the whole scene and behaves like a shorter, intent-first wrapper around `render 3d`.
125
+
126
+ ```bash
127
+ forgecad show examples/api/static-assembly-connectors.forge.js
128
+ forgecad show examples/api/static-assembly-connectors.forge.js Bench
129
+ forgecad show examples/api/static-assembly-connectors.forge.js "Bench/Slat0" --from front --out slat-front.png
130
+ forgecad show model.forge.js --camera "proj=perspective;pos=200,-160,120;target=0,0,20;up=0,0,1;fov=38"
131
+ ```
132
+
103
133
  ### Object Filtering: `--focus` and `--hide`
104
134
 
105
- Several CLI commands can filter the visible object set without changing model code: `run`, `render 3d`, `render wireframe`, `inspect <family> <mode>`, `capture`, and `check print`.
135
+ Several CLI commands can filter the visible object set without changing model code: `render 3d`, `render wireframe`, `inspect <family> <mode>`, `capture`, and `check print`.
106
136
 
107
- Use `forgecad run model.forge.js --quality live` to list returned object names quickly, then pass those names to `--focus` or `--hide`.
137
+ Use `forgecad ls model.forge.js` to list exact object paths quickly, then pass those names or globs to `--focus` or `--hide` on render and inspection commands.
108
138
 
109
139
  ```bash
110
- forgecad run examples/api/static-assembly-connectors.forge.js --quality live
140
+ forgecad ls examples/api/static-assembly-connectors.forge.js --tree
111
141
  forgecad render 3d examples/api/static-assembly-connectors.forge.js bench.png --focus "Bench.*"
112
142
  forgecad render 3d examples/api/static-assembly-connectors.forge.js slats.png --focus "Bench.Slat*"
113
143
  forgecad inspect fit interference examples/api/static-assembly-connectors.forge.js --focus "Bench.*"
@@ -327,7 +357,7 @@ forgecad render section examples/furniture/01-table.forge.js out/bold.svg --edge
327
357
  | `--render-mode <solid\|wireframe>` | Shaded solid (default) or wireframe only |
328
358
  | `--edges <off\|thin\|bold>` | Edge overlay preset in solid mode (default: off) |
329
359
  | `--render-style <classic\|studio\|fast\|glass\|inspection\|precision\|hybrid\|scan>` | Visual render style (render default: classic; inspect default: inspection) |
330
- | `--scan-granularity <12-72>` | Scan cells across the scene longest axis |
360
+ | `--scan-granularity <12-144>` | Scan cells across the scene longest axis |
331
361
  | `--port <n>` | Vite dev server port |
332
362
  | `--fresh-server` | Start a fresh renderer instead of reusing an existing one |
333
363
  | `--chrome-path <path>` | Chrome or Chromium executable path |
@@ -641,7 +671,7 @@ The CLI is free for personal non-commercial use. Pro covers human-operated comme
641
671
  | `run`, `dev`, `studio`, `render 3d`, `export stl`, `export 3mf`, `export svg`, `compare 3d`, `check print`, `inspect fit interference`, `inspect mechanical-integrity` for personal non-commercial use | `cut-list`, `export sketch-pdf`, `export step`, `export brep`, `export gcode`, `export sdf`, `export urdf`, `export report`, `export cutting-layout` are free to run for personal non-commercial use; Pro covers human-operated commercial CAD work | `render hq`, `capture gif`, `capture mp4` plus commercial coverage for client/customer work | Backend, hosted, embedded, or application workflows that call ForgeCAD automatically |
642
672
 
643
673
  ```bash
644
- forgecad license # Check signed-in account status
674
+ forgecad license # Check local license status
645
675
  forgecad license activate # Activate Pro for the signed-in account
646
676
  forgecad license deactivate # Remove license
647
677
  ```
@@ -384,13 +384,13 @@ Overloads:
384
384
  - `offset?: number` — Optional offset along the plane normal (primarily for object-form overload).
385
385
  - `exclude?: CutPlaneExcludeInput` — Object names to keep uncut for this plane.
386
386
 
387
- #### `mock()` — Register a mock (context) object for visualization and collision checking.
387
+ #### `mock()` — Register a mock (context) object for visualization and inspection.
388
388
 
389
- Mock objects appear in the viewport and spatial analysis when you run a file directly, but are excluded when the file is imported via [`require()`](/docs/core#require). This lets you model the surrounding context — walls, bolts, mating parts — without polluting the module's exports.
389
+ Mock objects appear in the viewport and inspection analysis when you run a file directly, but are excluded when the file is imported via [`require()`](/docs/core#require). This lets you model the surrounding context — walls, bolts, mating parts — without polluting the module's exports.
390
390
 
391
391
  The shape is returned unchanged, so you can reference it for alignment, dimensioning, and `verify` checks.
392
392
 
393
- Mock objects participate in `forgecad run --spatial bounded|exact` collision detection and spatial analysis. Their names appear with a `(mock)` suffix in reports.
393
+ Mock objects participate in focused inspection commands such as `forgecad inspect fit interference` and `forgecad inspect physical gaps`. Their names appear with a `(mock)` suffix in reports.
394
394
 
395
395
  In the viewport, mock objects render at reduced opacity so they are visually distinct from real geometry.
396
396
 
@@ -31,13 +31,13 @@ Do not solve reconstruction by returning `importMesh("reference.stl")` or `impor
31
31
  No wrapper script is needed. Use the local checkout CLI:
32
32
 
33
33
  ```bash
34
- node dist-cli/forgecad.js run path/to/source.stl --quality live --details
34
+ node dist-cli/forgecad.js ls path/to/source.stl --quality live --long
35
35
  node dist-cli/forgecad.js render 3d path/to/source.stl /tmp/<slug>-source.png --camera iso --edges thin --size 900
36
36
  node dist-cli/forgecad.js inspect visual objects path/to/source.stl /tmp/<slug>-source-objects --camera iso --size 700 --force
37
37
  node dist-cli/forgecad.js inspect sections sample path/to/source.stl /tmp/<slug>-source-sections --count 5 --size 700 --force
38
38
  ```
39
39
 
40
- For 3MF sources, `run --details` also prints the source archive's build
40
+ For 3MF sources, `forgecad run` prints the source archive's build
41
41
  items/resource objects with stable refs such as
42
42
  `3mf:build:001:object:2`, automatic names, per-item bounding boxes, and
43
43
  triangle counts. Use that item table to avoid missing hidden multi-part
@@ -60,7 +60,7 @@ Use today's date for the directory. Use the user's current ForgeCAD project when
60
60
  - Return the final geometry (single shape, array, or named objects array)
61
61
  - Treat `fillet(shape, r)` and `chamfer(shape, r)` as experimental edge treatments: Manifold can produce incorrect results and OCCT can be very slow. Prefer simpler primitive profiles, lower segment counts, targeted edge selectors, and inspection before relying on the result.
62
62
  4. Validate — run `forgecad run <file>` to check for errors. For multi-file projects, always validate `main.forge.js`.
63
- 5. Verify geometry — render a multi-angle visual evidence set before final delivery: whole-model context plus agent-chosen orthographic, oblique, underside, or hidden-object views that expose the relevant components and interfaces. Choose camera directions from the model's shape and likely failure modes, not from a fixed recipe. Use those views to look for internals that are accidentally visible, parts that visibly do not fit, floating details, blocked access, missing seats, and unexpected interference. Run `forgecad run --connectivity` when the model has multiple returned objects or visible attachments, run `forgecad debug assembly --fail-on warning` when the script uses `assembly()`, run `forgecad inspect mechanical-integrity <project-or-file> --collisions` before sharing generated mechanical work, and run the targeted `forgecad inspect <family> <mode>` commands that match the task (see Final Acceptance Gate and Render-Verify Loop below). For multi-file projects, render and inspect `main.forge.js`. Collision findings are model work, not FYI: remove unexpected overlaps before delivery.
63
+ 5. Verify geometry — render a multi-angle visual evidence set before final delivery: whole-model context plus agent-chosen orthographic, oblique, underside, or hidden-object views that expose the relevant components and interfaces. Choose camera directions from the model's shape and likely failure modes, not from a fixed recipe. Use those views to look for internals that are accidentally visible, parts that visibly do not fit, floating details, blocked access, missing seats, and unexpected interference. Run `forgecad inspect physical components` when the model has multiple returned objects or visible attachments, run `forgecad debug assembly --fail-on warning` when the script uses `assembly()`, run `forgecad inspect mechanical-integrity <project-or-file> --collisions` before sharing generated mechanical work, and run the targeted `forgecad inspect <family> <mode>` commands that match the task (see Final Acceptance Gate and Render-Verify Loop below). For multi-file projects, render and inspect `main.forge.js`. Collision findings are model work, not FYI: remove unexpected overlaps before delivery.
64
64
  6. Iterate from visual and inspection feedback — treat every render and inspection bundle as model evidence, not a checkbox. Read the normal PNGs, manifest, and evidence PNGs; convert each unexpected collision, thin region, missing section detail, wrong component count, floating body, distance gap, confusing object-color result, accidentally exposed internal structure, bad fit, or visually unsupported interface into a concrete model edit; then rerun the same targeted evidence pass until the result matches the intended physical component graph.
65
65
 
66
66
  ## Manufacturing Process Is Not Assumed
@@ -183,7 +183,7 @@ Before telling the user the model is done, prove both technical validity and vis
183
183
  1. State the intended physical component graph. Decide whether the final artifact should be one connected component, several intentionally separate components, or a selected assembly plus named ghosts. Then run:
184
184
 
185
185
  ```bash
186
- forgecad run model.forge.js --connectivity
186
+ forgecad inspect physical components model.forge.js --camera iso
187
187
  ```
188
188
 
189
189
  The reported component count must match the design intent. Treat unexpected islands, accidental fusion, or bbox-only "touching" that does not make physical sense as model bugs.
@@ -292,7 +292,7 @@ For important components, collect both:
292
292
  - Context view — neighbors present, proving the part belongs in the final assembly.
293
293
  - Focus view — only the relevant objects visible, making small gaps, intersections, missing seats, and floating parts easy to see.
294
294
 
295
- Prefer CLI `--focus` / `--hide` filters, named views, or parameter-selected diagnostic modes over changing production geometry. Use the object names from `node dist-cli/forgecad.js run model.forge.js --quality live` when you are unsure what the filters should target.
295
+ Prefer CLI `--focus` / `--hide` filters, named views, or parameter-selected diagnostic modes over changing production geometry. Use the object paths from `node dist-cli/forgecad.js ls model.forge.js --tree` when you are unsure what the filters should target.
296
296
 
297
297
  ### Structured inspection bundles
298
298
 
@@ -72,13 +72,13 @@ ForgeCAD commands.
72
72
  inference.
73
73
 
74
74
  ```bash
75
- ./bin/forgecad run task/reference/<asset> --quality live --details
75
+ ./bin/forgecad ls task/reference/<asset> --quality live --long
76
76
  ./bin/forgecad render 3d task/reference/<asset> outputs/reference.png --camera iso --edges thin --size 900
77
77
  ./bin/forgecad inspect sections sample task/reference/<asset> outputs/reference-sections --count 5 --size 700
78
78
  ./bin/forgecad inspect section task/reference/<asset> --plane yz --offset 0 --ray width:-50,0:50,0 --size 700
79
79
  ```
80
80
 
81
- For 3MF references, the `run --details` output includes a source structure
81
+ For 3MF references, the `forgecad run` output includes a source structure
82
82
  table with stable `3mf:build:...:object:...` refs, automatic item names,
83
83
  per-item bounding boxes, and triangle counts. Treat that table as part of
84
84
  the evidence: the final model may be one part or many parts, but you should
@@ -88,7 +88,7 @@ ForgeCAD commands.
88
88
  unique probe directory with `result.json`; later you can replay that probe
89
89
  against the candidate with `./bin/forgecad inspect replay <result.json>
90
90
  --source submission/main.forge.js`.
91
- For 3MF references, the `run --details` output includes a source structure
91
+ For 3MF references, the `forgecad run` output includes a source structure
92
92
  table with stable `3mf:build:...:object:...` refs, automatic item names,
93
93
  per-item bounding boxes, and triangle counts. Treat that table as part of
94
94
  the evidence: the final model may be one part or many parts, but you should
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forgecad",
3
- "version": "0.9.13",
3
+ "version": "0.9.14",
4
4
  "description": "Code-first parametric CAD for JavaScript/TypeScript, in the browser and CLI.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://forgecad.io",
@@ -137,11 +137,6 @@
137
137
  "build:skill:forgecad": "node scripts/build-forgecad-skill.mjs",
138
138
  "sync:public-skills": "node scripts/sync-public-skills.mjs",
139
139
  "build:docs": "node scripts/build-docs-site.mjs",
140
- "harbor:reconstruction:refresh": "node scripts/refresh-reconstruction-dataset.mjs",
141
- "harbor:reconstruction:check": "node scripts/refresh-reconstruction-dataset.mjs --check",
142
- "harbor:reconstruction:smoke": "uvx --from harbor harbor run -p ai-labs/reconstruction/tasks --include-task-name ball-bearing --agent nop --n-concurrent 1 --jobs-dir \"$HOME/Projects/CAD/ForgeCAD-RL-Agent-Runs/harbor/smoke\" --force-build",
143
- "harbor:reconstruction:pack-local": "node scripts/pack-reconstruction-local-package.mjs",
144
- "harbor:reconstruction:clean-local": "node scripts/pack-reconstruction-local-package.mjs --clean",
145
140
  "benchmark:reconstruction": "node scripts/forgecad-internal.mjs benchmark reconstruction",
146
141
  "benchmark:reconstruction:list": "node scripts/forgecad-internal.mjs benchmark reconstruction list-tasks",
147
142
  "benchmark:reconstruction:import-harbor": "node scripts/forgecad-internal.mjs benchmark reconstruction import-harbor",
Binary file