Public examples, agent skills, docs links, and issue tracking for ForgeCAD. ForgeCAD is code-first parametric CAD for JavaScript/TypeScript: a normal .forge.js file becomes a live model with parameters, assemblies, validation, renders, inspections, and
$ npx -y skills add ForgeCAD/forgecad-public-kit --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: ForgeCAD/forgecad-public-kit
What's inside

Public examples, agent skills, docs links, and issue tracking for ForgeCAD.
ForgeCAD is code-first parametric CAD for JavaScript/TypeScript: a normal .forge.js file becomes a live model with parameters, assemblies, validation, renders, inspections, and exports.
This repository is the public companion kit. It is intentionally focused on assets people can use directly: example models, installable agent skills, public issues, docs links, and historical benchmark artifacts.
TypeScript is the file format. The browser is the CAD system.
Try ForgeCAD • Docs • Examples • Agent skills • Open an issue
| If you want to... | Go here |
|---|---|
| Use the CAD app | forgecad.io |
| Learn the API | Docs |
| Run example models | examples/ |
| Install agent workflows | skills/ |
| Report a bug or request an API | Issues |
| Check commercial terms | Pricing |
| This public kit contains | The hosted product contains |
|---|---|
Ready-to-run .forge.js examples | Browser workbench and project storage |
| Agent skills and workflow prompts | Core app source and infrastructure |
| Public bug reports and feature requests | Account, billing, and usage systems |
| Historical benchmark artifacts | Product roadmap execution and customer projects |
The npm package, CLI, hosted app, and backend/application usage are governed by ForgeCAD's product terms. This public kit itself is MIT licensed.
Install the CLI:
npm install -g forgecad
Start from the hosted starter project:
forgecad login
forgecad project clone start-here
cd start-here
forgecad studio .
forgecad login guides you through email/password or API-token sign-in. Choose API token for GitHub/Google accounts.
A ForgeCAD project is a dedicated local folder linked to the hosted app by forgecad.json. Use forgecad project clone <slug> to download an existing project, or run forgecad project init inside a folder you want to make into a new ForgeCAD project.
Create a new project locally:
mkdir spool-adapter
cd spool-adapter
forgecad project init "Spool Adapter" --visibility private
forgecad new adapter --template part
forgecad studio .
Do not point forgecad studio at your home directory, downloads folder, desktop, or a huge source tree. It requires an explicit project path; use . for the current project folder.
Explore the public examples locally:
git clone https://github.com/KoStard/forgecad-public-kit.git
cd forgecad-public-kit
forgecad studio examples
forgecad run examples/products/cup.forge.js
forgecad render 3d examples/products/cup.forge.js
Open more than one local project at once:
forgecad studio examples path/to/another-project
Keep one long-running forgecad studio <project-path> [project-path ...] process open with every active project folder listed in its arguments; the user opens the single printed localhost port once, and AI agents should only create or edit files under those folders so the browser updates live without starting more servers.
Inside a cloned or initialized ForgeCAD project, drop this into starter.forge.js:
const width = Param.number("Width", 90, { min: 50, max: 160, unit: "mm" });
const depth = Param.number("Depth", 56, { min: 32, max: 100, unit: "mm" });
const height = Param.number("Height", 12, { min: 6, max: 32, unit: "mm" });
const holeRadius = Param.number("Hole Radius", 5, { min: 2, max: 10, unit: "mm" });
const base = box(width, depth, height).color("#5f87c6");
const hole = cylinder(height * 3, holeRadius).translate(0, 0, -height);
return {
"starter plate": base.subtract(hole),
};
Then run:
forgecad run starter.forge.js
forgecad studio .
This repository is ForgeCAD's public companion kit for:
.forge.js scripts under examples/.skills/.If there is a component you want opened up sooner, file an issue.
| Task | Command |
|---|---|
| Clone a hosted project | forgecad project clone <slug> |
| Create a new hosted project from the current folder | forgecad project init "Project Name" |
| Open one or more local projects | forgecad studio <project-path> [project-path ...] |
| Validate a script | forgecad run file.forge.js |
| Render a PNG | forgecad render 3d file.forge.js |
| Inspect a model | forgecad inspect collisions file.forge.js |
| Render a section | forgecad render section file.forge.js --plane XZ |
| Export STL | forgecad export stl file.forge.js |
| Export STEP | forgecad export step file.forge.js |
| Sweep parameters | forgecad check params file.forge.js --samples 10 |
forgecad project init creates the remote project, writes forgecad.json, and uploads local source files. forgecad project push syncs an already initialized project; it does not create a remote project from a random folder.
Run forgecad doctor if render or exact export dependencies need checking.
ForgeCAD is built to work well with coding agents because CAD models are just code. The strongest loop is:
agent edits .forge.js -> forgecad run -> forgecad inspect <evidence> -> iterate
The full setup, approved model list, installed skills, flattened skill files, and completion criteria are in the AI Usage guide.
Install the ForgeCAD public skill library:
forgecad skill install
That installs the core forgecad skill plus public workflow skills such as forgecad-build-model, forgecad-design-spec, and forgecad-inspect-model into ~/.agents/skills. Use --target when you want to update a different agent location:
forgecad skill install --target claude # ~/.claude/skills
forgecad skill install --target codex # ~/.codex/skills
forgecad skill install --target opencode # ~/.config/opencode/skills
The library includes public prompts for:
forgecad-design-specforgecad-build-modelforgecad-reconstruct-cad-fileforgecad-reconstruct-from-imagesforgecad-inspect-modelforgecad-grade-modelforgecad-verify-mujocoforgecad-project-syncforgecad-image-promptThe generated core modeling skill is checked in at skills/forgecad/SKILL.md. The full public skill index is skills/README.md.
Start the agent inside the initialized project folder and require command evidence:
Use the ForgeCAD skills. Work in this project folder. Build real ForgeCAD
geometry, validate with forgecad run, render or inspect the result, run
parameter checks when relevant, and push with forgecad project push when done.
For chat tools without local shell access, generate a single context file:
forgecad skill one-file ~/Desktop/forgecad-context.md
Historical benchmark archive only. These rows are not recommendations and are not the approved model list. For current supported AI workflows, use the approved models in the AI Usage guide.
Latest benchmark iterations from ForgeCADBenchmark/results/* (version_{n}.forge.js with highest n per run folder).
| model name | prompt | GIF |
|---|---|---|
3dprinter-gpt52codex2026-02-13 14-36-06 • v2 | Make a detailed home 3D printer, showing the internal details of how it should work. Add some params for controlling positions, etc. | ![]() |
amazon-nova-2-lite-v12026-02-13 00-15-44 • v1 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
amazon-nova-premier-v12026-02-13 00-36-50 • v1 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | GIF generation failed (script runtime error). |
aurora_alpha2026-02-12 15-19-30 • v2 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | GIF generation failed (script runtime error). |
bytedance-seed-seed-1.62026-02-13 00-14-02 • v3 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
deepseek-deepseek-v3.22026-02-13 00-30-04 • v3 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
gemini3flash2026-02-12 23-53-27 • v5 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
glm52026-02-12 14-58-52 • v3 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
glm52026-02-12 23-04-12 • v4 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
google-gemini-3-pro-preview2026-02-13 00-36-12 • v2 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
gpt52codex2026-02-13 00-04-30 • v2 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
gpt52codex2026-02-13 12-40-31 • v2 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Include as many details as you safely can. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
haiku_4_52026-02-12 21-49-51 • v1 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
haiku_4_52026-02-12 21-54-22 • v3 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
kimi252026-02-12 13-50-22 • v4 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
kimi252026-02-12 14-58-53 • v3 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
manual-gemini-flash2026-02-12 23-44-23 • v3 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
minimax252026-02-12 14-32-24 • v5 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
minimax252026-02-12 23-05-17 • v3 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
minimax252026-02-13 12-37-52 • v4 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
openai-gpt-oss-120b2026-02-13 00-38-15 • v1 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
opus_4_62026-02-13 11-47-54 • v5 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
prime-intellect-intellect-32026-02-13 00-31-28 • v1 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
qwen3.5-397b-a17b2026-02-16 14-29-22 • v3 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
qwen3maxthinking2026-02-12 23-16-41 • v2 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
robot-hand-gpt52codex2026-02-14 00-51-41 • v1 | Make a fully functional robot hand. Should be easy to build, maybe even at home with some good tools. Show all the mechanics. Should be able to hold arbitrary shape objects. Don't be a perfectionist, but be an artist and an engineer. As this is a complex task, break it down to simpler ones, solve them, combine, iterate. | ![]() |
sonnet_4_52026-02-12 21-58-26 • v3 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
x-ai-grok-4.1-fast2026-02-13 00-26-36 • v2 | Make a home AC unit, showing both pieces on different sides of the wall (inside and outside). The external piece should have a fan positioned on its external face vertically. Implement whatever features/methods you are missing in the script itself for your convenience. Use the simpler primitives when unsure. | ![]() |
Full documentation is available at forgecad.io/docs. Useful starting points:
This public kit is available under the MIT License. The ForgeCAD npm package, CLI, hosted app, and commercial/backend usage are covered separately by ForgeCAD's product terms and pricing at forgecad.io/pricing.
examples/
api/
attachTo-basics.forge.js
belt-drive.forge.js
bolt-pattern.forge.js
boolean-operations.forge.js
bounding-box-visualizer.forge.js
clone-duplicate.forge.js
colors-union-vs-array.forge.js
constrained-sketch-basics.forge.js
constrained-sketch-mechanical.forge.js
exact-sheet-shell-assembly.forge.js
exact-surface-studio.forge.js
extrude-options.forge.js
feature-created-faces.forge.js
fillet-showcase.forge.js
folded-service-panel-cover.forge.js
gears-tier1.forge.js
geometry-info.forge.js
group-vs-union.forge.js
gyroid-voronoi-blend.forge.js
highlight-debug.forge.js
mesh-import-slats.forge.js
organic-noise-sculpture.forge.js
patterned-vase.forge.js
patterns.forge.js
profile-2020-b-slot6.forge.js
route-bracket.forge.js
sdf-custom-raymarch.forge.js
sdf-materialize-tree.forge.js
sdf-shapes.forge.js
sheet-stock-cut-list.forge.js
sketch-on-face-demo.forge.js
sketch-regions.forge.js
sketch-rounding-strategies.forge.js
smooth-curve-connections.forge.js
static-assembly-connectors.forge.js
text2d-basics.forge.js
text2d-font.forge.js
transition-curves.forge.js
variable-sweep-test.forge.js
verification-demo.forge.js
voronoi-sphere.forge.js
y-blend-corner-showcase.forge.js
assets/
sphere.stl
compiler-corpus/
enclosure-shell-cuts.forge.js
fastener-plate-variants.forge.js
README.md
constraints/
01-fully-constrained-rect.forge.js
02-underconstrained-triangle.forge.js
03-redundant-constraints.forge.js
04-conflicting-constraints.forge.js
05-parallel-with-linedistance.forge.js
06-complex-spectrogram.forge.js
07-perpendicular-chain.forge.js
08-symmetric-bracket.forge.js
09-stress-spiral.forge.js
10-stress-honeycomb.forge.js
11-surface-grid.forge.js
12-surface-nested.forge.js
13-surface-complex.forge.js
exact-arc-housing.forge.js
forgecad.json
gcode/
bambu-vase.forge.js
lissajous-vase.forge.js
math-surface.forge.js
parametric-vase.forge.js
spiral-tower.forge.js
generative/
coral-vase.forge.js
crystal-growth.forge.js
frost-spires.forge.js
golden-spiral-tower.forge.js
molten-forge.forge.js
nested-spheres.forge.js
twisted-lattice-tower.forge.js
voronoi-lampshade.forge.js
mechanical/
5-finger-robot-hand.forge.js
airplane-propeller.forge.js
fillet-enclosure.forge.js
nurbs-surface.forge.js
nurbs-tube.forge.js
products/
bottle.forge.js
chess-set.forge.js
classical-piano.forge.js
cup.forge.js
iphone.forge.js
laptop.forge.js
spiderman-cake.forge.js
shape-from-slices-egg.forge.js
LICENSE
README.md
skills/
forgecad/
forgecad-build-model/
SKILL.md
forgecad-design-spec/
references/
default-profiles.md
master-prompt.md
SKILL.md
forgecad-grade-model/
agents/
openai.yaml
SKILL.md
forgecad-image-prompt/
agents/
openai.yaml
SKILL.md
forgecad-inspect-model/
SKILL.md
summarize_manifest.py
forgecad-project-sync/
SKILL.md
forgecad-reconstruct-cad-file/
agents/
openai.yaml
SKILL.md
forgecad-reconstruct-from-images/
agents/
openai.yaml
scripts/
compare_images.py
SKILL.md
forgecad-verify-mujoco/
scripts/
mujoco_verify.py
SKILL.md
docs/
API/
core/
concepts.md
CLI.md
generated/
assembly.md
core.md
curves.md
lib.md
output.md
runtime-names.md
sdf.md
sheet-metal.md
sketch.md
viewport.md
wood.md
guides/
coordinate-system.md
inspection-bundles.md
joint-design.md
positioning.md
scene-presentation.md
surface-members.md
SKILL.md
README.mdFAQ
public-kit is a Claude Code plugin with 10 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes forgecad-build-model, forgecad-design-spec, forgecad-grade-model. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.