RCP Scene issues at runtime (visionOS 26 / Xcode 26 Beta 4)

I have a scene that has been assembled in RCP but I'm losing the correct hierarchy and transforms when running the scene in the headset or the simulator.

This is in RCP:

This is at runtime with the debugger:

As you can see the "MAIN_WAGON" entity is gone and part of the hierarchy are now children of "TRAIN_ROOT" instead.

Another issue is that not only part of the hieararchy disappears, it also reverts back to default values of the transform instead of what is set in RCP:

This is in RCP:

This is in the simulator/headset:

I'm filing a feedback ticket too and will post the number here.

Anyone had a similar issue and found a fix or workaround ?

Hello @tom_krikorian , thank you for your question! And thank you for filing a feedback ticket as well, that will help us get to the bottom of this.

How are you loading your scene? Certain APIs like loadModel(named:in:) will flatten the hierarchy. Are you loading the scene as a USD directly from the RCP package bundle, or have you exported it from RCP somehow?

In the meantime, you can take a look at our article Loading entities from a file which documents the different ways of loading an entity from USD or Reality files.

Thank you for your question!

This project worked fine in visionOS 2.5 & Xcode 16.4.

We do have a custom process to load the bundle though, we build our package with a custom script:

#!/bin/sh


rm -rf ./.build

xcodebuild \
  -scheme RealityKitContentPackage \
  -destination 'generic/platform=visionOS' \
  -configuration Release -derivedDataPath ./.build \
  clean build

rm -rf 'TGV INOUI/Assets/RealityKitContent/RealityKitContent.bundle'
cp -rf .build/Build/Products/Release-xros/RealityKitContent_RealityKitContent.bundle/ 'TGV INOUI/Assets/RealityKitContent/RealityKitContent.bundle'
rm -rf .build

and load it this way:

    var realityKitContentBundle: Bundle {
        let bundleURL = Bundle.main.url(forResource: "RealityKitContent", withExtension: "bundle")!
        return Bundle(url: bundleURL)!
    }

The scene is then loaded like this:

        environmentEntity = try! await Entity(named: "TGVM", in: realityKitContentBundle)

We discovered today that the issue is coming from the fact that our 3D files are in the .usdc format, when using .usdz things are working as inteded.

But .usdc files were supported before, was there any change in visionOS & Xcode 26?

To be clear this project worked fine before on visionOS 2.5, we're updating it to visionOS 26.

Thanks for your reply!

I can confirm that USD is handled the same way regardless of whether it is loaded from a usdc or a usdz file, and there were no changes in that regard in visionOS 26.

What is the purpose of loading the bundle this way? I'm not confident this would be a workflow we support, although it doesn't look like it would be the cause of the unexpected rotation and missing entity.

It is hard to say what could be happening here without looking at the source assets themselves. Were you able to file a feedback ticket using Feedback Assistant? If you're able to share a project that reproduces this issue, we could take a look on our end. And please share the ticket number here as well!

Thank you!

I filed a ticket FB19361717.

You can find an example asset in there, and also FYI .usdc files do not show up anymore in the Reality Composer Pro folders so you cannot drag them in the scene. I attached pictures in the ticket too regarding this.

Issue of .usdc files not showing up in RCP folders has been fixed in Beta 5.

Cannot say if that fixed the issue of some .usdc files not loading at runtime, I'll need to revert to my old codebase to try and doesn't have time at the moment.

RCP Scene issues at runtime (visionOS 26 / Xcode 26 Beta 4)
 
 
Q