NVIDIA-Omniverse/usd-brep
USD BRep is a standalone C++ and Python library for NURBS-based boundary representation (BRep) solid modeling
NVIDIA‑Omniverse / usd‑brep – 快速概览
它是什么 – 一个独立的 NVIDIA Omniverse 仓库,实现了 USD BRep,这是一个用于在 Pixar 的 Universal Scene Description (USD) 框架内进行实体建模几何(基于 NURBS 的边界表示)的库。它提供 C++ 和 Python 绑定,让开发人员可以直接在 USD 文件中创建、编辑和查询 B‑Rep 几何。
为什么它很重要 – USD 是现代 3‑D 流水线(VFX、游戏、模拟、机器人)的事实标准交换格式。增加真正的 B‑Rep 支持让工程师可以使用数学上精确的 CAD 风格实体,而不仅仅是多边形网格,这对于高精度模拟、制造以及后续转换为网格非常有用。
关键组件
- C++ 核心库 (
smlib),实现了 B‑Rep 数据结构和算法。 - Python 绑定 (通过 pybind11),将相同功能公开给脚本和 Omniverse 扩展。
- USD 架构插件 (
omniSolid),注册新的 USD prim 类型,以便 B‑Rep 数据可以存储在 USD 文件中。 - GUI 工具 (
tools/scripts/smlib_gui.py),用于交互式检查和调试 B‑Rep 资产。 - 工具程序 (
usd.heal_file),可以修复 USD 文件中损坏的 B‑Rep 定义。
如何运行
- 安装 Git + Git‑LFS(大型二进制资产存储为 LFS 指针)。
- 在 Windows 上,您需要 Visual Studio 2019/2022 以及 C++ 工具集和 Windows SDK;在 Linux 上,您需要常见的
build-essential软件包。macOS 通过通用构建支持 Apple‑Silicon。 - 运行仓库的辅助脚本:
./prebuild.sh # stage the USD schema plugin ./repo.sh build # compile the C++ library and Python extensions ./repo.sh test # run the test suite - 选择性地使用
uv run … smlib_gui.py启动 Python GUI 来探索 B‑Rep 模型。
典型使用案例片段
import usd_brep
# Repair a USD file that contains broken B‑Rep definitions
usd_brep.usd.heal_file("input.usdc", "input_healed.usdc")
状态 – 该仓库由 NVIDIA 维护 (2020‑2026) 并以 Apache 2.0 许可协议发布(核心代码)。构建脚本采用 MIT 许可。目前不接受贡献,但欢迎提交问题和错误报告。
所有细节均直接取自仓库的 README;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目