{"slug": "show-hn-cad-studio-describe-a-part-get-parametric-cad-you-can-print-macos", "title": "Show HN: CAD Studio – Describe a part, get parametric CAD you can print (macOS)", "summary": "Developer Filippo Finke released CAD Studio, a native macOS app that turns a text description into parametric CAD models by having a local coding agent (Claude Code or Codex CLI) write and run build123d Python scripts. CAD Studio requires macOS 15 or later, Python 3.10–3.13 or uv, and exports STEP, 3MF, STL, PDF drawings and model.py as a ZIP, with a non-notarized CADStudio.dmg available from the project's latest GitHub release. The app adds a live 3D viewer, physics-based mechanism animation, ISO first-angle technical drawings, a print-plate layout for slicers, and version history that preserves chat and context.", "body_md": "Describe a part, get a printable model. A native macOS CAD studio powered by the coding agent on your Mac (Claude Code or Codex) and build123d.\n\nType \"a print-in-place planetary gearbox with four colors, animated with real gear ratios\" and CAD Studio has your coding agent write a parametric `model.py`, run it with build123d and hand you a 3D model, an ISO technical drawing and files ready for your slicer. Every change is a new version you can go back to.\n\n[Website](https://filippofinke.github.io/cad-studio/) · [▶︎ Watch the narrated demo (MP4, with sound)](https://github.com/filippofinke/cad-studio/blob/main/.github/demo.mp4)\n\n- Chat with an agent that writes and fixes parametric build123d scripts for you\n- Live 3D viewer with orbit, zoom, pan, grid, wireframe and multi-color 3MF parts\n- Measure distances and cut sections through the model\n- Animate mechanisms with a physics simulation (masses, springs, friction) and per-frame collision checks\n- Multi-part models: assembled, exploded or print-plate view, show, hide or keep parts together\n-  Print plate with every part oriented and laid out for printing (`plate.3mf` , opened in your slicer)\n- Floating parameter panel with sliders: tweak dimensions without calling the agent\n- ISO technical drawings (first-angle projection): assembly with parts list plus one sheet per part, as a multi-page PDF\n- Version history: jump back to any generation, chat and context included, and compare versions in 3D\n- Attach or paste (⌘V) reference images, sketches, PDFs and STEP/STL files to the chat\n-  Export STEP, 3MF, STL, PDF drawing and `model.py` as one ZIP\n- Printer-aware design rules for FDM, multi-material, resin and SLS, in mm, cm, m or inches\n- Drag panels anywhere: chat left, right or at the bottom, layout saved per project\n- English, Italian, German and French\n\nEvery screenshot below is from the same project: a print-in-place planetary gearbox, from the first launch to version 2.\n\n**Set up once, then describe your part.** Pick your printer and units on first launch, create a project and type what you need.\n\n| First launch | Describe the part | \n|---|---|\n| **The agent at work** | **The finished gearbox** | \n\n**Parts, motion and drawings.** Explode the assembly, play the simulated motion and flip through the drawing sheets.\n\n| Exploded view | Simulated motion | \n|---|---|\n| **Edit parameters without the agent** | **Measure distances** | \n| **Section view** | **One sheet per part** | \n| **Ask for a change: version 2** | **Compare with version 1** | \n| **Chat on the right** | **Chat at the bottom** | \n\nPrerequisites\n\n- macOS 15 or later\n- [Claude Code](https://claude.com/claude-code) signed in (run`claude` once in Terminal), or[Codex CLI](https://developers.openai.com/codex/cli) signed in (`codex login` ); pick one in**Settings → Agent**\n- [uv](https://docs.astral.sh/uv/) or Python 3.10–3.13, used to install build123d on first launch\n\nDownload\n\nGrab `CADStudio.dmg` from the [latest release](https://github.com/filippofinke/cad-studio/releases/latest) and drag CAD Studio into Applications. The app isn't notarized, so the first time macOS blocks it: open **System Settings → Privacy & Security** and click **Open Anyway**, or run:\n\n```\nxattr -dr com.apple.quarantine \"/Applications/CAD Studio.app\"\n```\n\nBuild from source (needs Xcode 16 or later)\n\n```\ngit clone https://github.com/filippofinke/cad-studio.git\ncd cad-studio\n./build.sh --install\n```\n\nThis builds a universal `CAD Studio.app`, copies it to `/Applications` and launches it. `./build.sh --dmg` builds `build/CADStudio.dmg`. You can also open `CADStudio.xcodeproj` and press ⌘R.\n\nEvery project is a folder. CAD Studio runs the agent installed on your Mac in headless mode (`claude -p --output-format stream-json`, or `codex exec --json` in its workspace sandbox) inside that folder, with a CAD system prompt that asks for a single parametric `model.py`. The agent runs the script with a dedicated Python environment (`~/Library/Application Support/CAD Studio/venv`, with build123d, matplotlib and numpy) until it produces:\n\n```\n<Project>/\n├── model.py              # parametric build123d script\n├── references/           # images attached in the chat\n├── output/\n│   ├── model.3mf         # main model, with part colors\n│   ├── model.stl\n│   ├── model.step\n│   ├── plate.3mf         # parts laid out ready to print\n│   ├── schematic.svg / .png / .pdf   # page 1 + multi-page PDF\n│   ├── schematic-2.svg …  # one sheet per part\n│   ├── animation.json    # optional: simulated motion, values and collisions\n│   └── manifest.json     # size, volume, parameters, warnings\n└── .cadstudio/           # chat, session, logs and versions\n```\n\nThe app streams the agent's text and tool calls into the chat, watches `output/` and reloads the 3D view and the drawing as soon as files change. Each successful generation is copied to `.cadstudio/versions/<n>/` together with the chat and a forked Claude session, so going back to a version also restores what the agent remembers.\n\n- Generations use your Claude Code or Codex plan. A simple part takes one to two minutes; a complex mechanism can take half an hour.\n- By default the agent ignores your personal configuration (Claude Code hooks, plugins and MCP servers, Codex `config.toml` ). Turn this off in**Settings → Advanced** if your login depends on them.\n- **Settings → Agent → Restricted Bash** (Claude Code) limits the agent to the project's Python interpreter and read-only commands.\n- Files are always in millimeters; the chosen unit is used in replies and drawings.\n\nOpen a pull request against `main` with a [Conventional Commits](https://www.conventionalcommits.org) title (`feat: …`, `fix: …`). PRs are squash-merged, and [release-please](https://github.com/googleapis/release-please) turns them into a release PR that bumps the version and updates the [changelog](https://github.com/filippofinke/cad-studio/blob/main/CHANGELOG.md). Merging it publishes a GitHub release with the DMG attached.\n\n👤 **Filippo Finke**\n\n- Website: [https://filippofinke.ch](https://filippofinke.ch)\n- Twitter: [@filippofinke](https://twitter.com/filippofinke)\n- GitHub: [@filippofinke](https://github.com/filippofinke)\n- LinkedIn: [@filippofinke](https://linkedin.com/in/filippofinke)\n\nGive a ⭐️ if this project helped you!\n\nCopyright © 2026 [Filippo Finke](https://github.com/filippofinke).\n\nThis project is [MIT](https://github.com/filippofinke/cad-studio/blob/main/LICENSE) licensed.\n\n*Not affiliated with Anthropic.*", "url": "https://wpnews.pro/news/show-hn-cad-studio-describe-a-part-get-parametric-cad-you-can-print-macos", "canonical_source": "https://github.com/filippofinke/cad-studio", "published_at": "2026-10-09 20:18:08+00:00", "updated_at": "2026-10-09 20:52:11.892300+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "generative-ai", "developer-tools"], "entities": ["CAD Studio", "Filippo Finke", "Claude Code", "Codex CLI", "build123d", "macOS", "GitHub", "Python"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-cad-studio-describe-a-part-get-parametric-cad-you-can-print-macos", "markdown": "https://wpnews.pro/news/show-hn-cad-studio-describe-a-part-get-parametric-cad-you-can-print-macos.md", "text": "https://wpnews.pro/news/show-hn-cad-studio-describe-a-part-get-parametric-cad-you-can-print-macos.txt", "jsonld": "https://wpnews.pro/news/show-hn-cad-studio-describe-a-part-get-parametric-cad-you-can-print-macos.jsonld"}}