File size: 3,452 Bytes
1d3e2bd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
## Using with IDE Agent via Natural Language

The Agent will automatically load this skill based on its **description** when you mention URDF, floorplan, indoor scene, object placement, etc. You only need to specify in natural language **what to do** and provide **key information like paths/room names**.

### LLM Environment Configuration (When Using Semantic Matching)

If you want to use natural language descriptions (e.g., "put lamp on bookshelf") instead of exact instance/room names, you need to configure the LLM environment first:

```bash
# If outputs/env.sh exists, source it first
source outputs/env.sh
```

If access to the LLM interface is unavailable, please provide exact instance names (you can check them via `--list_instances`).

### URDF Visualization Only (Generate Floorplan)

**You can say:**
- "Help me visualize `path_to/scene.urdf` or `path_to/folder_contain/scene.urdf`"

**Agent will:** Use `visualize_floorplan(urdf_path=..., output_path=...)` or the corresponding CLI to generate the floorplan only, without modifying URDF/USD.

### Insert Object and Update Scene (URDF, or URDF+USD)

**You can say:**
- "Put `chair.obj` into scene.urdf's kitchen room"
- "Put `bottle.obj` into the URDF at `outputs/rooms/Kitchen_seed3773`, instance name bottle_1, update scene and generate floorplan"
- "Put a cup on the table in the living room" → Agent will use `on_instance="table"`, `place_strategy="top"`, etc.

**If you also want to update USD:**
- "Put a chair in the kitchen, update both URDF and USD, USD path is `xxx/usd/export_scene.usdc`"
- Note that you need to use **room-cli** to execute (this skill will prompt the Agent), because writing USD requires bpy.

**Agent will:** Use `FloorplanManager` + `insert_object` (or `insert_object_to_scene`), execute according to the paths and room names you provided; when USD is needed, use room-cli to run the CLI.

### View Instances and Rooms in the Scene

Before placing objects, you can first view what instances and rooms are in the scene:

**You can say:**
- "Help me list all instances and room names in `.../scene.urdf`"

**Agent will:** Execute `--list_instances` to display the instance names and room names in the current scene.

### URDF/USD Output Notes

- **URDF Output**: The updated URDF is written to `*_updated.urdf` by default (e.g., `scene.urdf``scene_updated.urdf`), and **will not overwrite** the original `scene.urdf`
- **USD Output**: If `usd_path` is specified, the USD file will be written to `*_updated.usdc` following the same rule
- **Only Update USD**: Requires using **room-cli** to execute, because writing USD needs Blender (bpy)

### What Information to Provide

| Goal | Suggested Information to Provide in Conversation |
|------|-----------------------------------------------|
| Visualization only | URDF path, floorplan save path (optional, Agent can default to floorplan.png in same directory) |
| View instances/rooms | URDF path, let Agent list instance names and room names in current scene |
| Placement + update | URDF path, object mesh path (.obj), instance name (e.g., chair_1), room name (e.g., kitchen); if placing on table, say "place on table"; if updating USD, also provide USD path and use room-cli |

Example in one go: "Use spatial_computing skill, generate floorplan for `.../scene.urdf` and save to floorplan.png in same directory, then put `path/to/bottle.obj` into kitchen, instance name bottle_1, update URDF only."