Use Built-in UrbanVerse Scenes#

UrbanVerse comes with a curated set of 160 fully assembled, metric-scale 3D scenes extracted from city-tour videos and generated using UrbanVerse-Gen. These scenes are ready to be loaded, visualized, edited, or used for training in Isaac Sim.

This quickstart page shows how to:

  • load the built-in UrbanVerse-160 scenes,

  • inspect scene metadata,

  • and open them directly in Isaac Sim UI for visual debugging.

All APIs follow the standard UrbanVerse convention:

import urbanverse as uv

Prerequisite#

Before using UrbanVerse-160, ensure you have set:

export URBANVERSE_SCENE_ROOT="/path/to/UrbanVerse-160"

Inside this folder, each scene is organized as:

UrbanVerse-160/
├── CapeTown_0001/
│    └── scene.usd
├── Tokyo_0003/
│    └── scene.usd
├── Seoul_0007/
│    └── scene.usd
└── ...

Each folder contains a standalone simulation environment compatible with Isaac Sim.

Loading UrbanVerse-160 Scenes#

UrbanVerse provides a simple loader for discovering all available scenes.

API#

uv.scenes.load_urbanverse_scenes(
    scene_root: str | None = None,
) -> list[str]

If scene_root is not provided, the environment variable $URBANVERSE_SCENE_ROOT is used automatically.

Example#

import urbanverse as uv

scene_paths = uv.scenes.load_urbanverse_scenes()
print("Total UrbanVerse scenes:", len(scene_paths))
print("Example:", scene_paths[0])

Typical output:

Total UrbanVerse scenes: 160
Example: /data/UrbanVerse-160/CapeTown_0001/scene.usd

Inspecting Scene Metadata (Optional)#

Each scene folder includes metadata.json containing information such as:

  • city / country

  • approximate route length

  • number of object instances

  • number of unique object categories

  • ground area (road / sidewalk)

  • sky HDRI name

API#

uv.scenes.load_metadata(scene_path: str) -> dict

Example#

meta = uv.scenes.load_metadata(scene_paths[0])
print(meta)

Spawning UrbanVerse-160 Scenes in Isaac Sim UI#

UrbanVerse provides a helper utility to launch Isaac Sim in UI mode and load a specific scene.

This is useful for:

  • checking 3D reconstruction accuracy,

  • verifying object placement & physics,

  • debugging robot interaction,

  • visualizing ground materials & HDRI lighting.

API#

uv.scenes.launch_in_isaacsim(
    scene_usd_path: str,
    headless: bool = False,
)

Example#

The snippet below loads CapeTown_0001 directly in Isaac Sim UI:

import urbanverse as uv

scene_paths = uv.scenes.load_urbanverse_scenes()

uv.scenes.launch_in_isaacsim(
    scene_usd_path=scene_paths[0],   # CapeTown_0001
    headless=False                    # open full UI
)

Running this opens Isaac Sim, showing the entire UrbanVerse scene with:

  • textured road & sidewalk,

  • photorealistic HDRI dome lighting,

  • fully placed objects (cars, pedestrians, street furniture, etc.),

  • real-world metric scale and geometry.

You can freely move the camera, inspect assets, toggle physics, and debug your robot setup.

Filtering Scenes by Statistics (Optional)#

Many users want to choose scenes by characteristics — e.g., scenes with:

  • long route trajectories,

  • high object density.

UrbanVerse provides a metadata-based filter:

API#

uv.scenes.filter_scenes(
    scenes: list[str],
    min_objects: int | None = None,
    max_objects: int | None = None,
    min_route_length: float | None = None,
    city: str | None = None,
) -> list[str]

Example#

Select scenes containing at least 200 objects and with a route length over 250 m:

import urbanverse as uv

scene_paths = uv.scenes.load_urbanverse_scenes()
filtered = uv.scenes.filter_scenes(
    scenes=scene_paths,
    min_objects=200,
    min_route_length=250.0,
)

print("Filtered scenes:", len(filtered))

Summary#

This page demonstrates how to:

  • load the 160 built-in UrbanVerse scenes,

  • inspect metadata,

  • visualize scenes in Isaac Sim UI,

  • optionally filter scenes by statistics.

UrbanVerse-160 offers a diverse set of real-world grounded environments — use them for debugging, visualization, training preparation, and experimentation.