Shpigford/nurb
Agentic CAD for 3D printing
nurb – 面向 3D 打印的 AI 驱动 CAD 合作伙伴
是什么 – nurb 是一个基于 Python 的工具(带有原生 macOS GUI),允许您与已订阅的大语言模型(LLM)对话,由其生成可用于 FDM 3D 打印的真正 B-Rep CAD 几何体。AI 会编写一个带有 @part 装饰器的小型 Python 函数来描述零件;nurb 在 Open CASCADE (OCCT) 内核上运行该代码,检查生成的实体是否符合一组打印可行性规则,实时在 three.js 查看器中显示模型,并可导出包含切片器设置的打印就绪 3MF(或 STL/STEP/GLB)。
核心理念
| 方面 | 如何工作(如 README 所述) |
|---|---|
| 提示 → 模型 | 您输入自然语言请求(例如:“制作一个将我的吸尘器软管连接到台锯尘口的适配器”)。AI 使用您现有的订阅(GPT-4、Claude 等)编写一个带有 @part 装饰器的 Python 函数。 |
| 真实 CAD 内核 | 生成的函数使用 build123d 在 OCCT 内核上运行,因此几何体是真正的 B-Rep 实体(而非网格)。 |
| 实时查看器 | 内置的 three.js 查看器会随着零件变化即时更新,保持相机固定,并可使用截面平面进行切片。 |
| 参数滑块 | 零件函数的默认参数会变成 UI 滑块;移动滑块会更新模型,AI 也能看到新值。 |
| 可打印性检查 | 13 条硬编码规则(悬垂、薄壁、浮岛、翘曲风险、稳定性等)会针对精确实体运行。触发规则的面会显示检查结果。 |
| 成本与时间估算 | 查看器会调用您已有的切片器(OrcaSlicer 或 Bambu Studio)来报告估算的打印时间和耗材重量。 |
| 强度模拟 | 基于体素的应力分析可提供断裂重量估算,并可视化载荷集中区域。 |
| 现实世界适配 | 您可以导入扫描数据或测量值;工具会强制 AI 使用这些尺寸而非猜测。 |
| 导出 | 默认导出为嵌入打印设置的 3MF;STL、STEP、GLB 仅需一个标志即可。 |
| 离线优先 | 所有建模、检查和查看均在本地运行;无需云账户。 |
安装
| 平台 | 方法 |
|---|---|
| macOS(Apple Silicon 或 Intel) | 从最新 GitHub 发布页下载签名的 .dmg。 |
| 命令行(任意系统) | `curl -fsSL https://nurb.dev/install.sh |
| 替代方法 | uv tool install nurb 或 pip install nurb 安装 Python 包,然后运行 npx skills add shpigford/nurb --skill nurb 将技能注册到您选择的 AI 代理框架。 |
典型工作流程
- 启动 – 运行 GUI(
nurb dev)或 CLI(nurb new <name>)。项目只是一个包含parts/目录的文件夹。2. 提示 – 通过内置聊天或您自己的终端代理与 AI 交流。AI 创建一个parts/<name>.py文件,其中包含一个@part函数。3. 迭代 – 使用滑块调整参数,观察实时查看器,并重新运行nurb check查看任何可打印性警告。4. 验证 – 可选地运行nurb stress获取强度估算,或运行nurb slice获取时间/耗材。5. 导出 –nurb export <part>生成可直接放入切片器的 3MF(或其他格式)。6. 打印 – 在 OrcaSlicer 或 Bambu Studio 中打开导出文件并打印。
主要命令(CLI)
nurb new <name>– 构建新零件文件及其 Markdown 卡片。nurb dev– 启动热重载查看器。nurb check [part]– 运行 13 项可打印性规则(--strict用于 CI 失败)。nurb slice [part]– 查询连接的切片器以获取时间/耗材。nurb stress [part]– 基于体素的载荷模拟。nurb export [part]– 输出 3MF / STL / STEP / GLB。nurb scan <file>– 导入手机扫描或外部网格并记录其尺寸。nurb skill– 显示或同步 AI 代理技能文件。
为何“以 AI 为中心”?
- 模型无关 – 与您已付费的任意 LLM 兼容;README 提供了在真实零件设计任务中评估模型的基准页面链接。
- 代理技能 – 一个小型“技能”文件(
npx skills add ...)告诉您选择的 AI 如何调用nurb命令,将语言模型转变为交互式 CAD 助手。 - 提示驱动几何 – AI 编写实际 CAD 代码;您无需手动绘制。
限制与当前缺口(如 README 所述)
- 查看器的测量工具仍为 TODO。
- 尚未构建托管的、可共享的配置器。
- 薄壁检测可能遗漏采样算法未命中极窄特征。
- 应力分析为简单体素模拟;适用于快速验证,但不能替代完整的有限元分析。
- 该工具仅支持 FDM 类型打印机(调用 OrcaSlicer/Bambu Studio)。树脂或工业设备未涵盖。
许可与来源
- 源代码开放,采用 FSL-1.1-MIT(一种宽松许可,每次发布后两年转为普通 MIT)。许可明确禁止构建竞争性商业产品。
- 核心几何依赖于 Open CASCADE Technology(LGPL-2.1 + 例外)通过
build123d和OCPPython 绑定。 - 查看器资源包含 three.js(MIT)和 JetBrains Mono(OFL 1.1)。
总结
nurb 是一个面向业余爱好者和小型车间 FDM 3D 打印的实用、本地运行的 AI 增强 CAD 系统。它将自然语言设计、真实 B-Rep 几何和打印机特定验证无缝整合,无需依赖云服务。如果您已有 LLM 订阅,并希望将口头设计想法快速转化为可打印零件并获得即时反馈,nurb 提供了一个开箱即用的完整解决方案。
相关
- 项目
- 项目
- 项目
- 项目
- 项目