# EmbodiedGen: Towards a Generative 3D World Engine for Embodied Intelligence
[](https://horizonrobotics.github.io/robot_lab/embodied_gen/index.html)
[](https://arxiv.org/abs/2506.10600)
[](https://www.youtube.com/watch?v=SnHhzHeb_aI)
[](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Image-to-3D)
[](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Text-to-3D)
[](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`.
---
## โจ 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 checkout v0.1.0
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)
---
### 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 &
```
### API
Generate a 3D model from an image using the command-line API.
Models will be downloaded automatically, please wait for the first run.
```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
```
---
### Service
Run the text-to-3D generation service locally.
```sh
python apps/text_to_3d.py
```
### API
Models will be downloaded automatically, see `download_kolors_weights`.
```sh
bash embodied_gen/scripts/textto3d.sh \
--prompts "small bronze figurine of a lion" "ๅธฆๆจ่ดจๅบๅบง๏ผๅ
ทๆ็ป็บฌ็บฟ็ๅฐ็ไปช" "ๆฉ่ฒ็ตๅจๆ้ป๏ผๆ็ฃจๆ็ป่" \
--output_root outputs/textto3d/
```
---
### Service
Run the texture generation service locally.
```sh
python apps/texture_edit.py
```
### API
Models will be downloaded automatically, see `download_kolors_weights`, `geo_cond_mv`.
```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"
```
---
---
---