CADAM
An open-source text-to-CAD web application that generates 3D parametric CAD models from natural language descriptions.
CADAM is an open-source text-to-CAD web application that lets you generate 3D parametric CAD models from natural language descriptions. Hosted on GitHub at github.com/Adam-CAD/CADAM, it has gained over 4,800 stars and 592 forks for its innovative approach to CAD modeling.
CADAM bridges the gap between natural language and parametric Computer-Aided Design (CAD). Instead of manually drawing sketches, applying constraints, and extruding features in traditional CAD software, users describe what they want in plain English, and CADAM translates those descriptions into editable, parametric 3D models. The generated models can be exported in standard formats for use in manufacturing, 3D printing, and further CAD editing.
The application is built with a modern tech stack including Next.js, Supabase, and integration with large language models for code generation. It is designed to be accessible to both experienced CAD users who want to accelerate their workflow and newcomers who find traditional CAD software intimidating.
Key Features
- Natural Language to CAD - Describe your model in plain English and get a parametric 3D design instantly.
- Parametric Models - Generated models are fully parametric, meaning dimensions and features can be edited after generation.
- Web-Based - Runs entirely in the browser with no CAD software installation required.
- Export Formats - Export models in STEP, STL, OBJ, and other standard CAD formats.
- Interactive Preview - Real-time 3D preview with orbit, pan, and zoom controls.
- Multiple AI Models - Supports various LLMs for CAD generation including GPT, Claude, and open-source models.
- Iterative Refinement - Refine models through follow-up prompts without starting from scratch.
- Version History - Track changes and revert to previous model versions.
How It Works
CADAM works by using large language models to generate parametric CAD script code from natural language descriptions. When a user describes a part, the LLM generates code in a CAD scripting language (such as CadQuery or OpenSCAD) that defines the geometry, dimensions, constraints, and features of the model.
The generated code is then executed in a sandboxed environment to produce the 3D geometry. The result is rendered in the browser using a WebGL-based 3D viewer. The parametric nature of the script means that users can later adjust dimensions, add features, or modify the design by editing the generated script parameters.
The system includes a benchmarking framework for evaluating CAD generation quality across different models and prompts. CADAM also supports SolidWorks integration for users who need to take generated designs into professional CAD environments for further refinement and manufacturing preparation.
Installation
CADAM can be run locally or accessed through a hosted instance.
Local development setup:
git clone https://github.com/Adam-CAD/CADAM.git
cd CADAM
npm install
cp .env.example .env # Configure your API keys
npm run dev
The application requires a Supabase instance for data storage and an LLM API key (OpenAI, Anthropic, or compatible providers). The architecture uses a Next.js frontend with a Supabase backend for user accounts, model storage, and version history.
Usage
Using CADAM is straightforward. Enter a text description of the 3D model you want to create into the prompt interface. For example: "Create a mounting bracket with four holes on a 100mm by 50mm base plate, with a 10mm lip on one edge."
The system generates the CAD script, compiles it into a 3D model, and displays it in the interactive viewer. You can then refine the result with additional prompts like "Make the holes 8mm instead of 6mm" or "Add fillets to all sharp edges." Once satisfied, export the model in your preferred format for 3D printing, CNC machining, or further CAD editing in SolidWorks, Fusion 360, or FreeCAD.
Comparison
CADAM is part of a growing ecosystem of AI-assisted CAD tools. Here is how it compares to alternatives:
| Criterion | CADAM | Traditional CAD | Other Text-to-CAD |
|---|---|---|---|
| Input Method | Natural language | Manual sketching | Varies |
| Parametric | Yes (script-based) | Yes | Sometimes |
| Learning Curve | Very low | Very high | Low-moderate |
| Open Source | Yes (MIT-like) | FreeCAD (partial) | Varies |
| Export Formats | STEP, STL, OBJ | All industry formats | Limited |
| Precision | LLM-dependent | Sub-mm precision | LLM-dependent |
Community
CADAM has a growing open-source community with active contributors. The project's GitHub repository features discussions, issue tracking for bugs and feature requests, and a structured contribution process. The project community includes CAD enthusiasts, mechanical engineers, 3D printing hobbyists, and AI researchers interested in the intersection of generative AI and engineering design.
The project includes benchmarks for evaluating CAD generation quality, which serves as a valuable resource for researchers working on text-to-CAD problems. Community members actively share example prompts, generated models, and best practices for achieving high-quality CAD outputs.