Docker setup to render it headless or view it interactively in a browser.
Scene assets live on Hugging Face
(Parkprogrammer/droid2sim);
this repo holds the code and Docker setup to run them.
# 1. clone
git clone git@github.com:SNU-PI/droid2sim.git
cd droid2sim
# 2. download the scene into data/panclean/
huggingface-cli download Parkprogrammer/droid2sim --repo-type dataset \
--include "scenes/panclean/*" \
--local-dir /tmp/hf-droid2sim
mkdir -p data
mv /tmp/hf-droid2sim/scenes/panclean data/panclean
# 3. start Isaac Sim (pick a free GPU; opens WebRTC + fixes data/ perms)
./scripts/docker/launch.sh -g 0The container mounts this repo at /work, so data/panclean is
/work/data/panclean inside it regardless of where you cloned.
docker exec -e SCENE_DIR=/work/data/panclean isim0-isaac-sim-1 \
/isaac-sim/python.sh /work/scripts/docker_render/render_views.py \
--view match --axis-convert --out kitchen.png
docker cp isim0-isaac-sim-1:/tmp/kitchen.png ./kitchen.png # OUT_DIR defaults to /tmpOpen http://<server-ip>:8210/ (port is 8210 + GPU). launch.sh loads the
kitchen into the live GUI once the container is healthy (framed through the
viewcam camera), so the browser shows the scene directly — no manual open.
Connect to the server IP directly — an SSH tunnel will not work (WebRTC media
is UDP). To re-open the scene without restarting, run
./scripts/docker/open_scene.sh -g 0. Details and live-scripting in
docs/interactive_gui.md.
Stop with ./scripts/docker/down.sh -g 0.
scripts/
├── docker/ launch.sh / down.sh / stream.sh (per-GPU container control)
├── docker_render/ render_views / inspect_scene / measure_alignment / gui_send
├── glb_to_usd.py glTF → USD conversion (NVIDIA omni.kit.asset_converter)
└── build_alchera_real.py assemble a scene.usda placed in the robot frame
docker/ docker-compose.yml + web-viewer (WebRTC)
docs/
├── interactive_gui.md browser GUI, live control, the teal-material gotcha
└── polaris_reproduction.md earlier PolaRiS real-to-sim eval reproduction
- Source assets are Y-up, real scale (countertop ~1.1 m); the DROID robot
frame is Z-up with the surface ~0.05 m from the base.
render_views.py --axis-convertandbuild_alchera_real.pyhandle the conversion. - If materials render teal/cyan, texture files are unreadable by the
container user —
launch.shfixes this (chmod a+rX data/); seedocs/interactive_gui.md.