🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

橙核 CAD 运行时 LAU-MARS/cadorange

DeepSeek Harness
LAU-MARS8 天前有提交已提供中文文档扫描:未发现敏感能力

面向 AI Agent 的 TypeScript CAD 运行时,基于 occt.tsOCCT/WASM。

31.5/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add LAU-MARS/cadorange
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · browser
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/30) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包cadorange-monorepo(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20.19 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/10 21:26:37

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 智能体原生CAD运行时
  • 快照与回滚
  • 无头渲染
展开完整介绍(134 字)↓

TypeScript 写的智能体原生 CAD 运行时,由 occt.ts(OCCT/WASM)驱动。无头、可嵌入、进程内:快照与回滚、结构化错误、无头渲染。零 Python,只需 npm i。可接入 Claude Code、Codex、dsh 和任何 MCP 智能体。

README

由 DeepSeek 最新模型翻译生成
cadorange 面向 AI Agent 的 TypeScript CAD 运行时,基于 occt.ts(OCCT/WASM)。 无头 · 可嵌入 · 零 Python · 只需 npm i cadorange 是什么? cadorange 是一个为 AI Agent 打造的代码式 CAD 内核与运行时。它可以在任何能运行 JavaScript 的地方运行,包括 Node、Bun、Deno、浏览器、Web Worker 和沙箱环境。它为 Agent 提供一个真正的 B-Rep CAD 引擎(OpenCASCADE,经 occt.ts 编译为 WASM),以及 Agent 所需的运行时特性: - 快照、分叉与回滚。 每个模型都是一份操作日志,所以你可以尝试修改、检查结果,失败就回滚。 - 结构化错误。 失败以 JSON 返回,包含失败的 op、原因和建议的修复方式,不需要去解析 OCCT 的调用栈。 - 无头渲染。 无需 GPU 或浏览器窗口即可输出多视角 PNG/SVG 渲染,让视觉模型可以自查结果。 - 确定性输出。 相同的代码产生相同的几何体、哈希和渲染,适合用于评测(evals)和强化学习(RL)。 - 可内省。 describe() 以纯 JSON 返回体积、包围盒、面数、边数和拓扑摘要。 - 可嵌入。
展开完整文档(README 剩余 1 节)
cadorange

面向 AI Agent 的 TypeScript CAD 运行时,基于 occt.ts(OCCT/WASM)。
无头 · 可嵌入 · 零 Python · 只需 npm i

cadorange 是什么?

cadorange 是一个为 AI Agent 打造的代码式 CAD 内核与运行时。它可以在任何能运行 JavaScript 的地方运行,包括 Node、Bun、Deno、浏览器、Web Worker 和沙箱环境。它为 Agent 提供一个真正的 B-Rep CAD 引擎(OpenCASCADE,经 occt.ts 编译为 WASM),以及 Agent 所需的运行时特性:

- 快照、分叉与回滚。 每个模型都是一份操作日志,所以你可以尝试修改、检查结果,失败就回滚。
- 结构化错误。 失败以 JSON 返回,包含失败的 op、原因和建议的修复方式,不需要去解析 OCCT 的调用栈。
- 无头渲染。 无需 GPU 或浏览器窗口即可输出多视角 PNG/SVG 渲染,让视觉模型可以自查结果。
- 确定性输出。 相同的代码产生相同的几何体、哈希和渲染,适合用于评测(evals)和强化学习(RL)。
- 可内省。 describe() 以纯 JSON 返回体积、包围盒、面数、边数和拓扑摘要。
- 可嵌入。 进程内运行,不需要 Python、conda、子进程,也不需要服务器。

它可以作为普通库使用,也可以作为 CLI(cado)或 MCP 服务器使用。这意味着它可以接入 Claude Code、Codex、dsh 以及任何支持 MCP 的 Agent。

快速开始

作为库

npm i cadorange

import { init, Box, Cylinder, Axis, fillet } from "cadorange";

await init(); // 一次性加载 OCCT WASM 内核

const plate = Box(80, 60, 10);
const hole = Cylinder({ radius: 8, height: 10 });

let part = plate.cut(hole);
part = fillet(part.edges().filterBy(Axis.Z), 3);

console.log(part.describe());
// { volume: 45912.12, bbox: [80, 60, 10], faces: 11, edges: 27, valid: true }

await part.export("plate.step");
await part.export("plate.stl", { tolerance: 0.05 });

CadQuery 风格的链式 API

import { Workplane } from "cadorange/workplane";

const part = new Workplane("XY")
.box(80, 60, 10)
.faces(">Z").workplane()
.hole(16)
.edges("|Z").fillet(3);

作为 MCP 服务器

状态:规划中(M2)。 运行时落地后将通过 npx -y cadorange mcp 提供;
在此之前,下面的命令展示的是目标接入方式。

Claude Code

claude mcp add cadorange -- npx -y cadorange mcp

Codex(~/.codex/config.toml)

[mcp_servers.cadorange]
command = "npx"
args = ["-y", "cadorange", "mcp"]

dsh

dsh 内置 cadorange 支持,在 dsh 的设置中把它添加为 MCP 服务器:

{
"mcpServers": {
"cadorange": { "command": "npx", "args": ["-y", "cadorange", "mcp"] }
}
}

任何 MCP 客户端

{
"mcpServers": {
"cadorange": { "command": "npx", "args": ["-y", "cadorange", "mcp"] }
}
}

作为 CLI

npx cado run model.ts --render iso,top,front --export step,stl
npx cado describe model.ts --json

Agent 运行时

状态:规划中(M0.5)。 目前只有接口骨架。

import { Session } from "cadorange/runtime";

const s = await Session.create({ limits: { timeoutMs: 10_000, memoryMB: 512 } });

const r1 = await s.run(const p = Box(80, 60, 10); export default p;);
const base = s.snapshot(); // 低开销:操作日志 + 缓存的形状

const r2 = await s.run(export default fillet(p.edges(), 40););
if (!r2.ok) {
console.log(r2.error);
// {
// code: "FILLET_RADIUS_TOO_LARGE",
// op: { id: 3, type: "fillet", args: { radius: 40 } },
// message: "Fillet radius 40 exceeds the max feasible radius (~5) for 12 edges.",
// hint: "Try radius <= 4.9, or fillet a subset: p.edges().filterBy(Axis.Z)"
// }
s.rollback(base);
}

const views = await s.render({ views: ["iso", "top", "front"], size: 512 }); // PNG 缓冲区

| 能力 | API |
| 运行代码 / op | session.run(code) · session.apply(op) |
| 快照 / 分叉 / 回滚 | snapshot() · fork(snap) · rollback(snap) |
| 检查 | describe() · diff(snapA, snapB) |
| 渲染 | render({ views, size, format }) |
| 导出 | export("step" \| "stl" \| "glb" \| "brep") |
| 限制 | 每个会话的超时、内存和 op 数量限制 |

包

单一 npm 包,和 build123d 一样 —— 下面所有内容都是 cadorange 的子路径导出:

| 导入 | 说明 | 状态 |
| cadorange | 核心建模 API:形状、选择器、布尔运算、特征、导入/导出 | |
| cadorange/workplane | CadQuery 风格的链式门面 | 已发布 |
| cadorange/runtime | 会话、操作日志、快照、结构化错误、沙箱执行 | 规划中(M0.5)—— 接口骨架 |
| cadorange/render | 无头多视角渲染(PNG/SVG) | 规划中(M2)—— 接口骨架 |
| cadorange/mcp + cado CLI | MCP 服务器(npx -y cadorange mcp)与 cado CLI | 规划中(M2)—— 接口骨架 |
| cadorange/occt | 受支持的逃生舱:原生 OCCT 类、toRaw/fromRaw、shape.wrapped(类似 build123d ↔ OCP) | 已发布 |

为什么用 TypeScript?

- Agent 零安装。 npx 就够了,不需要管理 Python 环境、conda 或 wheel。
- 能在浏览器里跑。 同一个内核可以驱动 Web CAD 应用、playground 和客户端预览。
- 类型化 API = 更好的 Agent 反馈。 类型错误在几何体运行之前就会暴露。
- 进程内、可嵌入。 适配 Node/Bun Agent、VS Code 扩展、Electron 应用和边缘沙箱。

与 build123d 和 CadQuery 的关系

cadorange 的灵感来自 build123d 和 CadQuery。我们认为它们是当下最好的代码式 CAD API,LLM 对它们也早已非常熟悉。

- 核心 API 遵循 build123d 的显式对象模型(Box、Cylinder、fillet、Axis、ShapeList.filterBy/groupBy/sortBy)。Python 的运算符重载(a - b)变为方法(a.cut(b))。
- cadorange/workplane 提供一层轻量的 CadQuery 风格链式门面,支持字符串选择器(">Z"、"|Z")。
- 命名转换为 camelCase(filter_by → filterBy)。差异详见迁移对照表。
- cadorange 是独立项目,与两者没有任何隶属关系。

路线图

- [ ] M0:可走通的骨架。 盒体、圆柱、布尔运算、倒角/圆角、基础选择器、操作日志与回滚、STEP/STL 导出、等轴测 PNG 渲染、接入 Claude Code 的 MCP、Node 与浏览器双端可用
- [ ] M1:草图与特征。 2D 草图、拉伸、旋转、放样、扫掠、抽壳、孔、阵列
- [ ] M2:Agent 闭环。 结构化错误目录、describe/diff、多视角渲染、沙箱限制、CADGenBench 集成
- [ ] M3:广度。 覆盖 LLM 最常用的 API(由基准测试结果驱动);Workplane 门面;文档
- [ ] M4:RL 就绪。 确定性的 op 级环境、奖励钩子(有效性、体积/IoU、渲染相似度)、批量 rollout

开发

pnpm i
pnpm build
pnpm test # vitest(node)
pnpm test:browser # vitest 浏览器模式

见 CONTRIBUTING.md。

许可证

Apache-2.0。OpenCASCADE Technology 采用 LGPL-2.1(含例外条款)授权。见 NOTICE。
预览分享卡片长什么样 ↓LAU-MARS/cadorange
分享 · DeepSeek Harness Hub
LAU-MARS/cadorange

面向 AI Agent 的 TypeScript CAD 运行时,基于 occt.tsOCCT/WASM。

这是你的仓库?认领条目

回到顶部