Adam CADAM: 开源 AI 驱动的 Text-to-CAD 平台
Adam CADAM 是一个开源的 text-to-CAD Web 应用,使用户能够通过自然语言描述和图像参考生成 3D 模型。通过利用 AI 生成参数化 OpenSCAD 代码,该平台允许通过交互式滑块进行即时尺寸调整,而无需要求 AI 重新生成整个模型。
AI 驱动的参数化建模
CADAM 将纯英文提示词和上传的图像转换为功能性的 3D 几何体。与静态 3D 生成不同,CADAM 生成的是参数化模型,这意味着它会自动识别可调节的尺寸并将其提取为交互式控件。
关键能力包括:
- 自然语言输入:用户使用纯英文描述模型以生成 3D 几何体。
- 图像引导生成:上传的图像可用于引导 AI 创建模型。
- 参数化控件:交互式滑块允许进行实时尺寸调整。
- 智能更新:参数的更改会立即应用,无需经过完整的 AI 重新生成周期。
- 实时预览:与 Three.js 的集成提供了模型在修改时的即时视觉表示。
技术架构与技术栈
CADAM 被构建为一个基于浏览器的应用,使用 WebAssembly 来在本地运行其 CAD 引擎,从而确保了高性能和易用性,无需安装本地软件。
技术栈包括:
- CAD 引擎:编译为 WebAssembly (WASM) 的 OpenSCAD。
- 前端:React 19, TypeScript, TanStack Start, 和 Vite。
- 3D 渲染:Three.js 和 React Three Fiber。
- 后端:TanStack Start 服务器路由结合 Supabase 用于 PostgreSQL, Authentication, 和 Storage。
- AI 集成:由 Anthropic Claude API 提供动力。
- 样式:Tailwind CSS 和 shadcn/ui。
- 支持的库:系统包括对 BOSL, BOSL2, 和 MCAD 库的支持。
基准测试与模型复杂度
CADAM 能够从单个提示词生成简单的参数化零件和复杂的多个部件的组件。所有输出都可以导出为 .STL, .SCAD, 或 .DXF 文件。
复杂组件
- V8 发动机:一个完整的内燃机,具有两排四缸、气缸盖、进气歧管、排气管、曲轴、活塞和油底壳(由 22 个尺寸控制)。
- 星形飞机发动机:一个 9 缸发动机,具有中央曲轴箱、星形图案的散热片气缸和螺旋桨轴毂(由 15 个尺寸控制)。
- 涡轮风扇喷气发动机:一个高涵道比涡轮风扇发动机,包括前置风扇、旁路罩、内部核心和排气塞。
- 轴流涡轮叶片盘:一个带有中央轮毂和 28 个扭曲气动叶片的叶片盘。
参数化基础
- 机械零件:系统可以生成高精度零件,例如带有真实螺纹的 M12 六角螺栓和螺母、带有 D 形轴孔的滚花控制旋钮,以及直角斜齿轮传动装置。
- 工程组件:示例包括 NACA 2412 锥形飞机机翼、后弯叶片的离心泵叶轮,以及人字形行星齿轮级。
- 消费品对象:简单的物品,如扭曲的六角形花瓶和带有配套螺纹盖的螺纹罐。
部署与开发
CADAM 根据 GNU General Public License v3.0 (GPLv3) 进行授权。开发者可以通过克隆仓库并为 Supabase 和各种 AI 提供商(Anthropic, OpenAI, Google, 和 OpenRouter)配置环境变量来在本地运行该项目。
本地开发需要 Node.js (^20.19.0 或 >=22.12.0) 和 Supabase CLI。由于该应用使用公共 URL 用于提供商回调和签名存储 URL,开发者建议使用 ngrok 创建隧道用于本地 Webhook 开发。