parent
64272c89ad
commit
cd94669770
@ -1,6 +1,7 @@
|
|||||||
# *EmbodiedGen*: Towards a Generative 3D World Engine for Embodied Intelligence
|
# *EmbodiedGen*: Towards a Generative 3D World Engine for Embodied Intelligence
|
||||||
|
|
||||||
[](https://horizonrobotics.github.io/EmbodiedGen/)
|
[](https://horizonrobotics.github.io/EmbodiedGen/)
|
||||||
|
[](https://github.com/HorizonRobotics/EmbodiedGen)
|
||||||
[](https://arxiv.org/abs/2506.10600)
|
[](https://arxiv.org/abs/2506.10600)
|
||||||
[](https://www.youtube.com/watch?v=rG4odybuJRk)
|
[](https://www.youtube.com/watch?v=rG4odybuJRk)
|
||||||
[](https://mp.weixin.qq.com/s/HH1cPBhK2xcDbyCK4BBTbw)
|
[](https://mp.weixin.qq.com/s/HH1cPBhK2xcDbyCK4BBTbw)
|
||||||
|
|||||||
@ -6,6 +6,7 @@ hide:
|
|||||||
# 👋 Welcome to EmbodiedGen
|
# 👋 Welcome to EmbodiedGen
|
||||||
|
|
||||||
[](https://horizonrobotics.github.io/EmbodiedGen/)
|
[](https://horizonrobotics.github.io/EmbodiedGen/)
|
||||||
|
[](https://github.com/HorizonRobotics/EmbodiedGen)
|
||||||
[](https://arxiv.org/abs/2506.10600)
|
[](https://arxiv.org/abs/2506.10600)
|
||||||
[](https://www.youtube.com/watch?v=rG4odybuJRk)
|
[](https://www.youtube.com/watch?v=rG4odybuJRk)
|
||||||
[](https://mp.weixin.qq.com/s/HH1cPBhK2xcDbyCK4BBTbw)
|
[](https://mp.weixin.qq.com/s/HH1cPBhK2xcDbyCK4BBTbw)
|
||||||
|
|||||||
34
docs/js/model_viewer.js
Normal file
34
docs/js/model_viewer.js
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
|
||||||
|
const swiperElement = document.querySelector('.swiper1');
|
||||||
|
|
||||||
|
if (swiperElement) {
|
||||||
|
const swiper = new Swiper('.swiper1', {
|
||||||
|
loop: true,
|
||||||
|
slidesPerView: 3,
|
||||||
|
spaceBetween: 20,
|
||||||
|
navigation: {
|
||||||
|
nextEl: '.swiper-button-next',
|
||||||
|
prevEl: '.swiper-button-prev',
|
||||||
|
},
|
||||||
|
centeredSlides: false,
|
||||||
|
noSwiping: true,
|
||||||
|
noSwipingClass: 'swiper-no-swiping',
|
||||||
|
watchSlidesProgress: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const modelViewers = swiperElement.querySelectorAll('model-viewer');
|
||||||
|
|
||||||
|
if (modelViewers.length > 0) {
|
||||||
|
let loadedCount = 0;
|
||||||
|
modelViewers.forEach(mv => {
|
||||||
|
mv.addEventListener('load', () => {
|
||||||
|
loadedCount++;
|
||||||
|
if (loadedCount === modelViewers.length) {
|
||||||
|
swiper.update();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
@ -1,35 +1,3 @@
|
|||||||
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.js"></script>
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.css">
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
|
||||||
const swiper = new Swiper('.swiper1', {
|
|
||||||
loop: true,
|
|
||||||
slidesPerView: 3,
|
|
||||||
spaceBetween: 20,
|
|
||||||
navigation: {
|
|
||||||
nextEl: '.swiper-button-next',
|
|
||||||
prevEl: '.swiper-button-prev',
|
|
||||||
},
|
|
||||||
centeredSlides: false,
|
|
||||||
noSwiping: true,
|
|
||||||
noSwipingClass: 'swiper-no-swiping',
|
|
||||||
watchSlidesProgress: true,
|
|
||||||
});
|
|
||||||
const modelViewers = document.querySelectorAll('model-viewer');
|
|
||||||
let loadedCount = 0;
|
|
||||||
modelViewers.forEach(mv => {
|
|
||||||
mv.addEventListener('load', () => {
|
|
||||||
loadedCount++;
|
|
||||||
if (loadedCount === modelViewers.length) {
|
|
||||||
swiper.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
# 🖼️ Image-to-3D Service
|
# 🖼️ Image-to-3D Service
|
||||||
[](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Image-to-3D)
|
[](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Image-to-3D)
|
||||||
|
|
||||||
|
|||||||
@ -1,35 +1,3 @@
|
|||||||
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.js"></script>
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.css">
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
|
||||||
const swiper = new Swiper('.swiper1', {
|
|
||||||
loop: true,
|
|
||||||
slidesPerView: 3,
|
|
||||||
spaceBetween: 20,
|
|
||||||
navigation: {
|
|
||||||
nextEl: '.swiper-button-next',
|
|
||||||
prevEl: '.swiper-button-prev',
|
|
||||||
},
|
|
||||||
centeredSlides: false,
|
|
||||||
noSwiping: true,
|
|
||||||
noSwipingClass: 'swiper-no-swiping',
|
|
||||||
watchSlidesProgress: true,
|
|
||||||
});
|
|
||||||
const modelViewers = document.querySelectorAll('model-viewer');
|
|
||||||
let loadedCount = 0;
|
|
||||||
modelViewers.forEach(mv => {
|
|
||||||
mv.addEventListener('load', () => {
|
|
||||||
loadedCount++;
|
|
||||||
if (loadedCount === modelViewers.length) {
|
|
||||||
swiper.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
# 📝 Text-to-3D Service
|
# 📝 Text-to-3D Service
|
||||||
|
|
||||||
[](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Text-to-3D)
|
[](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Text-to-3D)
|
||||||
|
|||||||
@ -1,35 +1,3 @@
|
|||||||
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.js"></script>
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.css">
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
|
||||||
const swiper = new Swiper('.swiper1', {
|
|
||||||
loop: true,
|
|
||||||
slidesPerView: 3,
|
|
||||||
spaceBetween: 20,
|
|
||||||
navigation: {
|
|
||||||
nextEl: '.swiper-button-next',
|
|
||||||
prevEl: '.swiper-button-prev',
|
|
||||||
},
|
|
||||||
centeredSlides: false,
|
|
||||||
noSwiping: true,
|
|
||||||
noSwipingClass: 'swiper-no-swiping',
|
|
||||||
watchSlidesProgress: true,
|
|
||||||
});
|
|
||||||
const modelViewers = document.querySelectorAll('model-viewer');
|
|
||||||
let loadedCount = 0;
|
|
||||||
modelViewers.forEach(mv => {
|
|
||||||
mv.addEventListener('load', () => {
|
|
||||||
loadedCount++;
|
|
||||||
if (loadedCount === modelViewers.length) {
|
|
||||||
swiper.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
# 🎨 Texture Generation Service
|
# 🎨 Texture Generation Service
|
||||||
|
|
||||||
[](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Texture-Gen)
|
[](https://huggingface.co/spaces/HorizonRobotics/EmbodiedGen-Texture-Gen)
|
||||||
|
|||||||
@ -58,6 +58,6 @@ dst_asset_path = cvt_embodiedgen_asset_to_anysim(
|
|||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
<img src="/EmbodiedGen/assets/simulators_collision.jpg" alt="simulators_collision" width="800">
|
<img src="../assets/simulators_collision.jpg" alt="simulators_collision" width="800">
|
||||||
|
|
||||||
Collision and visualization mesh across simulators, showing consistent geometry and material fidelity.
|
Collision and visualization mesh across simulators, showing consistent geometry and material fidelity.
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
# Real-to-Sim Digital Twin Creation
|
# Real-to-Sim Digital Twin Creation
|
||||||
|
|
||||||
<img src="/EmbodiedGen/assets/real2sim_mujoco.gif" alt="real2sim_mujoco" width="600">
|
<img src="../assets/real2sim_mujoco.gif" alt="real2sim_mujoco" width="600">
|
||||||
|
|||||||
@ -14,9 +14,9 @@ python embodied_gen/scripts/parallel_sim.py \
|
|||||||
```
|
```
|
||||||
|
|
||||||
<div style="display: flex; justify-content: center; align-items: center; gap: 16px; margin: 16px 0;">
|
<div style="display: flex; justify-content: center; align-items: center; gap: 16px; margin: 16px 0;">
|
||||||
<img src="/EmbodiedGen/assets/parallel_sim.gif" alt="parallel_sim1"
|
<img src="../assets/parallel_sim.gif" alt="parallel_sim1"
|
||||||
style="width: 330px; max-width: 100%; border-radius: 12px; display: block;">
|
style="width: 330px; max-width: 100%; border-radius: 12px; display: block;">
|
||||||
<img src="/EmbodiedGen/assets/parallel_sim2.gif" alt="parallel_sim2"
|
<img src="../assets/parallel_sim2.gif" alt="parallel_sim2"
|
||||||
style="width: 330px; max-width: 100%; border-radius: 12px; display: block;">
|
style="width: 330px; max-width: 100%; border-radius: 12px; display: block;">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -1,34 +1,3 @@
|
|||||||
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.js"></script>
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.css">
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
|
||||||
const swiper = new Swiper('.swiper1', {
|
|
||||||
loop: true,
|
|
||||||
slidesPerView: 3,
|
|
||||||
spaceBetween: 20,
|
|
||||||
navigation: {
|
|
||||||
nextEl: '.swiper-button-next',
|
|
||||||
prevEl: '.swiper-button-prev',
|
|
||||||
},
|
|
||||||
centeredSlides: false,
|
|
||||||
noSwiping: true,
|
|
||||||
noSwipingClass: 'swiper-no-swiping',
|
|
||||||
watchSlidesProgress: true,
|
|
||||||
});
|
|
||||||
const modelViewers = document.querySelectorAll('model-viewer');
|
|
||||||
let loadedCount = 0;
|
|
||||||
modelViewers.forEach(mv => {
|
|
||||||
mv.addEventListener('load', () => {
|
|
||||||
loadedCount++;
|
|
||||||
if (loadedCount === modelViewers.length) {
|
|
||||||
swiper.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
# 🖼️ Image-to-3D: Physically Plausible 3D Asset Generation
|
# 🖼️ Image-to-3D: Physically Plausible 3D Asset Generation
|
||||||
|
|
||||||
Generate **physically plausible 3D assets** from a single input image, supporting **digital twin** and **simulation environments**.
|
Generate **physically plausible 3D assets** from a single input image, supporting **digital twin** and **simulation environments**.
|
||||||
|
|||||||
@ -1,35 +1,3 @@
|
|||||||
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.js"></script>
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.css">
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
|
||||||
const swiper = new Swiper('.swiper1', {
|
|
||||||
loop: true,
|
|
||||||
slidesPerView: 3,
|
|
||||||
spaceBetween: 20,
|
|
||||||
navigation: {
|
|
||||||
nextEl: '.swiper-button-next',
|
|
||||||
prevEl: '.swiper-button-prev',
|
|
||||||
},
|
|
||||||
centeredSlides: false,
|
|
||||||
noSwiping: true,
|
|
||||||
noSwipingClass: 'swiper-no-swiping',
|
|
||||||
watchSlidesProgress: true,
|
|
||||||
});
|
|
||||||
const modelViewers = document.querySelectorAll('model-viewer');
|
|
||||||
let loadedCount = 0;
|
|
||||||
modelViewers.forEach(mv => {
|
|
||||||
mv.addEventListener('load', () => {
|
|
||||||
loadedCount++;
|
|
||||||
if (loadedCount === modelViewers.length) {
|
|
||||||
swiper.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
# Tutorials & Interface Usage
|
# Tutorials & Interface Usage
|
||||||
|
|
||||||
Welcome to the tutorials for `EmbodiedGen`. `EmbodiedGen` is a powerful toolset for generating 3D assets, textures, scenes, and interactive layouts ready for simulators and digital twin environments.
|
Welcome to the tutorials for `EmbodiedGen`. `EmbodiedGen` is a powerful toolset for generating 3D assets, textures, scenes, and interactive layouts ready for simulators and digital twin environments.
|
||||||
@ -161,7 +129,7 @@ Generate **high-quality textures** for 3D meshes using **text prompts**, support
|
|||||||
|
|
||||||
Generate **physically consistent and visually coherent 3D environments** from text prompts. Typically used as **background** 3DGS scenes in simulators for efficient and photo-realistic rendering.
|
Generate **physically consistent and visually coherent 3D environments** from text prompts. Typically used as **background** 3DGS scenes in simulators for efficient and photo-realistic rendering.
|
||||||
|
|
||||||
<img src="/EmbodiedGen/assets/scene3d.gif" style="width: 500px; max-width: 100%; border-radius: 12px; display: block; margin: 16px auto;">
|
<img src="../assets/scene3d.gif" style="width: 600px; max-width: 100%; border-radius: 12px; display: block; margin: 16px auto;">
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -170,10 +138,10 @@ Generate **physically consistent and visually coherent 3D environments** from te
|
|||||||
Generate diverse, physically realistic, and scalable **interactive 3D scenes** from natural language task descriptions, while also modeling the robot and manipulable objects.
|
Generate diverse, physically realistic, and scalable **interactive 3D scenes** from natural language task descriptions, while also modeling the robot and manipulable objects.
|
||||||
|
|
||||||
<div align="center" style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; justify-items: center; margin: 20px 0;">
|
<div align="center" style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; justify-items: center; margin: 20px 0;">
|
||||||
<img src="/EmbodiedGen/assets/layout1.gif" alt="layout1" style="width: 400px; border-radius: 12px; display: block;">
|
<img src="../assets/layout1.gif" alt="layout1" style="width: 400px; border-radius: 12px; display: block;">
|
||||||
<img src="/EmbodiedGen/assets/layout2.gif" alt="layout2" style="width: 400px; border-radius: 12px; display: block;">
|
<img src="../assets/layout2.gif" alt="layout2" style="width: 400px; border-radius: 12px; display: block;">
|
||||||
<img src="/EmbodiedGen/assets/layout3.gif" alt="layout3" style="width: 400px; border-radius: 12px; display: block;">
|
<img src="../assets/layout3.gif" alt="layout3" style="width: 400px; border-radius: 12px; display: block;">
|
||||||
<img src="/EmbodiedGen/assets/Iscene_demo2.gif" alt="layout4" style="width: 400px; border-radius: 12px; display: block;">
|
<img src="../assets/Iscene_demo2.gif" alt="layout4" style="width: 400px; border-radius: 12px; display: block;">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -184,9 +152,9 @@ Generate diverse, physically realistic, and scalable **interactive 3D scenes** f
|
|||||||
Generate multiple **parallel simulation environments** with `gym.make` and record sensor and trajectory data.
|
Generate multiple **parallel simulation environments** with `gym.make` and record sensor and trajectory data.
|
||||||
|
|
||||||
<div style="display: flex; justify-content: center; align-items: center; gap: 16px; margin: 16px 0;">
|
<div style="display: flex; justify-content: center; align-items: center; gap: 16px; margin: 16px 0;">
|
||||||
<img src="/EmbodiedGen/assets/parallel_sim.gif" alt="parallel_sim1"
|
<img src="../assets/parallel_sim.gif" alt="parallel_sim1"
|
||||||
style="width: 330px; max-width: 100%; border-radius: 12px; display: block;">
|
style="width: 330px; max-width: 100%; border-radius: 12px; display: block;">
|
||||||
<img src="/EmbodiedGen/assets/parallel_sim2.gif" alt="parallel_sim2"
|
<img src="../assets/parallel_sim2.gif" alt="parallel_sim2"
|
||||||
style="width: 330px; max-width: 100%; border-radius: 12px; display: block;">
|
style="width: 330px; max-width: 100%; border-radius: 12px; display: block;">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -198,11 +166,11 @@ Generate multiple **parallel simulation environments** with `gym.make` and recor
|
|||||||
Seamlessly use EmbodiedGen-generated assets in major simulators like **IsaacSim**, **MuJoCo**, **Genesis**, **PyBullet**, **IsaacGym**, and **SAPIEN**, featuring **accurate physical collisions** and **consistent visual appearance**.
|
Seamlessly use EmbodiedGen-generated assets in major simulators like **IsaacSim**, **MuJoCo**, **Genesis**, **PyBullet**, **IsaacGym**, and **SAPIEN**, featuring **accurate physical collisions** and **consistent visual appearance**.
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="/EmbodiedGen/assets/simulators_collision.jpg" alt="simulators_collision" style="width: 400px; max-width: 100%; border-radius: 12px; display: block; margin: 16px 0;">
|
<img src="../assets/simulators_collision.jpg" alt="simulators_collision" style="width: 600px; max-width: 100%; border-radius: 12px; display: block; margin: 16px 0;">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## [🔧 Real-to-Sim Digital Twin Creation](digital_twin.md)
|
## [🔧 Real-to-Sim Digital Twin Creation](digital_twin.md)
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="/EmbodiedGen/assets/real2sim_mujoco.gif" alt="real2sim_mujoco" style="width: 400px; max-width: 100%; border-radius: 12px; display: block; margin: 16px 0;">
|
<img src="../assets/real2sim_mujoco.gif" alt="real2sim_mujoco" style="width: 400px; max-width: 100%; border-radius: 12px; display: block; margin: 16px 0;">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -3,10 +3,10 @@
|
|||||||
Layout Generation enables the generation of diverse, physically realistic, and scalable **interactive 3D scenes** directly from natural language task descriptions, while also modeling the robot's pose and relationships with manipulable objects. Target objects are randomly placed within the robot's reachable range, making the scenes readily usable for downstream simulation and reinforcement learning tasks in any mainstream simulator.
|
Layout Generation enables the generation of diverse, physically realistic, and scalable **interactive 3D scenes** directly from natural language task descriptions, while also modeling the robot's pose and relationships with manipulable objects. Target objects are randomly placed within the robot's reachable range, making the scenes readily usable for downstream simulation and reinforcement learning tasks in any mainstream simulator.
|
||||||
|
|
||||||
<div align="center" style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; justify-items: center; margin: 20px 0;">
|
<div align="center" style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; justify-items: center; margin: 20px 0;">
|
||||||
<img src="/EmbodiedGen/assets/layout1.gif" alt="layout1" style="width: 400px; border-radius: 12px; display: block;">
|
<img src="../assets/layout1.gif" alt="layout1" style="width: 400px; border-radius: 12px; display: block;">
|
||||||
<img src="/EmbodiedGen/assets/layout2.gif" alt="layout2" style="width: 400px; border-radius: 12px; display: block;">
|
<img src="../assets/layout2.gif" alt="layout2" style="width: 400px; border-radius: 12px; display: block;">
|
||||||
<img src="/EmbodiedGen/assets/layout3.gif" alt="layout3" style="width: 400px; border-radius: 12px; display: block;">
|
<img src="../assets/layout3.gif" alt="layout3" style="width: 400px; border-radius: 12px; display: block;">
|
||||||
<img src="/EmbodiedGen/assets/Iscene_demo2.gif" alt="layout4" style="width: 400px; border-radius: 12px; display: block;">
|
<img src="../assets/Iscene_demo2.gif" alt="layout4" style="width: 400px; border-radius: 12px; display: block;">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
!!! note "Model Requirement"
|
!!! note "Model Requirement"
|
||||||
@ -26,7 +26,7 @@ Each scene takes approximately **30 minutes** to generate. For efficiency, we re
|
|||||||
hf download xinjjj/scene3d-bg --repo-type dataset --local-dir outputs
|
hf download xinjjj/scene3d-bg --repo-type dataset --local-dir outputs
|
||||||
|
|
||||||
# Option 2: Download a larger background set (~14 GB)
|
# Option 2: Download a larger background set (~14 GB)
|
||||||
hf download xinjjj/EmbodiedGenRLv2-BG --repo-type dataset --local-dir outputs
|
hf download xinjjj..RLv2-BG --repo-type dataset --local-dir outputs
|
||||||
```
|
```
|
||||||
|
|
||||||
## Generate Interactive Layout Scenes
|
## Generate Interactive Layout Scenes
|
||||||
@ -43,12 +43,15 @@ layout-cli \
|
|||||||
```
|
```
|
||||||
|
|
||||||
You will get the following results:
|
You will get the following results:
|
||||||
<div align="center" style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; justify-items: center; margin: 20px 0;">
|
<div align="center" style="display: flex; justify-content: center; align-items: flex-start; gap: 24px; margin: 20px auto; flex-wrap: wrap;">
|
||||||
<img src="/EmbodiedGen/assets/Iscene_demo1.gif" alt="Iscene_demo1" style="width: 240px; border-radius: 12px; display: block;">
|
<img src="../assets/Iscene_demo1.gif" alt="Iscene_demo1"
|
||||||
<img src="/EmbodiedGen/assets/Iscene_demo2.gif" alt="Iscene_demo2" style="width: 480px; border-radius: 12px; display: block;">
|
style="height: 200px; border-radius: 12px; display: block; width: auto;">
|
||||||
|
<img src="../assets/Iscene_demo2.gif" alt="Iscene_demo2"
|
||||||
|
style="height: 200px; border-radius: 12px; display: block; width: auto;">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Batch Generation
|
### Batch Generation
|
||||||
|
|
||||||
You can also run multiple tasks via a task list file in the backend.
|
You can also run multiple tasks via a task list file in the backend.
|
||||||
|
|||||||
@ -4,7 +4,7 @@ Generate **physically consistent and visually coherent 3D environments** from te
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<img src="/EmbodiedGen/assets/scene3d.gif" style="width: 600px; border-radius: 12px; display: block; margin: 16px auto;">
|
<img src="../assets/scene3d.gif" style="width: 600px; border-radius: 12px; display: block; margin: 16px auto;">
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@ -1,35 +1,3 @@
|
|||||||
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.js"></script>
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.css">
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
|
||||||
const swiper = new Swiper('.swiper1', {
|
|
||||||
loop: true,
|
|
||||||
slidesPerView: 3,
|
|
||||||
spaceBetween: 20,
|
|
||||||
navigation: {
|
|
||||||
nextEl: '.swiper-button-next',
|
|
||||||
prevEl: '.swiper-button-prev',
|
|
||||||
},
|
|
||||||
centeredSlides: false,
|
|
||||||
noSwiping: true,
|
|
||||||
noSwipingClass: 'swiper-no-swiping',
|
|
||||||
watchSlidesProgress: true,
|
|
||||||
});
|
|
||||||
const modelViewers = document.querySelectorAll('model-viewer');
|
|
||||||
let loadedCount = 0;
|
|
||||||
modelViewers.forEach(mv => {
|
|
||||||
mv.addEventListener('load', () => {
|
|
||||||
loadedCount++;
|
|
||||||
if (loadedCount === modelViewers.length) {
|
|
||||||
swiper.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
# 📝 Text-to-3D: Generate 3D Assets from Text
|
# 📝 Text-to-3D: Generate 3D Assets from Text
|
||||||
|
|
||||||
Create **physically plausible 3D assets** from **text descriptions**, supporting a wide range of geometry, style, and material details.
|
Create **physically plausible 3D assets** from **text descriptions**, supporting a wide range of geometry, style, and material details.
|
||||||
|
|||||||
@ -1,35 +1,3 @@
|
|||||||
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.js"></script>
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.css">
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
|
||||||
const swiper = new Swiper('.swiper1', {
|
|
||||||
loop: true,
|
|
||||||
slidesPerView: 3,
|
|
||||||
spaceBetween: 20,
|
|
||||||
navigation: {
|
|
||||||
nextEl: '.swiper-button-next',
|
|
||||||
prevEl: '.swiper-button-prev',
|
|
||||||
},
|
|
||||||
centeredSlides: false,
|
|
||||||
noSwiping: true,
|
|
||||||
noSwipingClass: 'swiper-no-swiping',
|
|
||||||
watchSlidesProgress: true,
|
|
||||||
});
|
|
||||||
const modelViewers = document.querySelectorAll('model-viewer');
|
|
||||||
let loadedCount = 0;
|
|
||||||
modelViewers.forEach(mv => {
|
|
||||||
mv.addEventListener('load', () => {
|
|
||||||
loadedCount++;
|
|
||||||
if (loadedCount === modelViewers.length) {
|
|
||||||
swiper.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
# 🎨 Texture Generation: Create Visually Rich Textures for 3D Meshes
|
# 🎨 Texture Generation: Create Visually Rich Textures for 3D Meshes
|
||||||
|
|
||||||
Generate **high-quality textures** for 3D meshes using **text prompts**, supporting both **Chinese and English**. This allows you to enhance the visual appearance of existing 3D assets for simulation, visualization, or digital twin applications.
|
Generate **high-quality textures** for 3D meshes using **text prompts**, supporting both **Chinese and English**. This allows you to enhance the visual appearance of existing 3D assets for simulation, visualization, or digital twin applications.
|
||||||
|
|||||||
@ -3,6 +3,7 @@ site_url: https://horizonrobotics.github.io/EmbodiedGen/
|
|||||||
repo_name: "EmbodiedGen"
|
repo_name: "EmbodiedGen"
|
||||||
repo_url: https://github.com/HorizonRobotics/EmbodiedGen
|
repo_url: https://github.com/HorizonRobotics/EmbodiedGen
|
||||||
copyright: "Copyright (c) 2025 Horizon Robotics"
|
copyright: "Copyright (c) 2025 Horizon Robotics"
|
||||||
|
use_directory_urls: false
|
||||||
|
|
||||||
nav:
|
nav:
|
||||||
- 🏠 Home: index.md
|
- 🏠 Home: index.md
|
||||||
@ -102,6 +103,13 @@ plugins:
|
|||||||
|
|
||||||
extra_css:
|
extra_css:
|
||||||
- stylesheets/extra.css
|
- stylesheets/extra.css
|
||||||
|
- https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.css
|
||||||
|
|
||||||
|
extra_javascript:
|
||||||
|
- https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.js
|
||||||
|
- path: https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js
|
||||||
|
type: module
|
||||||
|
- js/model_viewer.js
|
||||||
|
|
||||||
markdown_extensions:
|
markdown_extensions:
|
||||||
- pymdownx.highlight
|
- pymdownx.highlight
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user