返回博客列表

让 AI Agent 自己画 CAD:11 天 5600 星的 CADCraft

2026-10-18T11:20:00+08:00
CADCraftRustAI AgentMCPAutoCAD开源

如果你是搞工程的,先别急着划走——这个项目诞生才 11 天,Star 数已经冲到 5600 多。

2026 年 10 月 7 日,一个叫 CADCraft 的仓库在 GitHub 上线。到 10 月 18 日,它已经拿到 5597 个 Star、2495 个 Fork、724 个 open issue,贡献者大约 57 人。也就是说,平均每天涨 500 星,仓库里同一天晚上能连着发两个版本,从 v0.1.0 到 v0.9.0 只用了 10 天。

它的自我描述更狠:用纯 Rust、干净室(clean-room)重写一遍 Autodesk AutoCAD。

这不是小打小闹的"CAD 查看器"。命令行提示符、对象捕捉(osnap)、图层、尺寸标注、填充、块、DXF 图纸——这些用了 AutoCAD 十几年的人闭着眼睛就能操作的东西,它照着原样做了一遍。而且它原生跑在 macOS、Windows、Linux、FreeBSD 上,还有一个 WebAssembly 版本能直接在浏览器里跑。

更值得聊的是它的另一半身份:一个为 AI Agent 而生的 CAD。每一处菜单、每个工具、每条提示,在 CADCraft 里都是一个"命令"。这意味着 Agent 可以像人一样,直接在命令行里敲字画图、用 JSON 调用任意命令、检查图纸来验证自己画得对不对,最后渲染出来。

我把它的 README、路线图和 CLI 都翻了一遍,下面按"它凭什么火 → 它今天能做什么 → Agent 怎么开它 → 哪里还不能碰"的顺序讲清楚。

项目速览

项目 信息
仓库 storytold/cadcraft
创建时间 2026-10-07(本文写作时才 11 天)
Star / Fork 5597 / 2495
语言 Rust(GUI 用 egui,核心无 Electron、无 WebView)
许可证 MIT 或 Apache-2.0,双许可任选
平台 macOS(通用二进制)、Windows(x64 / arm64 / x86)、Linux(x86_64 / aarch64 / riscv64)、FreeBSD、Web(WASM)
最新版本 v0.9.0(2026-10-18)
出品方 ArtCraft 团队(Crafting Apps 系列之一)

它凭什么火:两股浪潮正好撞在一起

我看了半天,觉得 CADCraft 的爆发不是偶然,它踩中了两个正在同时发生的趋势。

第一股:纯 Rust 原生应用的复兴。 这几年桌面软件被 Electron 套壳搞得又慢又占内存,一批人掉头回去用原生 toolkit 重写经典工具。CADCraft 全程纯 Rust + egui,一个二进制文件,没有 JavaScript 运行时。官方还专门算了账:DXF 原生的读写(R12 到 2018,ASCII 和二进制都支持)自己做,DWG 读写走开源库 acadrust,导出支持 SVG、PNG,再加上 PDF 出图。AutoCAD 那种"装了 10 个 G、开机启动两分钟"的体验,是被明确当成反面教材的。

第二股:Agent-native 软件。 这是我觉得更关键的一点。过去一年,MCP(Model Context Protocol)让 AI Agent 有了统一的工具调用标准,但大多数软件的"可被 Agent 驱动"是事后补的——一个 API,一层 wrapper。CADCraft 反过来:它从第一天就是围绕命令行设计的,而命令行天然就是 Agent 最好的接口。你敲 L、点两个点、输入 @5<45、回车,这是一套用了三十年、肌肉记忆级别的交互;恰好,这套交互对 Agent 来说也完全没有理解成本。

一句话总结:它不是"加了点 AI 的 CAD",而是"本来就该被 Agent 开的 CAD"。

今天到底能干什么

README 里有一张罕见诚实的"功能现状表"。挑重点说:

绘图与编辑。 画线、多段线(带圆弧和宽度)、圆、圆弧、矩形(可倒角/圆角)、多边形、椭圆、样条、点、构造线、文字、多行文字;修改侧有删除、移动、复制、旋转、缩放、镜像、拉伸、偏移、修剪、延伸、倒角、打断、合并、分解、矩形/环形阵列、绘制顺序。做工程图的人看到这一串应该会有感觉——这不是玩具清单。

精度工具。 对象捕捉支持端点、中点、圆心、几何中心、节点、象限点、交点、插入点、垂足、切点、最近点,还有"延迟切点/垂足"这种细节(比如一条线同时切于两个圆)。再加上极轴追踪、正交、栅格捕捉。

