# EmbodiedGen: Towards a Generative 3D World Engine for Embodied Intelligence [![๐ŸŒ Project Page](https://img.shields.io/badge/๐ŸŒ-Project_Page-blue)](https://horizonrobotics.github.io/robot_lab/embodied_gen/index.html) [![๐Ÿ“„ arXiv](https://img.shields.io/badge/๐Ÿ“„-arXiv-b31b1b)](#) [![๐ŸŽฅ Video](https://img.shields.io/badge/๐ŸŽฅ-Video-red)](https://www.youtube.com/watch?v=SnHhzHeb_aI) [![๐Ÿค— Hugging Face](https://img.shields.io/badge/๐Ÿค—-Image_to_3D_Demo-blue)](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Image-to-3D) [![๐Ÿค— Hugging Face](https://img.shields.io/badge/๐Ÿค—-Text_to_3D_Demo-blue)](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Text-to-3D) [![๐Ÿค— Hugging Face](https://img.shields.io/badge/๐Ÿค—-Texture_Gen_Demo-blue)](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Texture-Gen) **EmbodiedGen** is a toolkit to generate diverse and interactive 3D worlds composed of generative 3D assets with plausible physics, leveraging generative AI to address the challenges of generalization in embodied intelligence related research. EmbodiedGen composed of six key modules: `Image-to-3D`, `Text-to-3D`, `Texture Generation`, `Articulated Object Generation`, `Scene Generation` and `Layout Generation`. Overall Framework --- ## โœจ Table of Contents of EmbodiedGen - [๐Ÿ–ผ๏ธ Image-to-3D](#image-to-3d) - [๐Ÿ“ Text-to-3D](#text-to-3d) - [๐ŸŽจ Texture Generation](#texture-generation) - [๐ŸŒ 3D Scene Generation](#3d-scene-generation) - [โš™๏ธ Articulated Object Generation](#articulated-object-generation) - [๐Ÿž๏ธ Layout Generation](#layout-generation) ## ๐Ÿš€ Quick Start ### โœ… Setup Environment ```sh git clone https://github.com/HorizonRobotics/EmbodiedGen.git cd EmbodiedGen git submodule update --init --recursive --progress conda create -n embodiedgen python=3.10.13 -y conda activate embodiedgen bash install.sh ``` ### ๐ŸŸข Setup GPT Agent Update the API key in file: `embodied_gen/utils/gpt_config.yaml`. You can choose between two backends for the GPT agent: - **`gpt-4o`** (Recommended) โ€“ Use this if you have access to **Azure OpenAI**. - **`qwen2.5-vl`** โ€“ An alternative with free usage via OpenRouter, apply a free key [here](https://openrouter.ai/settings/keys) and update `api_key` in `embodied_gen/utils/gpt_config.yaml` (50 free requests per day) ---

๐Ÿ–ผ๏ธ Image-to-3D

