RealityKit asset compilation gives zero bounds to explicit meshes at matching USD prim paths

I filed Feedback Assistant report FB24967734 for this issue.

When two USD scenes contain explicit polygon meshes at the same prim path and are compiled together with xcrun realitytool, one scene's mesh loads with zero bounds. Renaming the mesh prims so their paths are unique makes both meshes load correctly.

Reproduce

Download and expand the source ZIP from https://github.com/mesqueeb/RealitykitUsdMeshDisappearanceOnMatchingPaths/archive/refs/heads/main.zip, then run these commands from the extracted directory:

xcrun realitytool compile --output-reality Fixtures/Compiled/inline-same-path.bundle/Contents/Resources/RealityKitContent.reality --platform macosx --deployment-target 27.0 Fixtures/Source/inline-same-path.rkassets
xcrun realitytool compile --output-reality Fixtures/Compiled/inline-unique-path.bundle/Contents/Resources/RealityKitContent.reality --platform macosx --deployment-target 27.0 Fixtures/Source/inline-unique-path.rkassets
swift run

The same-path case has a mesh at /Root/MeshCube in both scenes. The control changes only the mesh paths to /Root/MeshCube_A and /Root/MeshCube_B.

Current output

inline-same-path:
  SceneA.usda / MeshCube: bounds=SIMD3<Float>(0.19999999, 0.2, 0.2)
  SceneB.usda / MeshCube: bounds=SIMD3<Float>(0.0, 0.0, 0.0)

inline-unique-path:
  SceneA.usda / MeshCube_A: bounds=SIMD3<Float>(0.19999999, 0.2, 0.2)
  SceneB.usda / MeshCube_B: bounds=SIMD3<Float>(0.19999999, 0.2, 0.2)

Expected output

Both meshes in the matching-path case should have nonzero bounds:

inline-same-path:
  SceneA.usda / MeshCube: bounds=SIMD3<Float>(0.19999999, 0.2, 0.2)
  SceneB.usda / MeshCube: bounds=SIMD3<Float>(0.19999999, 0.2, 0.2)

inline-unique-path:
  SceneA.usda / MeshCube_A: bounds=SIMD3<Float>(0.19999999, 0.2, 0.2)
  SceneB.usda / MeshCube_B: bounds=SIMD3<Float>(0.19999999, 0.2, 0.2)

Reproduced on macOS 27.0 (26A428), Xcode 27.0 (27A266a). The repo includes the USDA inputs, compiled RealityKitContent assets, and the Swift code that prints these bounds.

Source and downloadable ZIP: https://github.com/mesqueeb/RealitykitUsdMeshDisappearanceOnMatchingPaths

RealityKit asset compilation gives zero bounds to explicit meshes at matching USD prim paths
 
 
Q