mcpbeat

Forgecad Reconstruct Cad File

forgecad/forgecad-reconstruct-cad-file

Reconstruct a readable parametric ForgeCAD model from an existing CAD or mesh file such as STL, OBJ, 3MF, STEP, or STP.

996 tokens
context cost
the whole folder, loaded on every use
2
files
instructions only
0
copies elsewhere
how many repositories repackaged it
912
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/ForgeCAD/forgecad-public-kit --skill forgecad-reconstruct-cad-file

The instruction itself

4 sections, as written by the author

Reconstruct CAD File

The reference asset is evidence, not the deliverable. The deliverable is a readable, parametric .forge.js model that runs, renders, and scores well against the source. Never return Import.mesh()/Import.step() of the source as the final model unless the user explicitly asks for an import wrapper — imports are for measurement, rendering, and scoring only.

Routing: user wants to KEEP the file as a live component and design around it (bracket, enclosure, mating assembly) → forgecad-build-model (Imported Parts section), not this skill; prepared benchmark/RL episodes → use the task-local benchmark instructions, not the public skill library; inspection-bundle interpretation → forgecad-inspect-model; independent grading after reconstruction → forgecad-grade-model; API and command reference → forgecad skill + CLI.md.

Workflow

  • Inspect the source directly — the CLI reads CAD/mesh files as inputs, no wrapper script. Gather four evidence types: ls --long stats, an iso render, per-object views, sampled sections (invocations in CLI.md; when sharing a renderer server via --port, run renders sequentially).
  • 3MF: enumerate every build item before scoring — hidden multi-part structure is a common miss. Item ref syntax: Import.mesh docs.
  • Reconstruction Brief before modeling: what must be exact vs. approximate vs. parametric; symmetry, origin, key reference planes; likely manufacturing process; scoring tolerance and alignment policy.
  • Blockout first. Match bbox and main masses, then add features. Model real geometry with blueprint-first APIs — never vertex-chase a faceted copy.
  • Compare numerically — the core loop:
   forgecad compare 3d path/to/source.stl path/to/candidate.forge.js \
     --samples 3000 --json --output /tmp/<slug>-score.json
  • Iterate coarse to fine: bbox/placement → main volumes/silhouette → holes/bosses/ribs/shells → edge treatments → small details.

Reading the Score

Alignment: start --align none. Use --align center only when origins clearly differ but scale and orientation match. Use --align center-scale only for exploratory diagnosis — it hides dimensional errors.

| Signal | Diagnosis |

|---|---|

| Low coverage | Missing or extra surface |

| High RMS | Broad proportional mismatch |

| High p95/max | Localized outlier feature (protrusion, hole) |

| Bounds delta | Size, origin, or scale mismatch |

| Volume delta | Mass, shell, cutout, or scale mismatch |

Calibration: 95+ simple prismatic/revolved parts, 90+ ordinary mechanical parts with fillets/cutouts, 80+ acceptable for organic, faceted, or underdetermined sources. Always report raw rms, p95, max, coverage, bounds delta, and volume delta — a high overall score with a large max can hide a missing local feature.

Faceted sources: decide whether tessellation itself is evidence. Matching low-poly faceting raises the score but reduces parametric clarity — prefer analytic intent unless faceting is part of the artifact or required by the acceptance criteria.

Done Criteria

The final model must run, render, re-compare at --samples 5000, and pass an inspect compare overlay. Add targeted inspects (forgecad-inspect-model) when the object is multi-part, hollow, thin-walled, or surface-sensitive. Report: source and candidate paths, score JSON path, final metrics, and every known mismatch classified as intentional simplification or remaining work.

How to use it

Copy the folder

Take forgecad/forgecad-reconstruct-cad-file from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.