[![๐Ÿค— Hugging Face](https://img.shields.io/badge/๐Ÿค—-Image_to_3D_Demo-blue)](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Image-to-3D) Generate physically plausible 3D asset from input image. ### Local Service Run the image-to-3D generation service locally. The first run will download required models. ```sh # Run in foreground python apps/image_to_3d.py # Or run in the background CUDA_VISIBLE_DEVICES=0 nohup python apps/image_to_3d.py > /dev/null 2>&1 & ``` ### Local API Generate a 3D model from an image using the command-line API. ```sh python3 embodied_gen/scripts/imageto3d.py \ --image_path apps/assets/example_image/sample_04.jpg apps/assets/example_image/sample_19.jpg \ --output_root outputs/imageto3d/ # See result(.urdf/mesh.obj/mesh.glb/gs.ply) in ${output_root}/sample_xx/result ``` ---

๐Ÿ“ Text-to-3D

[![๐Ÿค— Hugging Face](https://img.shields.io/badge/๐Ÿค—-Text_to_3D_Demo-blue)](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Text-to-3D) Create 3D assets from text descriptions for a wide range of geometry and styles. ### Local Service Run the text-to-3D generation service locally. ```sh python apps/text_to_3d.py ``` ### Local API ```sh bash embodied_gen/scripts/textto3d.sh \ --prompts "small bronze figurine of a lion" "ๅธฆๆœจ่ดจๅบ•ๅบง๏ผŒๅ…ทๆœ‰็ป็บฌ็บฟ็š„ๅœฐ็ƒไปช" "ๆฉ™่‰ฒ็”ตๅŠจๆ‰‹้’ป๏ผŒๆœ‰็ฃจๆŸ็ป†่Š‚" \ --output_root outputs/textto3d/ ``` ---

๐ŸŽจ Texture Generation

[![๐Ÿค— Hugging Face](https://img.shields.io/badge/๐Ÿค—-Texture_Gen_Demo-blue)](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Texture-Gen) Generate visually rich textures for 3D mesh. ### Local Service Run the texture generation service locally. ```sh python apps/texture_edit.py ``` ### Local API Generate textures for a 3D mesh using a text prompt. ```sh bash embodied_gen/scripts/texture_gen.sh \ --mesh_path "apps/assets/example_texture/meshes/robot_text.obj" \ --prompt "ไธพ็€็‰Œๅญ็š„็บข่‰ฒๅ†™ๅฎž้ฃŽๆ ผๆœบๅ™จไบบ๏ผŒ็‰ŒๅญไธŠๅ†™็€โ€œHelloโ€" \ --output_root "outputs/texture_gen/" \ --uuid "robot_text" ``` ---

๐ŸŒ 3D Scene Generation

๐Ÿšง *Coming Soon* ---

โš™๏ธ Articulated Object Generation

๐Ÿšง *Coming Soon* ---

๐Ÿž๏ธ Layout Generation

๐Ÿšง *Coming Soon* --- ## ๐Ÿ“š Citation If you use EmbodiedGen in your research or projects, please cite: ```bibtex Coming Soon ``` --- ## ๐Ÿ™Œ Acknowledgement EmbodiedGen builds upon the following amazing projects and models: - ๐ŸŒŸ [Trellis](https://github.com/microsoft/TRELLIS) - ๐ŸŒŸ [Hunyuan-Delight](https://huggingface.co/tencent/Hunyuan3D-2/tree/main/hunyuan3d-delight-v2-0) - ๐ŸŒŸ [Segment Anything Model](https://github.com/facebookresearch/segment-anything) - ๐ŸŒŸ [Rembg: a tool to remove images background](https://github.com/danielgatis/rembg) - ๐ŸŒŸ [RMBG-1.4: BRIA Background Removal](https://huggingface.co/briaai/RMBG-1.4) - ๐ŸŒŸ [stable-diffusion-x4-upscaler](https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler) - ๐ŸŒŸ [Real-ESRGAN](https://github.com/xinntao/Real-ESRGAN) - ๐ŸŒŸ [Kolors](https://github.com/Kwai-Kolors/Kolors) - ๐ŸŒŸ [ChatGLM3](https://github.com/THUDM/ChatGLM3) - ๐ŸŒŸ [Aesthetic Score Model](http://captions.christoph-schuhmann.de/aesthetic_viz_laion_sac+logos+ava1-l14-linearMSE-en-2.37B.html) - ๐ŸŒŸ [Pano2Room](https://github.com/TrickyGo/Pano2Room) - ๐ŸŒŸ [Diffusion360](https://github.com/ArcherFMY/SD-T2I-360PanoImage) - ๐ŸŒŸ [kaolin](https://github.com/NVIDIAGameWorks/kaolin) - ๐ŸŒŸ [diffusers](https://github.com/huggingface/diffusers) - ๐ŸŒŸ [gsplat](https://github.com/nerfstudio-project/gsplat) - ๐ŸŒŸ GPT: QWEN2.5VL, GPT4o --- ## โš–๏ธ License This project is licensed under the [Apache License 2.0](LICENSE). See the `LICENSE` file for details.