Environment
- Isaac Sim Version: 4.5.0
- OS: Ubuntu 22.04
- Hardware: NVIDIA RTX 4090
- Python: 3.10
Problem Description
I’m generating social navigation datasets using Isaac Sim’s NavMesh and Character Randomizer. The script hangs indefinitely when calling navmesh.query_shortest_path() inside the GoTo.get_parameters() method during character command generation.
Expected Behavior
The query_shortest_path() call should either:
- Return a valid path object if reachable
- Return
Noneif unreachable - Complete within a reasonable timeout (< 1 second per call)
Actual Behavior
The script hangs forever at query_shortest_path() with no error message, CPU/GPU utilization stays low, and the process never recovers.
Reproduction Steps
1. Scene Setup
# Load scene and bake NavMesh
StageUtil.open_stage("my_scene.usd")
# Configure NavMesh
settings = carb.settings.get_settings()
settings.set(NavMeshSettings.AGENT_HEIGHT_SETTING_PATH, 180)
settings.set(NavMeshSettings.AGENT_RADIUS_SETTING_PATH, 50)
# Bake NavMesh
_inav = nav.acquire_interface()
_inav.start_navmesh_baking()
# ... wait for baking to complete ...
navmesh = _inav.get_navmesh()
2. Character Command Generation
# Generate 8 characters at random positions
character_positions = {} # {char_name: Gf.Vec3d(...)}
for i in range(8):
char_name = f"Character_{i}"
pos = navmesh.query_random_point(char_name)
character_positions[char_name] = Gf.Vec3d(pos[0], pos[1], pos[2])
# Generate commands using CharacterRandomizer
randomizer = CharacterRandomizer(seed=42)
randomizer.navmesh = navmesh
commands = randomizer.generate_commands(
global_seed=42,
duration=30.0,
agent_list=character_positions
)
3. The Hang Location
Inside character_randomizer.py → GoTo.get_parameters():
class GoTo(Command):
def get_parameters(self):
distance = np.random.uniform(5, 20)
agent_pos = self.agent_list[self.agent] # Gf.Vec3d
# Generate target point
loc_offset = RandomizerUtil.decompose_distance(distance)
target_point = CarbUtil.add3(agent_pos, loc_offset)
closest_point = self.navmesh.query_closest_point(target_point)
# ⚠️ THIS CALL HANGS INDEFINITELY
path = self.navmesh.query_shortest_path(agent_pos, closest_point)
# Never returns, no error, no timeout
Additional Context
What I’ve Tried
- ✅ NavMesh is valid:
navmesh.query_random_point()works fine - ✅ Points are on NavMesh:
query_closest_point()returns valid results - ✅ Tried different seeds: Problem persists across different random seeds
- ❌ No timeout mechanism: The call never returns or throws an exception
- ✅ Reduced character count: Hangs even with 1-2 characters
Workarounds Attempted
- Skip path validation: Remove
query_shortest_path()call entirely → Commands generate but paths may be unreachable - Pre-generate target pool: Generate all GoTo targets upfront → Still hangs during pre-generation phase
- Increase NavMesh resolution: No effect
Related Code Locations
The issue occurs in:
/isaac-sim/extscache/isaacsim.replicator.agent.core-0.5.14+106.5.0/
isaacsim/replicator/agent/core/randomization/character_randomizer.py
Questions
- Is there a known issue with
query_shortest_path()hanging in Isaac Sim 4.5? - Are there recommended timeout mechanisms or async alternatives?
- Should we avoid calling
query_shortest_path()in batch character generation? - Is there a maximum number of path queries that should be made?
Any guidance would be greatly appreciated. This is blocking our dataset generation pipeline.
Logs
No error messages are produced. The last console output before hanging:
DEBUG: Starting command generation loop (target duration: 30.0)...
--- Command #2 for agent Character ---
Current time: 2.11/30.0
Getting transition probabilities from 'LookAround'...
Transition probs: [0.7 0.3 0. ]
Sampling new command index...
New command index: 0 ('GoTo')
Creating new command...
New command created: <class '...GoTo'>
New command duration: 12.13
Getting command text...
[HANGS HERE - NO FURTHER OUTPUT]
Thank you for any help!