前言¶
DSH(DeepSeek Harness)的理念是「一切皆插件」,宿主插件通过注册工具,把能力暴露给 agent。在处理 3D CAD 场景时,agent 需要调用基于 NURBS 的 BRep 实体建模库,并且与 OpenUSD 交换数据。usd-brep 是 NVIDIA Omniverse 生态中的 Python 库,提供 BRep 建模和原生 USD I/O,但需要 CPython 3.12 环境支持。dsh-usd-brep 是一个 DSH 宿主插件,它在本地创建并管理一个隔离的 CPython 3.12 venv,自动安装 usd-brep,然后向 agent 暴露三个宿主工具。
是什么¶
dsh-usd-brep 是一个 DSH 宿主插件,由 gitend 维护。它通过一个本地隔离的 CPython 3.12 venv 来运行 usd-brep(基于 NURBS 的 BRep 实体建模 + 原生 OpenUSD I/O)。usd-brep 的 wheel 仅发布到 CPython 3.12,支持 64 位 Windows/Linux x86_64/aarch64。宿主在加载时执行 apply(ctx, rawConfig),注册全部三个工具。
核心功能¶
插件提供三个宿主工具:
usd_brep_version(无参数):探测 venv 能否import usd_brep,返回版本号 + 可用子模块列表。usd_brep_run_example(可选参数usda):运行内置示例,做球 − 盒布尔差,导出.usda并重新导入做 sanity check。默认输出文件名为brep_example.usda。usd_brep_run_snippet(必需参数code,可选参数usda):执行 agent 写的 Python snippet。约定:snippet 必须print(json.dumps(...))输出最终 JSON 值,宿主解析后作为result返回;导出时把.usda路径传usda(注入到环境变量USD_BREP_OUT)。
安装与启用¶
方式一:从本仓库安装(dsh-market 或插件管理器):
dsh plugin add git+https://github.com/gitend/dsh-usd-brep.git
方式二:本地目录安装:
plugin_manager install_bundle <本地目录>
宿主在加载时执行 apply(ctx, rawConfig),注册全部三个工具。
配置项¶
插件支持以下配置:
| 键 | 默认值 | 说明 |
|---|---|---|
pythonExe |
"" |
显式指定 CPython 3.12 解释器;留空则自动探测(uv 托管位置 → py -3.12)。 |
venvDir |
""(= ~/.dsh-usd-brep-venv) |
venv 目录;留空用每用户默认位置(与宿主 cwd 无关);相对路径按 process.cwd() 解析。 |
autoInstall |
true |
缺失时自动 pip install usd-brep。 |
workDir |
"" |
运行 snippet/示例时的 cwd。 |
timeoutMs |
120000 |
snippet 执行超时(毫秒)。 |
defaultUsda |
brep_example.usda |
usd_brep_run_example 默认输出文件名。 |
平台要求与注意事项¶
- CPython 3.12(wheel 仅 3.12;Windows 需 MSVC Redistributable)。
- 不要在同一环境混装
usd-core25.11(同版本符号冲突会崩溃)。 - usd-brep 轮子内置 OpenUSD runtime 25.11,模型在库间通过文件交换(不共享
pxr内存对象)。
插件以当前 dsh 进程权限运行,安装前应检查源码与许可证(MIT)。
适用场景¶
适合需要在 DSH agent 中集成 BRep 建模与 USD I/O 能力的开发者,尤其需要与 NVIDIA Omniverse 生态协同的场景。
小结¶
dsh-usd-brep 通过隔离的 CPython 3.12 venv,把 usd-brep 的建模与 USD I/O 能力暴露给 DSH agent,提供版本探测、内置示例与自定义 snippet 执行能力。更多细节可参考插件目录页与 GitHub 仓库。
- 插件目录页:https://www.skillhub.cn/plugins/gitend/dsh-usd-brep
- GitHub 仓库:https://github.com/gitend/dsh-usd-brep