23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
"NVIDIA의 공동 창립자이자 CEO인 젠슨 황(Jensen Huang)은 CES 2025 기조연설에서 'Physical AI'와 'Omniverse Platform'이라는 차세대 기술 비전을 선보이며,
인공지능과 가상-현실 융합 시대의 새로운 패러다임을 제시했습니다.
그는 이를 통해 AI가 물리적 세계에 실질적으로 작용하고 상호작용하는 방식에 대해 구체적인 청사진을 그렸습니다.
이번 연설에서 핵심 축을 이룬 'Omniverse Platform'은 디지털 트윈, 산업 자동화, 협업형 시뮬레이션 등 다양한 산업 분야의 미래를 재정의할 플랫폼으로 주목받고 있으며,
그 중에서도 핵심 역할을 수행하는 구성 요소가 바로 'Nucleus'입니다. 이제, 이 Nucleus에 대해 좀 더 깊이 들여다보겠습니다."

Omniverse Enterprise 아키텍처 개요
NVIDIA Omniverse는 실시간 3D 협업과 물리 시뮬레이션을 위한 포괄적인 플랫폼이며, Nucleus는 이름에서 느낄 수 있듯 플랫폼의 핵심 데이터베이스이자 협업 엔진입니다.
메타버스와 디지털 트윈 시대에 있어서 Nucleus는 단순한 도구를 넘어 차세대 3D 협업 생태계의 기반이 되고 있습니다.
Nucleus는 다양한 클라이언트 애플리케이션, 렌더러, 마이크로서비스가 가상 세계의 표현을 공유하고 수정할 수 있도록 하는 기본 서비스를 제공합니다.
Nucleus에서 제공하는 주요 기능을 간단히 소개하면 다음과 같습니다.
여러 사용자가 동시에 같은 씬에서 작업하면서 실시간으로 변경사항을 확인할 수 있습니다.
Nucleus는 아무 데이터나 넣는 것이 가능하지만, 기본적으로 USD(Universal Scene Description) 파일을 저장하는 용도로 주로 사용합니다.
NVIDIA Omniverse에서 시뮬레이션 환경을 구성할 때 주로 사용하는 파일인 USD는 픽사에서 만든 OpenUSD Project의 오픈 소스 3D 포멧 입니다.
Nucleus와 연동 하면 여러 사람이 하나의 USD 파일을 불러와 같이 작업이 가능 합니다.
해당 기능을 Live Sync라고 하며 Omniverse Connect를 참고하시면 지원되는 프로그램들을 확인 하실 수 있습니다.
세분화된 권한 시스템으로 사용자별로 읽기/쓰기 권한을 설정할 수 있습니다.
자동 버전 관리와 히스토리 추적으로 모든 변경사항을 추적하고 롤백할 수 있습니다.
온프레미스와 클라우드 환경 모두에서 배포 가능하며, 확장성을 제공합니다.
Nucleus Navigator: 웹 기반 파일 관리 인터페이스
Omniverse Cache: 성능 향상을 위한 캐싱 시스템
사용자 관리 시스템: 인증 및 권한 관리
백업 및 복구 도구: 데이터 보호 메커니즘
Nucleus Navigator 인터페이스
개인적으로 NVIDIA Nucleus라는 명칭이 ‘핵(Nucleus)’으로 정해진 이유는, 단순한 파일 스토리지나 데이터베이스 기능을 넘어 Publisher/Subscriber(Pub/Sub) 아키텍처를 지원하기 때문이라고 생각합니다.
3D 씬 제작 과정에서 다수의 사용자가 실시간으로 협업해야 하는 경우, Nucleus는 메시지 브로커 역할을 수행하며 변경된 데이터만 발행(Publish)하고,
연결된 다양한 서비스가 이를 구독(Subscribe)하도록 함으로써 동일한 3D 씬을 동시 편집할 수 있는 분산 협업 환경을 제공합니다.
Nucleus의 Pub/Sub 아키텍처는 느슨한 결합(Loose Coupling) 원칙을 기반으로 설계되었습니다.
이 설계 철학의 핵심은 발행자(Publisher)와 구독자(Subscriber) 간의 직접적인 의존성을 제거하여 확장성과 유연성을 극대화하는 것입니다.
중앙 집중식 메시지 브로커 패턴을 통해 Nucleus 서버가 모든 통신을 중재하며, 협업과 동기화는 완전히 Nucleus에 위임됩니다.
비동기 메시징 패러다임은 실시간 협업에서 필수적인 성능과 응답성을 보장합니다.
이는 전통적인 동기식 통신의 블로킹 문제를 해결하고, 네트워크 지연이나 클라이언트 성능 차이가 전체 시스템에 미치는 영향을 최소화합니다.
퍼블리셔는 자산과 씬에 대한 수정 내용을 게시(publish) 하고, 서브스크라이버는 변경 알림을 구독(subscribe) 하여 실시간으로 변경사항을 반영합니다.
OmniLive는 Nucleus의 Pub/Sub 인프라 위에 구축된 실시간 협업 레이어로, 여러 사용자가 동일한 USD 씬을 동시에 편집할 수 있게 해줍니다.
세션 생성: 새로운 협업 세션 시작
세션 참여: 기존 세션에 조인
세션 머지: 다중 사용자 변경사항 통합
충돌 해결: 동시 편집 시 발생하는 충돌 관리
실시간 커서 표시: 다른 사용자의 편집 위치 시각화
사용자 색상 구분: 각 사용자별 고유 색상 할당
편집 상태 공유: 누가 무엇을 편집 중인지 표시
읽기/쓰기 권한: 사용자별 접근 권한 제어
레이어 잠금: 특정 레이어 편집 권한 제한
브랜치 관리: 버전 분기 및 병합 제어
Omniverse의 실시간 동기화는 USD의 레이어 시스템을 활용하여 구현됩니다.
특히 Live Layer(.live) 가 핵심 역할을 합니다. Live Sync로 세션을 열게 되면 기존의 USD 파일의 .usd 확장자에서 .live 확장자로 변환 되며 새로운 레이어를 구성하게 됩니다.
메모리상에서만 존재하는 임시 레이어
세션 종료 시 자동으로 소멸
영구 저장을 위해서는 명시적으로 다른 레이어로 병합 필요
USD 레이어 스택에서 최상위에 위치
다른 모든 레이어의 값을 오버라이드 가능
실시간 편집 변경사항이 즉시 반영
원자적 변경 추적(Atomic Change Tracking) 메커니즘은 ACID 트랜잭션 모델에서 영감을 받은 설계입니다.
모든 변경사항이 불가분의 단위(Atomic Unit) 로 처리되어 데이터 일관성과 롤백 가능성을 보장합니다.
Change Block 패턴은 배치 처리(Batch Processing) 개념을 3D 씬 편집에 적용한 것으로, 성능 최적화와 의미론적 그룹핑을 동시에 달성합니다.
이는 여러 개별 변경사항을 하나의 논리적 편집 단위로 묶어 처리함으로써 불필요한 중간 상태를 제거합니다.
LiveSyncing 컴포넌트는 세션 수명주기 관리(Session Lifecycle Management) 의 핵심 아키텍처입니다.
이는 상태 기계(State Machine) 패턴을 적용하여 협업 세션의 생성, 참여, 동기화, 종료 과정을 체계적으로 관리합니다.
참여자 관리 시스템은 멀티테넌시(Multi-tenancy) 원칙을 구현하여 동일한 인프라에서 여러 독립적인 협업 세션이 안전하게 공존할 수 있도록 설계되었습니다.
세션 격리(Session Isolation) 를 통해 각 협업 그룹의 작업이 서로 영향을 주지 않도록 보장합니다.
델타 히스토리 추적은 이벤트 소싱(Event Sourcing) 패턴의 구현체로, 모든 변경사항을 순차적 이벤트로 기록하여 감사 가능성(Auditability) 과 시간 여행 디버깅(Time-travel Debugging) 을 지원합니다.
Nucleus의 핵심 혁신은 "전체 저장"이 아닌 "델타만" 전달하는 방식입니다. 이는 대용량 3D 씬에서도 실시간 협업을 가능하게 만드는 핵심 기술입니다.
파일 크기: 500MB USD 파일
변경사항: 단일 객체의 위치 변경 (16 bytes)
전송 데이터: 500MB (전체 파일)파일 크기: 500MB USD 파일
변경사항: 단일 객체의 위치 변경 (16 bytes)
전송 데이터: ~100 bytes (델타 + 메타데이터)마지막으로, 실제 협업 시나리오에서 데이터가 어떻게 흘러가는지 단계별로 살펴보겠습니다.
사용자 A가 새로운 협업 세션을 시작하면, 세션 관리자는 세션을 생성하고, USD Stage를 로드하여 Live Layer를 설정합니다.
이후 Nucleus 구독을 시작하여 원격 변경사항을 실시간으로 수신할 준비를 합니다.
사용자 B는 기존 세션에 참여하고, 현재 씬 상태를 동기화한 후 실시간 델타 구독을 시작합니다. 이를 통해 사용자 B도 실시간 협업 환경에 합류하게 됩니다.
사용자 A가 캐릭터의 위치를 변경하면, 로컬 USD Stage에 변경사항이 기록되고, 델타 버퍼에 자동으로 추가됩니다. 이 델타는 네트워크 전송을 위해 준비됩니다.
일정 주기마다 델타 배치가 생성되어 Nucleus 서버로 전송됩니다. 서버는 델타의 유효성을 검증하고 충돌을 검사하며, 필요시 충돌을 해결한 후 세션 히스토리에 기록합니다.
이후 다른 참여자들에게 델타를 브로드캐스트합니다.
사용자 B는 서버로부터 델타를 수신하면, 이를 로컬 USD Stage에 적용하고 Fabric 런타임과 동기화합니다. 또한 UI를 업데이트하여 사용자 인식 정보를 반영합니다.
사용자 A와 B가 동시에 같은 객체를 편집할 경우, 서버는 충돌 해결 전략을 적용하여 두 변경사항을 병합하거나 우선순위를 결정합니다.
예를 들어, 벡터 병합 전략을 통해 각 축의 변경사항을 조합하여 최종 위치를 결정할 수 있습니다.
대용량 씬에서는 계층적 델타 처리, 공간 인덱싱, 배치 압축 등의 기법을 활용하여 변경사항을 효율적으로 관리하고, 실시간 협업의 성능을 극대화합니다.
지금까지 알아본 Nucleus에 대해 종합하자면, Omniverse의 핵심(Nucleus) 는 단순한 파일 저장소나 버전 관리 서버를 넘어, 실시간 협업을 위한 Pub/Sub 메시지 브로커이자 중앙 허브입니다.
같은 씬을 여러 도구와 사람이 함께 쓸 때 바뀐 부분(델타)만 똑똑하게 중계해 네트워크 부담과 지연을 줄이고, 권한·버전·히스토리까지 한곳에서 관리해 안정적인 협업 기반을 제공합니다.
큰 3D 씬 작업은 협업이 필수입니다. Nucleus는 메시지 브로커로 동작해 동일 씬을 실시간으로 공유하고, 변경 알림을 빠르게 퍼뜨려 모두의 화면을 즉시 맞춰 줍니다.
그 결과, 대용량 프로젝트에서도 끊김 적고 충돌이 적은 공동 편집이 가능합니다.
하지만, Nucleus는 오픈소스가 아닙니다. 서버 자체를 직접 수정하는 형태의 커스터마이징은 어렵습니다.
또한 Nucleus는 자체 Web UI와 Omniverse Extension을 통해 접근할 수 있지만, 별도의 공개된 일반 REST API는 제공하지 않습니다. 즉, 브라우저에서 클릭해 쓰는 방식이 기본입니다.
그럼 GUI가 아니고 접근할 수 있는 방법은 없는 걸까요?
자동으로 데이터를 넣고 빼고, 배치 작업을 돌리고 싶다면 GUI나 Extension만 써야 할까요?
정답은 아니요입니다.
Nucleus는 직접적인 공개 REST API는 없지만, Nucleus Tools(예: 백업/복구·관리 도구)와 공식 클라이언트 라이브러리(OmniClient 등) 를 통해
업로드·다운로드·버전 조회·권한 연동 같은 작업을 스크립트/프로그램에서 자동화할 수 있습니다.
즉, “클릭” 대신 코드로 제어하는 경로가 준비되어 있습니다.
다음 글에서는 클라이언트 라이브러리를 이용해 Nucleus에 파일을 업로드하고 메타데이터를 가져오는 방법을 살펴보겠습니다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.