Skip to content

Latest commit

 

History

History
257 lines (191 loc) · 14.3 KB

File metadata and controls

257 lines (191 loc) · 14.3 KB

Genesis

Teaser

PyPI - Version PyPI - Downloads GitHub Issues GitHub Discussions Discord

README in English README en Français 한국어 README 简体中文版自述文件 日本語版 README

Genesis

🔥 새 소식

  • [2025-08-05] v0.3.0 릴리스 🎊 🎉
  • [2025-07-02] 이제 Genesis AI가 Genesis의 개발을 공식적으로 지원합니다.
  • [2025-01-09] Genesis의 성능에 대한 자세한 벤치마킹 및 비교 보고서를 모든 테스트 스크립트와 함께 공개했습니다.
  • [2025-01-08] v0.2.1 릴리스 🎊 🎉
  • [2025-01-08] DiscordWechat 그룹을 생성했습니다.
  • [2024-12-25] 레이 트레이싱 렌더러를 지원하는 docker 추가
  • [2024-12-24] 제네시스 기여 가이드라인 추가

Table of Contents

  1. Genesis란?
  2. 주요 특징
  3. 빠른 설치
  4. Docker
  5. 문서
  6. Genesis에 기여하기
  7. 지원
  8. 라이선스 및 감사의 글
  9. 관련 논문
  10. 인용

Genesis란?

Genesis는 로보틱스/임베디드 AI/물리 AI 애플리케이션을 위해 설계된 범용 물리 플랫폼입니다. 그리고 다음과 같은 기능을 제공합니다:

  1. 다양한 물성 (Material) 과 물리 현상을 시뮬레이션할 수 있도록 처음부터 다시 구축된 범용 물리 엔진.
  2. 가볍고, 매우 빠르며, 파이썬 친화적이고, 사용자 친화적인 로보틱스 시뮬레이션 플랫폼.
  3. 강력하고 빠른 실사 렌더링 시스템.
  4. 사용자의 자연어 설명을 다양한 형태의 데이터로 변환하는 생성형 데이터 엔진.

Genesis의 목표:

  • 물리 시뮬레이션의 진입 장벽을 낮춰 누구나 로보틱스 연구에 접근할 수 있도록 합니다. 사명 선언문을 확인하세요.
  • 단일 프레임워크로 **통합된 다양한 물리 솔버 (Physics Solver)**를 통해 최상의 정확도로 물리적 세계를 재현합니다.
  • 데이터 생성을 자동화하여 사람의 수고를 줄이고 데이터 플라이휠이 스스로 순환하도록 합니다.

프로젝트 페이지: https://genesis-embodied-ai.github.io/

주요 특징

  • 속도: 단일 RTX 4090에서 Franka 로봇 팔을 시뮬레이션하는 경우, 4300만 FPS 이상(실시간보다 430,000 배 빠름).
  • 크로스 플랫폼: Linux, macOS, Windows에서 실행 가능 및 다양한 연산 백엔드(CPU, Nvidia/AMD GPU, Apple Metal) 지원.
  • 다양한 물리 솔버 (Physics Solver) 통합: Rigid body, MPM, SPH, FEM, PBD, Stable Fluid.
  • 다양한 물성 (Material) 모델: 강체, 액체, 기체, 변형 가능한 오브젝트, 얇은 쉘 오브젝트 및 입상 재료의 시뮬레이션 및 결합.
  • 다양한 로봇 호환성: 로봇 팔, 보행 로봇, 드론, 소프트 로봇 및 다양한 파일 형식(MJCF (.xml), URDF, .obj, .glb, .ply, .stl 등) 로드 지원.
  • 실사 렌더링: 네이티브 레이 트레이싱 기반 렌더링.
  • 미분 가능성 (Differentiability): Genesis는 완전히 미분 가능하도록 설계되었습니다. 현재 MPM 솔버와 Tool 솔버가 미분 가능하며, 다른 솔버는 향후 버전에서는 강체 (Rigid body) 및 관절체 (Articulated body) 솔버를 시작으로 다른 솔버들도 지원할 예정입니다.
  • 사용자 친화성: 직관적인 설치 및 API로 간편하게 사용 가능.