标注与图层。 全套 DIM* 标注命令、DIMSTYLE 变量、关联标注(跟着几何走)、多重引线 MLEADER、表格 TABLE、TrueType 字体、MTEXT 格式码,以及它们自己画的一套单笔画工程字体。图层管理器、属性面板、线型、线宽、颜色索引和真彩色都在。

文件格式。 DXF 原生读写(R12–2018,ASCII + 二进制),DWG 读写通过 acadrust;PDF 出图、SVG/PNG 导出。这一点很重要——它意味着你能打开别人发来的真实图纸,而不是自娱自乐。

装配与布局。 图块 BLOCK/INSERT、属性、嵌套块;图纸空间布局、视口、页面设置、PLOT 和 EXPORTPDF。

参数化。 几何约束和尺寸约束、AUTOCONSTRAIN、带表达式的 PARAMETERS、冲突检测,而且约束会在每次编辑后重新求解。

界面语言。 13 种,包括简体中文、乌尔都语、阿拉伯语这种带复杂文字排版的(它用 Unicode 双向算法和 OpenType 做阿拉伯文连写),还支持运行时切换。

顺带一提,整个 UI 界面里凡是工具栏、标签页这类画出来的控件,都带无障碍标签和可见的键盘焦点;系统"减少动效"设置它也会跟随。这类细节一般只有真正在意产品的团队才会做。

架构:一个可以换掉前端的 Rust workspace

CADCraft 的工程结构很干净,核心和前端是解耦的——ui-egui 以下的所有代码都不知道 egui 的存在,所以前端理论上可以整个替换。这在 Rust 桌面项目里算相当克制的分层:

flowchart TB
    subgraph Core["Core crates (egui-agnostic)"]
        GEOM["geom — f64 geometry: arcs, bulges, splines"]
        DXF["dxf — DXF tag reader / writer"]
        DOC["doc — copy-on-write entity store (cheap undo)"]
        RENDER["render — display lists, hatches, dims, raster"]
    end
    subgraph Engine["engine"]
        E["sessions, commands, prompts, snaps, selection, undo"]
    end
    subgraph Front["Front ends"]
        UIEGUI["ui-egui — swappable egui UI"]
        MCP["mcp — MCP server"]
    end
    subgraph Apps["apps"]
        A1["cadcraft (desktop)"]
        A2["cadcraft-cli"]
        A3["cadcraft-web (WASM)"]
    end
    GEOM --> E
    DXF --> E
    DOC --> E
    RENDER --> E
    E --> UIEGUI
    E --> MCP
    UIEGUI --> A1
    UIEGUI --> A3
    MCP --> A1
    MCP --> A2
    style GEOM fill:#FF6B6B,color:#000000
    style DXF fill:#4ECDC4,color:#000000
    style DOC fill:#45B7D1,color:#000000
    style RENDER fill:#96CEB4,color:#000000
    style E fill:#FFEAA7,color:#000000
    style UIEGUI fill:#DDA0DD,color:#000000
    style MCP fill:#98D8C8,color:#000000
    style A1 fill:#4ECDC4,color:#000000
    style A2 fill:#45B7D1,color:#000000
    style A3 fill:#96CEB4,color:#000000
    linkStyle default stroke:#764ba2,stroke-width:2px

值得一提的两个设计点:doc 层用的是写时复制(copy-on-write)实体存储,所以撤销(undo)做得很便宜;cargo xtask ci 会一次性检查格式、clippy、测试、资源归属、crate 分层,甚至包括 WASM 构建。也就是说,这套"可替换前端"的承诺是被 CI 强制的,不是口号。

让 Agent 自己画图,长这样

这部分才是 CADCraft 真正和其他开源 CAD 拉开差距的地方。它有三种让 Agent 介入的方式:MCP server、JSON 控制通道、以及一个 cadcraft-cli。

先看命令行工具的一次性跑法:

# 无头运行:跑一段脚本,保存 DXF,顺便导出 PNG
cadcraft-cli run --sample --script 'CIRCLE 22,3 1\n' --save out.dxf --export out.png

# 看一张图纸的元信息
cadcraft-cli info drawing.dxf

# 把 DWG 转成 SVG
cadcraft-cli convert drawing.dxf drawing.svg

再看 MCP 服务,可以无头起,也可以桥接到正在运行的 App 上:

cadcraft-cli mcp                          # stdio 上的无头 MCP server
cadcraft-cli mcp --connect 127.0.0.1:7979 # 或桥接到以 --control 7979 启动的 App

