[crazy-robotaxi] Implement new map system to replace scenes - #507
Open
aidanfnv wants to merge 54 commits into
Open
[crazy-robotaxi] Implement new map system to replace scenes#507aidanfnv wants to merge 54 commits into
aidanfnv wants to merge 54 commits into
Conversation
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>
aidanfnv
marked this pull request as ready for review
August 24, 2026 17:24
Contributor
Greptile SummaryThis 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:
Confidence Score: 4/5The 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
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
Reviews (7): Last reviewed commit: "Bound NPC collision recovery settling" | Re-trigger Greptile |
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.