{"id":13638261,"url":"https://github.com/Genesis-Embodied-AI/Genesis","last_synced_at":"2025-04-19T17:33:35.304Z","repository":{"id":204594692,"uuid":"712225112","full_name":"Genesis-Embodied-AI/Genesis","owner":"Genesis-Embodied-AI","description":"A generative world for general-purpose robotics \u0026 embodied AI learning.","archived":false,"fork":false,"pushed_at":"2025-04-18T21:13:28.000Z","size":86582,"stargazers_count":24780,"open_issues_count":146,"forks_count":2176,"subscribers_count":232,"default_branch":"main","last_synced_at":"2025-04-19T05:18:39.047Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Genesis-Embodied-AI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-10-31T03:33:11.000Z","updated_at":"2025-04-19T03:42:34.000Z","dependencies_parsed_at":"2025-04-04T07:36:30.777Z","dependency_job_id":null,"html_url":"https://github.com/Genesis-Embodied-AI/Genesis","commit_stats":null,"previous_names":["genesis-embodied-ai/genesis"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genesis-Embodied-AI%2FGenesis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genesis-Embodied-AI%2FGenesis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genesis-Embodied-AI%2FGenesis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Genesis-Embodied-AI%2FGenesis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Genesis-Embodied-AI","download_url":"https://codeload.github.com/Genesis-Embodied-AI/Genesis/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249691849,"owners_count":21311389,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T01:00:43.178Z","updated_at":"2025-04-19T17:33:30.295Z","avatar_url":"https://github.com/Genesis-Embodied-AI.png","language":"Python","funding_links":[],"categories":["Simulation Benchmark","Simulation Frameworks","Python","Simulators","Trending LLM Projects","Chatbots \u0026 Virtual Companions","Sim","Open Source Projects","General","\u003cspan id=\"game\"\u003eGame (World Model \u0026 Agent)\u003c/span\u003e","Repos","4. Datasets and Benchmarks","1. 机器人项目 | Robots","🎮 Simulation \u0026 Physics Engines"],"sub_categories":["Medical \u0026 Assistive","Australia","Simulation Environments","\u003cspan id=\"tool\"\u003eLLM (LLM \u0026 Tool)\u003c/span\u003e","4.3 Simulation Environments","Agentic System Safety"],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg width=\"500px\" src=\"https://github.com/Genesis-Embodied-AI/Genesis/blob/main/images/logo.png\"/\u003e\n  \n  ### A generative and simulated physical realm for general-purpose embodied-AI learning.\n\u003c/div\u003e\n\n---\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Genesis-Embodied-AI/Genesis/blob/main/images/demo.png\"/\u003e\n\u003c/div\u003e\n\n# What is Genesis?\n\nGenesis is a **generative** and **differentiable** physical world for general-purpose robot learning, providing a **unified** simulation platform supporting diverse range of materials, allowing simulating vast range of robotic tasks, while being fully differentiable.\n\nGenesis is also a _**next-gen**_ simulation infrastructure that natively supports **generative simulation**: a future paradigm combining generative AI and physically-grounded simulation, aiming for unlocking _**infinite and diverse data**_ for robotic agents to learn vast range of skills across diverse environments like never before.\n\nGenesis is still under development, and will be made publicly available soon.\n\n# What can Genesis do?\nGenesis differs from prior simulation platforms with a number of distinct key features:\n## :white_check_mark:⚡⚡ Unprecedented lightning fast simulation speed (Million+ FPS)⚡⚡\nI can't help updating this here secretly: after a ton of engineering effort streamlining our underlying physics engine, Genesis now can potentially produce over millions of simulation steps per second for rigid body dynamics on a single RTX4090, way faster than any existing simulators. We are getting closer to a public release soon!\n\n## :white_check_mark: :tshirt: Support for diverse range of materials and their coupling\nGenesis supports physics simulation of a wide range of materials encountered in humans and (future) robots' daily life, and coupling (interaction) between these objects, including:\n- :door: Rigid and articulated bodies\n- :sweat_drops: Liquid: Newtonian, non-Newtonian, viscosity, surface tension, etc.\n- :dash: Gaseous phenomenon: air flow, heat flow, etc.\n- :dumpling: Deformable objects: elastic, plastic, elasto-plastic\n- :shirt: Thin-shell objects: :worm: ropes, :jeans: cloths, :page_facing_up: papers, :black_joker: cards, etc.\n- :hourglass_flowing_sand: Granular objects: sand, beans, etc.\n\n## :white_check_mark: :robot: Support for various forms of robots\nGenesis supports simulating of vast range of robots, including \n  - 🦾 Robot arm\n  - 🦿 Legged robot\n  - :writing_hand: Dexterous hand\n  - 🖲️ Mobile robot\n  - 🚁 Drone\n  - :lizard: Soft robot\n\nNote that Genesis is the first-ever platform providing comprehensive support for **soft muscles** and **soft robot**, as well as their interaction with rigid robots. Genesis also ships with a URDF-like soft-robot configuration system.\n\n## :white_check_mark: 🚀 Support for a wide spectrum of physics backend solvers\nVarious physics-based solvers tailored to different materials and needs have been developed in the past decades. Some prioritize high **simulation fidelity**, while others favor **performance**, albeit sometimes sacrificing accuracy.\n\nGenesis, in contrast to existing simulation platforms, natively supports a wide range of different physics solvers. Users are able to effortlessly toggle between solvers, depending on their specific requirements.\n\nWe have built a unified physics engine from the ground up, supporting solvers include:\n  - Material Point Method (MPM)\n  - Finite Element Method (FEM)\n  - Position Based Dynamics (PBD)\n  - Smoothed-Particle Hydrodynamics (SPH)\n  - Articulated Body Algorithm (ABA)-based Rigid Body Dynamics\n\nWe also provide contact resolving via multiple methods:\n  - Shape primitives\n  - Convex mesh\n  - SDF-based non-convex contact\n  - Incremental Potential Contact (IPC)\n\n\n## :white_check_mark: :pinching_hand: Physically-accurate tactile sensor simulation, applicable to diverse material types\nGenesis is the first platform that integrates physics-based simulation of GelSight-type tactile sensors, providing dense state-based and RGB-based tactile feedback simulation when handling diverse range of materials.\n\n\n## :white_check_mark: :camera_flash: Ultra-fast ray-tracing based renderer\nGenesis provides both rasterization-based and ray-tracing-based rendering pipelines. Our ray tracer is ultra fast, providing real-time photo-realistic rendering at RL-sufficient resolution. Notably, users can effortlessly switch between different rendering backend with one line of code.\n\n## :white_check_mark: :boom: Massive parallel, GPU-accelerated and fully differentiable\nGenesis supports massive parallelization over GPUs, and supports efficient gradient checkpointing for differentiable simulation.\nGenesis is internally powered by [**Taichi**](https://github.com/taichi-dev/taichi), but users are shielded from any potential debugging intricacies associated with Taichi. Genesis implements a custom Tensor system (`Genesis.Tensor`) seamlessly integrated with PyTorch. This integration guarantees that the Genesis simulation pipeline mirrors the operation of a standard PyTorch neural network in both functionality and familiarity. Provided that input variables are `Genesis.Tensor`, users are able to compute custom loss using simulation outputs, and one simple call of `loss.backward()` will trigger gradient flow all the way back through time. back to input variables, and optionally back to upstream torch-based policy networks, allowing effortless gradient-based policy optimization and gradient-accelerated RL policy learning.\n\n\n## :white_check_mark: :baby: Optimized ease of use\nThe rule of thumb we kept in mind during the development is to make Genesis as user-friendly and intuitive as possible, ensuring a seamless experience even for those new to the realm of simulations. Genesis is fully embedded in Python. We provide a unified interface for loading various entities including URDF, MJCF, various forms of meshes, etc. With **one single line of code**, users are able to switch between different physics backend, or switch from rasterization to ray-tracing for rendering photorealistic visuals, or define physical properties of loaded objects.\n\n## :white_check_mark: :milky_way: Most importantly, native support for Generative Simulation\nGenesis, while being a powerful simulation infrastructure, natively embraces the upcoming paradigm of [Generative Simulation](https://arxiv.org/abs/2305.10455). Powered by generative AIs and physics-based simulations, generative simulation is a paradigm that automates generation of diverse environments, robots, tasks, skills, training supervisions (e.g. reward functions), thereby generating infinite and diverse training data and scaling up diverse skill learning for embodied AI agents, in a fully automated manner.\n\nGenesis provides a set of APIs for generating diverse components needed for embodied AI learning, ranging from **interactable** and **actionable** environments, to different tasks, robots, language descriptions, and ultimately vast skills.\n\nUsers will be able to do the following:\n```Python\nimport genesis as gs\n# generate environments\ngs.generate('A robotic arm operating in a typical kitchen environment.')\n\n# generate robot\ngs.generate('A 6-DoF robotic arm with a mobile base, a camera attached to its wrist, and a tactile sensor on its gripper.')\ngs.generate('A bear-like soft robot walking in the sand.')\n\n# generate skills\ngs.generate('A Franka arm tossing trashes into a trashcan')\ngs.generate('A UR-5 arm bends a noodle into a U-shape')\n\n# or, let it generate on its own\ngs.generate('A random robot learning a random but meaningful skill')\n# or simply let it surprise you\ngs.generate()\n```\n\n\n## Stay tuned :P\nGenesis is a collaborative effort between multiple universities and industrial partners, and is still under active development. The Genesis team is diligently working towards an alpha release soon. Stay tuned for updates!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGenesis-Embodied-AI%2FGenesis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGenesis-Embodied-AI%2FGenesis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGenesis-Embodied-AI%2FGenesis/lists"}