diff --git a/README.md b/README.md index a95b77c02b..b6fd38f689 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ # Genesis ## 🔥 News +- [2025-08-05] Released v0.3.0 🎊 🎉 - [2025-07-02] The development of Genesis is now officially supported by [Genesis AI](https://genesis-ai.company/). - [2025-01-09] We released a [detailed performance benchmarking and comparison report](https://github.com/zhouxian/genesis-speed-benchmark) on Genesis, together with all the test scripts. - [2025-01-08] Released v0.2.1 🎊 🎉 @@ -68,7 +69,6 @@ Project Page: - **Compatibility with various robots**: Robotic arms, legged robots, drones, *soft robots*, and support for loading `MJCF (.xml)`, `URDF`, `.obj`, `.glb`, `.ply`, `.stl`, and more. - **Photo-realistic rendering**: Native ray-tracing-based rendering. - **Differentiability**: Genesis is designed to be fully differentiable. Currently, our MPM solver and Tool Solver support differentiability, with other solvers planned for future versions (starting with rigid & articulated body solver). -- **Physics-based tactile simulation**: Differentiable [tactile sensor simulation](https://github.com/Genesis-Embodied-AI/DiffTactile) coming soon (expected in version 0.3.0). - **User-friendliness**: Designed for simplicity, with intuitive installation and APIs. ## Quick Installation diff --git a/README_CN.md b/README_CN.md index 61eff2035c..7dadf0c12e 100644 --- a/README_CN.md +++ b/README_CN.md @@ -17,6 +17,16 @@ # Genesis 通用物理引擎 +## 🔥 最新消息 + + - [2025-08-05] 发布 v0.3.0 🎊 🎉 + - [2025-07-02] Genesis 的开发工作现已获得 [Genesis AI](https://genesis-ai.company/) 的官方支持。 + - [2025-01-09] 我们发布了一份关于 Genesis 的[详细性能基准测试和比较报告](https://github.com/zhouxian/genesis-speed-benchmark),并附上所有测试脚本。 + - [2025-01-08] 发布 v0.2.1 🎊 🎉 + - [2025-01-08] 创建了 [Discord](https://discord.gg/nukCuhB47p) 和 [微信](https://drive.google.com/uc?export=view&id=1ZS9nnbQ-t1IwkzJlENBYqYIIOOZhXuBZ) 社区群。 + - [2024-12-25] 添加了支持光线追踪渲染器的 [docker](https://www.google.com/search?q=%23docker)。 + - [2024-12-24] 添加了[为 Genesis 做贡献](https://github.com/Genesis-Embodied-AI/Genesis/blob/main/.github/CONTRIBUTING.md)的指南。 + ## 目录 1. [概述](#概述) @@ -54,31 +64,47 @@ Genesis 是专为 *机器人/嵌入式 AI/物理 AI* 应用设计的通用物理 - **支持广泛的机器人**:机器人手臂、腿式机器人、无人机、*软体机器人*等,并广泛支持加载不同文件类型:`MJCF (.xml)`、`URDF`、`.obj`、`.glb`、`.ply`、`.stl` 等。 - **照片级真实感和高性能光线追踪器**:Genesis 支持基于光线追踪的原生渲染。 - **可微分性**:Genesis 设计为完全兼容可微分模拟。目前,我们的 MPM 求解器和工具求解器是可微分的,其他求解器的可微分性将很快添加(从刚体模拟开始)。 -- **基于物理的触觉传感器**:Genesis 包含一个基于物理的可微分 [触觉传感器模拟模块](https://github.com/Genesis-Embodied-AI/DiffTactile)。这将很快集成到公共版本中(预计在 0.3.0 版本中)。 - **用户友好性**:Genesis 设计为尽可能简化模拟的使用。从安装到 API 设计,如果有任何您觉得不直观或难以使用的地方,请 [告诉我们](https://github.com/Genesis-Embodied-AI/Genesis/issues)。 -## 快速入门 -### 安装 -首先按照[官方指南](https://pytorch.org/get-started/locally/)安装 PyTorch。 +## 快速安装 + +首先,请根据[官方指南](https://pytorch.org/get-started/locally/)安装 **PyTorch**。 + +然后,通过 PyPI 安装 Genesis: -然后可通过 PyPI 安装Genesis: ```bash -pip install genesis-world # 需要 Python >=3.9 +pip install genesis-world # 要求 Python>=3.10,<3.14; ``` -### Docker 支持 +要安装最新的版本,请先通过 `pip install --upgrade pip` 命令确保 `pip` 是最新版本,然后运行以下命令: -如果您想通过 Docker 使用 Genesis,您可以首先构建 Docker 镜像,命令如下: +```bash +pip install git+https://github.com/Genesis-Embodied-AI/Genesis.git +``` + +请注意,您仍需手动更新此软件包以与主分支保持同步。 + +如果用户希望编辑 Genesis 的源代码,我们鼓励以可编辑模式安装。首先,请确保已卸载 `genesis-world`,然后克隆代码仓库并在本地安装: + +```bash +git clone https://github.com/Genesis-Embodied-AI/Genesis.git +cd Genesis +pip install -e ".[dev]" +``` + +## Docker + +如果您希望通过 Docker 使用 Genesis,可以先像这样构建 Docker 镜像: ```bash docker build -t genesis -f docker/Dockerfile docker ``` -然后,您可以在 Docker 镜像内运行示例代码(挂载到 `/workspace/examples`): +然后您可以在 Docker 镜像中运行示例(示例文件挂载于 `/workspace/examples`): ```bash -xhost +local:root # 允许容器访问显示器 +xhost +local:root # 允许容器访问显示设备 docker run --gpus all --rm -it \ -e DISPLAY=$DISPLAY \ @@ -88,6 +114,32 @@ docker run --gpus all --rm -it \ genesis ``` +### AMD 用户 + +AMD 用户可以使用 `docker/Dockerfile.amdgpu` 文件来使用 Genesis,该文件可通过运行以下命令构建: + +``` +docker build -t genesis-amd -f docker/Dockerfile.amdgpu docker +``` + +然后通过运行以下命令来使用: + +```xhost +local: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 用户应使用 Vulkan 后端。这意味着您需要调用 `gs.init(vulkan)` 来初始化 Genesis。 + ### 文档 - [英文文档](https://genesis-world.readthedocs.io/en/latest/user_guide/index.html) diff --git a/README_FR.md b/README_FR.md index 8506ac85b0..d92f7c46cb 100644 --- a/README_FR.md +++ b/README_FR.md @@ -19,8 +19,13 @@ ## 🔥 Nouveautés -- [2024-12-25] Ajout d’un [docker](#docker) incluant la prise en charge du moteur de rendu par ray-tracing. -- [2024-12-24] Ajout de directives pour [contribuer à Genesis](https://github.com/Genesis-Embodied-AI/Genesis/blob/main/.github/CONTRIBUTING.md). + - [2025-08-05] Sortie de la v0.3.0 🎊 🎉 + - [2025-07-02] Le développement de Genesis est désormais officiellement soutenu par [Genesis AI](https://genesis-ai.company/). + - [2025-01-09] Nous avons publié un [rapport détaillé d'analyse comparative des performances](https://github.com/zhouxian/genesis-speed-benchmark) de Genesis, accompagné de tous les scripts de test. + - [2025-01-08] Sortie de la v0.2.1 🎊 🎉 + - [2025-01-08] Création des groupes [Discord](https://discord.gg/nukCuhB47p) et [Wechat](https://drive.google.com/uc?export=view&id=1ZS9nnbQ-t1IwkzJlENBYqYIIOOZhXuBZ). + - [2024-12-25] Ajout d’un [docker](https://www.google.com/search?q=%23docker) incluant la prise en charge du moteur de rendu par lancer de rayon (ray-tracing). + - [2024-12-24] Ajout de directives pour [contribuer à Genesis](https://github.com/Genesis-Embodied-AI/Genesis/blob/main/.github/CONTRIBUTING.md). ## Table des Matières @@ -61,26 +66,28 @@ Page du projet : - **Compatibilité avec divers robots** : Bras robotiques, robots à pattes, drones, *robots mous*, et support pour charger `MJCF (.xml)`, `URDF`, `.obj`, `.glb`, `.ply`, `.stl`, et plus encore. - **Rendu photo-réaliste** : Rendu natif basé sur le lancer de rayons. - **Différentiabilité** : Genesis est conçu pour être entièrement différentiable. Actuellement, notre solveur MPM et Tool Solver prennent en charge la différentiabilité, avec d'autres solveurs prévus dans les prochaines versions (à commencer par le solveur de corps rigides et articulés). -- **Simulation tactile basée sur la physique** : Simulation de capteur tactile différentiable [en cours de développement](https://github.com/Genesis-Embodied-AI/DiffTactile) (prévue pour la version 0.3.0). - **Facilité d'utilisation** : Conçu pour être simple, avec une installation intuitive et des API conviviales. ## Installation Rapide -Genesis est disponible via PyPI : +Installez d'abord **PyTorch** en suivant les [instructions officielles](https://pytorch.org/get-started/locally/). + +Ensuite, installez Genesis via PyPI : ```bash pip install genesis-world # Nécessite Python>=3.10,<3.14; ``` -Vous devez également installer **PyTorch** en suivant [les instructions officielles](https://pytorch.org/get-started/locally/). +Pour obtenir la version la plus récente, assurez-vous que `pip` est à jour via `pip install --upgrade pip`, puis exécutez la commande : -Pour la dernière version disponible à ce jour, assurez-vous que `pip` is à jour via `pip install --upgrade pip`, puis executez la commande: ```bash pip install git+https://github.com/Genesis-Embodied-AI/Genesis.git ``` -A noter que le module doit malgré tout être mis à jour manuellement pour rester synchroniser avec la branche principale. -Les utilisateur souhaitant éditer le code source de Genesis sont encouragés à l'installer en mode developpeur/éditable. Assurez vous que `genesis-world` est bien désinstallée, puis clonez le dépôt et installez localement : +Notez que le paquet doit toujours être mis à jour manuellement pour se synchroniser avec la branche principale (main). + +Les utilisateurs souhaitant modifier le code source de Genesis sont encouragés à l'installer en mode éditable. D'abord, assurez-vous que `genesis-world` a été désinstallé, puis clonez le dépôt et installez-le localement : + ```bash git clone https://github.com/Genesis-Embodied-AI/Genesis.git cd Genesis @@ -89,13 +96,13 @@ pip install -e ".[dev]" ## Docker -Si vous souhaitez utiliser Genesis avec Docker, vous pouvez d'abord construire l'image Docker comme suit : +Si vous souhaitez utiliser Genesis depuis Docker, vous pouvez d'abord construire l'image Docker comme suit : ```bash docker build -t genesis -f docker/Dockerfile docker ``` -Ensuite, vous pouvez exécuter les exemples à l'intérieur de l'image Docker (montés sur `/workspace/examples`) : +Vous pouvez ensuite exécuter les exemples à l'intérieur de l'image Docker (montés dans `/workspace/examples`) : ```bash xhost +local:root # Autoriser le conteneur à accéder à l'affichage @@ -106,9 +113,34 @@ docker run --gpus all --rm -it \ -v /tmp/.X11-unix/:/tmp/.X11-unix \ -v $PWD:/workspace \ genesis +``` + +### Utilisateurs AMD +Les utilisateurs AMD peuvent utiliser Genesis avec le fichier `docker/Dockerfile.amdgpu`, qui se construit en exécutant : + +``` +docker build -t genesis-amd -f docker/Dockerfile.amdgpu docker ``` +et peut ensuite être utilisé en exécutant : + +```xhost +local: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 +``` + +Les exemples seront accessibles depuis `/workspace/examples`. Note : Les utilisateurs AMD doivent utiliser le backend Vulkan. Cela signifie que vous devrez appeler `gs.init(vulkan)` pour initialiser Genesis. + ## Documentation Une documentation complète est disponible en [Anglais](https://genesis-world.readthedocs.io/en/latest/user_guide/index.html) et en [Chinois](https://genesis-world.readthedocs.io/zh-cn/latest/user_guide/index.html). Cela inclut des étapes d'installation détaillées, des tutoriels et des références API. diff --git a/README_JA.md b/README_JA.md index af4cf28ab3..29a902bcb0 100644 --- a/README_JA.md +++ b/README_JA.md @@ -19,8 +19,13 @@ ## 🔥 最新情報 -- [2024-12-25] [レイトレーシングレンダラー](#docker)をサポートするDockerを追加しました。 -- [2024-12-24] [Genesisへの貢献方法](https://github.com/Genesis-Embodied-AI/Genesis/blob/main/.github/CONTRIBUTING.md)に関するガイドラインを追加しました。 + - [2025-08-05] v0.3.0をリリースしました 🎊 🎉 + - [2025-07-02] Genesisの開発が、[Genesis AI](https://genesis-ai.company/)によって公式にサポートされることになりました。 + - [2025-01-09] Genesisに関する[詳細なパフォーマンスベンチマークと比較レポート](https://github.com/zhouxian/genesis-speed-benchmark)を、すべてのテストスクリプトと共に公開しました。 + - [2025-01-08] v0.2.1をリリースしました 🎊 🎉 + - [2025-01-08] [Discord](https://discord.gg/nukCuhB47p)と[Wechat](https://drive.google.com/uc?export=view&id=1ZS9nnbQ-t1IwkzJlENBYqYIIOOZhXuBZ)のグループを作成しました。 + - [2024-12-25] レイトレーシングレンダラーをサポートする[docker](https://www.google.com/search?q=%23docker)を追加しました。 + - [2024-12-24] [Genesisへの貢献](https://github.com/Genesis-Embodied-AI/Genesis/blob/main/.github/CONTRIBUTING.md)に関するガイドラインを追加しました。 ## 目次 @@ -61,28 +66,27 @@ Genesisの目指すところ: - **様々なロボットへの対応**: ロボットアーム、脚付きロボット、ドローン、*ソフトロボット*など。また、`MJCF (.xml)`、`URDF`、`.obj`、`.glb`、`.ply`、`.stl`などの形式をサポート。 - **フォトリアルなレンダリング**: レイトレーシングベースのレンダリングをネイティブでサポート。 - **微分可能性**: 完全な微分可能性を備えた設計。現時点では、MPMソルバーとツールソルバーが対応しており、将来的には他のソルバーも対応予定(まず剛体および連結体ソルバーから開始)。 -- **物理ベースの触覚シミュレーション**: 微分可能な[触覚センサーシミュレーション](https://github.com/Genesis-Embodied-AI/DiffTactile)が近日公開予定(バージョン0.3.0を予定)。 - **ユーザーフレンドリー**: シンプルで直感的なインストールとAPI設計。 ## インストール -GenesisはPyPIで利用可能です: +まず[公式の手順](https://pytorch.org/get-started/locally/)に従って**PyTorch**をインストールしてください。 + +次に、PyPI経由でGenesisをインストールします: ```bash -pip install genesis-world # Python>=3.10,<3.14 が必要です; +pip install genesis-world # Python>=3.10,<3.14が必要です; ``` -また、**PyTorch**を[公式手順](https://pytorch.org/get-started/locally/)に従ってインストールする必要があります。 - -最新版を利用する場合はこのレポジトリから直接インストールしてください: +最新バージョンを利用するには、`pip install --upgrade pip`で`pip`を更新してから、次のコマンドを実行してください: ```bash pip install git+https://github.com/Genesis-Embodied-AI/Genesis.git ``` -このパッケージは定期的に手動で最新版と同期する必要があることに注意してください。 +注意:mainブランチと同期するには、パッケージを手動で更新する必要があります。 -ソースコードを変更したいユーザはGenesisを開発者モードでインストールすることを推奨します。まず、pip経由の `genesis-world` がアンインストールされていることを確認してください。そして、このレポジトリーを以下のようにクローンしてインストールしてください。 +Genesisのソースコードを編集したいユーザーは、編集可能モードでGenesisをインストールすることを推奨します。まず、`genesis-world`がアンインストールされていることを確認し、リポジトリをクローンしてローカルにインストールします: ```bash git clone https://github.com/Genesis-Embodied-AI/Genesis.git @@ -92,16 +96,16 @@ pip install -e ".[dev]" ## Docker -DockerからGenesisを利用する場合は、まずDockerイメージをビルドします: +DockerからGenesisを使用したい場合は、まず次のようにしてDockerイメージをビルドできます: ```bash docker build -t genesis -f docker/Dockerfile docker ``` -その後、Dockerイメージ内で例を実行できます(`/workspace/examples`にマウント): +その後、Dockerイメージ内でサンプルを実行できます(`/workspace/examples`にマウントされます): ```bash -xhost +local:root # コンテナがディスプレイにアクセスできるようにする +xhost +local:root # コンテナがディスプレイにアクセスすることを許可 docker run --gpus all --rm -it \ -e DISPLAY=$DISPLAY \ @@ -111,6 +115,33 @@ docker run --gpus all --rm -it \ genesis ``` +### AMDユーザー + +AMDユーザーは、`docker/Dockerfile.amdgpu`ファイルを使ってGenesisを利用できます。これは次のコマンドを実行してビルドします: + +``` +docker build -t genesis-amd -f docker/Dockerfile.amdgpu docker +``` + +ビルド後、次のコマンドを実行して使用できます: + +``` +xhost +local: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ユーザーはVulkanバックエンドを使用してください。これは、Genesisを初期化するために`gs.init(vulkan)`を呼び出す必要があることを意味します。 + ## ドキュメント 包括的なドキュメントは現時点では[英語](https://genesis-world.readthedocs.io/en/latest/user_guide/index.html)、[中国語](https://genesis-world.readthedocs.io/zh-cn/latest/user_guide/index.html)、および[日本語](https://genesis-world.readthedocs.io/ja/latest/user_guide/index.html)で提供されています。詳細なインストール手順、チュートリアル、APIリファレンスが含まれています。 diff --git a/README_KR.md b/README_KR.md index 6bb2a7d684..7b2ec55dfc 100644 --- a/README_KR.md +++ b/README_KR.md @@ -19,8 +19,13 @@ ## 🔥 새 소식 -- [2024-12-25] 레이 트레이싱 렌더러를 지원하는 [docker](#docker) 추가 -- [2024-12-24] [제네시스 기여](https://github.com/Genesis-Embodied-AI/Genesis/blob/main/.github/CONTRIBUTING.md) 가이드라인 추가 + - [2025-08-05] v0.3.0 릴리스 🎊 🎉 + - [2025-07-02] 이제 [Genesis AI](https://genesis-ai.company/)가 Genesis의 개발을 공식적으로 지원합니다. + - [2025-01-09] Genesis의 성능에 대한 자세한 [벤치마킹 및 비교 보고서](https://github.com/zhouxian/genesis-speed-benchmark)를 모든 테스트 스크립트와 함께 공개했습니다. + - [2025-01-08] v0.2.1 릴리스 🎊 🎉 + - [2025-01-08] [Discord](https://discord.gg/nukCuhB47p) 및 [Wechat](https://drive.google.com/uc?export=view&id=1ZS9nnbQ-t1IwkzJlENBYqYIIOOZhXuBZ) 그룹을 생성했습니다. + - [2024-12-25] 레이 트레이싱 렌더러를 지원하는 [docker](https://www.google.com/search?q=%23docker) 추가 + - [2024-12-24] [제네시스 기여](https://github.com/Genesis-Embodied-AI/Genesis/blob/main/.github/CONTRIBUTING.md) 가이드라인 추가 ## Table of Contents @@ -39,7 +44,7 @@ Genesis는 *로보틱스/임베디드 AI/물리 AI* 애플리케이션을 위해 설계된 범용 물리 플랫폼입니다. 그리고 다음과 같은 기능을 제공합니다: -1. 폭넓은 재료와 물리 현상을 시뮬레이션할 수 있도록 처음부터 다시 구축된 **범용 물리 엔진**. +1. 다양한 물성 (Material) 과 물리 현상을 시뮬레이션할 수 있도록 처음부터 다시 구축된 **범용 물리 엔진**. 2. **가볍고**, **매우 빠르며**, **파이썬 친화적이고**, **사용자 친화적인** 로보틱스 시뮬레이션 플랫폼. 3. 강력하고 빠른 **실사 렌더링 시스템**. 4. 사용자의 자연어 설명을 다양한 형태의 데이터로 변환하는 **생성형 데이터 엔진**. @@ -47,7 +52,7 @@ Genesis는 *로보틱스/임베디드 AI/물리 AI* 애플리케이션을 위해 Genesis의 목표: - **물리 시뮬레이션의 진입 장벽을 낮춰** 누구나 로보틱스 연구에 접근할 수 있도록 합니다. [사명 선언문](https://genesis-world.readthedocs.io/en/latest/user_guide/overview/mission.html)을 확인하세요. -- 단일 프레임워크로 **통합된 다양한 물리 솔버**를 통해 최상의 정확도로 물리적 세계를 재현합니다. +- 단일 프레임워크로 **통합된 다양한 물리 솔버 (Physics Solver)**를 통해 최상의 정확도로 물리적 세계를 재현합니다. - **데이터 생성을 자동화**하여 사람의 수고를 줄이고 데이터 플라이휠이 스스로 순환하도록 합니다. 프로젝트 페이지: @@ -56,25 +61,32 @@ Genesis의 목표: - **속도**: 단일 RTX 4090에서 Franka 로봇 팔을 시뮬레이션하는 경우, 4300만 FPS 이상(실시간보다 430,000 배 빠름). - **크로스 플랫폼**: Linux, macOS, Windows에서 실행 가능 및 다양한 연산 백엔드(CPU, Nvidia/AMD GPU, Apple Metal) 지원. -- **다양한 물리 솔버 통합**: Rigid body, MPM, SPH, FEM, PBD, Stable Fluid. -- **폭넓은 재료 모델**: 강체, 액체, 기체, 변형 가능한 오브젝트, 얇은 쉘 오브젝트 및 입상 재료의 시뮬레이션 및 결합. +- **다양한 물리 솔버 (Physics Solver) 통합**: Rigid body, MPM, SPH, FEM, PBD, Stable Fluid. +- **다양한 물성 (Material) 모델**: 강체, 액체, 기체, 변형 가능한 오브젝트, 얇은 쉘 오브젝트 및 입상 재료의 시뮬레이션 및 결합. - **다양한 로봇 호환성**: 로봇 팔, 보행 로봇, 드론, *소프트 로봇* 및 다양한 파일 형식(`MJCF (.xml)`, `URDF`, `.obj`, `.glb`, `.ply`, `.stl` 등) 로드 지원. - **실사 렌더링**: 네이티브 레이 트레이싱 기반 렌더링. -- **미분 가능성**: Genesis는 완전히 미분 가능하도록 설계되었습니다. 현재 MPM 솔버와 Tool 솔버가 미분 가능하며, 다른 솔버는 향후 버전에서는 강체 및 관절체 솔버를 시작으로 다른 솔버들도 지원할 예정입니다. -- **물리 기반 촉각 시뮬레이션**: 미분 가능한 [촉각 센서 시뮬레이션](https://github.com/Genesis-Embodied-AI/DiffTactile) 출시 예정(버전 0.3.0 예상). +- **미분 가능성 (Differentiability)**: Genesis는 완전히 미분 가능하도록 설계되었습니다. 현재 MPM 솔버와 Tool 솔버가 미분 가능하며, 다른 솔버는 향후 버전에서는 강체 (Rigid body) 및 관절체 (Articulated body) 솔버를 시작으로 다른 솔버들도 지원할 예정입니다. - **사용자 친화성**: 직관적인 설치 및 API로 간편하게 사용 가능. ## 빠른 설치 -Genesis는 PyPI를 통해 설치할 수 있습니다: +먼저 [공식 안내](https://pytorch.org/get-started/locally/)에 따라 **PyTorch**를 설치하세요. + +그 다음, PyPI를 통해 Genesis를 설치합니다: ```bash -pip install genesis-world # Python>=3.10,<3.14 필요 +pip install genesis-world # Python>=3.10,<3.14 버전 필요; ``` -또한, [공식 설명서](https://pytorch.org/get-started/locally/)에 따라 **PyTorch**를 설치해야 합니다. +최신 버전을 설치하려면, `pip install --upgrade pip`를 통해 `pip`를 최신 상태로 업데이트한 후 다음 명령어를 실행하세요: + +```bash +pip install git+https://github.com/Genesis-Embodied-AI/Genesis.git +``` -최신 버전을 사용하려면 저장소를 복제한 후 로컬에서 설치하세요: +참고로, main 브랜치와 동기화하려면 패키지를 계속 수동으로 업데이트해야 합니다. + +Genesis 소스 코드를 직접 수정하고 싶은 사용자는 편집 가능 모드(editable mode)로 설치하는 것을 권장합니다. 먼저 `genesis-world`가 제거되었는지 확인한 후, 저장소를 복제(clone)하고 로컬에 설치하세요: ```bash git clone https://github.com/Genesis-Embodied-AI/Genesis.git @@ -84,16 +96,16 @@ pip install -e ".[dev]" ## Docker -Docker를 사용하여 Genesis를 실행하려면 먼저 Docker 이미지를 빌드하세요: +Docker에서 Genesis를 사용하려면, 먼저 다음과 같이 Docker 이미지를 빌드할 수 있습니다: ```bash docker build -t genesis -f docker/Dockerfile docker ``` -그런 다음 Docker 이미지(`/workspace/examples`에 마운트된) 내에서 예제를 실행할 수 있습니다: +그 다음, Docker 이미지 내에서 예제를 실행할 수 있습니다 (예제는 `/workspace/examples`에 마운트됩니다): ```bash -xhost +local:root # 컨테이너가 디스플레이에 접근할 수 있도록 허용 +xhost +local:root # 컨테이너가 디스플레이에 접근하도록 허용 docker run --gpus all --rm -it \ -e DISPLAY=$DISPLAY \ @@ -103,6 +115,32 @@ docker run --gpus all --rm -it \ genesis ``` +### AMD 사용자 + +AMD 사용자는 `docker/Dockerfile.amdgpu` 파일을 사용하여 Genesis를 이용할 수 있으며, 다음 명령어를 실행하여 빌드합니다: + +``` +docker build -t genesis-amd -f docker/Dockerfile.amdgpu docker +``` + +그리고 다음 명령어를 실행하여 사용할 수 있습니다: + +```xhost +local: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 사용자는 Vulkan 백엔드를 사용해야 합니다. 즉, Genesis를 초기화하려면 `gs.init(vulkan)`을 호출해야 합니다. + ## 문서 전체 문서는 [영어](https://genesis-world.readthedocs.io/en/latest/user_guide/index.html)와 [중국어](https://genesis-world.readthedocs.io/zh-cn/latest/user_guide/index.html)로 제공됩니다. 이 문서에는 자세한 설치 단계, 튜토리얼 및 API 참조가 포함되어 있습니다. @@ -111,9 +149,9 @@ genesis Genesis 프로젝트는 오픈 소스 및 협력 프로젝트입니다. 다음을 포함하여 커뮤니티의 모든 형태의 기여를 환영합니다: -- 새로운 기능이나 버그 수정을 위한 **풀 리퀘스트**. -- GitHub Issues를 통한 **버그 리포트**. -- Genesis의 사용성을 향상시키기 위한 **제안**. +- 새로운 기능이나 버그 수정을 위한 **풀 리퀘스트 (Pull Requests)**. +- GitHub Issues를 통한 **버그 리포트 (Bug Reports)**. +- Genesis의 사용성을 향상시키기 위한 **제안 (Suggestions)**. 자세한 내용은 [기여 가이드](https://github.com/Genesis-Embodied-AI/Genesis/blob/main/.github/CONTRIBUTING.md)를 참조하세요. diff --git a/RELEASE.md b/RELEASE.md index 68b40cbd25..ee5c2dfeb1 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,5 +1,115 @@ # Genesis Release Note +## 0.3.0 + +This release focuses primarily on stability, covering everything from MJCF/URDF parsing to rendering and physics, backend by a new CI infrastructure running more than 200 unit tests on all supported platforms. The most requested Mujoco features that were previously missing have been implemented. Native support of batching has been extended to all solvers except Stable Fluid, motion planning, and rendering via [gs-madrona](https://github.com/Genesis-Embodied-AI/gs-madrona). Finally, support of soft body dynamics has been enhanced, with the introduction of constraints and coupling between soft and rigid body dynamics. + +### New Features + +* Add link-wise mask for poss and quats in multilink Inverse Kinematics. (@ziyanx02) (#499) +* Update HoverEnv, update hyperparams, and visualization while training. (@KafuuChikai) (#533) +* Add Mac OS and Windows OS support to the viewer. (@kohya-ss, @duburcqa) (#610, #782) +* Add method to compute classical links acceleration. (@zswang666, @duburcqa) (#451, #1228) +* Support mounted cameras on rigid links. (@wangyian-me, @abhijitmajumdar) (#618, #1323) +* Cameras and main viewer can now track an entity. (@jgleyze) (#611) +* Support fixed entity. (@ziyanx02, @duburcqa) (#673, #1187) +* Support separated rendering for each environment. (@ACMLCZH) (#545, #723) +* Support environment masking to Inverse Kinematics. (@Kashu7100) (#732) +* Support equality constraint and closed-loop robots. (@YilingQiao) (#636) +* Add support on headless rendering on Windows OS. (@duburcqa) (#798) +* Expose public API for Forward Kinematics. (@Kashu7100) (#802) +* Add setter for robot mass. (@Kashu7100, @YilingQiao) (#828, #605) +* Support advanced collision pair filtering. (@duburcqa, @Kashu7100) (#816, #1438, #1499) +* Enable visualizing path. (@bxtbold) (#815) +* Add environment masking to more rigid body methods. (@Kashu7100) (#832) +* Add support of Ellipsoid geometry. (@duburcqa) (#864) +* Add 'show_link_frame' option to the viewer for better debugging. (@Kashu7100) (#871) +* Add environment masking to 'get_links_net_contact_force'. (@Kashu7100) (#880) +* Add support of ball joint type and compound joints. (@YilingQiao, @duburcqa) (#853, #1078, #1080) +* Luisa Render upgrade to support Apple Silicon. (@ACMLCZH) (#886) +* Support equality joint constraint. (@YilingQiao) (#919) +* Support mimic joint in URDF. (@YilingQiao) (#928) +* Support weld constraint. (@YilingQiao) (#948) +* Add method to render pointcloud on cameras. (@wangyian-me) (#897) +* Expose different convex decomposition error thresholds for robots and objects. (@duburcqa) (#1058) +* Force interactive viewer camera Z-axis up. (@duburcqa) (#1060) +* Add helper to convert terrain mesh to height field. (@YilingQiao) (#1033) +* Add maxvolume support for TetGen-based tetrahedralization. (@kosuke1701) (#1088) +* Support parallel simulation for deformable materials. (@wangyian-me) (#1005) +* Add public API to access rigid body mass matrix. (@Kashu7100) (#1132) +* Add public API getter/setter for constraint solver parameters. (@duburcqa) (#1173) +* Add option to exclude self-collision. (@Kashu7100) (#1229) +* Add profiling options. (@hughperkins) (#1247) +* Add implicit FEM with newton and conjugate gradient methods. (@Libero0809) (#1215) +* Implement BVH using Linear BVH. (@Libero0809) (#1241) +* Add USD parsing. (@ACMLCZH) (#1051) +* Expose optional subterrain parameters. (@LeonLiu4) (#1289) +* Add GJK-EPA algorithm for rigid body collision detection. (@SonSang) (#1213, #1357) +* Add linear_corotated elastic material for FEM. (@Libero0809) (#1304) +* Add fast vs high-performance taichi compilation mode. (@hughperkins) (#1330) +* Support environment-wise gravity. (@LeonLiu4, @Milotrince) (#1324, #1498) +* Expose method to compute Jacobian at a specific point. (@LeonLiu4) (#1353) +* Support segmentation map for deformable materials. (@ACMLCZH) (#1363) +* Support parallel path planning. (@Kashu7100) (#1316) +* Support dragging to physical object interactively in viewer. (@gasnica) (#1346, #1378, #1411, #1443) +* Enhance SAP Coupler to support self collision between FEM objects. (@Libero0809) (#1375) +* Support vertex constraints for FEM objects. (@Milotrince) (#1310) +* Add sensor abstraction. (@Milotrince) (#1381) +* Integrate Madrona batch renderer. (@yuhongyi) (#1416) +* Support joint friction. (@YilingQiao) (#1479) + +### Bug Fixes + +* Improve URDF and MJCF loading. (@zhenjia-xu, @bxtbold, @YilingQiao, @zswang666, @duburcqa) (#517, #675, #735, #744, #765, #777, #792, #872, #913, #936, #940, #988, #1147, #1154, #1159, #1169, #1218, #1235, #1262, #1287, #1501) +* Rework backend & device selection logic. (@lgleim) (#568) +* More robust cross-platform rendering support (viewer and cameras). (@alesof, @eratc, @duburcqa, @YilingQiao, @Kashu7100) (#404, #644, #774, #779, #783, #784, #787, #796, #799, #800, #807, #809, #810, #813, #814, #915, #983, #1069, #1070, #1071, #1073, #1074, #1420, #1421, #1426) +* More robust cachie mechanism for simulation pre-processing. (@duburcqa) (#801) +* Improve debug and high-precision mode. (@duburcqa) (#863) +* Fix constraint solver termination condition. (@duburcqa) (#867) +* Reset collision detection state when setting qpos. (@duburcqa) (#868) +* Use collision geometry as visual for bodies not having any. (@duburcqa) (#870) +* Only add world link/joint if it has at least one geom. (@duburcqa) (#884) +* Avoid segfault because of exceeding number of collisions. (@duburcqa) (#898) +* Fix box-box collision detection. (@duburcqa) (#910) +* Fix fixed joint and body handling. (@duburcqa) (#916, #952) +* Fix link velocity computation. (@duburcqa) (#941) +* Avoid useless convex decomposition. (@duburcqa) (#957) +* Improve numerical stability of MPR collision detection algorithm. (@duburcqa) (#966, #977, #1336) +* Improve multi-point contact stability. (@duburcqa) (#967, #1012, #1117, #1297) +* Fix genesis destroy. (@duburcqa) (#1007) +* Fix issue when adding multiple FEM entities. (@kosuke1701) (#1014) +* Using Vulkan backend for taichi even if no Intel XPU device is available. (@duburcqa) (#1025) +* Try to repair partially "broken" meshes if possible. (@duburcqa) (#1023, #1075, #1077) +* Fix scaling of poly-articulated robots. (@duburcqa) (#1039, #1108) +* Fix mujoco vs genesis discrepancies. (@duburcqa) (#1097) +* More robust robot loading and default options. (@duburcqa) (#1098) +* Improve external force handling. (@duburcqa) (#1292) +* Fix terrain collision detection. (@duburcqa) (#1338) +* Prevent unrealistic angular velocity of Drone entities causing numerical instability. (@duburcqa) (#1405) +* Do not consider markers as physical objects for rendering. (@duburcqa) (#14948) + +### Miscellaneous + +* Update Drone Entity and Training Performance Enhancements. (@KafuuChikai) (#598) +* Added PID controller util, quadcopter PID controller, flight examples. (@jebbrysacz) (#501) +* Add support of Numpy 2.0. (@johnnynunez, @duburcqa) (#711, #791) +* Setup unit test infrastructure. (@duburcqa) (#876) +* Various minor improvements. (@duburcqa) (#889) +* Get rid of internally maintained trimesh dependency. (@duburcqa) (#918) +* Refactor rigid body data accessors. (@duburcqa) (#924) +* Speed-up convert taichi field to torch. (@duburcqa) (#935) +* Cleanup Genesis init / exit. (@duburcqa) (#989) +* Use torch cuda with vulkan taichi backend if available. (@duburcqa) (#1043) +* Fix naming convention inconsistencies. (@duburcqa) (#1053) +* Add API documentation. (@zswang666) (#1105) +* Use 2*dt as default timeconst for urdf and mesh. (@YilingQiao) (#1115) +* Improve runtime and compile time performance. (@YilingQiao, @duburcqa) (#1164, #1268, #1277) +* More robust decimation processing. Enable decimation by default. (@duburcqa) (#1186) +* Add compile- and run-time performance monitoring. (@duburcqa) (#1209) +* More efficient unit test distribution across workers. (@duburcqa) (#1275) +* Enable GJK collision detection algorithm by default. (@duburcqa) (#1439) +* Enable box-box collision detection by default. (@duburcqa) (#1442) + ## 0.2.1 ### Bug Fixes