빠른 설치

먼저 공식 안내에 따라 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.git

참고로, main 브랜치와 동기화하려면 패키지를 계속 수동으로 업데이트해야 합니다.

Genesis 소스 코드를 직접 수정하고 싶은 사용자는 편집 가능 모드(editable mode)로 설치하는 것을 권장합니다. 먼저 genesis-world가 제거되었는지 확인한 후, 저장소를 복제(clone)하고 로컬에 설치하세요:

git clone https://github.com/Genesis-Embodied-AI/Genesis.git
cd Genesis
pip install -e ".[dev]"

HEAD를 이동한 후에는 모든 의존성과 엔트리포인트가 최신 상태인지 확인하기 위해 pip install -e ".[dev]"를 체계적으로 실행하는 것을 권장합니다.

uv 사용

uv는 빠른 Python 패키지 및 프로젝트 관리자입니다.

uv 설치:

# macOS 및 Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

uv로 빠르게 시작:

git clone https://github.com/Genesis-Embodied-AI/Genesis.git
cd Genesis
uv sync

그 다음, 플랫폼에 맞는 PyTorch를 설치합니다:

# NVIDIA GPU (예: CUDA 12.6)
uv pip install torch --index-url https://download.pytorch.org/whl/cu126

# CPU 전용 (Linux/Windows)
uv pip install torch --index-url https://download.pytorch.org/whl/cpu

# Apple Silicon (Metal/MPS)
uv pip install torch

예제 실행:

uv run examples/rigid/single_franka.py

Docker

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 \
-e LOCAL_USER_ID="$(id -u)" \
-v /dev/dri:/dev/dri \
-v /tmp/.X11-unix/:/tmp/.X11-unix \
-v $(pwd):/workspace \
--name genesis genesis:latest

AMD 사용자

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 \
 --group-add=video \
 --ipc=host \
 --cap-add=SYS_PTRACE \
 --security-opt seccomp=unconfined \
 --shm-size 8G \
 -v $PWD:/workspace \
 -e DISPLAY=$DISPLAY \
 genesis-amd

예제는 /workspace/examples 경로에서 접근할 수 있습니다. 참고: AMD 사용자는 ROCm (HIP) 백엔드를 사용해야 합니다. 즉, Genesis를 초기화하려면 gs.init(backend=gs.amdgpu)을 호출해야 합니다.

문서

전체 문서는 영어중국어로 제공됩니다. 이 문서에는 자세한 설치 단계, 튜토리얼 및 API 참조가 포함되어 있습니다.

Genesis에 기여하기

Genesis 프로젝트는 오픈 소스 및 협력 프로젝트입니다. 다음을 포함하여 커뮤니티의 모든 형태의 기여를 환영합니다:

  • 새로운 기능이나 버그 수정을 위한 풀 리퀘스트 (Pull Requests).
  • GitHub Issues를 통한 버그 리포트 (Bug Reports).
  • Genesis의 사용성을 향상시키기 위한 제안 (Suggestions).

자세한 내용은 기여 가이드를 참조하세요.

지원

  • GitHub Issues를 통해 버그를 보고하고 기능을 요청하세요.
  • GitHub Discussions에서 토론에 참여하거나 질문해 보세요.

라이선스 및 감사의 글

Genesis 소스 코드는 Apache 2.0 라이선스를 따릅니다.

Genesis 개발은 다음 오픈 소스 프로젝트 덕분에 가능했습니다:

관련 논문

