pith:JMGKQMSG
Self-Improving CAD Generation Agents with Finite Element Analysis as Feedback
CAD agents improve designs when finite element analysis and blueprint feedback close the loop between generation and engineering checks.
arxiv:2605.17448 v1 · 2026-05-17 · cs.GR · cs.CL
Add to your LaTeX paper
\usepackage{pith}
\pithnumber{JMGKQMSGLCJKFGTIOLIWXCNN5H}
Prints a linked badge after your title and injects PDF metadata. Compiles on arXiv. Learn more · Embed verified badge
Record completeness
Claims
Codex (GPT-5.5) and Claude Code (Opus-4.7) agents do not produce a single strict-passing artifact in the main first-attempt sweep, with the best configuration meeting only about 20% of typed requirements on average. The same feedback tools improve geometric reconstruction, with GPT-5.5/xhigh rising from 0.444 to 0.592 Box-IoU on S2O and from 0.397 to 0.505 on Fusion360.
That finite element analysis on the generated STEP files provides a reliable and sufficient proxy for real engineering requirements and that the observed IoU gains are causally due to the new blueprint and image feedback rather than other unmeasured factors in the agent loop. This premise enters in the abstract's description of the validation process and the reported improvements.
CAD agents using finite element analysis feedback plus new text blueprint and multi-view image signals improve geometric accuracy on S2O and Fusion360 benchmarks while addressing physical validity gaps in prior generation methods.
References
Formal links
Receipt and verification
| First computed | 2026-05-20T00:04:39.500379Z |
|---|---|
| Builder | pith-number-builder-2026-05-17-v1 |
| Signature | Pith Ed25519
(pith-v1-2026-05) · public key |
| Schema | pith-number/v1.0 |
Canonical hash
4b0ca832465892a29a6872d16b89ade9f8d963409e66c46659361a197872bcaf
Aliases
· · · · ·Agent API
Verify this Pith Number yourself
curl -sH 'Accept: application/ld+json' https://pith.science/pith/JMGKQMSGLCJKFGTIOLIWXCNN5H \
| jq -c '.canonical_record' \
| python3 -c "import sys,json,hashlib; b=json.dumps(json.loads(sys.stdin.read()), sort_keys=True, separators=(',',':'), ensure_ascii=False).encode(); print(hashlib.sha256(b).hexdigest())"
# expect: 4b0ca832465892a29a6872d16b89ade9f8d963409e66c46659361a197872bcaf
Canonical record JSON
{
"metadata": {
"abstract_canon_sha256": "df34a9e994c397bc27c0cf30ea9fee8bd38fec945293dcfd864559e1e12ccc7d",
"cross_cats_sorted": [
"cs.CL"
],
"license": "http://creativecommons.org/licenses/by-sa/4.0/",
"primary_cat": "cs.GR",
"submitted_at": "2026-05-17T13:47:38Z",
"title_canon_sha256": "69a58509d33aa03f38302fda1996a48ca665746c4b7b9714778dbedb72324e1a"
},
"schema_version": "1.0",
"source": {
"id": "2605.17448",
"kind": "arxiv",
"version": 1
}
}