前言¶
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