forgecad 0.9.16 → 0.10.1
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.
- package/dist/assets/{AdminPage-CXvls4-J.js → AdminPage-DcCnj0qo.js} +1 -1
- package/dist/assets/{BenchmarkPage-B27zk8xL.js → BenchmarkPage-BVEpJSVk.js} +1 -1
- package/dist/assets/{BlogPage-CMAVvgQL.js → BlogPage-DHaGP50_.js} +1 -1
- package/dist/assets/{DocsPage-knf4I4h7.js → DocsPage-CDoxHkz8.js} +40 -859
- package/dist/assets/EditorApp-BJ0Dloyh.js +16446 -0
- package/dist/assets/{EmbedViewer-D7ZGlFjx.js → EmbedViewer-CRKZbY0y.js} +2 -2
- package/dist/assets/{LandingPageProofDriven-CnevhTE8.js → LandingPageProofDriven-BxHkYRE7.js} +1 -1
- package/dist/assets/{LegalPage-BPTUmqeg.js → LegalPage-B-u6FrVv.js} +1 -1
- package/dist/assets/{PricingPage-B0D4goG_.js → PricingPage-CzpZ6-Ce.js} +1 -1
- package/dist/assets/{SettingsPage-CFF-UgjI.js → SettingsPage-CIZSSAd0.js} +1 -1
- package/dist/assets/{app-CE3sYcV7.css → app-CjsbDlb7.css} +143 -0
- package/dist/assets/{app-T0pDcSX4.js → app-DaTMg3nH.js} +1310 -290
- package/dist/assets/cli/{render-C5pcIISc.js → render-DPf4AYJK.js} +55 -60
- package/dist/assets/{constructionHistoryWorker-Ba2Hm58b.js → constructionHistoryWorker-AwMMWSxg.js} +1103 -349
- package/dist/assets/{evalWorker-vkx310U2.js → evalWorker-CjZZWRWW.js} +5209 -2643
- package/dist/assets/{inspectWorker-BuTJDVX6.js → inspectWorker-CZsCFtQT.js} +1163 -409
- package/dist/assets/{jointPose-B_Cgedn9.js → jointPose-DzQOViQH.js} +1 -1
- package/dist/assets/{manifold-BWgsjmAM.js → manifold-BYlzU521.js} +1 -1
- package/dist/assets/{manifold-D6IFSkhH.js → manifold-DgXo0T5P.js} +2 -2
- package/dist/assets/{manifold-rZexZI0G.js → manifold-K1SkarlQ.js} +1 -1
- package/dist/assets/{reportWorker-0AGij1Ru.js → reportWorker-B9nWwSrB.js} +8501 -3393
- package/dist/assets/{scalar-sampling-budget-J5cuzxT1.js → scalar-sampling-budget-prBw_s8t.js} +6067 -3479
- package/dist/assets/{scanProxyWorker-Vl4Wxa1y.js → scanProxyWorker-2GtDLk-R.js} +1 -1
- package/dist/assets/{javascript-1kQXfVaz.js → typescript-DBQ6RN5l.js} +874 -22
- package/dist/cli/render.html +1 -1
- package/dist/docs/index.html +3 -3
- package/dist/docs-raw/AI/usage.md +1 -1
- package/dist/docs-raw/CLI.md +77 -240
- package/dist/docs-raw/README.md +6 -0
- package/dist/docs-raw/component-model.md +17 -150
- package/dist/docs-raw/generated/assembly.md +188 -582
- package/dist/docs-raw/generated/concepts.md +259 -3501
- package/dist/docs-raw/generated/core.md +283 -1250
- package/dist/docs-raw/generated/curves.md +387 -1608
- package/dist/docs-raw/generated/legacy.md +162 -0
- package/dist/docs-raw/generated/lib.md +227 -85
- package/dist/docs-raw/generated/output.md +35 -99
- package/dist/docs-raw/generated/runtime-names.md +23 -23
- package/dist/docs-raw/generated/sdf.md +68 -284
- package/dist/docs-raw/generated/sheet-metal.md +68 -335
- package/dist/docs-raw/generated/sketch.md +240 -1161
- package/dist/docs-raw/generated/viewport.md +75 -316
- package/dist/docs-raw/generated/wood.md +21 -49
- package/dist/docs-raw/guides/coordinate-system.md +4 -42
- package/dist/docs-raw/guides/inspection-bundles.md +44 -442
- package/dist/docs-raw/guides/joint-design.md +18 -79
- package/dist/docs-raw/guides/positioning.md +21 -143
- package/dist/docs-raw/guides/scene-presentation.md +89 -0
- package/dist/docs-raw/guides/simready-quickstart.md +171 -0
- package/dist/docs-raw/simulation-workflow.md +273 -0
- package/dist/docs-raw/skills/forgecad-3d-reconstruction.md +25 -111
- package/dist/docs-raw/skills/forgecad-blockout-model.md +20 -117
- package/dist/docs-raw/skills/forgecad-component-model.md +23 -107
- package/dist/docs-raw/skills/forgecad-high-level-spec.md +47 -155
- package/dist/docs-raw/skills/forgecad-image-replicator.md +26 -143
- package/dist/docs-raw/skills/forgecad-lld.md +19 -113
- package/dist/docs-raw/skills/forgecad-make-a-model.md +112 -532
- package/dist/docs-raw/skills/forgecad-model-grader.md +38 -108
- package/dist/docs-raw/skills/forgecad-prepare-prompt.md +24 -211
- package/dist/docs-raw/skills/forgecad-project.md +13 -131
- package/dist/docs-raw/skills/forgecad-reconstruction-benchmark.md +42 -134
- package/dist/docs-raw/skills/forgecad-render-inspect.md +27 -174
- package/dist/docs-raw/skills/forgecad-visual-spec.md +32 -112
- package/dist/docs-raw/skills/forgecad.md +19 -18
- package/dist/docs-raw/skills/index.md +2 -0
- package/dist/docs-raw/welcome.md +2 -2
- package/dist/index.html +2 -2
- package/dist/llms.txt +1 -2
- package/dist/sitemap.xml +25 -13
- package/dist-cli/{check-compiler-SYQ2PWOB.js → check-compiler-II7NLPAB.js} +1 -1
- package/dist-cli/{check-query-propagation-HIAGV62W.js → check-query-propagation-7462TR3R.js} +1 -1
- package/dist-cli/{chunk-SPZE3DUY.js → chunk-UWTJCGXF.js} +5848 -2915
- package/dist-cli/forgecad.js +3496 -703
- package/dist-skill/CONTEXT.md +1797 -7963
- package/dist-skill/SKILL.md +15 -15
- package/dist-skill/docs/API/core/concepts.md +27 -157
- package/dist-skill/docs/CLI.md +77 -240
- package/dist-skill/docs/generated/assembly.md +182 -532
- package/dist-skill/docs/generated/core.md +283 -1250
- package/dist-skill/docs/generated/curves.md +387 -1609
- package/dist-skill/docs/generated/lib.md +227 -85
- package/dist-skill/docs/generated/output.md +35 -99
- package/dist-skill/docs/generated/runtime-names.md +16 -21
- package/dist-skill/docs/generated/sdf.md +68 -284
- package/dist-skill/docs/generated/sheet-metal.md +68 -335
- package/dist-skill/docs/generated/sketch.md +240 -1160
- package/dist-skill/docs/generated/viewport.md +75 -223
- package/dist-skill/docs/generated/wood.md +21 -49
- package/dist-skill/docs/guides/coordinate-system.md +4 -42
- package/dist-skill/docs/guides/inspection-bundles.md +44 -442
- package/dist-skill/docs/guides/joint-design.md +18 -79
- package/dist-skill/docs/guides/positioning.md +21 -143
- package/dist-skill/docs/guides/scene-presentation.md +89 -0
- package/dist-skill/docs/guides/surface-members.md +26 -0
- package/dist-skill/library/forgecad-3d-reconstruction/SKILL.md +23 -111
- package/dist-skill/library/forgecad-blockout-model/SKILL.md +18 -117
- package/dist-skill/library/forgecad-component-model/SKILL.md +21 -107
- package/dist-skill/library/forgecad-high-level-spec/SKILL.md +45 -155
- package/dist-skill/library/forgecad-image-replicator/SKILL.md +24 -143
- package/dist-skill/library/forgecad-lld/SKILL.md +17 -113
- package/dist-skill/library/forgecad-make-a-model/SKILL.md +110 -532
- package/dist-skill/library/forgecad-model-grader/SKILL.md +36 -108
- package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +35 -224
- package/dist-skill/library/forgecad-prepare-prompt/references/default-profiles.md +43 -271
- package/dist-skill/library/forgecad-prepare-prompt/references/master-prompt.md +30 -99
- package/dist-skill/library/forgecad-project/SKILL.md +13 -133
- package/dist-skill/library/forgecad-reconstruction-benchmark/SKILL.md +29 -123
- package/dist-skill/library/forgecad-render-inspect/SKILL.md +25 -174
- package/dist-skill/library/forgecad-visual-spec/SKILL.md +30 -111
- package/dist-skill/website/skills/forgecad-3d-reconstruction.md +58 -0
- package/dist-skill/website/skills/forgecad-blockout-model.md +49 -0
- package/dist-skill/website/skills/forgecad-component-model.md +53 -0
- package/dist-skill/website/skills/forgecad-high-level-spec.md +101 -0
- package/dist-skill/website/skills/forgecad-image-replicator.md +63 -0
- package/dist-skill/website/skills/forgecad-lld.md +41 -0
- package/dist-skill/website/skills/forgecad-make-a-model.md +186 -0
- package/dist-skill/website/skills/forgecad-model-grader.md +82 -0
- package/dist-skill/website/skills/forgecad-prepare-prompt.md +63 -0
- package/dist-skill/website/skills/forgecad-project.md +26 -0
- package/dist-skill/website/skills/forgecad-reconstruction-benchmark.md +60 -0
- package/dist-skill/website/skills/forgecad-render-inspect.md +80 -0
- package/dist-skill/website/skills/forgecad-visual-spec.md +71 -0
- package/dist-skill/website/skills/forgecad.md +122 -0
- package/dist-skill/website/skills/index.md +26 -0
- package/examples/api/comparison-imported-sphere-candidate.forge.js +1 -1
- package/examples/api/conformal-product-ribbon.forge.js +1 -1
- package/examples/api/exact-sheet-shell-assembly.forge.js +1 -1
- package/examples/api/extrude-options.forge.js +4 -2
- package/examples/api/field-loft-drive-tip.forge.js +40 -0
- package/examples/api/guided-loft-olive-oil-bottle.forge.js +1 -1
- package/examples/api/highlight-debug.forge.js +10 -10
- package/examples/api/mesh-import-slats.forge.js +1 -1
- package/examples/api/real-product-curves.forge.js +1 -1
- package/examples/api/sculpt-box-circle-booleans.forge.js +1 -1
- package/examples/api/sdf-shapes.forge.js +2 -5
- package/examples/api/sketch-rounding-strategies.forge.js +6 -6
- package/examples/api/surface-member-bottle-cage.forge.js +3 -3
- package/examples/api/surface-member-conformal-product-ribbon.forge.js +3 -3
- package/examples/api/surface-member-razor-inlay.forge.js +1 -1
- package/examples/api/variable-sweep-test.forge.js +3 -3
- package/examples/mechanical/airplane-propeller.forge.js +74 -39
- package/examples/nurbs-surface.forge.js +1 -1
- package/examples/products/iphone.forge.js +1 -1
- package/examples/robotics/README.md +46 -0
- package/examples/robotics/scout-cam-rover-simready/README.md +119 -0
- package/examples/robotics/scout-cam-rover-simready/lib/dims.js +140 -0
- package/examples/robotics/scout-cam-rover-simready/main.forge.js +343 -0
- package/examples/robotics/scout-cam-rover-simready/parts/body.forge.js +304 -0
- package/examples/robotics/scout-cam-rover-simready/parts/chassis.forge.js +320 -0
- package/examples/robotics/scout-cam-rover-simready/parts/hardware.forge.js +21 -0
- package/examples/robotics/scout-cam-rover-simready/parts/turret.forge.js +70 -0
- package/examples/robotics/scout-cam-rover-simready/parts/wheel.forge.js +116 -0
- package/examples/robotics/simready-asset-crate.forge.js +79 -0
- package/examples/robotics/simready-diff-drive-rover.forge.js +141 -0
- package/examples/robotics/simready-parallel-gripper.forge.js +102 -0
- package/package.json +1 -1
- package/dist/assets/EditorApp-BHMQlJ-D.js +0 -14686
- package/dist/docs-raw/guides/geometry-conventions.md +0 -52
- package/dist/docs-raw/guides/modeling-recipes.md +0 -78
- package/dist-skill/docs/guides/geometry-conventions.md +0 -52
- package/dist-skill/docs/guides/modeling-recipes.md +0 -78
- package/dist-skill/library/forgecad-visual-spec/references/prompt-template.md +0 -79
|
@@ -58,7 +58,7 @@ forgecad new bracket --template part
|
|
|
58
58
|
forgecad studio .
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
`forgecad project init` creates the remote project, writes `forgecad.json`, and uploads
|
|
61
|
+
`forgecad project init` creates the remote project, writes `forgecad.json`, and uploads existing local model files, helper code, Markdown notes, SVG/DXF assets, and other supported text project files. After that, `forgecad project push` syncs local changes to the hosted project.
|
|
62
62
|
|
|
63
63
|
`forgecad project push` does not initialize a random folder. If the folder has no `forgecad.json`, the command fails and tells you to run `forgecad project init` or `forgecad project clone <slug>` first.
|
|
64
64
|
|
package/dist/docs-raw/CLI.md
CHANGED
|
@@ -5,7 +5,7 @@ skill-order: 1
|
|
|
5
5
|
|
|
6
6
|
# ForgeCAD CLI
|
|
7
7
|
|
|
8
|
-
Create projects, open local studios, run, inspect, export, publish, and sync `.forge.js` models from your terminal.
|
|
8
|
+
Create projects, open local studios, run, inspect, export, publish, and sync `.forge.js` models from your terminal. Licensing tiers are summarized once in [Setup & Licensing](#setup--licensing).
|
|
9
9
|
|
|
10
10
|
## Quick Start
|
|
11
11
|
|
|
@@ -32,7 +32,7 @@ forgecad project push
|
|
|
32
32
|
forgecad project open
|
|
33
33
|
```
|
|
34
34
|
|
|
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
|
|
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 (for GitHub/Google accounts, create a token in Settings > API Tokens first). 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
|
|
|
@@ -70,35 +70,15 @@ Execute scripts and produce images headless — no browser window. Renders use C
|
|
|
70
70
|
|
|
71
71
|
Execute a Forge script quickly and print the inner-loop build summary: build count, verification results, parameters, and timing.
|
|
72
72
|
|
|
73
|
-
The fast validation command
|
|
73
|
+
The fast validation command: runs the script with the real geometry kernel (no browser) and reports build status, object count, `verify.*` pass/fail with expected vs actual values (non-fatal — the model still renders), parameter values, script logs, and timing. Run it frequently while editing.
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
A bare `forgecad run` skips expensive diagnostics. Opt in with `--details` (volumes/bounds), `--history` (construction tree), `--features` (feature tallies), `--solver-profile` (constraint solver timing), or `--connectivity` (physical connected components — bbox contact is evidence, exact geometry is checked by default). `--quality live|default|high` selects the same geometry quality profile as the editor and export tools; `live` is fastest for large models.
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
**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.
|
|
80
|
-
|
|
81
|
-
**Physical connectivity** — pass `--connectivity` to list physically connected components across visible objects. Overlapping bbox candidates are checked with exact geometry by default, while bbox-only contact is treated as evidence rather than proof of one connected component. This helps answer whether the model is one continuous assembly or several separate islands.
|
|
82
|
-
|
|
83
|
-
**Quality preset** — pass `--quality live|default|high` to select the same geometry quality profile used by the editor and export tools. `live` is the fastest preset for large audit models.
|
|
84
|
-
|
|
85
|
-
**Direct CAD inputs** — pass `.stl`, `.obj`, `.3mf`, `.step`, or `.stp` directly when you just want to inspect an external asset. Mesh files are imported with `importMesh(...)`; STEP/STP files are imported with `importStep(...)` and auto-select OCCT unless you pass `--backend`.
|
|
86
|
-
|
|
87
|
-
For deeper confidence gates, prefer `forgecad inspect mechanical-integrity`, `forgecad check print`, or targeted evidence commands such as `forgecad inspect fit interference` instead of turning `run` back into a catch-all audit command.
|
|
77
|
+
Direct `.stl`/`.obj`/`.3mf`/`.step`/`.stp` inputs are imported automatically; STEP/STP auto-selects OCCT unless you pass `--backend`. For deeper confidence gates, prefer `inspect mechanical-integrity`, `check print`, or `inspect fit interference` instead of turning `run` into a catch-all audit command.
|
|
88
78
|
|
|
89
79
|
```bash
|
|
90
|
-
forgecad run
|
|
91
|
-
forgecad run
|
|
92
|
-
forgecad run examples/api/static-assembly-connectors.forge.js --focus "Bench.Slat*"
|
|
93
|
-
forgecad run examples/api/static-assembly-connectors.forge.js --hide "Bench.Slat0,Bench.Slat1"
|
|
94
|
-
forgecad run examples/api/static-assembly-connectors.forge.js --details --history
|
|
95
|
-
forgecad run examples/products/cup.forge.js --connectivity
|
|
96
|
-
forgecad run examples/products/cup.forge.js --journeys
|
|
97
|
-
forgecad run examples/products/cup.forge.js --backend occt
|
|
98
|
-
forgecad run examples/products/cup.forge.js --backend truck --quality live
|
|
99
|
-
forgecad run examples/products/cup.forge.js --debug-imports
|
|
100
|
-
forgecad run examples/products/cup.forge.js -p "Wall Thickness=3" -p "Body Height=200"
|
|
101
|
-
forgecad run examples/constraints/06-complex-spectrogram.forge.js --solver-debug-out tmp/spectrogram-debug
|
|
80
|
+
forgecad run model.forge.js
|
|
81
|
+
forgecad run model.forge.js --details --history
|
|
102
82
|
```
|
|
103
83
|
|
|
104
84
|
### `forgecad ls`
|
|
@@ -110,11 +90,8 @@ Runs the model headlessly and prints the exact object paths that CLI tools can t
|
|
|
110
90
|
The default output is a compact line-oriented list. Use `--tree` for an indented hierarchy, `--long` for geometry metrics, or `--json` for automation.
|
|
111
91
|
|
|
112
92
|
```bash
|
|
113
|
-
forgecad ls
|
|
114
|
-
forgecad ls
|
|
115
|
-
forgecad ls examples/api/static-assembly-connectors.forge.js Bench
|
|
116
|
-
forgecad ls examples/api/static-assembly-connectors.forge.js "Bench/Slat0" --long
|
|
117
|
-
forgecad ls examples/api/static-assembly-connectors.forge.js --json
|
|
93
|
+
forgecad ls model.forge.js
|
|
94
|
+
forgecad ls model.forge.js --tree
|
|
118
95
|
```
|
|
119
96
|
|
|
120
97
|
### `forgecad show`
|
|
@@ -126,37 +103,23 @@ The main quick visual path for agents. Pass a model and, optionally, a target pa
|
|
|
126
103
|
Without a target, `show` renders the whole scene and behaves like a shorter, intent-first wrapper around `render 3d`.
|
|
127
104
|
|
|
128
105
|
```bash
|
|
129
|
-
forgecad show
|
|
130
|
-
forgecad show
|
|
131
|
-
forgecad show examples/api/static-assembly-connectors.forge.js "Bench/Slat0" --from front --out slat-front.png
|
|
132
|
-
forgecad show model.forge.js --camera "proj=perspective;pos=200,-160,120;target=0,0,20;up=0,0,1;fov=38"
|
|
106
|
+
forgecad show model.forge.js
|
|
107
|
+
forgecad show model.forge.js Bench
|
|
133
108
|
```
|
|
134
109
|
|
|
135
110
|
### Object Filtering: `--focus` and `--hide`
|
|
136
111
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
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.
|
|
112
|
+
`render 3d`, `render wireframe`, `inspect <family> <mode>`, `capture`, and `check print` can filter the visible object set without changing model code. Use `forgecad ls model.forge.js` to list exact object paths, then pass names or globs:
|
|
140
113
|
|
|
141
114
|
```bash
|
|
142
|
-
forgecad
|
|
143
|
-
forgecad
|
|
144
|
-
forgecad render 3d examples/api/static-assembly-connectors.forge.js slats.png --focus "Bench.Slat*"
|
|
145
|
-
forgecad inspect fit interference examples/api/static-assembly-connectors.forge.js --focus "Bench.*"
|
|
146
|
-
forgecad inspect visual objects examples/api/static-assembly-connectors.forge.js --hide "Bench.Slat0,Bench.Slat1" --camera iso
|
|
115
|
+
forgecad render 3d model.forge.js bench.png --focus "Bench.*"
|
|
116
|
+
forgecad inspect visual objects model.forge.js --hide "Bench.Slat0,Bench.Slat1" --camera iso
|
|
147
117
|
```
|
|
148
118
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
-
|
|
152
|
-
-
|
|
153
|
-
- `--hide name1,name2` removes matching objects from the visible scene.
|
|
154
|
-
- Matching is case-insensitive and supports `*` / `?` globs.
|
|
155
|
-
- `--focus` and `--hide` are mutually exclusive.
|
|
156
|
-
- Filtering happens after the script runs; it does not avoid evaluating the full model.
|
|
157
|
-
- Filtering works on returned object names. For grouped children, use concrete child names or globs like `Bench.*`.
|
|
158
|
-
- If a model unions many parts into one returned shape, the original parts cannot be isolated by CLI filtering.
|
|
159
|
-
- Filtered renders fail when no renderable objects remain, and exact cameras report visible objects that are partially or fully outside the camera frame.
|
|
119
|
+
- `--focus name1,name2` shows only matching objects; a bare `--focus` (no value) hides mock objects and keeps real ones.
|
|
120
|
+
- `--hide name1,name2` removes matching objects. `--focus` and `--hide` are mutually exclusive.
|
|
121
|
+
- Matching is case-insensitive with `*` / `?` globs against returned object names — use child names or globs like `Bench.*` for grouped children. Parts unioned into one returned shape cannot be isolated.
|
|
122
|
+
- Filtering happens after the script runs (the full model is always evaluated). Filtered renders fail when no renderable objects remain, and exact cameras report visible objects partially or fully outside the frame.
|
|
160
123
|
|
|
161
124
|
### `forgecad inspect`
|
|
162
125
|
|
|
@@ -181,49 +144,20 @@ Inspect a model by asking for one explicit kind of evidence.
|
|
|
181
144
|
```bash
|
|
182
145
|
forgecad inspect history main.forge.js --object "Left Leg" --level object
|
|
183
146
|
forgecad inspect design-trace main.forge.js --query feature:hole
|
|
184
|
-
forgecad inspect fit interference main.forge.js --camera iso
|
|
185
|
-
forgecad inspect visual cutaway main.forge.js --plane yz
|
|
186
|
-
forgecad inspect visual objects main.forge.js --camera front --camera right
|
|
187
|
-
forgecad inspect manufacture thickness main.forge.js --min 1.6 --warn 2.4
|
|
188
|
-
forgecad inspect section main.forge.js --plane yz --ray bore:-20,0:20,0
|
|
189
|
-
forgecad inspect replay outputs/inspect/<probe>/result.json --source candidate.forge.js
|
|
190
|
-
forgecad inspect sections at main.forge.js --plane yz --offset 12.5
|
|
191
|
-
forgecad inspect sections stack main.forge.js --plane yz --every 1
|
|
192
|
-
forgecad inspect compare overlay candidate.forge.js --with reference.3mf
|
|
193
147
|
```
|
|
194
148
|
|
|
195
149
|
### `forgecad inspect sketch`
|
|
196
150
|
|
|
197
151
|
Inspect returned sketches and profile regions used by returned shapes.
|
|
198
152
|
|
|
199
|
-
|
|
153
|
+
External inspection: runs the model, then reads returned `Sketch`/`ConstraintSketch` objects and profile-bearing shape compile plans (extrude, cut, revolve) — model code never calls an inspection API. Reports filled selectable regions (sorted largest-first, run-local ids like `R0`) and excluded hole interiors. `--seed x,y` is the stable selection mechanism (not region ids): it dry-runs which region a point selector would consume, and seed failures exit nonzero (outside every region, on a boundary, inside a hole, ambiguous, or incompatible operation). `--operation extrude` checks only whether the selected filled region can be consumed by extrusion.
|
|
200
154
|
|
|
201
155
|
```bash
|
|
202
|
-
forgecad inspect sketch
|
|
203
|
-
forgecad inspect sketch model.forge.js --object "Profile" --seed 45,15
|
|
156
|
+
forgecad inspect sketch model.forge.js
|
|
204
157
|
forgecad inspect sketch model.forge.js --json --object "Body" --seed 45,15 --operation extrude
|
|
205
158
|
```
|
|
206
159
|
|
|
207
|
-
`inspect sketch`
|
|
208
|
-
|
|
209
|
-
JSON contract: `targets[]` are inspectable sketches/profile uses; `regions[]` are filled selectable areas sorted largest-first with run-local ids like `R0`; `holes[]` are excluded interiors; `selection` is present only with `--seed`; `profileTree` is compile-plan provenance, not JavaScript variable names. Stable selection v1 is `--seed x,y`, not region id.
|
|
210
|
-
|
|
211
|
-
Seed failures are explicit and exit nonzero when no target matches: outside every region, on a boundary, inside a hole, ambiguous, no regions, or incompatible operation. `--operation extrude` only checks whether the selected filled region can be consumed by extrusion; open path/rail selection is intentionally unsupported in v1.
|
|
212
|
-
|
|
213
|
-
| Command | Description |
|
|
214
|
-
|---------|-------------|
|
|
215
|
-
| `inspect sketch` | Inspect returned sketches and profile regions used by returned shapes. |
|
|
216
|
-
| `inspect visual image` | Capture standard shaded viewport evidence. |
|
|
217
|
-
| `inspect visual objects` | Capture object identity evidence. |
|
|
218
|
-
| `inspect section` | Run one exact section probe with optional ray rulers. |
|
|
219
|
-
| `inspect replay` | Replay a saved section inspection result on a source model. |
|
|
220
|
-
| `inspect fit interference` | Capture positive-volume interference evidence. |
|
|
221
|
-
| `inspect manufacture thickness` | Capture wall-thickness evidence. |
|
|
222
|
-
| `inspect sections at` | Capture one exact section at a plane offset. |
|
|
223
|
-
| `inspect sections stack` | Capture periodic physical section slices. |
|
|
224
|
-
| `inspect sections sample` | Capture a fixed number of representative section slices. |
|
|
225
|
-
| `inspect compare overlay` | Capture candidate-vs-reference comparison evidence. |
|
|
226
|
-
| `inspect evidence` | List available inspect commands. |
|
|
160
|
+
The full `inspect sketch` JSON contract (`targets[]`/`regions[]`/`holes[]`/`selection`/`profileTree` semantics) lives in [guides/inspection-bundles.md](guides/inspection-bundles.md).
|
|
227
161
|
|
|
228
162
|
### `forgecad render`
|
|
229
163
|
|
|
@@ -239,43 +173,23 @@ Render a Forge scene. Use a subcommand — `3d`, `views`, `section`, `wireframe`
|
|
|
239
173
|
- `render hq` — path-traced via Blender Cycles, for documentation and marketing shots
|
|
240
174
|
|
|
241
175
|
```bash
|
|
242
|
-
forgecad render 3d
|
|
243
|
-
forgecad
|
|
244
|
-
forgecad render views examples/products/cup.forge.js
|
|
245
|
-
forgecad render wireframe examples/products/cup.forge.js
|
|
246
|
-
forgecad render section examples/furniture/01-table.forge.js --plane XZ
|
|
247
|
-
forgecad render hq examples/products/cup.forge.js --preset dramatic
|
|
176
|
+
forgecad render 3d model.forge.js
|
|
177
|
+
forgecad render section model.forge.js --plane XZ
|
|
248
178
|
```
|
|
249
179
|
|
|
250
180
|
### `forgecad render 3d`
|
|
251
181
|
|
|
252
182
|
Render a Forge scene to PNG using the real viewport renderer.
|
|
253
183
|
|
|
254
|
-
Launches
|
|
255
|
-
|
|
256
|
-
The input can be a `.forge.js` script or a direct `.stl`, `.obj`, `.3mf`, `.step`, or `.stp` asset. Direct STEP/STP rendering auto-selects OCCT unless you pass `--backend`.
|
|
257
|
-
|
|
258
|
-
Use `--focus` to isolate specific parts (hides everything else) or `--hide` to remove clutter like mock objects. The `--view` flag selects a named camera declared in `scene({ views })`. The `--camera` flag accepts built-in views (`front`, `top`, `iso`), `azimuth:elevation` angles, or an exact `proj/pos/target/up/fov` camera spec — pass `--camera` multiple times to render several viewpoints in one run. Use `--camera-json <file>` or `--scene <file>` for exact reproducible viewport cameras without shell escaping. Filtered renders report any visible objects whose bounding boxes are partially or fully outside the camera frame; exact cameras fail when they frame none of the visible objects.
|
|
184
|
+
Launches headless Chrome, renders the scene with the same WebGL viewport as the editor, and saves a PNG. The output path defaults to `<script-name>.png` next to the input; the input can be a `.forge.js` script or a direct `.stl`/`.obj`/`.3mf`/`.step`/`.stp` asset.
|
|
259
185
|
|
|
260
|
-
|
|
186
|
+
`--camera` accepts built-in views (`front`, `top`, `iso`), `azimuth:elevation` angles, or an exact `proj/pos/target/up/fov` camera spec — pass it multiple times to render several viewpoints in one run. `--view` selects a named camera declared in `scene({ views })`; `--camera-json <file>` or `--scene <file>` give exact reproducible cameras without shell escaping. `--focus`/`--hide` filter visible objects; `--edges=<off|thin|bold>` controls the edge overlay.
|
|
261
187
|
|
|
262
|
-
This is the standard way to visually verify geometry from the CLI or in agent workflows. For
|
|
188
|
+
This is the standard way to visually verify geometry from the CLI or in agent workflows. For path-traced quality use `render hq`; for edges only use `render wireframe`.
|
|
263
189
|
|
|
264
190
|
```bash
|
|
265
|
-
forgecad render 3d
|
|
266
|
-
forgecad render 3d
|
|
267
|
-
forgecad render 3d examples/api/static-assembly-connectors.forge.js --focus "Bench.Slat*"
|
|
268
|
-
forgecad render 3d examples/api/static-assembly-connectors.forge.js --hide "Bench.Slat0,Bench.Slat1"
|
|
269
|
-
forgecad render 3d model.forge.js --view hero
|
|
270
|
-
forgecad render 3d model.forge.js --camera 45:30
|
|
271
|
-
forgecad render 3d model.forge.js --camera "proj=perspective;pos=200,-160,120;target=0,0,20;up=0,0,1;fov=38"
|
|
272
|
-
forgecad render 3d model.forge.js --camera-json camera.json
|
|
273
|
-
forgecad render 3d model.forge.js --scene scene.json
|
|
274
|
-
forgecad render 3d model.forge.js --camera front --camera side
|
|
275
|
-
forgecad render 3d model.forge.js -p "Wall Thickness=3"
|
|
276
|
-
forgecad render 3d model.forge.js --edges bold
|
|
277
|
-
forgecad render 3d model.forge.js --edges off
|
|
278
|
-
forgecad render 3d bracket.3mf bracket.png
|
|
191
|
+
forgecad render 3d model.forge.js
|
|
192
|
+
forgecad render 3d model.forge.js --camera front --camera side --edges bold
|
|
279
193
|
```
|
|
280
194
|
|
|
281
195
|
### `forgecad render views`
|
|
@@ -296,138 +210,77 @@ Render a Forge scene as a wireframe (edges only, no shading).
|
|
|
296
210
|
Same as `render 3d` but renders only the edge geometry — no shaded surfaces. Useful for construction-style documentation or highlighting structural features without material detail.
|
|
297
211
|
|
|
298
212
|
```bash
|
|
299
|
-
forgecad render wireframe
|
|
300
|
-
forgecad render wireframe
|
|
213
|
+
forgecad render wireframe model.forge.js
|
|
214
|
+
forgecad render wireframe model.forge.js --camera iso
|
|
301
215
|
```
|
|
302
216
|
|
|
303
217
|
### `forgecad render hq` **\[Pro\]**
|
|
304
218
|
|
|
305
219
|
High-quality render via Blender Cycles — path-traced, HDRI, material presets.
|
|
306
220
|
|
|
307
|
-
Exports the scene to Blender and renders with Cycles (path tracer)
|
|
221
|
+
Exports the scene to Blender and renders with Cycles (path tracer); requires Blender on PATH. Output defaults to `<script-name>-hq.png`.
|
|
308
222
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
Output defaults to `<script-name>-hq.png`. Great for documentation, marketing renders, and social media.
|
|
223
|
+
`--preset` picks the look (`studio`, `dramatic`, `clay`, `glass`, `metallic`, `toon`, `xray`, `normals`, `silhouette`, and more); `--samples` (default 256) trades quality vs speed; `--transparent` gives a compositing-ready background. Camera control (`--view`, `--camera`, `--camera-json`, `--scene <file>`) matches `render 3d`.
|
|
312
224
|
|
|
313
225
|
```bash
|
|
314
|
-
forgecad render hq
|
|
315
|
-
forgecad render hq
|
|
316
|
-
forgecad render hq examples/products/cup.forge.js hero.png --view hero
|
|
317
|
-
forgecad render hq examples/products/cup.forge.js hero.png --camera-json camera.json
|
|
318
|
-
forgecad render hq examples/products/cup.forge.js --preset clay --size 2048
|
|
319
|
-
forgecad render hq examples/products/cup.forge.js --transparent --preset glass
|
|
226
|
+
forgecad render hq model.forge.js
|
|
227
|
+
forgecad render hq model.forge.js hero.png --preset dramatic --samples 1024
|
|
320
228
|
```
|
|
321
229
|
|
|
322
230
|
### `forgecad capture gif|mp4` **\[Pro\]**
|
|
323
231
|
|
|
324
232
|
Animated orbit, section sweep, or named joint playback.
|
|
325
233
|
|
|
326
|
-
Renders an animated sequence
|
|
234
|
+
Renders an animated sequence: `--capture orbit` (default) for a turntable, `--capture animation --animation <name>` for a named joint clip, or `--capture section-sweep` to move a clipping plane through the model. `--cut-plane` keeps a static cross-section visible while animating; the orbit base or fixed camera comes from `--view`, `--camera`, `--camera-json`, or `--scene <file>`.
|
|
327
235
|
|
|
328
236
|
```bash
|
|
329
|
-
forgecad capture gif
|
|
330
|
-
forgecad capture gif
|
|
331
|
-
forgecad capture gif model.forge.js out/raw.gif --param "Output=raw-sdf"
|
|
332
|
-
forgecad capture gif model.forge.js out/front.gif --camera front
|
|
333
|
-
forgecad capture gif model.forge.js out/hero.gif --view hero
|
|
334
|
-
forgecad capture gif examples/3d-printer.forge.js out/sweep.gif --capture section-sweep --sweep-plane YZ
|
|
335
|
-
forgecad capture mp4 examples/products/cup.forge.js
|
|
336
|
-
forgecad capture mp4 examples/api/assembly-kinematics-four-bar.forge.js out/four-bar.mp4 --view iso
|
|
337
|
-
forgecad capture mp4 model.forge.js out/raw.mp4 --param "Output=raw-sdf"
|
|
338
|
-
forgecad capture mp4 model.forge.js out/front.mp4 --camera front
|
|
339
|
-
forgecad capture mp4 model.forge.js out/hero.mp4 --view hero
|
|
340
|
-
forgecad capture mp4 examples/3d-printer.forge.js out/sweep.mp4 --capture section-sweep --sweep-plane YZ --sweep-frames 180
|
|
237
|
+
forgecad capture gif model.forge.js
|
|
238
|
+
forgecad capture gif model.forge.js out/sweep.gif --capture section-sweep --sweep-plane YZ
|
|
341
239
|
```
|
|
342
240
|
|
|
343
241
|
### `forgecad render section`
|
|
344
242
|
|
|
345
243
|
Render a 2D cross-section of a 3D model (cut by a plane) to SVG or PNG.
|
|
346
244
|
|
|
347
|
-
Cuts all shapes
|
|
348
|
-
|
|
349
|
-
Output format is determined by the file extension: `.svg` (default, vector) or `.png` (rasterized at `--size` pixels). Use `--edges=<off|thin|bold>` to control the outline stroke on cut shapes.
|
|
350
|
-
|
|
351
|
-
Useful for verifying internal geometry, wall thicknesses, and fit checks that aren't visible in 3D renders.
|
|
245
|
+
Cuts all shapes with an axis-aligned plane (default XY at Z=0; `--plane XZ|YZ` reorients, `--offset` shifts the cut) and writes a 2D cross-section drawing. The file extension picks the format: `.svg` (default, vector) or `.png` (rasterized at `--size` pixels); `--edges=<off|thin|bold>` sets the outline stroke. Useful for verifying internal geometry, wall thicknesses, and fits that aren't visible in 3D renders.
|
|
352
246
|
|
|
353
247
|
```bash
|
|
354
|
-
forgecad render section
|
|
355
|
-
forgecad render section
|
|
356
|
-
forgecad render section examples/furniture/01-table.forge.js out/section.png --size 2048
|
|
357
|
-
forgecad render section examples/furniture/01-table.forge.js out/bold.svg --edges bold
|
|
248
|
+
forgecad render section model.forge.js
|
|
249
|
+
forgecad render section model.forge.js out/section.svg --plane XZ --offset 10
|
|
358
250
|
```
|
|
359
251
|
|
|
360
252
|
| Command | Description |
|
|
361
253
|
|---------|-------------|
|
|
362
254
|
| `render sketch` | Render a 2D sketch .forge.js to PNG. |
|
|
363
255
|
|
|
364
|
-
|
|
365
|
-
|
|
256
|
+
### Behavioral notes
|
|
257
|
+
|
|
258
|
+
- Each render starts a private renderer server by default, so parallel renders do not collide. When sharing one server via `--port`, run renders sequentially — concurrent renders against a shared Vite server race and time out.
|
|
259
|
+
- Direct `.step` / `.stp` inputs auto-select the OCCT backend unless `--backend` is passed.
|
|
260
|
+
- Passing `--camera` several times writes one PNG per camera named `<output>_<camera>.png`; a single camera writes exactly the given output path. If a multi-camera run does not emit the PNGs you expect, rerun one camera at a time with explicit output paths.
|
|
261
|
+
|
|
262
|
+
### Cross-cutting flags
|
|
263
|
+
|
|
264
|
+
These flags work across run / render / capture / inspect commands:
|
|
366
265
|
|
|
367
266
|
| Option | Description |
|
|
368
267
|
|--------|-------------|
|
|
369
268
|
| `--param <Key=Value>` | Override a parameter value (Key=Value). Repeatable. |
|
|
370
|
-
| `-p <Key=Value>` | Shorthand for --param |
|
|
371
269
|
| `--joint <JointName=Value>` | Override a Motion tab joint value (JointName=Value). Repeatable. |
|
|
372
270
|
| `--focus <names>` | Focus: no arg hides mocks; comma-separated names/globs show only those |
|
|
373
271
|
| `--hide <names>` | Hide comma-separated object names/globs |
|
|
374
272
|
| `--camera <front\|back\|side\|right\|top\|iso\|az:el\|az:el:dist\|spec>` | Camera preset, spherical (az:el), or full spec such as `proj=perspective;pos=x,y,z;target=x,y,z;up=x,y,z;fov=45`. Repeatable. |
|
|
375
|
-
| `--camera-json <file>` | Exact viewport camera JSON file |
|
|
376
273
|
| `--view <name>` | Named camera view declared by the model with scene({ views }) |
|
|
377
274
|
| `--size <px>` | Image size in pixels |
|
|
378
|
-
| `--scene <json\|file>` | Viewport scene state JSON or JSON file |
|
|
379
|
-
| `--background <color>` | Canvas background override |
|
|
380
|
-
| `--render-mode <solid\|wireframe>` | Shaded solid (default) or wireframe only |
|
|
381
|
-
| `--edges <off\|thin\|bold>` | Edge overlay preset in solid mode (default: off) |
|
|
382
|
-
| `--render-style <classic\|studio\|fast\|glass\|inspection\|contour\|scan>` | Visual render style (render default: classic; inspect default: inspection) |
|
|
383
|
-
| `--scan-granularity <12-144>` | Scan cells across the scene longest axis |
|
|
384
|
-
| `--port <n>` | Renderer server port |
|
|
385
|
-
| `--fresh-server` | Start a fresh renderer instead of reusing an existing one |
|
|
386
|
-
| `--chrome-path <path>` | Chrome or Chromium executable path |
|
|
387
|
-
| `--output <path>` | Output file path |
|
|
388
|
-
| `--json` | Print machine-readable JSON |
|
|
389
275
|
| `--quality <default\|live\|high>` | Mesh quality preset |
|
|
390
|
-
| `--backend <manifold\|occt\|truck>` | Geometry backend (default: manifold) |
|
|
391
|
-
| `--
|
|
392
|
-
| `--width <px>` | Output width in pixels |
|
|
393
|
-
| `--height <px>` | Output height in pixels |
|
|
394
|
-
| `--samples <n>` | Render samples (more = higher quality, slower) |
|
|
395
|
-
| `--engine <cycles\|eevee>` | Render engine |
|
|
396
|
-
| `--transparent` | Transparent background (RGBA) |
|
|
397
|
-
| `--no-denoise` | Disable denoising |
|
|
398
|
-
| `--hdri <path.hdr>` | Custom HDRI environment map path |
|
|
399
|
-
| `--video` | Render orbit turntable video (MP4) |
|
|
400
|
-
| `--frames <n>` | Video frames per revolution |
|
|
401
|
-
| `--fps <n>` | Video frame rate |
|
|
402
|
-
| `--pitch <deg>` | Camera pitch angle in degrees |
|
|
403
|
-
| `--format <gif\|mp4>` | Output format |
|
|
404
|
-
| `--capture <orbit\|animation\|section-sweep>` | Capture preset |
|
|
405
|
-
| `--animation <name>` | Named joint animation clip |
|
|
406
|
-
| `--animation-loops <n>` | Repeat the selected animation clip |
|
|
407
|
-
| `--cut-plane <name>` | Enable a named cut plane |
|
|
408
|
-
| `--sweep-plane <XY\|XZ\|YZ>` | Moving plane for section-sweep |
|
|
409
|
-
| `--sweep-normal <x,y,z>` | Custom section-sweep normal |
|
|
410
|
-
| `--sweep-from <min\|max\|offset>` | Section-sweep start offset |
|
|
411
|
-
| `--sweep-to <min\|max\|offset>` | Section-sweep end offset |
|
|
412
|
-
| `--sweep-padding <n>` | Auto sweep range padding in model units |
|
|
413
|
-
| `--sweep-frames <n>` | Moving frames for section-sweep |
|
|
414
|
-
| `--sweep-ease <linear\|smoothstep>` | Section-sweep interpolation |
|
|
415
|
-
| `--section-style <hatched\|clean>` | Section cap style for sweep captures |
|
|
416
|
-
| `--wireframe-pass` | Enable an extra wireframe pass (off by default) |
|
|
417
|
-
| `--no-wireframe-pass` | Disable the extra wireframe pass |
|
|
418
|
-
| `--pixel-ratio <n>` | Render supersampling factor |
|
|
419
|
-
| `--frames-per-turn <n>` | Frames for one orbit turn |
|
|
420
|
-
| `--hold-frames <n>` | Freeze frames before each pass |
|
|
421
|
-
| `--encoder <auto\|ffmpeg\|js>` | GIF encoder strategy |
|
|
422
|
-
| `--crf <n>` | ffmpeg/libx264 quality |
|
|
423
|
-
| `--ffmpeg-path <path>` | ffmpeg executable path |
|
|
424
|
-
| `--list` | Print available animations and cut planes |
|
|
276
|
+
| `--backend <manifold\|occt\|truck>` | Geometry backend (default: manifold; STEP inputs default to OCCT) |
|
|
277
|
+
| `--json` | Print machine-readable JSON |
|
|
425
278
|
|
|
426
|
-
|
|
279
|
+
Every command has more — Blender-only `render hq` flags (`--preset`, `--samples`, `--engine`, `--hdri`, `--transparent`, `--video`) and capture-only flags (`--capture`, `--animation`, `--cut-plane`, `--sweep-*`, `--fps`) among them. Run `forgecad <command> --help` for the full list.
|
|
427
280
|
|
|
428
281
|
## Export
|
|
429
282
|
|
|
430
|
-
Export to every format you need.
|
|
283
|
+
Export to every format you need.
|
|
431
284
|
|
|
432
285
|
| Command | Format | Use case |
|
|
433
286
|
|---------|--------|----------|
|
|
@@ -440,16 +293,16 @@ Export to every format you need. Export actions are free to run for personal non
|
|
|
440
293
|
| `export stl` | STL | 3D printing |
|
|
441
294
|
| `export gcode` **\[Production\]** | G-code | Toolpath (scripted, not sliced) |
|
|
442
295
|
| `export sdf` **\[Production\]** | SDF package | Gazebo robot simulation |
|
|
296
|
+
| `export mjcf` **\[Production\]** | MJCF package | MuJoCo / MJX robot simulation |
|
|
443
297
|
| `export urdf` **\[Production\]** | URDF package | ROS / PyBullet / MuJoCo |
|
|
444
298
|
| `export report` **\[Production\]** | PDF report | Multi-view report with BOM and dimensions |
|
|
445
299
|
| `export cutting-layout` **\[Production\]** | PDF/DXF | Sheet cutting layout with cut sequence |
|
|
446
|
-
| `link` | URL |
|
|
300
|
+
| `link` | URL | Share link from a GitHub Gist URL or ID (copied to clipboard) |
|
|
447
301
|
|
|
448
302
|
```bash
|
|
449
303
|
# Sheet material
|
|
450
|
-
forgecad cut-list
|
|
451
|
-
forgecad export cutting-layout
|
|
452
|
-
forgecad export cutting-layout examples/api/sheet-stock-cut-list.forge.js out/layout.dxf
|
|
304
|
+
forgecad cut-list shelf.forge.js
|
|
305
|
+
forgecad export cutting-layout shelf.forge.js --sheet-width 420 --sheet-height 594 --kerf 3
|
|
453
306
|
|
|
454
307
|
# 3D printing
|
|
455
308
|
forgecad check print bracket.forge.js
|
|
@@ -464,6 +317,7 @@ forgecad export report bracket.forge.js out/report.pdf
|
|
|
464
317
|
|
|
465
318
|
# Robot simulation
|
|
466
319
|
forgecad export sdf rover.forge.js --output out/forge_scout
|
|
320
|
+
forgecad export mjcf rover.forge.js --output out/forge_scout_mjcf
|
|
467
321
|
```
|
|
468
322
|
|
|
469
323
|
<details>
|
|
@@ -492,25 +346,7 @@ A project is a local folder linked to the hosted app by `forgecad.json`. Use `fo
|
|
|
492
346
|
|
|
493
347
|
Keep the project root small and intentional. Do not run the editor from `~`, downloads, desktop, or a huge source tree. ForgeCAD scans project files such as `.forge.js`, `.js`, `.svg`, and `.dxf`; broad roots make local workflows and AI-agent context slow and confusing.
|
|
494
348
|
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
```bash
|
|
498
|
-
forgecad login
|
|
499
|
-
mkdir spool-adapter
|
|
500
|
-
cd spool-adapter
|
|
501
|
-
forgecad project init "Spool Adapter"
|
|
502
|
-
forgecad new adapter --template part
|
|
503
|
-
forgecad studio .
|
|
504
|
-
|
|
505
|
-
# or clone an existing hosted project:
|
|
506
|
-
forgecad project clone start-here
|
|
507
|
-
cd start-here
|
|
508
|
-
forgecad studio .
|
|
509
|
-
```
|
|
510
|
-
|
|
511
|
-
`forgecad login` asks how you want to sign in, then prompts for either email/password or an API token. If your account was created through GitHub or Google, create an API token in Settings > API Tokens, run `forgecad login`, and choose API token. Use `FORGECAD_TOKEN=fc_pat_...` only for CI/CD and one-off automation.
|
|
512
|
-
|
|
513
|
-
`forgecad project init` creates the remote project, writes `forgecad.json`, pushes any existing local source files, and records server file IDs. `forgecad project push` syncs an already initialized project; it does not create a remote project from an arbitrary folder.
|
|
349
|
+
First-time setup (login, init, studio) is the [Quick Start](#quick-start) sequence above. `forgecad project init` creates the remote project, writes `forgecad.json`, pushes any existing local source files, and records server file IDs. `forgecad project push` syncs an already initialized project; it does not create a remote project from an arbitrary folder.
|
|
514
350
|
|
|
515
351
|
### Sync
|
|
516
352
|
|
|
@@ -605,13 +441,9 @@ Shares are live references — always the current version, not a snapshot.
|
|
|
605
441
|
ForgeCAD files are plain JavaScript. AI coding agents should work inside an initialized project folder, write and iterate on local files, and use the CLI for evidence. See [AI Usage](AI/usage.md) for approved models, project-first setup, installable skills, quality prompts, and completion criteria.
|
|
606
442
|
|
|
607
443
|
```bash
|
|
608
|
-
# Install the full public ForgeCAD skill library
|
|
444
|
+
# Install the full public ForgeCAD skill library (--target claude|opencode for a specific agent)
|
|
609
445
|
forgecad skill install
|
|
610
446
|
|
|
611
|
-
# Target a specific local agent skill directory when needed
|
|
612
|
-
forgecad skill install --target claude
|
|
613
|
-
forgecad skill install --target opencode
|
|
614
|
-
|
|
615
447
|
# Or export a single context file for chat UIs (Claude.ai, ChatGPT, ...)
|
|
616
448
|
forgecad skill one-file ~/Desktop/forgecad-context.md
|
|
617
449
|
|
|
@@ -623,7 +455,7 @@ forgecad skill flattened-files ~/Desktop/forgecad-skills
|
|
|
623
455
|
|
|
624
456
|
## Validation
|
|
625
457
|
|
|
626
|
-
Check printability and
|
|
458
|
+
Check printability, simulation readiness, and focused model integrity.
|
|
627
459
|
|
|
628
460
|
### `forgecad compare 3d`
|
|
629
461
|
|
|
@@ -634,7 +466,6 @@ Runs both inputs headlessly, samples their triangle surfaces, feature edges, bou
|
|
|
634
466
|
```bash
|
|
635
467
|
forgecad compare 3d reference.stl reconstruction.forge.js
|
|
636
468
|
forgecad compare 3d reference.step reconstruction.forge.js --json --samples 3000
|
|
637
|
-
forgecad compare 3d source.3mf candidate.3mf --align center --tolerance-mm 0.5 --fail-under 90
|
|
638
469
|
```
|
|
639
470
|
|
|
640
471
|
### `forgecad check print`
|
|
@@ -646,24 +477,30 @@ Runs a Forge script with the headless kernel and emits a slicer-adjacent printab
|
|
|
646
477
|
Checks include script `verify.*` results, exact positive-volume object collisions, physical component count, mesh topology, sampled wall thickness, unsupported overhang budget, and bed-contact area. Use `--json` for automation and `--output` to save the full report while keeping the readable terminal summary.
|
|
647
478
|
|
|
648
479
|
```bash
|
|
649
|
-
forgecad check print
|
|
650
|
-
forgecad check print
|
|
651
|
-
|
|
652
|
-
|
|
480
|
+
forgecad check print model.forge.js
|
|
481
|
+
forgecad check print model.forge.js --json
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
### `forgecad check simready`
|
|
485
|
+
|
|
486
|
+
Validate source-authored robot and physics metadata before simulation export.
|
|
487
|
+
|
|
488
|
+
Runs a Forge script and checks the returned `assembly(...).withSimulation(...)` contract without Isaac Sim, OpenUSD, or NVIDIA validators. The gate validates Sim.body metadata, explicit colliders, contact connectors, controller joints, numeric physics values, and the robot joint graph.
|
|
489
|
+
|
|
490
|
+
```bash
|
|
491
|
+
forgecad check simready model.forge.js
|
|
492
|
+
forgecad check simready robot.forge.js --json
|
|
653
493
|
```
|
|
654
494
|
|
|
655
495
|
### `forgecad inspect mechanical-integrity`
|
|
656
496
|
|
|
657
497
|
Inspect generated ForgeCAD models for mechanical integrity failures.
|
|
658
498
|
|
|
659
|
-
Scans a Forge script or a folder of generated projects and
|
|
499
|
+
Scans a Forge script or a folder of generated projects and flags timeouts, runtime errors, missing `verify.*` checks, missing executed mechanical-interface checks, fragmented named groups, uncontracted manual assemblies, and (when requested) positive-volume collisions and excessive physical component counts. Details suggest concrete repair patterns. With `--collisions`, the largest overlapping object pairs are listed by volume so the highest-risk interfaces get repaired first; exhausting the exact-check pair or time budget fails the file instead of silently passing a partial check, and truncated script-side joint-sweep validation fails explicitly. Script `console.warn()` diagnostics are reported as warnings; use `verify.*` checks or `console.error()` for gate-failing contracts.
|
|
660
500
|
|
|
661
501
|
```bash
|
|
662
502
|
forgecad inspect mechanical-integrity path/to/generated-models
|
|
663
|
-
forgecad inspect mechanical-integrity
|
|
664
|
-
forgecad inspect mechanical-integrity path/to/model/main.forge.js --collisions
|
|
665
|
-
forgecad inspect mechanical-integrity path/to/generated-models --collisions --collision-pair-limit 250
|
|
666
|
-
forgecad inspect mechanical-integrity path/to/generated-models --json --timeout-ms 40000 --jobs 4
|
|
503
|
+
forgecad inspect mechanical-integrity model.forge.js --min-verifications 2
|
|
667
504
|
```
|
|
668
505
|
|
|
669
506
|
<details>
|
|
@@ -692,7 +529,7 @@ The CLI is free for personal non-commercial use. Pro covers human-operated comme
|
|
|
692
529
|
|
|
693
530
|
| Free | Production outputs | Pro | Enterprise |
|
|
694
531
|
|------|--------------------|-----|------------|
|
|
695
|
-
| `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 |
|
|
532
|
+
| `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 mjcf`, `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 |
|
|
696
533
|
|
|
697
534
|
```bash
|
|
698
535
|
forgecad license # Check local license status
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Generated — do not edit
|
|
2
|
+
|
|
3
|
+
Everything in `docs/public/` is generated by `scripts/gen-public-docs.ts`:
|
|
4
|
+
docs are copied from `docs/permanent/` per `docs/public-docs.json`, skill pages
|
|
5
|
+
from `dist-skill/website/skills/` (rendered out of `agent-skill-library/`), and
|
|
6
|
+
legal docs by `scripts/gen-legal-docs.ts`. Edit those sources instead.
|