它暴露给 Agent 的 MCP 工具包括 command_line(在提示符处敲字)、execute(用 JSON 执行任意命令)、inspect_drawing、query_entities、render(直接返回一张 PNG),连接到 App 时还有 screenshot 和 ui_click。

这套设计的妙处在于验证闭环。Agent 不只是"画了"就算完——它可以通过 inspect_drawing 读回图纸状态,确认圆真的画在了该在的位置,再用 render 看到成图。对一个"输出对不对一眼就能看出来"的领域(工程图),这种"执行 → 观察 → 修正"的循环天然成立。

连开发过程本身,都是 Agent 在干

这一点我一开始以为是营销话术,翻到路线图才发现是真的。

CADCraft 的 ROADMAP.md 里,剩余工作量不是用人月算的,而是用**"Opus 5.5 agent wall-clock hours"(Opus 5.5 智能体实际运行小时数)**算的。原文写得很具体:第一版 5.1 万行代码、290 个命令,花了约 11.5 个 agent 小时就在"能看见功能"的质量下完成;后续每个选项或 bug 修复按 0.3–0.7 小时估。它甚至记录了"2026-10-10 一天里落地了约 60 个这类修复"。

换句话说,CADCraft 是一份"AI Agent 全速写软件"的公开实验报告,而且把成本模型都摊开给你看:距离 alpha 还差约 125–190 个 agent 小时,距离 beta 约 600–930 小时,距离完全对齐 AutoCAD 约 1300–2100 小时。

这也解释了为什么它能在 11 天里发 9 个版本——这不是一个人在熬夜,是一个(或多个)Agent 在高速地连续提交。项目管理自己的话说得很清楚:这些小时数"是本仓库自己的构建过程校准出来的"——也就是说,它拿自己的开发史当成了估算未来工作量的标尺。

但请冷静:它离"能用"还有距离

README 和 roadmap 里最圈粉的,恰恰是它不装。

项目自己把阶段定在 pre-alpha,理由是"AutoCAD 五条核心工作流里有四条过不了 alpha 门槛"。几个硬伤写得很直白:

  • 精确绘图还缺对象捕捉追踪,TRIM/EXTEND/OFFSET 的不少选项还是占位的;
  • 图块没有块编辑器(只能 REFEDIT 原地编辑,外部参照 xref 还没做);
  • 出图会忽略打印样式;
  • DWG 保存会丢掉它还没建模的实体,而且从未在真正的 AutoCAD 里验证过。

量化指标也很自觉:相对 AutoCAD for Mac 的菜单项功能覆盖约 50%(245/491),"能真正投入工作"的自评只有约 38%——甚至还低于他们自己定的 40% alpha 线。2D 绘图员视角只有约 28%。

坦白讲,现在拿它替代 AutoCAD 做生产图,是不现实的。但换个角度看:一个 11 天、38% 完成度的项目,已经能原生读写 DXF/DWG、13 种语言、跑在 6 类平台上,还能被 Agent 直接驱动——这个起点本身就很说明问题。

值不值得关注

我给三类人下了不同的结论。

CAD 从业者:现在别考虑迁移,但值得持续看。它的目标是把 Autodesk 每年几千块的订阅,变成一份免费、可读、可改、能跑在 Linux 和浏览器里的代码。哪怕只实现 50%,对边缘场景、批处理、自动化出图来说也够用了。

Rust 工程师:这是一个难得的大规模、真实世界、纯 Rust 桌面应用样本。分层架构、copy-on-write 撤销、自定义字体渲染、WASM 构建——每一样都能当学习材料读。

AI / Agent 方向的开发者:我觉得这是最该看的。CADCraft 示范了一种"软件原生为 Agent 而设计"的形态——不是把 API 包一层给 Agent,而是让 Agent 使用人类本来就熟悉的那个界面。命令行 + MCP + 可回读状态,这三件套拼出来的是一个可以自我纠错的绘图循环。这套思路,很可能比"CAD"这个领域本身影响更大。

至于它能不能真的走到"对齐 AutoCAD",那得交给时间。但就凭这 11 天,它值得你 star 一下。

参考文档与链接

一个 11 天、5.6k 星、38% 完成度的项目,你会现在上车,还是再观望?评论区聊聊你怎么看"Agent 原生软件"这条路。觉得有意思就点个赞,让更多搞工程和 Agent 的人看到。


作者: itech001
来源: 公众号:AI人工智能时代(the-ai-era)
网站: https://www.theaiera.top/ 关注每日最新AI新闻和技术博客,主页有更多的文章的AI 技术参考:https://www.theaiera.top

本文首发于 AI人工智能时代,转载请注明出处。

分享给朋友