Roblox/cube
요약
Roblox가 3D 지능 구현을 위한 오픈 소스 모델 제품군인 CubePart를 공개했습니다. CubePart는 오픈 보캐블러리 및 부품 제어 기능을 통해 텍스트와 메쉬를 기반으로 정교한 3D 에셋을 생성하며, 게임 엔진에 즉시 통합 가능한 수준의 결과물을 제공합니다.
핵심 포인트
- 오픈 보캐블러리 및 부품 제어 가능한 3D 생성기 CubePart 출시
- v0.5 모델에서 3D 구성 충실도 및 바운딩 박스 조건화 기능 도입
- VQ-VAE 잠재 길이를 1024로 확장하여 생성 품질 향상
- 280만 개의 합성 3D 에셋을 추가 학습하여 성능 개선
방대한 양의 데이터로 학습된 파운데이션 모델 (Foundation models)은 텍스트, 이미지, 오디오 및 비디오 영역에서 놀라운 추론 및 생성 능력을 입증해 왔습니다. 우리의 목표는 3D 지능 (3D intelligence)을 위한 이러한 파운데이션 모델을 구축하는 것입니다. 이 모델은 3D 오브젝트 및 장면 생성부터 애니메이션을 위한 캐릭터 리깅 (rigging), 그리고 오브젝트의 동작을 설명하는 프로그래밍 스크립트 (programmatic scripts) 생성에 이르기까지, 개발자가 Roblox 경험의 모든 측면을 제작할 수 있도록 지원할 수 있습니다. 이러한 비전을 향한 모델 제품군을 오픈 소스로 공개하기 시작하면서, 우리는 연구 커뮤니티의 다른 이들이 이 목표를 달성하기 위해 우리와 함께 참여하기를 희망합니다.
CubePart-20260519-480p.mp4
우리는 오픈 보캐블러리 (open-vocabulary), 부품 제어 가능 (part-controllable) 3D 생성기인 CubePart를 출시했습니다. 입력된 메쉬 (mesh)와 사용자가 정의한 부품 스키마 (parts schema)가 주어지면, CubePart는 지정된 의미론적 구조 (semantic structure)를 준수하면서 하나의 일관된 오브젝트로 조립되는 일련의 메쉬 세트(스키마 요소당 하나씩)를 합성합니다. 결과물로 나온 에셋 (assets)은 수동 후처리 과정 없이 게임 엔진 (game engines)에 직접 통합되어 애니메이션, 물리, 그리고 동작 스크립트 (behavior scripts)에 의해 구동될 수 있습니다.
여기에서 더 자세한 내용을 확인하세요!
v0.5 모델과 함께, 우리는 텍스트로부터 3D 기하학 (3D geometry)을 생성하는 자기회귀 (auto-regressive) 베이스 모델에 두 가지 업그레이드를 도입했습니다: 더 높은 충실도의 3D 구성 (higher fidelity 3D compositions) 및 바운딩 박스 조건화 (bounding box conditioning) 입니다.
아래의 예시 GIF는 텍스트로 표현된 개념의 혼합을 포착하여 3D 형상을 생성하는 모델의 능력을 보여줍니다. 예를 들어 기계식 탱크 궤도가 달린 기계식 바닷가재 (mechanical lobster with mechanical tank treads) 와 같은 경우입니다. v0.5 모델은 또한 로우폴리 종이 공예 빅토리아풍 토끼 (lowpoly paper craft victorian rabbit) 와 같이 텍스트 준수성 (text adherence) 측면에서도 현저히 향상된 모습을 보여줍니다.
경계 상자 조건화 (bounding box conditioning)를 통해, 모델이 두 가지 조건 입력인 텍스트 프롬프트 (text prompt)와 전역 종횡비 (global aspect ratio) 사이에서 균형을 잡는 새로운 3D 생성 양상을 관찰할 수 있습니다. 아래 GIF에서 모델이 seashell (조개껍데기) 또는 tall pagoda (높은 탑) 프롬프트를 어떻게 독창적인 3D 형상으로 해석하는지 주목해 보십시오. 모델은 특정 프롬프트에 대해 경계 상자가 너무 극단적일 경우 때때로 어려움을 겪기도 합니다. 예를 들어 cat (고양이)의 경우, 연결되지 않은 구성 요소를 생성하거나 경계 상자 제약 조건에 맞추기 위해 대각선 방향으로 생성할 수 있습니다.
이 두 가지 개선 사항 뒤에 숨겨진 방법론에 대한 기술적 개요는 arXiv에 게시된 최신 v3 보고서를 참조하십시오. 최신 모델은 약 280만 개의 합성 3D 에셋 (synthetic 3D assets)을 추가로 학습했습니다. 우리는 VQ-VAE 아키텍처 (architecture)와 학습 절차에 몇 가지 개선 사항을 도입했으며, 생성 충실도 (generation fidelity)를 높이기 위해 VQ-VAE 잠재 길이 (latent length)를 512에서 1024로 늘렸습니다.
저장소를 클론(clone)하고 설치하려면 아래의 설치 지침(v0.1 기준)을 따르십시오. 주요 변경 사항은 새로운 모델 가중치 (model weights), 설정 (config, ./cube3d/config/ 하위), 그리고 경계 상자를 지정하기 위한 새로운 인자 (args)입니다. 현재는 경계 상자를 지원하는 v0.5 설정을 기본값으로 사용합니다.
다운로드한 모델을 사용하여 3D 모델을 생성하려면 단순히 다음을 실행하십시오:
python -m cube3d.generate \
--gpt-ckpt-path model_weights/shape_gpt.safetensors \
--shape-ckpt-path model_weights/shape_tokenizer.safetensors \
...
참고: --fast-inference는 선택 사항이며 VRAM이 제한적인 모든 GPU에서 사용할 수 없을 수도 있습니다. 이 플래그는 MacOS에서도 작동하지 않습니다.
출력물은 지정된 output 디렉토리에 .obj 파일로 저장됩니다.
Cube 3D는 형상 토크나이저 (shape tokenizer)와 텍ext-to-shape 생성 모델을 포함하는, 3D 지능 (3D intelligence)을 향한 우리의 첫 번째 단계입니다. 우리는 3D 에셋 (3D assets) 생성의 힘을 해방하고 모든 아티스트를 위한 창의성을 강화하고 있습니다. Cube 3D의 최신 버전은 이제 개인, 크리에이터, 연구자 및 모든 규모의 기업이 책임감 있게 아이디어를 실험하고, 혁신하며, 확장할 수 있도록 공개되었습니다. 이번 릴리스에는 3D 에셋을 생성하기 위해 우리의 text-to-shape 모델을 사용하는 데 필요한 모델 가중치 (model weights)와 시작 코드 (starting code)가 포함되어 있습니다.
다음 명령어를 통해 가상 환경 (virtual environment)에 이 리포지토리 (repo)를 클론 (Clone)하고 설치하세요:
git clone https://github.com/Roblox/cube.git
cd cube
pip install -e .[meshlab]
CUDA: Windows 머신을 사용하는 경우, torch와 함께 CUDA 툴킷 (toolkit)을 설치해야 할 수도 있습니다.
pip install torch --index-url https://download.pytorch.org/whl/cu124 --force-reinstall 명령어를 통해 CUDA 지원을 포함하여 설치할 수 있습니다.
MacOS: Apple Silicon 또는 AMD GPU가 탑재된 시스템은 PyTorch를 위해 Metal Performance Shaders (MPS) 백엔드 (backend)를 활용할 수 있습니다.
참고: [meshlab]은 선택적 의존성 (optional dependency)이며, 더 나은 호환성을 위해 단순히 pip install -e .를 실행하여 제거할 수 있지만, 이 경우 메쉬 단순화 (mesh simplification) 기능은 비활성화됩니다.
Hugging Face에서 모델 가중치를 다운로드하거나 huggingface-cli를 사용하세요:
huggingface-cli download Roblox/cube3d-v0.5 --local-dir ./model_weights
다운로드한 모델을 사용하여 3D 모델을 생성하려면 단순히 다음을 실행하세요:
python -m cube3d.generate \
--gpt-ckpt-path model_weights/shape_gpt.safetensors \
--shape-ckpt-path model_weights/shape_tokenizer.safetensors \
...
참고: --fast-inference는 선택 사항이며 VRAM이 제한적인 모든 GPU에서 사용 가능하지 않을 수 있습니다. 이 플래그 (flag)는 MacOS에서도 작동하지 않습니다.
출력물은 지정된 output 디렉토리에 .obj 파일로 저장됩니다.
메쉬 (mesh)의 턴테이블 GIF (turntable gif)를 렌더링하려면 --render-gif 플래그를 사용할 수 있습니다. 이 플래그는 메쉬의 턴테이블 GIF를 렌더링하여 지정된 output 디렉토리에 turntable.gif로 저장합니다.
examples 폴더에 여러 예시 출력 객체와 그에 대응하는 텍스트 프롬프트 (text prompts)를 제공합니다.
참고: 턴테이블 GIF (turntable GIF)를 렌더링하려면 Blender (버전 >= 4.3)가 설치되어 있어야 하며 시스템의 PATH에서 사용 가능해야 합니다. Blender 공식 웹사이트에서 다운로드할 수 있습니다. Blender 실행 파일에 커맨드 라인 (command line)에서 접근할 수 있는지 확인하십시오.
참고: 형상 디코딩 (shape decoding)이 느리다면 --resolution-base 플래그를 사용하여 더 낮은 해상도를 지정해 볼 수 있습니다. 해상도가 낮아지면 출력 메쉬 (output mesh)가 더 거칠고 낮은 품질로 생성되지만 디코딩 속도는 빨라집니다. 4.0에서 9.0 사이의 값을 권장합니다.
3D 형상을 토큰 인덱스 (token indices)로 토큰화 (tokenize)하고 이를 다시 재구성하려면 다음 명령어를 사용할 수 있습니다:
python -m cube3d.vq_vae_encode_decode \
--shape-ckpt-path model_weights/shape_tokenizer.safetensors \
--mesh-path ./outputs/output.obj
이 명령어는 ./outputs/output.obj에 위치한 .obj 파일을 처리하며, 토큰화된 표현 (tokenized representation)을 출력하고 토큰 인덱스로부터 재구성된 메쉬를 내보냅니다.
우리는 다음 환경에서 모델을 테스트했습니다:
- Nvidia L40S GPU
- Nvidia H100 GPU
- Nvidia A100 GPU
- Apple Silicon M2-4 Chips
--fast-inference (또는 EngineFast)를 사용할 때는 최소 24GB의 VRAM을 사용할 수 있는 GPU를 권장하며, 그 외의 경우에는 16GB를 권장합니다.
우리는 이 저장소 (repo)를 Python 라이브러리로 사용할 수 있도록 미니멀리스트 API를 설계했습니다:
import torch
import trimesh
from cube3d.inference.engine import Engine, EngineFast
...
- 텍스처 생성 (Texture generation)
- 장면 레이아웃 생성 (Scene layout generation)
이 작업이 도움이 되었다면, 저희의 기술 보고서 (technical report)를 인용해 주시기 바랍니다:
@article{roblox2025cube,
title = {Cube: A Roblox View of 3D Intelligence},
author = {Roblox, Foundation AI Team},
...
오픈 소스 기여를 해주신 TRELLIS, CraftsMan3D, threestudio, Hunyuan3D-2, minGPT, dinov2, OptVQ, 1d-tokenizer 저장소의 기여자분들께 감사드립니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Jupyter Notebook (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기