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 – 빠른 개요
개요 – Pixar의 Universal Scene Description (USD) 프레임워크 내에서 솔리드 모델링 지오메트리(NURBS 기반 경계 표현)를 구현하기 위한 독립형 NVIDIA Omniverse 저장소입니다. 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에서는 C++ 툴셋과 Windows SDK가 포함된 Visual Studio 2019/2022가 필요합니다. 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에서 직접 가져왔으며, 추가 기능은 추론하지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트