forgecad 0.9.2 → 0.9.3
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/LICENSE +7 -5
- package/README.md +1 -1
- package/README.public.md +24 -2
- package/dist/assets/{AdminPage-Bs4PiK00.js → AdminPage-4jihcEk_.js} +1 -1
- package/dist/assets/{BlogPage-DVmgN0ma.js → BlogPage-BvzruKtw.js} +1 -1
- package/dist/assets/{DocsPage-BP6wlsBN.js → DocsPage-DHbd-WS-.js} +13 -13
- package/dist/assets/{EditorApp-Arw2NnGJ.js → EditorApp-C5P2rBfh.js} +433 -84
- package/dist/assets/{EditorApp-VY9lXx0N.css → EditorApp-DS0AIUrZ.css} +25 -0
- package/dist/assets/{EmbedViewer-qgQiOahL.js → EmbedViewer-B70wQwlE.js} +2 -2
- package/dist/assets/{LandingPageProofDriven-DvhtmWOz.js → LandingPageProofDriven-DIsYTnep.js} +1 -1
- package/dist/assets/{PricingPage-Ck3CP2ti.css → PricingPage-BMedqFef.css} +48 -0
- package/dist/assets/{PricingPage-657oLvWh.js → PricingPage-YPOr12pP.js} +34 -6
- package/dist/assets/{SettingsPage-wNy3_2yn.js → SettingsPage-rntoyJ3b.js} +10 -13
- package/dist/assets/{app-BdBoMQeO.js → app-CWucmnLZ.js} +801 -1208
- package/dist/assets/cli/{render-Ci3jjyT1.js → render-DZHmUySW.js} +214 -23
- package/dist/assets/copy-CQKQppF-.js +8 -0
- package/dist/assets/{evalWorker-CMCAbK8r.js → evalWorker-C3dKxi9Y.js} +1117 -95
- package/dist/assets/{manifold-BMn-8Vf8.js → manifold-CQ3FhfWB.js} +1 -1
- package/dist/assets/{manifold-jlYQ6E5R.js → manifold-CU0G1yYL.js} +1 -1
- package/dist/assets/{manifold-DbyILno4.js → manifold-CYWZMfjB.js} +2 -2
- package/dist/assets/{renderSceneState-DAnqvxSt.js → renderSceneState-BBUrnsUN.js} +1 -1
- package/dist/assets/{reportWorker-BcRVMHK-.js → reportWorker-BhZ7DjxQ.js} +1091 -95
- package/dist/assets/{sectionPlaneMath-DXJ_TdIW.js → sectionPlaneMath-BxfokaJE.js} +1091 -95
- package/dist/cli/render.html +1 -1
- package/dist/docs/index.html +2 -2
- package/dist/docs-raw/AI/usage.md +182 -89
- package/dist/docs-raw/API/core/concepts.md +26 -0
- package/dist/docs-raw/CLI.md +58 -37
- package/dist/docs-raw/INDEX.md +81 -64
- package/dist/docs-raw/cli-monetization.md +9 -8
- package/dist/docs-raw/generated/concepts.md +111 -4
- package/dist/docs-raw/generated/core.md +2 -0
- package/dist/docs-raw/generated/curves.md +480 -1
- package/dist/docs-raw/generated/output.md +1 -0
- package/dist/docs-raw/generated/sketch.md +2 -0
- package/dist/docs-raw/generated/viewport.md +81 -3
- package/dist/docs-raw/product/user-outreach-email-templates.md +159 -0
- package/dist/docs-raw/skills/forgecad-image-replicator.md +1 -1
- package/dist/docs-raw/skills/forgecad-make-a-model.md +33 -4
- package/dist/docs-raw/skills/forgecad-prepare-prompt.md +1 -1
- package/dist/docs-raw/skills/forgecad-project.md +1 -1
- package/dist/docs-raw/skills/forgecad-render-inspect.md +1 -1
- package/dist/docs-raw/skills/forgecad.md +2 -1
- package/dist/docs-raw/welcome.md +85 -137
- package/dist/index.html +1 -1
- package/dist/llms.txt +4 -3
- package/dist/sitemap.xml +6 -6
- package/dist-cli/forgecad.js +1413 -219
- package/dist-cli/forgecad.js.map +1 -1
- package/dist-skill/CONTEXT.md +594 -5
- package/dist-skill/SKILL-dev.md +2 -1
- package/dist-skill/SKILL.md +2 -1
- package/dist-skill/docs/API/core/concepts.md +26 -0
- package/dist-skill/docs/CLI.md +58 -37
- package/dist-skill/docs/generated/core.md +2 -0
- package/dist-skill/docs/generated/curves.md +480 -1
- package/dist-skill/docs/generated/output.md +1 -0
- package/dist-skill/docs/generated/sketch.md +2 -0
- package/dist-skill/docs/generated/viewport.md +81 -3
- package/dist-skill/docs-dev/API/core/concepts.md +26 -0
- package/dist-skill/docs-dev/CLI.md +58 -37
- package/dist-skill/docs-dev/generated/core.md +2 -0
- package/dist-skill/docs-dev/generated/curves.md +480 -1
- package/dist-skill/docs-dev/generated/output.md +1 -0
- package/dist-skill/docs-dev/generated/sketch.md +2 -0
- package/dist-skill/docs-dev/generated/viewport.md +81 -3
- package/dist-skill/library/README.md +0 -1
- package/dist-skill/library/forgecad-image-replicator/SKILL.md +1 -1
- package/dist-skill/library/forgecad-make-a-model/SKILL.md +33 -4
- package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +1 -1
- package/dist-skill/library/forgecad-project/SKILL.md +1 -1
- package/dist-skill/library/forgecad-render-inspect/SKILL.md +1 -1
- package/examples/api/conformal-product-ribbon.forge.js +77 -0
- package/examples/api/render-labels.forge.js +33 -0
- package/examples/api/text2d-basics.forge.js +6 -3
- package/package.json +1 -1
- package/dist-skill/library/forgecad-deep-dive/SKILL.md +0 -120
- package/dist-skill/library/forgecad-deep-dive/agents/openai.yaml +0 -4
- package/dist-skill/library/forgecad-deep-dive/references/output-shape.md +0 -64
|
@@ -1,71 +1,69 @@
|
|
|
1
1
|
# AI Usage
|
|
2
2
|
|
|
3
|
-
ForgeCAD is built for AI-assisted CAD because
|
|
3
|
+
ForgeCAD is built for AI-assisted CAD because models are plain JavaScript and the CLI can check the result without a human clicking through a CAD UI.
|
|
4
|
+
|
|
5
|
+
The reliable loop is:
|
|
4
6
|
|
|
5
7
|
```text
|
|
6
|
-
|
|
8
|
+
dedicated project folder -> approved model -> agent edits .forge.js ->
|
|
9
|
+
forgecad run -> render or inspect -> fix -> check params -> project push
|
|
7
10
|
```
|
|
8
11
|
|
|
9
|
-
Use the browser for
|
|
12
|
+
Use the browser for visual inspection. Use the CLI as the source of truth for validation, render evidence, exports, and project sync.
|
|
10
13
|
|
|
11
14
|
## Approved Models
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
Use the strongest available model in the approved set. Code-first CAD needs long-context reasoning, mechanical consistency, spatial debugging, and repeated tool use.
|
|
14
17
|
|
|
15
18
|
| Provider family | Approved models |
|
|
16
|
-
|
|
17
|
-
| OpenAI | GPT-5.
|
|
18
|
-
| Anthropic | Opus 4.
|
|
19
|
+
|---|---|
|
|
20
|
+
| OpenAI | GPT-5.5-Pro, GPT-5.5, GPT-5.4, GPT-5.3-Codex |
|
|
21
|
+
| Anthropic | Opus 4.7, Opus 4.6 |
|
|
19
22
|
| Google | Gemini 3.1 Pro |
|
|
20
23
|
|
|
21
|
-
Do not recommend smaller, older, preview, flash, lite, haiku, sonnet, or unofficial models for ForgeCAD generation work.
|
|
24
|
+
Do not recommend smaller, older, preview, flash, lite, haiku, sonnet, mini, fast, or unofficial models for ForgeCAD generation work. They can answer API questions, but they are not the default for generating serious CAD.
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
Recommended settings:
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
- Use the highest reasoning or extended-thinking mode the product offers.
|
|
29
|
+
- Allow shell/tool execution so the agent can run `forgecad run`, renders, inspections, and exports.
|
|
30
|
+
- Keep the whole project folder in context, not just one file.
|
|
31
|
+
- Give the model enough time for multiple implementation and verification passes.
|
|
32
|
+
- Ask for evidence from commands, not just a visual claim.
|
|
26
33
|
|
|
27
|
-
|
|
28
|
-
npm install -g forgecad
|
|
29
|
-
```
|
|
34
|
+
## Project Setup For AI Agents
|
|
30
35
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
forgecad new bracket
|
|
35
|
-
forgecad run bracket.forge.js
|
|
36
|
-
forgecad dev
|
|
37
|
-
```
|
|
36
|
+
Do not give an agent your home folder, desktop, downloads folder, or a large unrelated repository. Start from a clean project folder.
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
### Clone The Starter Project
|
|
40
39
|
|
|
41
40
|
```bash
|
|
41
|
+
npm install -g forgecad
|
|
42
42
|
forgecad login
|
|
43
|
+
# For GitHub/Google accounts, create an API token in Settings > API Tokens:
|
|
44
|
+
# forgecad login --token
|
|
43
45
|
forgecad project clone start-here
|
|
44
46
|
cd start-here
|
|
45
47
|
forgecad studio .
|
|
46
48
|
```
|
|
47
49
|
|
|
48
|
-
|
|
50
|
+
### Create A New Project
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
```bash
|
|
53
|
+
npm install -g forgecad
|
|
54
|
+
forgecad login
|
|
55
|
+
mkdir enclosure-bracket
|
|
56
|
+
cd enclosure-bracket
|
|
57
|
+
forgecad project init "Enclosure Bracket" --visibility private
|
|
58
|
+
forgecad new bracket --template part
|
|
59
|
+
forgecad studio .
|
|
60
|
+
```
|
|
51
61
|
|
|
52
|
-
|
|
62
|
+
`forgecad project init` creates the remote project, writes `forgecad.json`, and uploads any existing local `.forge.js`, `.js`, and `.svg` files. After that, `forgecad project push` syncs local changes to the hosted project.
|
|
53
63
|
|
|
54
|
-
|
|
55
|
-
| --- | --- | --- |
|
|
56
|
-
| Execute and validate a model | `forgecad run model.forge.js` | Object summaries, volumes, bounds, construction history, parameters, verification results, collisions, spatial relationships, and solver diagnostics. |
|
|
57
|
-
| Debug imports | `forgecad run model.forge.js --debug-imports` | Import resolution and module-loading diagnostics for multi-file projects. |
|
|
58
|
-
| Compare geometry backends | `forgecad run model.forge.js --backend occt` | Runs against a specific backend when exact geometry or backend parity matters. |
|
|
59
|
-
| Test physical connectivity | `forgecad run model.forge.js --connectivity` | Connected-component reporting for assemblies and printable parts. |
|
|
60
|
-
| Override parameters | `forgecad run model.forge.js -p "Width=120"` | Checks a model at a specific parameter value without editing source. |
|
|
61
|
-
| Sweep parameter ranges | `forgecad check params model.forge.js --samples 12` | Finds parameter values that crash, collapse geometry, or introduce new collisions. |
|
|
62
|
-
| Produce visual evidence | `forgecad render 3d model.forge.js --camera iso` | PNG viewport renders from deterministic camera angles. |
|
|
63
|
-
| Inspect geometry channels | `forgecad render inspect model.forge.js --channels rgb,mask,collisions,thickness --force` | A bundle with manifest plus RGB, mask, collision, wall-thickness, depth, normal, connectivity, distance, and section channels. |
|
|
64
|
-
| Export manufacturing files | `forgecad export stl model.forge.js` and `forgecad export 3mf model.forge.js` | Mesh exports for 3D printing. |
|
|
65
|
-
| Export exact or advanced outputs | `forgecad export step`, `forgecad export brep`, `forgecad export report`, `forgecad export cutting-layout` | Pro export paths for CAD interchange, reports, and sheet workflows. |
|
|
66
|
-
| Sync hosted projects | `forgecad project pull`, `forgecad project push`, `forgecad publish` | Local-agent workflow connected to forgecad.io projects and shares. |
|
|
64
|
+
`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.
|
|
67
65
|
|
|
68
|
-
|
|
66
|
+
`forgecad studio .` opens the installed local editor around the current project. It requires an explicit project path; `.` means the current folder. `forgecad dev <project-path>` is for ForgeCAD source development and internal live-reload work, not the normal user onboarding path.
|
|
69
67
|
|
|
70
68
|
## Install Skills For Local Coding Agents
|
|
71
69
|
|
|
@@ -75,7 +73,7 @@ Install the ForgeCAD public skill library:
|
|
|
75
73
|
forgecad skill install
|
|
76
74
|
```
|
|
77
75
|
|
|
78
|
-
By default this installs the generated `forgecad` skill plus the public companion workflow skills into
|
|
76
|
+
By default this installs the generated `forgecad` skill plus the public companion workflow skills into known global agent skill directories:
|
|
79
77
|
|
|
80
78
|
```text
|
|
81
79
|
~/.agents/skills/forgecad/SKILL.md
|
|
@@ -87,7 +85,7 @@ By default this installs the generated `forgecad` skill plus the public companio
|
|
|
87
85
|
Use `--target` when you want to install or update only one agent location:
|
|
88
86
|
|
|
89
87
|
| Agent | Command | Installs into |
|
|
90
|
-
|
|
88
|
+
|---|---|---|
|
|
91
89
|
| All known global agent locations | `forgecad skill install` | all targets below |
|
|
92
90
|
| Generic agent-compatible tools | `forgecad skill install --target agents` | `~/.agents/skills/` |
|
|
93
91
|
| Claude Code | `forgecad skill install --target claude` | `~/.claude/skills/` |
|
|
@@ -96,13 +94,13 @@ Use `--target` when you want to install or update only one agent location:
|
|
|
96
94
|
|
|
97
95
|
Reload the agent after installing or upgrading ForgeCAD so it reloads the updated skill files.
|
|
98
96
|
|
|
99
|
-
To verify installation,
|
|
97
|
+
To verify installation, ask the agent:
|
|
100
98
|
|
|
101
99
|
```text
|
|
102
100
|
What ForgeCAD skills are available?
|
|
103
101
|
```
|
|
104
102
|
|
|
105
|
-
You should see `forgecad` plus companion skills such as `forgecad-make-a-model`, `forgecad-render-inspect`, and `forgecad-
|
|
103
|
+
You should see `forgecad` plus companion skills such as `forgecad-make-a-model`, `forgecad-render-inspect`, `forgecad-lld`, and `forgecad-project`.
|
|
106
104
|
|
|
107
105
|
If you only want the core modeling skill without companion workflows:
|
|
108
106
|
|
|
@@ -119,12 +117,98 @@ forgecad skill install --dev --target claude
|
|
|
119
117
|
|
|
120
118
|
Use `--dev` only for work on ForgeCAD itself. It includes compiler internals, solver architecture, coding standards, release process, and skill maintenance notes.
|
|
121
119
|
|
|
120
|
+
## Recommended Agent Prompts
|
|
121
|
+
|
|
122
|
+
Start the agent inside the initialized project folder. Do not ask it to create a model in a random empty folder or to work from one loose file on the desktop.
|
|
123
|
+
|
|
124
|
+
### First Smoke Test
|
|
125
|
+
|
|
126
|
+
```text
|
|
127
|
+
Use the ForgeCAD skills. Work in this project folder. Open the existing
|
|
128
|
+
.forge.js files, make a small visible change to the bracket, validate with
|
|
129
|
+
forgecad run, render one ISO view, and tell me the exact commands you ran.
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### New Model
|
|
133
|
+
|
|
134
|
+
```text
|
|
135
|
+
Use the ForgeCAD skills. Build a real ForgeCAD model in this project folder.
|
|
136
|
+
Create or edit .forge.js files only inside this project. Use parameters for the
|
|
137
|
+
main dimensions. Validate with forgecad run, render at least one 3D view, run
|
|
138
|
+
forgecad check params if the model has parameters, and push with forgecad
|
|
139
|
+
project push when the result is ready for the browser.
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Mechanism Or Assembly
|
|
143
|
+
|
|
144
|
+
```text
|
|
145
|
+
Use forgecad-component-model and forgecad. Parts must build at origin. The
|
|
146
|
+
assembly positions parts with connectors or explicit assembly-level placement.
|
|
147
|
+
Validate with forgecad run --connectivity, render inspect channels
|
|
148
|
+
rgb,mask,collisions, and run parameter checks before calling it done.
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Image Or Product Replication
|
|
152
|
+
|
|
153
|
+
```text
|
|
154
|
+
Use the ForgeCAD image-replication workflow. Treat the reference images as
|
|
155
|
+
evidence, infer dimensions explicitly, build real CAD geometry, and compare
|
|
156
|
+
renders against the references. Do not stop at a decorative approximation.
|
|
157
|
+
Validate with forgecad run and render inspect before finalizing.
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## What Makes AI Results Better
|
|
161
|
+
|
|
162
|
+
Good AI-generated CAD usually needs more than one prompt. Give the agent the same inputs a strong human modeler would need:
|
|
163
|
+
|
|
164
|
+
- Purpose: what the object is for and what matters most.
|
|
165
|
+
- Scale: real dimensions, units, tolerances, and allowed simplifications.
|
|
166
|
+
- References: sketches, photos, screenshots, existing `.forge.js` examples, or comparable parts.
|
|
167
|
+
- Constraints: printability, assembly motion, clearances, wall thickness, fasteners, export format.
|
|
168
|
+
- Quality bar: which checks must pass before the work is accepted.
|
|
169
|
+
|
|
170
|
+
For complex artifacts, ask for staged work:
|
|
171
|
+
|
|
172
|
+
```text
|
|
173
|
+
First write a short build plan with parts, parameters, and verification checks.
|
|
174
|
+
Then implement the smallest useful blockout, run it, render it, and iterate.
|
|
175
|
+
Only add details after the proportions and assembly relationships are correct.
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Do not accept a model just because it renders. CAD quality comes from command evidence:
|
|
179
|
+
|
|
180
|
+
- `forgecad run` confirms the script executes and reports geometry diagnostics.
|
|
181
|
+
- `forgecad render 3d` gives visual views from deterministic cameras.
|
|
182
|
+
- `forgecad render inspect` checks object masks, collisions, thickness, sections, depth, normals, and connectivity.
|
|
183
|
+
- `forgecad check params` catches broken parameter ranges.
|
|
184
|
+
- `forgecad export ...` verifies the actual manufacturing or interchange output.
|
|
185
|
+
|
|
186
|
+
## What The CLI Gives An Agent
|
|
187
|
+
|
|
188
|
+
The CLI is not just a launcher. It gives the agent a measurable feedback loop.
|
|
189
|
+
|
|
190
|
+
| Need | Command | What it gives the agent |
|
|
191
|
+
|---|---|---|
|
|
192
|
+
| Execute and validate a model | `forgecad run model.forge.js` | Object summaries, volumes, bounds, construction history, parameters, verification results, collisions, spatial relationships, and solver diagnostics. |
|
|
193
|
+
| Debug imports | `forgecad run model.forge.js --debug-imports` | Import resolution and module-loading diagnostics for multi-file projects. |
|
|
194
|
+
| Compare geometry backends | `forgecad run model.forge.js --backend occt` | Runs against a specific backend when exact geometry or backend parity matters. |
|
|
195
|
+
| Test physical connectivity | `forgecad run model.forge.js --connectivity` | Connected-component reporting for assemblies and printable parts. |
|
|
196
|
+
| Override parameters | `forgecad run model.forge.js -p "Width=120"` | Checks a model at a specific parameter value without editing source. |
|
|
197
|
+
| Sweep parameter ranges | `forgecad check params model.forge.js --samples 12` | Finds parameter values that crash, collapse geometry, or introduce new collisions. |
|
|
198
|
+
| Produce visual evidence | `forgecad render 3d model.forge.js --camera iso` | PNG viewport renders from deterministic camera angles. |
|
|
199
|
+
| Inspect geometry channels | `forgecad render inspect model.forge.js --channels rgb,mask,collisions,thickness --force` | A bundle with manifest plus RGB, mask, collision, wall-thickness, depth, normal, connectivity, distance, and section channels. |
|
|
200
|
+
| Export manufacturing files | `forgecad export stl model.forge.js` and `forgecad export 3mf model.forge.js` | Mesh exports for 3D printing. |
|
|
201
|
+
| Export exact or advanced outputs | `forgecad export step`, `forgecad export brep`, `forgecad export report`, `forgecad export cutting-layout` | Production outputs for CAD interchange, reports, and sheet workflows. |
|
|
202
|
+
| Sync hosted projects | `forgecad project pull`, `forgecad project push`, `forgecad publish` | Local-agent workflow connected to forgecad.io projects and shares. |
|
|
203
|
+
|
|
204
|
+
For the full command reference, see [ForgeCAD CLI](../CLI.md).
|
|
205
|
+
|
|
122
206
|
## Public Skill Library
|
|
123
207
|
|
|
124
208
|
`forgecad skill install` installs the core modeling skill and the public companion skills.
|
|
125
209
|
|
|
126
210
|
| Skill | Use it for |
|
|
127
|
-
|
|
211
|
+
|---|---|
|
|
128
212
|
| `forgecad` | Core model authoring, editing, debugging, imports, assembly, render/export commands, and CLI validation. |
|
|
129
213
|
| `forgecad-prepare-prompt` | Turning a fuzzy physical-product request into a concrete build brief and modeling prompt. |
|
|
130
214
|
| `forgecad-high-level-spec` | Writing an HLD before modeling: requirements, alternatives, decisions, and open questions. |
|
|
@@ -137,7 +221,6 @@ Use `--dev` only for work on ForgeCAD itself. It includes compiler internals, so
|
|
|
137
221
|
| `forgecad-api-dogfood` | Building a real model while recording API friction and concrete improvement proposals. |
|
|
138
222
|
| `forgecad-visual-spec` | Producing builder-honest image prompts from a concrete model, HLD, LLD, or build brief. |
|
|
139
223
|
| `forgecad-project` | Managing forgecad.io projects from the CLI: init, clone, pull, push, file commands, members, publish, and shares. |
|
|
140
|
-
| `forgecad-deep-dive` | Writing a linked concept-tree folder that explains a ForgeCAD idea, architecture area, scientific concept, or future feature. |
|
|
141
224
|
|
|
142
225
|
The source prompts live in the repository under `skills/`. Public export is controlled by `forgecad-public: true` in each skill's `SKILL.md` frontmatter. To list the current public set from a source checkout:
|
|
143
226
|
|
|
@@ -145,45 +228,6 @@ The source prompts live in the repository under `skills/`. Public export is cont
|
|
|
145
228
|
npm run sync:public-skills -- --list
|
|
146
229
|
```
|
|
147
230
|
|
|
148
|
-
## Flattened Skill Files
|
|
149
|
-
|
|
150
|
-
If an agent or chat product works better with one Markdown file per skill, export the bundled skill set into a folder:
|
|
151
|
-
|
|
152
|
-
```bash
|
|
153
|
-
forgecad skill flattened-files ~/Desktop/forgecad-skills
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
This writes `forgecad.md` plus one flattened Markdown file per bundled companion skill. Each file includes the skill prompt and any bundled helper files, so it can be moved into tools that cannot install multi-file skills directly.
|
|
157
|
-
|
|
158
|
-
## Recommended Agent Workflow
|
|
159
|
-
|
|
160
|
-
Start by choosing the right mode:
|
|
161
|
-
|
|
162
|
-
| Task | Recommended setup |
|
|
163
|
-
| --- | --- |
|
|
164
|
-
| Build or edit a model | Install `forgecad skill install`; ask the agent to use `forgecad-make-a-model` or `forgecad`. |
|
|
165
|
-
| Convert a vague idea into a buildable artifact | Use `forgecad-prepare-prompt`, then `forgecad-high-level-spec`, then `forgecad-lld`, then `forgecad-make-a-model`. |
|
|
166
|
-
| Build a mechanism or multi-part assembly | Use `forgecad-component-model` with the core `forgecad` skill. |
|
|
167
|
-
| Validate existing geometry | Use `forgecad-render-inspect` plus `forgecad run --connectivity` and `forgecad check params`. |
|
|
168
|
-
| Improve ForgeCAD's API by dogfooding | Use `forgecad-api-dogfood`; save the friction report beside the model. |
|
|
169
|
-
|
|
170
|
-
A good implementation prompt for Codex or Claude Code:
|
|
171
|
-
|
|
172
|
-
```text
|
|
173
|
-
Use the ForgeCAD skills. Build this as real ForgeCAD geometry in a .forge.js file.
|
|
174
|
-
Validate with forgecad run. Render at least one 3D view. If the model has
|
|
175
|
-
parameters, run forgecad check params before calling it done.
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
For assemblies, be stricter:
|
|
179
|
-
|
|
180
|
-
```text
|
|
181
|
-
Use forgecad-component-model and forgecad. Parts must build at origin.
|
|
182
|
-
The assembly positions parts with connectors or explicit assembly-level
|
|
183
|
-
placement. Validate with forgecad run --connectivity and render inspect
|
|
184
|
-
channels rgb,mask,collisions.
|
|
185
|
-
```
|
|
186
|
-
|
|
187
231
|
## Chat UI Workflow
|
|
188
232
|
|
|
189
233
|
If the AI tool cannot read local skills or run shell commands, export a single context file:
|
|
@@ -195,16 +239,24 @@ forgecad skill one-file ~/Desktop/forgecad-context.md
|
|
|
195
239
|
Paste that file into an approved chat model, then work in a manual loop:
|
|
196
240
|
|
|
197
241
|
1. Ask the model to generate or edit a `.forge.js` file.
|
|
198
|
-
2. Save the file
|
|
242
|
+
2. Save the file inside an initialized ForgeCAD project folder.
|
|
199
243
|
3. Run `forgecad run <file>`.
|
|
200
244
|
4. Paste errors, diagnostics, and render observations back into the chat.
|
|
201
|
-
5. Iterate until `forgecad run`, renders, and parameter checks are clean.
|
|
245
|
+
5. Iterate until `forgecad run`, renders, exports, and parameter checks are clean.
|
|
202
246
|
|
|
203
|
-
This is weaker than Codex
|
|
247
|
+
This is weaker than Codex, Claude Code, or another local agent with installed skills because the model cannot directly inspect files or run the CLI. It is still useful for short models and API questions.
|
|
248
|
+
|
|
249
|
+
If an agent or chat product works better with one Markdown file per skill, export the bundled skill set into a folder:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
forgecad skill flattened-files ~/Desktop/forgecad-skills
|
|
253
|
+
```
|
|
204
254
|
|
|
205
255
|
## Completion Criteria
|
|
206
256
|
|
|
207
|
-
Do not call an AI-authored ForgeCAD model complete until it passes the relevant checks
|
|
257
|
+
Do not call an AI-authored ForgeCAD model complete until it passes the relevant checks.
|
|
258
|
+
|
|
259
|
+
For a simple part:
|
|
208
260
|
|
|
209
261
|
```bash
|
|
210
262
|
forgecad run model.forge.js
|
|
@@ -212,16 +264,57 @@ forgecad render 3d model.forge.js --camera iso
|
|
|
212
264
|
forgecad check params model.forge.js --samples 8
|
|
213
265
|
```
|
|
214
266
|
|
|
215
|
-
For mechanisms, dense assemblies, printable parts, or anything safety-adjacent
|
|
267
|
+
For mechanisms, dense assemblies, printable parts, or anything safety-adjacent:
|
|
216
268
|
|
|
217
269
|
```bash
|
|
218
270
|
forgecad run model.forge.js --connectivity
|
|
219
271
|
forgecad render inspect model.forge.js --channels rgb,mask,collisions,thickness,section --force
|
|
272
|
+
forgecad check params model.forge.js --samples 12
|
|
220
273
|
```
|
|
221
274
|
|
|
222
|
-
For export work, verify the actual output command
|
|
275
|
+
For export work, verify the actual output command:
|
|
223
276
|
|
|
224
277
|
```bash
|
|
225
278
|
forgecad export stl model.forge.js
|
|
226
279
|
forgecad export 3mf model.forge.js --quality high
|
|
280
|
+
forgecad export step model.forge.js
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
For hosted work, push the verified state:
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
forgecad project push
|
|
287
|
+
forgecad project open
|
|
227
288
|
```
|
|
289
|
+
|
|
290
|
+
## Screenshots And Videos To Make
|
|
291
|
+
|
|
292
|
+
Good screenshots:
|
|
293
|
+
|
|
294
|
+
| Screenshot | What it should show |
|
|
295
|
+
|---|---|
|
|
296
|
+
| Hosted `Start Here` | Browser editor, `00-start-here.forge.js`, parameters, and viewport in one frame. |
|
|
297
|
+
| Project setup terminal | `npm install -g forgecad`, `forgecad login`, `forgecad project clone start-here`, `cd start-here`, `forgecad studio .`. |
|
|
298
|
+
| New project terminal | `mkdir`, `project init`, `forgecad new`, `forgecad studio .`, with `forgecad.json` visible in the file tree. |
|
|
299
|
+
| Agent prompt | The exact prompt and the project folder context. |
|
|
300
|
+
| CLI validation | `forgecad run`, `render inspect`, and `check params` outputs with a clean final result. |
|
|
301
|
+
| Browser sync | `forgecad project push` followed by the updated model open in the hosted browser. |
|
|
302
|
+
|
|
303
|
+
Good short videos:
|
|
304
|
+
|
|
305
|
+
| Video | Structure |
|
|
306
|
+
|---|---|
|
|
307
|
+
| First project in five minutes | Install, login, clone Start Here, run one file, open `forgecad studio .`, change a parameter. |
|
|
308
|
+
| New project from terminal to browser | `project init`, `forgecad new`, agent edits, validation, `project push`, hosted browser opens. |
|
|
309
|
+
| AI builds a useful part | Show the prompt, time-lapse the agent iterations, then slow down for the final `run`, render, inspect, and export evidence. |
|
|
310
|
+
| Debugging with inspect bundles | Start with a collision or thin-wall issue, show `render inspect`, fix, rerun, and compare before/after. |
|
|
311
|
+
| From reference image to CAD | Show reference images, build plan, rough blockout, improved geometry, render comparison, and final export. |
|
|
312
|
+
|
|
313
|
+
AI can take a while. Do not publish the whole wait in real time. Record the full session for trust, then edit it into a clear artifact:
|
|
314
|
+
|
|
315
|
+
- Keep the exact prompt on screen long enough to read.
|
|
316
|
+
- Speed up waiting, installs, and repeated command output.
|
|
317
|
+
- Use chapter cards: prompt, first run, first render, inspection failure, fix, final evidence, browser sync.
|
|
318
|
+
- Capture the browser viewport after each meaningful iteration so viewers can see progress.
|
|
319
|
+
- Keep the final validation commands at normal speed.
|
|
320
|
+
- End with the project URL, exported file, or published share rather than a vague "looks good" moment.
|
|
@@ -12,6 +12,24 @@ const width = param("Width", 50, { min: 20, max: 100, unit: "mm" });
|
|
|
12
12
|
return box(width, 30, 10);
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+
## Injected Runtime Names
|
|
16
|
+
|
|
17
|
+
ForgeCAD API functions and classes are injected into every `.forge.js` script. Use them directly; do not import or destructure ForgeCAD API names from helper files.
|
|
18
|
+
|
|
19
|
+
```javascript
|
|
20
|
+
// BAD — `bom` and `bomToCsv` are already built-in runtime names.
|
|
21
|
+
const { bom, bomToCsv } = require("./bom.js");
|
|
22
|
+
|
|
23
|
+
// GOOD — use the built-in directly.
|
|
24
|
+
bom(4, "M4 bolt");
|
|
25
|
+
|
|
26
|
+
// GOOD — keep project helpers under their own local name.
|
|
27
|
+
const bomHelpers = require("./bom.js");
|
|
28
|
+
bomHelpers.addFasteners(...);
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Top-level declarations such as `const bom = ...`, `let scene = ...`, or `class Shape {}` collide with the injected runtime names. If you need a local helper, choose a project-specific name like `projectBom`, `sceneConfig`, or `makeShape`.
|
|
32
|
+
|
|
15
33
|
## Execution Model
|
|
16
34
|
|
|
17
35
|
- Scripts re-execute on every parameter change (400ms debounce)
|
|
@@ -24,6 +42,8 @@ Top-level assembly scripts can return an unsolved `Assembly` directly; ForgeCAD
|
|
|
24
42
|
|
|
25
43
|
A script can return a plain object whose values include renderable geometry alongside non-renderable metadata. All renderable entries (Shape, Sketch, ShapeGroup, Assembly, SolvedAssembly, SdfShape, or Array of named objects) are rendered; non-renderable entries are silently skipped. This is useful for multi-file projects where a part needs to publish interface data (bolt positions, dimensions) to other files:
|
|
26
44
|
|
|
45
|
+
When importing project files, include the full extension in every relative path: `require('./motor-mount.forge.js')` for model files and `require('./helpers.js')` for plain helper modules. ForgeCAD resolves project imports by exact path and does not infer `.forge.js` or `.js` from `require('./motor-mount')`.
|
|
46
|
+
|
|
27
47
|
```javascript
|
|
28
48
|
// motor-mount.forge.js — renders standalone, exports metadata via require()
|
|
29
49
|
const holePositions = [[17, 15], [-29, 15], [17, -15], [-29, -15]];
|
|
@@ -75,6 +95,12 @@ Shapes carry semantic face labels through their lifecycle. The flow is:
|
|
|
75
95
|
|
|
76
96
|
You resolve labels to geometry with `.face(name)` or `.face(query)` — see the Shape class docs for the full query API. Operations like `.pocket()`, `.boss()`, `.hole()`, and `faceProfile()` all consume face references.
|
|
77
97
|
|
|
98
|
+
## Text vs Viewport Labels
|
|
99
|
+
|
|
100
|
+
Use `text2d()` only when the letters are part of the model: raised text, engraving, cut labels, serial plates, exported markings, or geometry that should survive into STL/STEP output. `text2d()` builds filled sketch geometry from font outlines, so it can make exact/OCCT workflows slower.
|
|
101
|
+
|
|
102
|
+
Use `Viewport.label(text, [x, y, z], options)` when the goal is to explain the model in the viewport. Render labels are annotations only: they do not create meshes, do not export, do not enter the B-rep path, and do not add face labels.
|
|
103
|
+
|
|
78
104
|
## SDF Modeling
|
|
79
105
|
|
|
80
106
|
For organic shapes, smooth blending, TPMS lattices, and surface deformations. Return `SdfShape` values directly, or return a plain object/array tree of SDF leaves, for native raymarch preview. Use `.toShape()` or `toShape(...)` only when you need mesh-backed CAD/export behavior. See [sdf-primitives.md](sdf-primitives.md).
|
package/dist/docs-raw/CLI.md
CHANGED
|
@@ -5,7 +5,7 @@ skill-order: 1
|
|
|
5
5
|
|
|
6
6
|
# ForgeCAD CLI
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Create projects, open local studios, run, inspect, export, publish, and sync `.forge.js` models from your terminal. Core workflows are included with a free ForgeCAD account; advanced exports and rendering are Pro.
|
|
9
9
|
|
|
10
10
|
## Quick Start
|
|
11
11
|
|
|
@@ -13,36 +13,44 @@ Run, export, render, and publish `.forge.js` models from your terminal. Core wor
|
|
|
13
13
|
# 1. Install
|
|
14
14
|
npm install -g forgecad
|
|
15
15
|
|
|
16
|
-
# 2. Sign in and
|
|
16
|
+
# 2. Sign in and create a dedicated project folder
|
|
17
17
|
forgecad login
|
|
18
|
-
|
|
19
|
-
cd
|
|
18
|
+
mkdir spool-adapter
|
|
19
|
+
cd spool-adapter
|
|
20
|
+
forgecad project init "Spool Adapter" --visibility private
|
|
20
21
|
|
|
21
|
-
# 3.
|
|
22
|
-
forgecad
|
|
22
|
+
# 3. Create a first model file
|
|
23
|
+
forgecad new adapter --template part
|
|
23
24
|
|
|
24
|
-
# 4. Open the editor
|
|
25
|
-
forgecad
|
|
25
|
+
# 4. Open the local editor
|
|
26
|
+
forgecad studio .
|
|
26
27
|
|
|
27
|
-
# 5.
|
|
28
|
-
forgecad
|
|
28
|
+
# 5. Validate, export, and push to the browser
|
|
29
|
+
forgecad run adapter.forge.js
|
|
30
|
+
forgecad export stl adapter.forge.js
|
|
31
|
+
forgecad project push
|
|
32
|
+
forgecad project open
|
|
29
33
|
```
|
|
30
34
|
|
|
31
|
-
Most CLI commands require a ForgeCAD account. Use `forgecad login` for email/password accounts, `forgecad login --token` for GitHub/Google web-auth accounts, or `FORGECAD_TOKEN=fc_pat_... forgecad <command>` for CI/CD.
|
|
35
|
+
Most CLI commands require a ForgeCAD account. Use `forgecad login` for email/password accounts, `forgecad login --token` for GitHub/Google web-auth accounts, or `FORGECAD_TOKEN=fc_pat_... forgecad <command>` for CI/CD. `forgecad studio` always requires an explicit project path; use `.` for the current project.
|
|
36
|
+
|
|
37
|
+
You can also start from the hosted starter project with `forgecad project clone start-here`, then `cd start-here` and `forgecad studio .`.
|
|
32
38
|
|
|
33
39
|
## Editor
|
|
34
40
|
|
|
35
|
-
ForgeCAD includes a local editor
|
|
41
|
+
ForgeCAD includes a local editor. Open it around a dedicated project folder, edit a `.forge.js` file, save, and the 3D view updates — parameters become interactive sliders.
|
|
36
42
|
|
|
37
43
|
| Command | Description |
|
|
38
44
|
|---------|-------------|
|
|
39
|
-
| `
|
|
40
|
-
| `
|
|
45
|
+
| `studio <project-path> [project-path ...]` | Open the installed local editor around one or more project folders. |
|
|
46
|
+
| `dev <project-path> [project-path ...]` | Start the Vite dev server for ForgeCAD source development. |
|
|
41
47
|
| `web` | Start a local dev server in web/playground mode (no filesystem, localStorage only). |
|
|
42
48
|
| `open <project-path> [project-path ...]` | Alias for `forgecad studio`. |
|
|
43
49
|
|
|
50
|
+
`forgecad studio <project-path>` is the normal installed-CLI command for users. `forgecad dev <project-path>` starts the Vite dev server and is mainly for ForgeCAD source development.
|
|
51
|
+
|
|
44
52
|
<details>
|
|
45
|
-
<summary>Common flags for
|
|
53
|
+
<summary>Common flags for studio / dev</summary>
|
|
46
54
|
|
|
47
55
|
| Option | Description |
|
|
48
56
|
|--------|-------------|
|
|
@@ -79,7 +87,7 @@ The primary validation command. Runs your script with the real geometry kernel (
|
|
|
79
87
|
|
|
80
88
|
Intra-group pairs (same assembly group) and mock-to-mock pairs are skipped. If a part passes through a boolean-subtracted hole, no collision is reported — the material is gone.
|
|
81
89
|
|
|
82
|
-
**Spatial analysis** — reports directional relationships and gap distances between nearby objects (e.g. `bracket is ABOVE base (gap: 5mm)`).
|
|
90
|
+
**Spatial analysis** — reports directional relationships and gap distances between nearby objects (e.g. `bracket is ABOVE base (gap: 5mm)`). Exact pairwise collision intersections run by default only for bounded scenes; use `--spatial exact` for exhaustive collision checks or `--spatial off` to skip this section.
|
|
83
91
|
|
|
84
92
|
**Physical connectivity** — pass `--connectivity` to list physically connected components across visible objects. Overlapping or touching bboxes are joined within `--connectivity-tolerance` (default `0.05` model units); use collision inspection for exact positive-volume overlaps. This helps answer whether the model is one continuous assembly or several separate islands.
|
|
85
93
|
|
|
@@ -93,6 +101,7 @@ forgecad run examples/cup.forge.js --focus
|
|
|
93
101
|
forgecad run examples/cup.forge.js --focus bracket,hinge
|
|
94
102
|
forgecad run examples/cup.forge.js --hide "wall,bolt"
|
|
95
103
|
forgecad run examples/cup.forge.js --connectivity
|
|
104
|
+
forgecad run examples/cup.forge.js --journeys
|
|
96
105
|
forgecad run examples/cup.forge.js --backend occt
|
|
97
106
|
forgecad run examples/cup.forge.js --debug-imports
|
|
98
107
|
forgecad run examples/cup.forge.js -p "Wall Thickness=3" -p "Body Height=200"
|
|
@@ -126,7 +135,7 @@ Render a Forge scene to PNG using the real viewport renderer.
|
|
|
126
135
|
|
|
127
136
|
Launches a headless Chrome instance, 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 file.
|
|
128
137
|
|
|
129
|
-
Use `--focus` to isolate specific parts (hides everything else) or `--hide` to remove clutter like mock objects. The `--camera` flag accepts
|
|
138
|
+
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.
|
|
130
139
|
|
|
131
140
|
Use `--edges=<off|thin|bold>` to control the edge overlay. For a pure wireframe look, use `render wireframe` instead.
|
|
132
141
|
|
|
@@ -137,6 +146,7 @@ forgecad render 3d examples/cup.forge.js
|
|
|
137
146
|
forgecad render 3d examples/cup.forge.js --focus
|
|
138
147
|
forgecad render 3d examples/cup.forge.js --focus bracket
|
|
139
148
|
forgecad render 3d examples/cup.forge.js --hide "wall,bolt"
|
|
149
|
+
forgecad render 3d model.forge.js --view hero
|
|
140
150
|
forgecad render 3d model.forge.js --camera 45:30
|
|
141
151
|
forgecad render 3d model.forge.js --camera "proj=perspective;pos=200,-160,120;target=0,0,20;up=0,0,1;fov=38"
|
|
142
152
|
forgecad render 3d model.forge.js --camera front --camera side
|
|
@@ -234,6 +244,7 @@ forgecad render section examples/furniture/01-table.forge.js out/bold.svg --edge
|
|
|
234
244
|
| `--focus <names>` | Focus: no arg hides mocks; comma-separated names shows only those |
|
|
235
245
|
| `--hide <names>` | Hide comma-separated object names |
|
|
236
246
|
| `--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. |
|
|
247
|
+
| `--view <name>` | Named camera view declared by the model with scene({ views }) |
|
|
237
248
|
| `--size <px>` | Image size in pixels |
|
|
238
249
|
| `--scene <json>` | Viewport scene state JSON |
|
|
239
250
|
| `--background <color>` | Canvas background override |
|
|
@@ -292,22 +303,22 @@ forgecad render section examples/furniture/01-table.forge.js out/bold.svg --edge
|
|
|
292
303
|
|
|
293
304
|
## Export
|
|
294
305
|
|
|
295
|
-
Export to every format you need.
|
|
306
|
+
Export to every format you need. Export actions are free to run; production outputs carry commercial-use guidance.
|
|
296
307
|
|
|
297
308
|
| Command | Format | Use case |
|
|
298
309
|
|---------|--------|----------|
|
|
299
|
-
| `cut-list` **\[
|
|
310
|
+
| `cut-list` **\[Production\]** | Terminal | Grouped sheet-material cut list from `sheetStock()` |
|
|
300
311
|
| `export svg` | SVG | 2D vector output from sketches |
|
|
301
|
-
| `export sketch-pdf` **\[
|
|
302
|
-
| `export step` **\[
|
|
303
|
-
| `export brep` **\[
|
|
312
|
+
| `export sketch-pdf` **\[Production\]** | PDF | Sketch with dimensions and constraints |
|
|
313
|
+
| `export step` **\[Production\]** | STEP | CAD interchange (exact geometry) |
|
|
314
|
+
| `export brep` **\[Production\]** | BREP | Boundary representation |
|
|
304
315
|
| `export 3mf` | 3MF | 3D printing (color, multi-part) |
|
|
305
316
|
| `export stl` | STL | 3D printing |
|
|
306
|
-
| `export gcode` **\[
|
|
307
|
-
| `export sdf` **\[
|
|
308
|
-
| `export urdf` **\[
|
|
309
|
-
| `export report` **\[
|
|
310
|
-
| `export cutting-layout` **\[
|
|
317
|
+
| `export gcode` **\[Production\]** | G-code | Toolpath (scripted, not sliced) |
|
|
318
|
+
| `export sdf` **\[Production\]** | SDF package | Gazebo robot simulation |
|
|
319
|
+
| `export urdf` **\[Production\]** | URDF package | ROS / PyBullet / MuJoCo |
|
|
320
|
+
| `export report` **\[Production\]** | PDF report | Multi-view report with BOM and dimensions |
|
|
321
|
+
| `export cutting-layout` **\[Production\]** | PDF | Sheet cutting layout with cut sequence |
|
|
311
322
|
| `link` | URL | Generate a ForgeCAD share link from a GitHub Gist URL or ID and copy it to clipboard. |
|
|
312
323
|
|
|
313
324
|
```bash
|
|
@@ -351,22 +362,32 @@ forgecad export sdf rover.forge.js --output out/forge_scout
|
|
|
351
362
|
|
|
352
363
|
## Projects & Publishing
|
|
353
364
|
|
|
354
|
-
ForgeCAD has a hosted platform at [forgecad.io](https://forgecad.io). The CLI connects
|
|
365
|
+
ForgeCAD has a hosted platform at [forgecad.io](https://forgecad.io). The CLI connects a dedicated local project folder to it.
|
|
366
|
+
|
|
367
|
+
A project is a local folder linked to the hosted app by `forgecad.json`. Use `forgecad project clone <slug>` to download an existing hosted project into a local folder, or run `forgecad project init` inside a folder that should become a new ForgeCAD project. Open local projects with `forgecad studio <project-path>`.
|
|
355
368
|
|
|
356
|
-
|
|
369
|
+
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`, and `.svg`; broad roots make local workflows and AI-agent context slow and confusing.
|
|
357
370
|
|
|
358
371
|
### Get started
|
|
359
372
|
|
|
360
373
|
```bash
|
|
361
374
|
forgecad login
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
# or initialize the current folder as a new project:
|
|
375
|
+
mkdir spool-adapter
|
|
376
|
+
cd spool-adapter
|
|
365
377
|
forgecad project init "Spool Adapter"
|
|
378
|
+
forgecad new adapter --template part
|
|
379
|
+
forgecad studio .
|
|
380
|
+
|
|
381
|
+
# or clone an existing hosted project:
|
|
382
|
+
forgecad project clone start-here
|
|
383
|
+
cd start-here
|
|
384
|
+
forgecad studio .
|
|
366
385
|
```
|
|
367
386
|
|
|
368
387
|
`forgecad login` prompts for email/password. If your account was created through GitHub or Google, create an API token in Settings > API Tokens and run `forgecad login --token`; it prompts securely when the token is omitted. Use `FORGECAD_TOKEN=fc_pat_...` instead for CI/CD and one-off automation. See [Platform authentication](platform/auth.md#cli-auth-for-oauth-accounts) for details.
|
|
369
388
|
|
|
389
|
+
`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.
|
|
390
|
+
|
|
370
391
|
### Sync
|
|
371
392
|
|
|
372
393
|
```bash
|
|
@@ -457,7 +478,7 @@ Shares are live references — always the current version, not a snapshot.
|
|
|
457
478
|
|
|
458
479
|
## AI Integration
|
|
459
480
|
|
|
460
|
-
ForgeCAD files are plain JavaScript. AI coding agents write and iterate on
|
|
481
|
+
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.
|
|
461
482
|
|
|
462
483
|
```bash
|
|
463
484
|
# Install the full public ForgeCAD skill library
|
|
@@ -542,11 +563,11 @@ forgecad check params path/to/model.forge.js --samples 12
|
|
|
542
563
|
|
|
543
564
|
### Licensing
|
|
544
565
|
|
|
545
|
-
|
|
566
|
+
The CLI is free for core workflows and exports. Production outputs are free to run; Pro covers commercial use. High-value render and capture tools require Pro.
|
|
546
567
|
|
|
547
|
-
| Free | Pro |
|
|
548
|
-
|
|
549
|
-
| `run`, `dev`, `studio`, `render 3d`, `export stl`, `export 3mf`, `export svg`, `check params`, `check suite` | `
|
|
568
|
+
| Free | Production outputs | Pro |
|
|
569
|
+
|------|--------------------|-----|
|
|
570
|
+
| `run`, `dev`, `studio`, `render 3d`, `export stl`, `export 3mf`, `export svg`, `check params`, `check suite` | `cut-list`, `export sketch-pdf`, `export step`, `export brep`, `export gcode`, `export sdf`, `export urdf`, `export report`, `export cutting-layout` are free to run; Pro covers commercial use. | `render hq`, `capture gif`, `capture mp4` |
|
|
550
571
|
|
|
551
572
|
```bash
|
|
552
573
|
forgecad license # Check signed-in account status
|