{"slug": "show-hn-hackerscad-script-3d-solids-in-a-c-js-like-language-with-mcp-server", "title": "Show HN: Hackerscad – script 3D solids in a C/JS-like language, with MCP server", "summary": "Hackerscad, a parametric CAD tool that models 3D solids in a small sandboxed C/JS-like language, launched with an MCP server that lets Claude or other AI agents write, check and render models. The tool writes mouse-driven edits such as fillets and holes back into readable code, supports unittest blocks that the command line checks, renders and exports in a script or CI, and exports 3MF with a colour per part, STL, STEP or drawings with views and dimensions. The MCP server installs hackerscad's skill and the application itself if missing, after asking the user first.", "body_md": "hackerscad is a parametric CAD where the model is code. Type and the 3D view follows; round an edge with the mouse and the code is written for you. Exact solids, real threads, files for every printer.\n\nPaste this to it: it installs hackerscad's skill, then hackerscad itself if it's missing (asking you first) and the MCP server. Then it reads the language from docs written for agents, checks and renders its models, and shows them in your window. [More below](#agents)\n\nA small, sandboxed language with units, selectors and libraries. It diffs, versions and reviews like any other code.\n\nFillets, holes, sketches on a face, parts moved and patterned: every click lands in the file, readable.\n\n3MF with a colour per part, STL, STEP, or a drawing with views and dimensions.\n\nunittest blocks hold what the part must do. The command line checks, renders and exports, in a script or in CI.\n\n``` python\n// batteries.hcad: a holder for AA cells\nimport std;\n\n@param immutable cells = 4;\nimmutable aa = 14.5.mm, play = 0.4.mm;\nimmutable hole = aa + play, pitch = hole + 2.mm;\n\n@part\nSolid holder()\n{\n    auto b = box(cells * pitch + 2.mm,\n            pitch + 2.mm, 22.mm)\n        .fillet(edges.parallel(Z), r: 3.mm);\n\n    // a pocket for each cell, its rim chamfered\n    foreach (i; 0 .. cells)\n        b -= cylinder(d: hole, h: 22.mm)\n            .move(x: (i - (cells - 1) / 2.0) * pitch,\n                z: 3.mm);\n    b = b.chamfer(edges.of(faces.top), d: 0.6.mm);\n\n    // a grip on both long sides, last\n    return b\n        .knurl(faces.front, kind: \"diagonal\",\n            pitch: 3.mm)\n        .knurl(faces.back, kind: \"diagonal\",\n            pitch: 3.mm);\n}\n\n// a cell in the first pocket, to see it fit\n@part(\"Yellow Pop\", alpha: 0.4, export: false)\nSolid cell()\n{\n    auto body = cylinder(d: aa, h: 49.5.mm);\n    auto tip = cylinder(d: 5.5.mm, h: 1.mm)\n        .move(z: 49.5.mm);\n    return (body + tip)\n        .move(x: -(cells - 1) / 2.0 * pitch, z: 3.mm);\n}\n\nunittest\n{\n    assert(hole > aa, \"an AA cell does not fit\");\n    assert((holder & cell).volume < 0.01.mm ^^ 3,\n        \"the cell rubs against the holder\");\n}\n```\n\nFor the curious.\n\nTell Claude or another agent what you need. It models it, checks its sizes, shows it in your window and leaves you code you can change.\n\nPaste this: it installs the skill, then hackerscad itself if it is missing (asking you first) and the MCP server.\n\n`hcad --version` tells whether `hcad` is in your PATH; if not, use its full path below.\nOne package per system: the app, the command line tool and the MCP server.", "url": "https://wpnews.pro/news/show-hn-hackerscad-script-3d-solids-in-a-c-js-like-language-with-mcp-server", "canonical_source": "https://hackerscad.com", "published_at": "2026-10-29 12:54:51+00:00", "updated_at": "2026-10-29 13:17:22.778356+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-tools", "developer-tools"], "entities": ["Hackerscad", "Claude", "hcad"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-hackerscad-script-3d-solids-in-a-c-js-like-language-with-mcp-server", "markdown": "https://wpnews.pro/news/show-hn-hackerscad-script-3d-solids-in-a-c-js-like-language-with-mcp-server.md", "text": "https://wpnews.pro/news/show-hn-hackerscad-script-3d-solids-in-a-c-js-like-language-with-mcp-server.txt", "jsonld": "https://wpnews.pro/news/show-hn-hackerscad-script-3d-solids-in-a-c-js-like-language-with-mcp-server.jsonld"}}