Skip to content

[crazy-robotaxi] Implement new map system to replace scenes - #507

Open
aidanfnv wants to merge 54 commits into
NVIDIA:dev/aidanf/game/crazy-robotaxifrom
aidanfnv:dev/aidanf/game/crazy-robotaxi-map
Open

[crazy-robotaxi] Implement new map system to replace scenes#507
aidanfnv wants to merge 54 commits into
NVIDIA:dev/aidanf/game/crazy-robotaxifrom
aidanfnv:dev/aidanf/game/crazy-robotaxi-map

Conversation

@aidanfnv

Copy link
Copy Markdown
Collaborator

Using the USDZ scenes makes it difficult to manipulate the game world, such as determining boundaries that are not explicit in the world, or even figuring out what constitutes a road.

This change replaces the USDZ loading with a compiler that takes a game map defined in a YAML file, loads it into a internal game map structure, and compiles it to USDZ for Omnidreams to use.

That way, the game has complete knowledge of and ownership over the map and its structure, and the renderer receives the map from the game instead of the game trying to reverse-engineer the map to use it.

Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Keep offscreen traffic logical while limiting PhysX and scene conditioning to the ego's graph neighborhood. Apply the same filtering to waiting passengers and preserve logical timestamps across activation changes.\n\nAdd a force-map-recompile CLI escape hatch and keep prerelease map compiler and schema versions at 1.

Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Reject distant map footprints with precomputed bounds and vectorize exact containment tests. This removes traffic-count-independent chunk stalls from repeated graph-vicinity resolution.

Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Build visibility from both road endpoints or the current node, then include adjacent nodes and their incident public roads. Remove direction-dependent vicinity APIs and cover the expanded traffic and pedestrian rings.

Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Aug 24, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@aidanfnv
aidanfnv marked this pull request as ready for review August 24, 2026 17:24
@greptile-apps

greptile-apps Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR replaces Crazy Robotaxi’s prebuilt USDZ scene flow with authored YAML node-graph maps that are validated, compiled, cached, and supplied to the renderer. Major changes include:

  • Adds the map schema, loader, compiler, previews, traffic derivation, vicinity resolution, and bundled map definitions.
  • Integrates compiled map geometry with navigation, physics, fare selection, rendering, CLI configuration, and scene switching.
  • Adds strict renderer and gameplay YAML settings alongside extensive map and runtime tests.

Confidence Score: 4/5

The PR is not yet safe to merge because the map-selection lifecycle remains bypassed in both launch modes and native HUD exit still closes the session.

The current CLI unconditionally loads config.scene_path without consulting the disabled-by-default auto_start setting, and its native HUD exit branch breaks the loop rather than returning to wait_for_scene_selection.

Files Needing Attention: apps/crazy_robotaxi/crazy_robotaxi/cli.py

Important Files Changed

Filename Overview
apps/omnidreams_game_engine/omnidreams_game_engine/game_map/loader.py Loads and validates authored YAML maps into the engine’s internal map representation.
apps/omnidreams_game_engine/omnidreams_game_engine/game_map/compiler.py Compiles map topology and resolved geometry into cached renderer assets.
apps/crazy_robotaxi/crazy_robotaxi/cli.py Migrates discovery and launch behavior to YAML maps, but the previously reported initial and replacement selection lifecycle remains broken.
apps/crazy_robotaxi/crazy_robotaxi/app.py Connects compiled map data, fare regions, curbs, vicinity resolution, and configurable ground snapping to gameplay.
apps/crazy_robotaxi/crazy_robotaxi/game.py Adapts taxi gameplay and fare behavior to the new map-owned navigation and region data.
integrations/omnidreams/ludus-renderer/ludus_renderer/_cpp/physx/bindings.cpp Extends native PhysX bindings needed by the map-backed simulation path.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  YAML[Robotaxi YAML map] --> Loader[Validate and load map]
  Loader --> Model[Internal game-map model]
  Model --> Compiler[Compile and cache USDZ]
  Compiler --> Renderer[OmniDreams renderer]
  Model --> Navigation[Navigation and fare routing]
  Model --> Physics[Curbs, traffic, and vicinity]
  Renderer --> Runtime[Crazy Robotaxi runtime]
  Navigation --> Runtime
  Physics --> Runtime
Loading

Reviews (7): Last reviewed commit: "Bound NPC collision recovery settling" | Re-trigger Greptile

Comment thread apps/crazy_robotaxi/crazy_robotaxi/cli.py
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant