- [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.
- [2025-01-09] Nous avons publié un rapport détaillé d'analyse comparative des performances 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 et Wechat.
- [2024-12-25] Ajout d’un docker incluant la prise en charge du moteur de rendu par lancer de rayon (ray-tracing).
- [2024-12-24] Ajout de directives pour contribuer à Genesis.
- Qu'est-ce que Genesis ?
- Caractéristiques clés
- Installation Rapide
- Docker
- Documentation
- Contribuer à Genesis
- Support
- License et Remerciements
- Articles Associés
- Citation
Genesis est une plateforme physique conçue pour des applications générales en Robotique/ IA embarquée/IA physique. Elle combine plusieurs fonctionnalités :
- Un moteur physique universel, reconstruit depuis zéro, capable de simuler une large gamme de matériaux et de phénomènes physiques.
- Une plateforme de simulation robotique légère, ultra-rapide,pythonic, et conviviale.
- Un puissant et rapide système de rendu photo-réaliste.
- Un moteur de génération de données qui transforme des descriptions en langage naturel en divers types de données.
Genesis vise à :
- Réduire les barrières à l'utilisation des simulations physiques, rendant la recherche en robotique accessible à tous. Voir notre déclaration de mission.
- Unifier divers solveurs physiques dans un cadre unique pour recréer le monde physique avec la plus haute fidélité.
- Automatiser la génération de données, réduisant l'effort humain et permettant à l'écosystème de données de fonctionner de manière autonome.
Page du projet : https://genesis-embodied-ai.github.io/
- Vitesse : Plus de 43 millions d'IPS lors de la simulation d'un bras robotique Franka avec une seule RTX 4090 (430 000 fois plus rapide que le temps réel).
- Multi-plateforme : Fonctionne sur Linux, macOS, Windows, et prend en charge plusieurs backends de calcul (CPU, GPU Nvidia/AMD, Apple Metal).
- Intégration de divers solveurs physiques : Corps rigides, MPM, SPH, FEM, PBD, Fluides stables.
- Large éventail de modèles de matériaux : Simulation et couplage de corps rigides, liquides, gaz, objets déformables, objets à coque mince et matériaux granulaires.
- 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).
- Facilité d'utilisation : Conçu pour être simple, avec une installation intuitive et des API conviviales.
Installez d'abord PyTorch en suivant les instructions officielles.
Ensuite, installez Genesis via PyPI :
pip install genesis-world # Nécessite Python>=3.10,<3.14;Pour obtenir la version la plus récente, assurez-vous que pip est à jour via pip install --upgrade pip, puis exécutez la commande :
pip install git+https://github.com/Genesis-Embodied-AI/Genesis.gitNotez 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 :
git clone https://github.com/Genesis-Embodied-AI/Genesis.git
cd Genesis
pip install -e ".[dev]"Il est recommandé d'exécuter systématiquement pip install -e ".[dev]" après avoir déplacé le HEAD pour s'assurer que toutes les dépendances et points d'entrée sont à jour.
uv est un gestionnaire de paquets et de projets Python rapide.
Installer uv :
# Sur macOS et Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Sur Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Démarrage rapide avec uv :
git clone https://github.com/Genesis-Embodied-AI/Genesis.git
cd Genesis
uv syncEnsuite, installez PyTorch pour votre plateforme :
# GPU NVIDIA (CUDA 12.6 par exemple)
uv pip install torch --index-url https://download.pytorch.org/whl/cu126
# CPU uniquement (Linux/Windows)
uv pip install torch --index-url https://download.pytorch.org/whl/cpu
# Apple Silicon (Metal/MPS)
uv pip install torchExécutez un exemple :
uv run examples/rigid/single_franka.pySi vous souhaitez utiliser Genesis depuis Docker, vous pouvez d'abord construire l'image Docker comme suit :
docker build -t genesis -f docker/Dockerfile dockerVous pouvez ensuite exécuter les exemples à l'intérieur de l'image Docker (montés dans /workspace/examples) :
xhost +local:root # Autoriser le conteneur à accéder à l'affichage
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:latestLes 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 :
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 ROCm (HIP). Cela signifie que vous devrez appeler gs.init(backend=gs.amdgpu) pour initialiser Genesis.
Une documentation complète est disponible en Anglais et en Chinois. Cela inclut des étapes d'installation détaillées, des tutoriels et des références API.
Le projet Genesis est un effort ouvert et collaboratif. Nous accueillons toutes les formes de contributions de la communauté, notamment :
- Pull requests pour de nouvelles fonctionnalités ou des corrections de bugs.
- Rapports de bugs via GitHub Issues.
- Suggestions pour améliorer la convivialité de Genesis.
Consultez notre guide de contribution pour plus de détails.
- Signalez des bugs ou demandez des fonctionnalités via GitHub Issues.
- Participez aux discussions ou posez des questions sur GitHub Discussions.
Le code source de Genesis est sous licence Apache 2.0.
Le développement de Genesis a été rendu possible grâce à ces projets open-source :
- Taichi : Backend de calcul multiplateforme haute performance. Merci à l'équipe de Taichi pour leur support technique !
- FluidLab : Implémentation de référence du solveur MPM.
- SPH_Taichi : Implémentation de référence du solveur SPH.
- Ten Minute Physics et PBF3D : Implémentations de référence des solveurs PBD.
- MuJoCo : Référence pour la dynamique des corps rigides.
- libccd : Référence pour la détection des collisions.
- PyRender : Rendu basé sur la rasterisation.
- LuisaCompute et LuisaRender : DSL de ray-tracing.
Genesis est un projet à grande échelle qui intègre des technologies de pointe issues de divers travaux de recherche existants et en cours dans un seul système. Voici une liste non exhaustive de toutes les publications qui ont contribué au projet Genesis d'une manière ou d'une autre :
- 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.
... et bien d'autres travaux en cours.
Si vous utilisez Genesis dans vos recherches, veuillez envisager de citer :
@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}
}
