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
@@ -139,7 +139,7 @@ push when the result is ready for the browser.
139
139
  ```text
140
140
  Use forgecad-component-model and forgecad. Parts must build at origin. The
141
141
  assembly positions parts with connectors or explicit assembly-level placement.
142
- Validate with forgecad run --connectivity, inspect fit interference and visual objects,
142
+ Validate with forgecad run, inspect physical components, inspect fit interference and visual objects,
143
143
  and run parameter checks before calling it done.
144
144
  ```
145
145
 
@@ -186,14 +186,15 @@ The CLI is not just a launcher. It gives the agent a measurable feedback loop.
186
186
 
187
187
  | Need | Command | What it gives the agent |
188
188
  |---|---|---|
189
- | Execute and validate a model | `forgecad run model.forge.js` | Fast red/green execution feedback: returned object names, parameters, verification results, script logs, and timing. |
190
- | Inspect run details | `forgecad run model.forge.js --details --history --features` | Per-object volumes and bounds, construction history, and feature tallies when those details are worth the extra work. |
189
+ | Execute and validate a model | `forgecad run model.forge.js` | Fast red/green execution feedback: build count, parameters, verification results, script logs, and timing. |
190
+ | List targetable objects | `forgecad ls model.forge.js --tree` | Exact object paths, ids, groups, tags, and optional geometry metrics for focused renders or inspections. |
191
+ | Inspect run diagnostics | `forgecad run model.forge.js --history --features` | Construction history and feature tallies when those details are worth the extra work. |
191
192
  | Debug imports | `forgecad run model.forge.js --debug-imports` | Import resolution and module-loading diagnostics for multi-file projects. |
192
193
  | Compare geometry backends | `forgecad run model.forge.js --backend occt` | Runs against a specific backend when exact geometry or backend parity matters. |
193
194
  | Test physical connectivity | `forgecad run model.forge.js --connectivity` | Connected-component reporting for assemblies and printable parts. |
194
- | Check spatial relationships | `forgecad run model.forge.js --spatial bounded` | Opt-in directional relationships and bounded collision intersections during a run. |
195
195
  | Override parameters | `forgecad run model.forge.js -p "Width=120"` | Checks a model at a specific parameter value without editing source. |
196
196
  | Inspect mechanical integrity | `forgecad inspect mechanical-integrity model.forge.js --collisions` | Assembly-level verification, expected component counts, and collision evidence for acceptance gates. |
197
+ | Inspect physical gaps | `forgecad inspect physical gaps model.forge.js --camera iso` | Evidence bundle for spatial gaps between physical components. |
197
198
  | Produce visual evidence | `forgecad render 3d model.forge.js --camera iso` | PNG viewport renders from deterministic camera angles. |
198
199
  | Measure a targeted section | `forgecad inspect section model.forge.js --plane yz --ray bore:-20,0:20,0` | A unique probe directory with `result.json`, `section.svg`, `section.png`, exact solid/gap intervals along each ray, and a `replaySpec` for candidate comparisons. Use `--offset` only when the cut should move away from the zero plane. |
199
200
  | Replay a targeted section | `forgecad inspect replay outputs/inspect/<probe>/result.json --source candidate.forge.js` | Reruns the same plane and ray rulers against another source and reports measurement deltas. |
@@ -267,7 +268,7 @@ forgecad check print model.forge.js --json
267
268
  For mechanisms, dense assemblies, printable parts, or anything safety-adjacent:
268
269
 
269
270
  ```bash
270
- forgecad run model.forge.js --connectivity
271
+ forgecad inspect physical components model.forge.js --camera iso
271
272
  forgecad inspect mechanical-integrity model.forge.js --collisions
272
273
  forgecad inspect fit interference model.forge.js --camera iso
273
274
  forgecad inspect manufacture thickness model.forge.js --min 1.6 --warn 2.4 --camera iso
@@ -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
  ```
@@ -3244,13 +3244,13 @@ compareWith(path: string, options?: CompareWithOptions): void
3244
3244
  | `samples?` | `number` | Surface samples per direction for numeric scoring. Defaults to the comparison scorer's standard sample count. |
3245
3245
  | `label?` | `string` | Human label for the reference model in inspection manifests. |
3246
3246
 
3247
- #### `mock()` — Register a mock (context) object for visualization and collision checking.
3247
+ #### `mock()` — Register a mock (context) object for visualization and inspection.
3248
3248
 
3249
- 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()`. This lets you model the surrounding context — walls, bolts, mating parts — without polluting the module's exports.
3249
+ 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()`. This lets you model the surrounding context — walls, bolts, mating parts — without polluting the module's exports.
3250
3250
 
3251
3251
  The shape is returned unchanged, so you can reference it for alignment, dimensioning, and `verify` checks.
3252
3252
 
3253
- Mock objects participate in `forgecad run --spatial bounded|exact` collision detection and spatial analysis. Their names appear with a `(mock)` suffix in reports.
3253
+ 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.
3254
3254
 
3255
3255
  In the viewport, mock objects render at reduced opacity so they are visually distinct from real geometry.
3256
3256
 
@@ -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