Genesis World
요약
Genesis World는 물리적 AI 개발을 위한 통합 시뮬레이션 플랫폼입니다. 멀티 피직스 엔진, 사실적인 렌더러 Nyx, 크로스 플랫폼 컴파일러 Quadrants를 결합하여 로보틱스 및 머신러닝 연구를 지원합니다.
핵심 포인트
- 통합 멀티 피직스 엔진을 통한 다양한 물리 현상 시뮬레이션
- Nyx 렌더러를 활용한 사진처럼 사실적인 시각 데이터 생성
- Quadrants 컴파일러를 통한 다양한 하드웨어 가속 지원
- 단일 노트북부터 데이터센터급 GPU까지 확장 가능한 설계
Genesis World는 물리적 AI (Physical AI) 개발을 위한 시뮬레이션 플랫폼입니다. 이 플랫폼은 Pythonic 시뮬레이션 인터페이스를 통해 통합 멀티 피직스 엔진 (Unified Multi-physics Engine), 사진처럼 사실적인 렌더러 (Photo-realistic Renderer, Nyx), 그리고 크로스 플랫폼 컴파일러 (Cross-platform Compiler, Quadrants)를 결합합니다. Genesis World는 단일 노트북 커널에서 데이터센터급 GPU까지 확장 가능하도록 설계되었으며, 연구 코드에 읽기 쉽고 확장 및 임베딩하기 용이하도록 유지됩니다.
이전에는 Genesis라는 이름으로 불렸으며 2024년 12월부터 학술 프로젝트로 시작되었고, 현재 그 개발은 Genesis AI에 의해 공식적으로 지원됩니다.
더 자세한 기술적 세부 사항은 당사의 블로그 포스트를 참조하십시오.
- Genesis World란 무엇인가?
- 카탈로그 (Catalogue)
- 빠른 설치 (Quick Installation)
- Docker
- 기여 (Contribution)
- 지원 (Support)
- 라이선스 및 감사 (License and Acknowledgments)
- 인용 (Citation)
Genesis World는 점선 박스 내부의 네 가지 레이어를 차지합니다. 그 위에는 사용자가 구축하는 모든 것(로보틱스 환경, 머신러닝 (ML) 파이프라인, 데이터 생성, 에이전트 시뮬레이션 (Agentic Simulation))이 위치하며, 그 아래에는 사용자가 보유한 모든 컴퓨팅 백엔드 (Compute Backend)가 위치합니다.
시뮬레이션 인터페이스 (Simulation Interface)— 사용자 대상 API: 에셋 파싱 (Asset Parsing: URDF, MJCF, OBJ, GLB, USD, …), 엔티티 액세서 (Entity Accessors), 컨트롤러 (Controllers), 센서 (Sensors), 병렬 및 이기종 환경 (Parallel and Heterogeneous Environments), 그리고 내장 GUI.
물리 (Physics)— 강체 (Rigid), 유한 요소법 (FEM), 물질 점 입자법 (MPM), 입자 (Particle: PBD / SPH), uipc, 명시적 커플러 (Explicit Coupler), 그리고 SAP를 통합하는 하나의 씬 (Scene)과 하나의 상태 (State)를 공유하는 통합 멀티 피직스 엔진.
렌더링 (Render)— 카메라 센서로 플러그인되는 세 가지 렌더링 경로: Nyx (로보틱스를 위해 설계된 당사의 자체 렌더러), Luisa (DSL 레이 트레이서), 그리고 Pyrender (래스터라이저).
컴파일러 (Compiler)— Quadrants는 Python 커널 코드를 CUDA, AMD ROCm, Apple Metal, Vulkan, x86, 그리고 ARM64로 낮춥니다. 이는 Genesis의 자동 미분 (Autodiff), GPU 그래프 (GPU Graphs), 그리고 패스트캐시 (Fastcache) 메커니즘을 포함합니다.
실행 가능한 데모를 제공하는 Genesis 레이어를 반영하여 세 가지 섹션으로 구성됩니다: 물리 (Physics) (솔버(solvers) 및 멀티 솔버 결합(multi-solver coupling)), 렌더링 (Rendering) (리포지토리 내 카메라 설정 및 genesis-nyx에 호스팅된 Nyx 워크스루(walkthroughs)), 그리고 시뮬레이션 인터페이스 (Simulation Interface) (센서, GUI, 컨트롤러, 병렬/이종 환경(parallel/heterogeneous envs), 튜토리얼). 대부분의 스크립트는 pip install -e ".[dev]" 실행 후 엔드투엔드(end-to-end)로 작동합니다.
; 선택적 백엔드(예: IPC 및 Nyx 예제)에 의존하는 데모는 'Optional extras'에 나열된 추가 항목이 필요합니다.
Genesis는 카메라 센서로서 세 가지 렌더링 경로를 노출합니다: 내장형 (Nyx / Luisa / Pyrender) 및 genesis-nyx에 호스팅된 상세한 Nyx 워크스루.
| 엔티티 추적 (Follow entity) | 애니메이션 카메라 (Animated camera) | Nyx: hello |
|
|
|
| Nyx: 부착된 카메라 (attached camera) | Nyx: PBR 재질 (PBR materials) | Nyx: 조명 유형 (light types) |
|
|
|
| Nyx: 3D 가우시안 스플래팅 (3D Gaussian splat) | Nyx: 오브젝트 피킹 (object picking) | Nyx: 멀티 카메라 멀티 환경 (multi-cam multi-env) |
|
|
|
먼저 공식 지침에 따라 PyTorch를 설치하세요.
그 다음, PyPI를 통해 Genesis를 설치합니다:
pip install genesis-world # Python>=3.10,<3.14 필요;
현재까지의 최신 버전을 사용하려면, pip install --upgrade pip를 통해 pip를 최신 상태로 업데이트한 후 다음 명령어를 실행하세요:
pip install git+https://github.com/Genesis-Embodied-AI/genesis-world.git
패키지는 메인 브랜치(main branch)와 동기화하기 위해 여전히 수동으로 업데이트해야 함을 유의하십시오.
기여를 원하는 사용자는 Genesis를 편집 가능 모드(editable mode)로 설치하는 것을 권장합니다. 먼저 genesis-world가 제거되었는지 확인한 후, 저장소를 클론(clone)하고 로컬에 설치하세요:
git clone https://github.com/Genesis-Embodied-AI/genesis-world.git
cd genesis-world
pip install -e ".[dev]"
모든 종속성(dependencies)과 엔트리포인트(entrypoints)가 최신 상태인지 확인하기 위해, HEAD를 이동한 후 pip install -e ".[dev]"를 체계적으로 실행하는 것을 권장합니다.
| IPC 솔버 (uipc 백엔드) | pip install pyuipc (Linux / Windows x86, NVIDIA GPU) |
| Nyx 렌더러 | pip install gs-nyx — genesis-nyx 참조 |
Quadrants는 Genesis에 자동으로 포함되어 있어 별도의 설치가 필요하지 않습니다. Genesis 외부에서 컴파일러를 사용하고자 하는 사용자를 위한 독립형 휠 (standalone wheel, pip install quadrants)은 Quadrants 문서에 안내되어 있습니다.
uv는 빠른 Python 패키지 및 프로젝트 관리자 (package and project manager)입니다.
uv 설치:
# macOS 및 Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
...
uv를 이용한 빠른 시작:
git clone https://github.com/Genesis-Embodied-AI/genesis-world.git
cd genesis-world
uv sync
그 다음, 사용 중인 플랫폼에 맞는 PyTorch를 설치하세요:
# NVIDIA GPU (예시: CUDA 12.6)
uv pip install torch --index-url https://download.pytorch.org/whl/cu126
# CPU 전용 (Linux/Windows)
...
예제 실행:
uv run examples/rigid/single_franka.py
Docker에서 Genesis를 사용하려면, 먼저 다음과 같이 Docker 이미지를 빌드할 수 있습니다:
docker build -t genesis -f docker/Dockerfile docker
그 다음 Docker 이미지 내부( /workspace/examples 에 마운트됨)에서 예제를 실행할 수 있습니다:
xhost +local:root # 컨테이너가 디스플레이에 접근할 수 있도록 허용
docker run --gpus all --rm -it \
-e DISPLAY=$DISPLAY \
...
AMD 사용자는 docker/Dockerfile.amdgpu 파일을 사용하여 Genesis를 사용할 수 있으며, 이는 다음 명령어를 실행하여 빌드됩니다:
docker build -t genesis-amd -f docker/Dockerfile.amdgpu docker
빌드 후에는 다음과 같이 실행하여 사용할 수 있습니다:
docker run -it --network=host \
--device=/dev/kfd \
--device=/dev/dri \
...
예제는 /workspace/examples에서 접근할 수 있습니다. 참고: AMD 사용자는 ROCm (HIP) 백엔드 (backend)를 사용해야 합니다. 즉, Genesis를 초기화하기 위해 gs.init(backend=gs.amdgpu)를 호출해야 함을 의미합니다.
Genesis 프로젝트는 개방적이고 협력적인 노력입니다. 저희는 다음과 같은 커뮤니티의 모든 형태의 기여를 환영합니다:
Pull requests: 새로운 기능 추가 또는 버그 수정.
Bug reports: GitHub Issues를 통한 버그 보고.
Suggestions: Genesis의 사용성을 개선하기 위한 제안.
자세한 내용은 저희의 기여 가이드 (contribution guide)를 참조하세요.
- GitHub Issues를 통해 버그를 보고하거나 기능을 요청하세요.
- GitHub Discussions에서 토론에 참여하거나 질문을 남기세요.
- 실시간 채팅: Discord.
Genesis의 소스 코드는 Apache 2.0 라이선스 하에 배포됩니다.
Genesis의 개발은 다음과 같은 오픈 소스 프로젝트들 덕분에 가능했습니다:
- Taichi: 2025년 6월 Quadrants가 포크(fork)한 원본 컴파일러. 수년간 기술적 지원을 제공해 준 Taichi 팀에 감사를 표합니다.
- libuipc: IPC 솔버(solver) 백엔드.
- FluidLab: MPM 솔버(solver) 참조 구현체.
- SPH_Taichi: SPH 솔버(solver) 참조 구현체.
- Ten Minute Physics 및 PBF3D: PBD 솔버(solver) 참조 구현체.
- MuJoCo: 강체 역학 (rigid body dynamics) 참조.
- libccd: 충돌 감지 (collision detection) 참조.
- PyRender: 래스터화 (rasterization) 기반 렌더러.
- LuisaCompute 및 LuisaRender: 레이 트레이싱 (ray-tracing) DSL.
- Madrona 및 Madrona-mjx: 배치 렌더러 (batch renderer) 백엔드
연구에 Genesis를 사용하신다면, 다음을 인용해 주시기 바랍니다:
@article{
genesis2026genesisworld,
author = {Genesis AI Team},
...
@misc{
Genesis,
author = {Genesis Authors},
...
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Python (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기