Pan-Chera/Multi-Agent-CAD
Pan-Chera/Multi-Agent-CAD has 1,075 GitHub stars and 100 forks. GitHot measured +6 in 7 days. Last checked 2026-11-11 01:18 UTC. Last push 2026-10-28.
MAC (Multi-Agent CAD): A decoupled multi-agent framework for text-to-CAD generation via constrained test-time compute
实测星标增长
- 24小时
- 更新延迟
- 7天
- +6
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README_cn.md
原文MAC — 从自然语言生成 CAD 零件与装配体
用自然语言生成可编辑的 CAD 零件和多零件装配体。English
MAC 将普通设计需求转化为可编辑的工程几何。它既能生成单个可打印零件,也能将机构拆解成独立零件,完成装配、验证,并导出供检查及仿真工作流使用的文件。
MAC 最初以单零件 Text-to-CAD 工作流发布,目前已在 GitHub 获得接近 1000 Stars。本次版本保留原有单零件流程,并进一步加入视觉验证、独立 Judge,以及实验性的多零件装配体生成功能。

装配体展示(技术预览)
在原有单零件工作流基础上,MAC v2 新增了实验性的自然语言装配体生成功能。以下内容是经筛选的展示结果,不代表自然语言提示词成功率,也不用于宣称装配工作流优于 CAD Agent Skill。用于制造或仿真之前,请人工检查生成的几何和关节。
复杂装配体
| 三轴龙门测量单元 | 伸缩式电影机器人吊臂 |
|---|---|
| 三个正交运动级组成的桥式测量平台。 | 带铰接支撑与伸缩式载荷臂的多级吊臂。 |
![]() |
![]() |
| 重型移动机械臂 | 高级视觉检测机械臂 |
|---|---|
| 移动底盘搭载细节丰富的铰接机械臂。 | 带框架式视觉载荷的多关节检测臂。 |
![]() |
![]() |
复杂装配体生成消耗
| 装配体 | 规划与装配关系 | 零件生成与修复 | Judge 与其他流程 | 总 Token | 估算成本 |
|---|---|---|---|---|---|
| 三轴龙门测量单元 | 约 178,000 | 461,811 | 260,157 | 约 900,000 | 约 ¥15 |
| 伸缩式电影机器人吊臂 | 535,407 | 663,427 | 约 451,000 | 约 1,650,000 | 约 ¥23 |
| 重型移动机械臂 | 约 520,000 | 2,678,005 | 2,602,142 | 约 5,800,000 | 约 ¥89 |
| 高级视觉检测机械臂 | 85,016 | 160,367 | 约 55,000 | 约 300,000 | 约 ¥5 |
| 合计 | 约 1,318,000 | 3,963,610 | 约 3,368,000 | 约 8,650,000 | 约 ¥132 |
小型功能装配体
| 铰链式双爪夹持器 | 导向直线推杆 | 旋转叉形钥匙工具 | 可复用五指手 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
这些经筛选的小型例子展示了自然语言拆件、关节接口、重复零件复用与镜像几何;复杂例子展示了同一流程处理大型视觉装配体的能力。实现细节和当前限制见装配体工作流文档。
URDF 仿真
装配体工作流可以将生成的机构导出为 URDF 文件,用于后续机器人与物理仿真。以下演示 使用 AI 生成的灵巧手装配体,在仿真环境中分别执行物体旋转和抓取放置任务。
| 旋转物体 | 抓取放置 |
|---|---|
![]() |
![]() |
单零件展示
以下示例均为可编辑的 CAD 结果,而非仅有图片的生成结果。
| 蜂巢收纳座 | 陀螺仪摆件 | 灯塔 | 手机支架 | 笼中小球 |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
| 可动陀螺仪 | 多环链 | 马尔他机构 | 等离子反应堆 | 刹车盘 |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
单零件工作流文档介绍配置、运行、缓存与 QA,并链接到基准提示词和逐模型数据。
实物结果