Genesis는 다양한 기존 및 진행 중인 연구의 최첨단 기술을 하나의 시스템으로 통합하는 대규모 프로젝트입니다. 다음은 Genesis 프로젝트에 어떤 방식으로든 기여한 논문들의 대략적인 목록입니다:

  • Xian, Zhou, et al. "Fluidlab: A differentiable environment for benchmarking complex fluid manipulation." arXiv preprint arXiv:2303.02346 (2023).
  • Xu, Zhenjia, et al. "Roboninja: Learning an adaptive cutting policy for multi-material objects." arXiv preprint arXiv:2302.11553 (2023).
  • Wang, Yufei, et al. "Robogen: Towards unleashing infinite data for automated robot learning via generative simulation." arXiv preprint arXiv:2311.01455 (2023).
  • Wang, Tsun-Hsuan, et al. "Softzoo: A soft robot co-design benchmark for locomotion in diverse environments." arXiv preprint arXiv:2303.09555 (2023).
  • Wang, Tsun-Hsuan Johnson, et al. "Diffusebot: Breeding soft robots with physics-augmented generative diffusion models." Advances in Neural Information Processing Systems 36 (2023): 44398-44423.
  • Katara, Pushkal, Zhou Xian, and Katerina Fragkiadaki. "Gen2sim: Scaling up robot learning in simulation with generative models." 2024 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2024.
  • Si, Zilin, et al. "DiffTactile: A Physics-based Differentiable Tactile Simulator for Contact-rich Robotic Manipulation." arXiv preprint arXiv:2403.08716 (2024).
  • Wang, Yian, et al. "Thin-Shell Object Manipulations With Differentiable Physics Simulations." arXiv preprint arXiv:2404.00451 (2024).
  • Lin, Chunru, et al. "UBSoft: A Simulation Platform for Robotic Skill Learning in Unbounded Soft Environments." arXiv preprint arXiv:2411.12711 (2024).
  • Zhou, Wenyang, et al. "EMDM: Efficient motion diffusion model for fast and high-quality motion generation." European Conference on Computer Vision. Springer, Cham, 2025.
  • Qiao, Yi-Ling, Junbang Liang, Vladlen Koltun, and Ming C. Lin. "Scalable differentiable physics for learning and control." International Conference on Machine Learning. PMLR, 2020.
  • Qiao, Yi-Ling, Junbang Liang, Vladlen Koltun, and Ming C. Lin. "Efficient differentiable simulation of articulated bodies." In International Conference on Machine Learning, PMLR, 2021.
  • Qiao, Yi-Ling, Junbang Liang, Vladlen Koltun, and Ming Lin. "Differentiable simulation of soft multi-body systems." Advances in Neural Information Processing Systems 34 (2021).
  • Wan, Weilin, et al. "Tlcontrol: Trajectory and language control for human motion synthesis." arXiv preprint arXiv:2311.17135 (2023).
  • Wang, Yian, et al. "Architect: Generating Vivid and Interactive 3D Scenes with Hierarchical 2D Inpainting." arXiv preprint arXiv:2411.09823 (2024).
  • Zheng, Shaokun, et al. "LuisaRender: A high-performance rendering framework with layered and unified interfaces on stream architectures." ACM Transactions on Graphics (TOG) 41.6 (2022): 1-19.
  • Fan, Yingruo, et al. "Faceformer: Speech-driven 3d facial animation with transformers." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.
  • Wu, Sichun, Kazi Injamamul Haque, and Zerrin Yumak. "ProbTalk3D: Non-Deterministic Emotion Controllable Speech-Driven 3D Facial Animation Synthesis Using VQ-VAE." Proceedings of the 17th ACM SIGGRAPH Conference on Motion, Interaction, and Games. 2024.
  • Dou, Zhiyang, et al. "C· ase: Learning conditional adversarial skill embeddings for physics-based characters." SIGGRAPH Asia 2023 Conference Papers. 2023.
  • ...

이 외에도 다양한 연구가 진행 중입니다.

인용

연구에서 Genesis를 사용하는 경우, 다음을 인용해 주세요:

@misc{Genesis,
  author = {Genesis Authors},
  title = {Genesis: A Generative and Universal Physics Engine for Robotics and Beyond},
  month = {December},
  year = {2024},
  url = {https://github.com/Genesis-Embodied-AI/Genesis}
}