# Room Creator

> Generate indoor rooms (single room or house) and export URDF/USD by wrapping embodied_gen/scripts/room_gen/gen_room.py. Use when users ask to create rooms with seed control, choose room type and complexity, run generation/export stages, or run reproducible room generation jobs (batch runs can be done by wrapping this command in an outer loop/script).

- Skill: `horizonrobotics/room-creator` (Agent Skill)
- Install (CLI): `npx skillmds@latest add horizonrobotics/room-creator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/horizonrobotics/room-creator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: horizonrobotics (https://skillmd.com/u/horizonrobotics)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/horizonrobotics/room-creator

---


# Room Creator

Generate room scenes with `room-cli -m embodied_gen.scripts.room_gen.gen_room` from infinigen(https://github.com/princeton-vl/infinigen) and optionally export URDF/USD. `room-cli` forwards its arguments to the bundled Blender Python (has `bpy` and room deps installed by `bash install.sh room`); running `python -m embodied_gen.scripts.room_gen.gen_room` from the `embodiedgen` env works too since heavy stages dispatch to Blender Python internally either way.

## Use This Workflow

1. Confirm output root and target room profile.
2. Choose generation scope:
- `--gen --urdf --usd` for full pipeline.
- `--gen --no-urdf --no-usd` for generation only.
- `--no-gen --urdf --usd` for export from existing blender output.
3. Run the command from repository root.
4. Verify output folder: `<output_root>/<RoomType>_seed<seed>/` (if `--seed` is omitted, check the generated seed from logs first).

## Parameters

- `--output-root` (required): base output directory.
- `--prompt`: natural-language task/scene description; a GPT router infers room type and complexity from it, overriding `--room-type`/`--complexity`. Requires a configured GPT agent.
- `--room-type`: `Bedroom | LivingRoom | Kitchen | Bathroom | DiningRoom | Office | House`.
- `--seed`: random seed. For reproducible runs, pass this explicitly; if omitted, a random seed is generated.
- `--complexity`: `minimalist | simple | medium | detail`.
- `--custom-params`: gin file copied to Infinigen `custom_solve.gin`.
- `--large-scene`: only for `House`; enables more rooms.
- `--gen/--no-gen`, `--urdf/--no-urdf`, `--usd/--no-usd`: pipeline switches.

## Complexity Guidance

- `minimalist`: fastest, sparse furniture.
- `simple`: default, balanced quality/time.
- `medium`: richer layout, slower.
- `detail`: highest detail, longest runtime.

## Command Templates

```bash
# Full pipeline for one kitchen
room-cli -m embodied_gen.scripts.room_gen.gen_room \
  --output-root outputs/rooms \
  --room-type Kitchen \
  --seed 42 \
  --complexity simple
```

```bash
# Generation only (no export)
room-cli -m embodied_gen.scripts.room_gen.gen_room \
  --output-root outputs/rooms \
  --room-type LivingRoom \
  --seed 100 \
  --complexity medium \
  --no-urdf --no-usd
```

```bash
# Export only from existing blender result
room-cli -m embodied_gen.scripts.room_gen.gen_room \
  --output-root outputs/rooms \
  --room-type Kitchen \
  --seed 42 \
  --no-gen --urdf --usd
```

```bash
# House generation (use --large-scene for more rooms)
room-cli -m embodied_gen.scripts.room_gen.gen_room \
  --output-root outputs/rooms \
  --room-type House \
  --seed 7 \
  --complexity simple \
  --large-scene
```

## Runtime Requirements

- Run from repo root so relative paths resolve.
- `room-cli` resolves Blender Python from `$BLENDER_PYTHON_BIN` if set, else falls back to
  `thirdparty/infinigen/blender/4.2/python/bin/python3.11` (must exist on disk).
- `--no-gen` requires existing blender output at:
  `<output_root>/<RoomType>_seed<seed>/blender`.