上图的打印实物包括单零件工作流生成的基准零件和原创展示模型。MAC 还可以生成包含独立实体及功能间隙的“一体打印即可活动”机构:
单零件工作流基准测试
下列数字仅适用于文档记录的 10 条提示词、141 个特征的单零件工作流基准测试,不是装配体成功率或装配体成本数据。其中个别提示词可能生成多实体机构;“单零件工作流”指所使用的管线,而非保证输出只有一个实体。
| 工作流 | 模型 | 环内验证 | Token | 估算成本 | 特征通过率 |
|---|---|---|---|---|---|
| CAD Skill 复现 | Qwen 3.7 | — | 103.95M | ¥125.69 | 138/141(97.9%) |
| CAD Skill 复现 | Qwen 3.8 | 视觉 | 87.46M | ¥199.18 | 132/141(93.6%) |
| MAC v1 | Qwen 3.7 | 几何 | 0.90M | ¥9.66 | 140/141(99.3%) |
| MAC v2 | Qwen 3.8 | 视觉 + 几何 | 1.40M | ¥32.83 | 140/141(99.3%) |
在 Qwen 3.7 配置下,MAC v1 相比复现的 Skill 基线减少了 116 倍记录 Token,估算成本降低了 13 倍。在加入视觉验证的 Qwen 3.8 配置下,MAC v2 仍减少了 62.7 倍记录 Token,估算成本降低了 6.1 倍。
MAC v1 指原始单零件工作流及其已发布的基准运行;MAC v2 指加入视觉验证和 独立 Judge 后的新版单零件工作流。装配体生成作为独立的技术预览展示,不包含 在上述基准数据中。
在两组已有模型配置中,MAC 均保持了 140/141 的特征通过率,同时相比对应的 Skill 复现运行显著减少了记录 Token 和估算成本。
方法与原始明细见单零件 README、英文评估和中文评估。
为什么选择 MAC?
- 自然语言输入:描述几何、尺寸、接口和运动关系,不必编写 CAD 代码或内部数据格式。
- 覆盖零件与装配体:同一个项目支持独立可打印零件以及多部件可动机构。
- 可编辑的工程输出:导出 STEP、STL 和 GLB,而不只是渲染图片;装配体还提供 URDF 交接文件。
- 可审查的生成过程:可以检查结构化需求、几何计划、生成的 Python、测量结果、QA 报告与修复记录。
- 自动执行与修复:执行并检查生成的 CAD,通过有上限的反馈回路处理可恢复错误。
- 复用代替重复生成:重复零件和镜像零件可以从一份源几何得到。
- 灵活配置模型:规划、几何、编码和修复阶段可分别配置 OpenAI 兼容模型。
- 可视化工作流:单零件流程提供浏览器界面、3D 预览与下载。
- 延续已有工作流:MAC v2 在接近 1000 Stars 的原单零件流程上增加视觉验证与装配体生成,同时保留已有的零件生成能力。
快速开始
安装
git clone https://github.com/Pan-Chera/Multi-Agent-CAD.git
cd Multi-Agent-CAD
conda env create -f environment.yml
conda activate multi_agent_cad
pip install --no-deps "aider-chat==0.82.3"
export DASHSCOPE_API_KEY="your-key"
最后一步 pip install 是必需的:aider-chat 固定依赖 NumPy 1.x,与
build123d 使用的 NumPy 2.x 冲突,因此没有放入 environment.yml;
--no-deps 可以避免替换当前可用的 NumPy 版本。
默认配置使用兼容 OpenAI API 的 DashScope 接口。其他提供商的配置见单零件模型配置说明。
内置 cadpy 运行时目前依赖 OCP 7.x,因此安装配置限制 build123d<0.13。
0.13 切换到了 OCP 8,无法加载当前的 STEP 运行时。如果已有环境已经升级,执行
python -m pip install "build123d>=0.8,<0.13" 可恢复兼容的依赖版本。
pip 用户(无 conda):
aider-chat锁定numpy==1.26.4,与build123d>=0.8要求的numpy>=2,<3冲突,纯 pip 直接装失败。走以下 workaround(已在 macOS arm64 + Python 3.11 验证):python3.11 -m venv .venv source .venv/bin/activate # Windows PowerShell: .venv\Scripts\activate pip install --upgrade pip # 先装 aider(会拉 numpy 1.26.4 + 一堆传递依赖),再强制覆盖 numpy 到 2.x。 # 已验证 aider 0.82.3 在 numpy 2.x 上能正常 import——上游的 pin 是过度保守。 pip install "aider-chat==0.82.3" pip install --no-deps --force-reinstall "numpy>=2,<2.3" pip install "build123d>=0.8,<0.13" "langgraph>=0.2,<0.3" "langgraph-checkpoint>=2.0,<3.0" \ "pydantic>=2.5" "openai>=1.20.0" "anthropic>=0.30" \ "trimesh>=4.0" "rtree>=1.1" "scipy>=1.10" "scikit-learn>=1.3" \ "fastapi>=0.110" "uvicorn[standard]>=0.27" "ipython>=8.15" "pytest>=7.4" # --no-deps 跳过 pyproject.toml 的 numpy pin 重新检查;fastapi+uvicorn 已由上一步装好。 pip install --no-deps -e .最后一步同时注册
mac-config-reset命令行脚本、并允许在任意目录(不只是仓库根)跑python -m multi_agent_cad.graph。完整依赖清单见 requirements.txt / pyproject.toml。
Windows:在 Windows 上同样的
conda env create+pip install --no-deps aider-chat==0.82.3流程可用——trimesh和rtree来自 conda-forge 预编译包;OCP由build123d的 PyPI 依赖cadquery-ocp-novtk传递性拉入。Windows 上不要走下面的纯 pip workaround——trimesh/rtree的 native wheel 在 Windows 上不可靠。PowerShell 设 API key:$env:DASHSCOPE_API_KEY = "sk-..."(cmd.exe 用set DASHSCOPE_API_KEY=sk-...)。conda 环境内跑 Web UI 用pip install -e ".[web]"——uvloop在 Windows 上自动跳过。CI 覆盖 Windows + Python 3.11,以及 Linux + Python 3.11/3.12,并检查隔离环境下的 wheel 安装。
生成一个零件
在 multi_agent_cad/config.py 中设置 USER_REQUEST,然后运行:
python -m multi_agent_cad.graph
启动单零件浏览器界面:
pip install -e ".[web]"
python -m multi_agent_cad.web
提供商选择器已包含 OpenRouter(https://openrouter.ai/api/v1)。切换预设时,
会填写各阶段及 Aider 的建议模型名,并保留手动修改过的模型。页面首次打开时读取
config.py 中的现有配置。OpenRouter 的 Aider 模型名采用 OpenAI 兼容格式,
例如 openai/qwen/qwen3-max。
API key 留空时,Web UI 依次使用服务器的 DASHSCOPE_API_KEY 环境变量和
config.py 中的 DS_API_KEY;表单填写的 key 优先,API 客户端也可继续通过
请求中的 config.DS_API_KEY 提供 key。服务器 key 不会返回到配置界面或写入任务
配置文件。请使用与当前提供商对应的 key。
界面默认仅监听 127.0.0.1。生成的 Python 会以当前用户权限执行,因此不要将
服务直接暴露到不可信网络。只有显式设置 MAC_WEB_ALLOW_DEST_PATH=1 后,界面
才允许把结果复制到任意本地目录。
生成装配体
装配体同样接受自然语言需求。可以运行附带的示例:
MAC_ASSEMBLY_REQUEST="$(cat mac_assembly/assembly_prompts/natural_language_benchmarks/01_hinged_twin_claw_gripper.md)" \
python -m mac_assembly
也可以直接传入需求:
MAC_ASSEMBLY_REQUEST="Create a two-part hinged clamp with a fixed base and one rotating jaw." \
python -m mac_assembly
装配任务写入 assembly_jobs/job_<timestamp>/,包含独立零件几何、装配后的 STEP/STL/GLB、URDF、清单及 QA 文件。在将产物用于制造或仿真之前,请阅读装配体指南。
文档
引用
如果本项目对你的研究有帮助,欢迎引用:
@misc{mac2026,
author = {Guanxing Qu and Xueyan Zou},
title = {MAC (Multi-Agent CAD): A Decoupled Multi-Agent Framework for Text-to-CAD Generation},
year = {2026},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/Pan-Chera/Multi-Agent-CAD}}
}
单零件定量评估使用 earthtojake/text-to-cad(CAD Skills)作为对比基线。如果引用该基准对比,也请引用原项目:
@misc{texttocad2026,
author = {earthtojake},
title = {CAD Skills: A skills library for CAD, robotics, and hardware design agents},
year = {2026},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/earthtojake/text-to-cad}}
}
许可证
本项目使用 MIT 许可证。
仓库内的 packages/cadpy STEP/GLB 运行时源自
earthtojake/text-to-cad(CAD
Skills),并依据其原始 MIT 许可证重新发布,详见
packages/cadpy/LICENSE。
致谢
- 清华大学 IEI Lab:提供项目开发所需的研究环境与指导。
- earthtojake/text-to-cad(CAD
Skills):单零件定量评估的对比基线与 10 条共享基准提示词来源;仓库内的
packages/cadpy运行时同样源于该项目,并保留其原始 MIT 版权声明。 - build123d:代数式 B-rep CAD 建模内核。
- LangGraph:有状态 Agent 编排框架。
- Aider:基于 LLM 的代码修复工具。
- Qwen Model Studio:文档实验使用的 OpenAI 兼容模型服务。
探索相关项目
affaan-m/ECC
智能体执行与控制框架的性能优化系统。面向 Claude Code、Codex、Opencode、Cursor 等,涵盖技能、本能、记忆、安全与研究优先的开发。
300,980 星标NousResearch/hermes-agent
与你一同成长的智能体
262,572 星标multica-ai/andrej-karpathy-skills
一个用于改进 Claude Code 行为的 CLAUDE.md 文件,源自 Andrej Karpathy 对 LLM 编程陷阱的观察。
232,018 星标firecrawl/firecrawl
借助来自网络及其他来源的数据,强化你的 AI 智能体。正在构建面向超级智能的资料库。🔥
200,444 星标


















