CAD代理
给你的AI代理看CAD。
问题
从事CAD工作的AI代理基本上是盲目的。他们可以生成代码,但看不到结果。典型的解决方法——截取屏幕截图并反馈——速度非常慢,需要手动操作,并且会打断代理的流程。
在没有视觉反馈的情况下,代理会进行猜测。看不出孔的位置不对,填充物太大,或者零件不合适。每次迭代都需要人为干预来捕捉和传递模型的外观。
解决方案
CAD Agent是一个自包含的渲染服务器,允许AI代理 看看他们在建什么代理发送建模命令,容器完成所有工作,并返回代理可以实际解释的图像。
Agent: "Create a box with a hole"
↓
┌─────────────────────────────────────────────┐
│ CAD Agent Container │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │build123d│→ │ VTK │→ │ PNG │ │
│ │ modeling│ │ render │ │ output │ │
│ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────┘
↓
Agent: *sees the render* "The hole is off-center, let me fix that..."反馈循环是即时的。代理创建、查看、评估和迭代,无需人工屏幕截图中继。
______________________________________________________________________
💖 支持这个项目
如果CAD Agent帮助您构建东西,请考虑赞助其开发:

您的支持使此项目得以维护并免费提供。
______________________________________________________________________
建筑
所有CAD逻辑都在容器内运行。 仅限外部AI代理:
- 发送命令(HTTP/MCP)
- 接收结果(JSON+PNG)
- 决定下一步做什么
┌─────────────────┐ ┌─────────────────────────────┐
│ AI Agent │ HTTP │ cad-agent container │
│ │ ──────► │ │
│ • Sends code │ │ • build123d modeling │
│ • Views renders│ ◄────── │ • VTK 3D rendering │
│ • Iterates │ JSON │ • 2D technical drawings │
│ │ + PNG │ • STL/STEP/3MF export │
│ NO CAD logic │ │ • Printability analysis │
│ lives here │ │ │
└─────────────────┘ └─────────────────────────────┘代理人应当 从不 在容器外进行STL操作、渲染或建模。这违背了目的,导致了脆弱、不一致的结果。
快速开始
# Build the container
docker build -t cad-agent:latest .
# Run the server
docker run -p 8123:8123 -v ./workspace:/workspace cad-agent:latest serve
# Verify it's running
curl http://localhost:8123/healthAPI
创建模型
curl -X POST http://localhost:8123/model/create \
-H "Content-Type: application/json" \
-d '{
"name": "bracket",
"code": "from build123d import *\nresult = Box(60, 40, 10) - Cylinder(5, 10).locate(Pos(20, 0, 0))"
}'渲染它
# 3D isometric view
curl -X POST http://localhost:8123/render/3d \
-d '{"model_name": "bracket", "view": "isometric"}' -o bracket_3d.png
# Multi-view technical drawing
curl -X POST http://localhost:8123/render/multiview \
-d '{"model_name": "bracket"}' -o bracket_views.png
# 2D orthographic with dimensions
curl -X POST http://localhost:8123/render/2d \
-d '{"model_name": "bracket", "view": "front"}' -o bracket_2d.png
# Complete 2D technical blueprint (multiple views + specs)
curl -X POST http://localhost:8123/render/blueprint \
-d '{"model_name": "bracket", "views": ["front", "right", "top", "bottom"]}' -o bracket_blueprint.png导出打印
curl -X POST http://localhost:8123/export \
-d '{"model_name": "bracket", "format": "stl"}' -o bracket.stl所有端点
| 端点 | 方法 | 描述 |
|---|---|---|
/health | GET | 健康检查 |
/model/create | POST | 执行build123d代码 |
/model/modify | POST | 修改现有模型 |
/model/list | GET | 列出会话中的所有模型 |
/model/{name}/measure | GET | 获取边界框和尺寸 |
/render/3d | POST | 3D着色渲染(VTK) |
/render/2d | POST | 单个二维正交视图(matplotlib) |
/render/blueprint | POST | 完成带尺寸的二维技术蓝图 |
/render/multiview | POST | 4视图3D合成 |
/export | POST | 导出STL/STEP/3MF |
/analyze/printability | POST | 歧管/水密性检查 |
MCP集成
对于使用模型上下文协议的AI代理:
docker run -i --rm cad-agent:latest mcp通过stdio JSON-RPC实现相同的功能。
保护您的设计
CAD Agent包括保护措施,以防止您的AI Agent意外发布您的设计文件:
.gitignore排除所有CAD输出(STL、STEP、3MF、OBJ等)- 预提交挂钩 拒绝包含设计文件的提交
- 输出目录 (
renders/,workspace/,exports/)默认情况下被排除在外
你的设计保持本地化。仅对工具源进行版本控制。要在克隆后启用挂钩:
git config core.hooksPath .githooks工作流程
- 代理编写build123d代码 --描述几何图形
- 容器构建模型 --创建三维实体
- 容器渲染 --返回代理可以看到的PNG
- 代理评估 --检查比例、特征、合身度
- 代理迭代 --修改代码,请求新的渲染
- 出口 --满足时生成STL/STEP
代理人留在循环中。没有手动截图传递。没有盲目迭代。
许可证
PolyForm小企业许可证1.0.0+周界
免费:
- ✅ 个人(任何用途)
- ✅ 小企业(\<100人,收入\<100万美元)
需要商业许可证:
- ❌ 员工人数≥100人或收入≥100万美元的组织
- ❌ 竞争产品或服务(边界限制)
看 许可证 完整条款和 NOTICES.md 第三方归因。
商业许可: 联系方式:
版权所有(c)2026 Svetlana DAO有限责任公司
