Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

USD BRep

Standalone Omniverse repo containing USD BRep (NURBS boundary-representation solid modeling) libraries.

Requirements

  • Git and Git LFS: Git LFS is required for the large binary fixtures tracked in .gitattributes (USD assets, STEP/IGES/JT models).

  • (Windows - C++ Only) Microsoft Visual Studio (2019 or 2022) with the MSVC C++ toolset:

    • Install from Visual Studio Downloads (or Build Tools for Visual Studio) with the Desktop development with C++ workload selected. A VS install without the C++ toolset is not enough.
    • The build uses this host-installed compiler (msbuild.link_host_toolchain in repo.toml), not Packman msvc.
    • msbuild.vs_version is pinned to vs2019, so VS 2022 users also need the MSVC v142 build tools component.
    • If discovery fails, set msbuild.vs_path, msbuild.vs_version, or both — see repo_build toolchains. These settings locate an installed toolset; they do not install one.
  • (Windows - C++ Only) Windows SDK: Install alongside MSVC via the Visual Studio Installer. If discovery fails, set msbuild.winsdk_path in repo.toml.

  • (Windows) Microsoft Visual C++ Redistributable: Required to run the built binaries, which link the VC runtime dynamically rather than bundling it. The Desktop development with C++ workload above ships the redistributable, so a machine set up to build already has it — install it separately only on machines that run the binaries without Visual Studio.

  • (Linux) build-essential: sudo apt-get install build-essential

All other build-time dependencies — OpenUSD, Python 3.12, pybind11, premake, and the repo_* tools — are pulled automatically via Packman when you build.

Using this repo

Prerequisites are listed under Requirements. Use ./repo.sh on Linux and macOS, ./repo.bat on Windows. macOS: macOS local development.

Build it

Run prebuild before building a fresh checkout or after deleting _build. It stages the omniSolid schema plugin in _build/schema/omniSolid/resources; repo build alone does not create these resources, which USD tools require at runtime.

# Linux
./prebuild.sh
./repo.sh build

# macOS
./prebuild.sh -p macos-universal
./repo.sh build -p macos-universal

# Windows
./prebuild.bat
./repo.bat build

Test it

./repo.sh test
./tests.sh linux-x86_64              # or macos-universal

Format it

./repo.sh format

Run the Python GUI

# Debug binaries by default (kernel Dump() echoes to the terminal).
uv run --locked --group gui python tools/scripts/smlib_gui.py

# Release binaries: add --release
uv run --locked --group gui python tools/scripts/smlib_gui.py --release

See tools/smlib_gui/README.md for smoke-test and troubleshooting commands.

Explore examples

Runnable compositions organized by API layer live under Examples.

macOS local development

Apple Silicon only: ./repo.sh build -p macos-universal. Build symlinks host Packman Python into _build/target-deps/python when available (SMLIB_PYTHON_ROOT to override).

Python-only (default): kernel, C++ tests, _smlib_tests, and _smlib_dev (imports need Tier 1 _omni_solid). No OpenUSD, OCCT, or _omni_solid.

./repo.sh build -p macos-universal -j10
./tests.sh macos-universal

Tier 1 (optional): local OpenUSD 3.12 staged via setup-macos-local-deps.sh.

export SMLIB_USD_ROOT=~/opt/usd-25.11-py312
./tools/scripts/setup-macos-local-deps.sh
./repo.sh build -p macos-universal -j10
./tests.sh macos-universal

Set PYTHONPATH="$PWD/_build/macos-universal/release" to import Python extensions. Packman OpenUSD/Python packages are not available on macOS. The macOS premake package (premake@5.0.0-beta1+nv1-macos-universal, deps/host-deps.packman.xml) is not on the public Packman server either; supply it through a user-level Packman configuration. Avoid ./repo.sh build -x; delete _build, _compiler, and _repo to clean.

Contributing

This project is currently not accepting contributions.

Issues and bug reports are welcome through the project issue tracker, and security issues should be reported as described in SECURITY.md. See CONTRIBUTING.md for details.

License

USD BRep is licensed under the Apache License, Version 2.0. See LICENSE for the terms governing use, reproduction, and distribution.

Copyright (c) 2020-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.

repo.sh, repo.bat, and tools/repoman/repoman_bootstrapper.py are licensed under the MIT License instead; see THIRD_PARTY_NOTICES.md for the full text.

For third-party notices and bundled components, see THIRD_PARTY_NOTICES.md.

Heal USD BRep assets

usd.heal_file heals BrepArray definitions in the layers used by the current USD composition and writes the scene with the healed geometry, keeping its layers, references, native instancing, transforms and materials. External layers used only by unselected variants remain referenced but are not healed. Material subset opinions outside the BRep's defining prim spec are rejected rather than lost.

import usd_brep
usd_brep.usd.heal_file("input.usdc", "input_healed.usdc")

关于 About

USD BRep is a standalone C++ and Python library for NURBS-based boundary representation (BRep) solid modeling

语言 Languages

C++95.1%
Python3.5%
C1.0%
Shell0.1%
Lua0.1%
PowerShell0.1%
Batchfile0.1%
NewLisp0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
3
Total Commits
峰值: 3次/周
Less
More