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 内核 生成的函数使用 build123dOCCT 内核上运行,因此几何体是真正的 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 nurbpip install nurb 安装 Python 包,然后运行 npx skills add shpigford/nurb --skill nurb 将技能注册到您选择的 AI 代理框架。

典型工作流程

  1. 启动 – 运行 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 + 例外)通过 build123dOCP Python 绑定。
  • 查看器资源包含 three.js(MIT)和 JetBrains Mono(OFL 1.1)。

总结

nurb 是一个面向业余爱好者和小型车间 FDM 3D 打印的实用、本地运行的 AI 增强 CAD 系统。它将自然语言设计、真实 B-Rep 几何和打印机特定验证无缝整合,无需依赖云服务。如果您已有 LLM 订阅,并希望将口头设计想法快速转化为可打印零件并获得即时反馈,nurb 提供了一个开箱即用的完整解决方案。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目