Entity.load vs Entity.loadModel

let apple = try Entity.load(named: "apple", in: realityKitContentBundle)

works, but

let apple = try Entity.loadModel(named: "apple", in: realityKitContentBundle)

does not work

ie. (error.localizedDescription = Failed to find resource with name "apple" in bundle)

I am unsure what is causing the problem, apple.usda was created in Reality Composer Pro from primitives and has a single apple object (no root). When I load with Entity.load and print apple, I get:

▿ 'apple' : Entity, children: 1
  ⟐ Transform
  ⟐ SynchronizationComponent
  ▿ 'apple' : ModelEntity
    ⟐ ModelComponent
    ⟐ Transform
    ⟐ CollisionComponent
    ⟐ PhysicsBodyComponent
    ⟐ SynchronizationComponent

This nested hierarchy seems redundant to me, is it preferred in AR kit to have such a structure? Why am I unable to load usda directly as a ModelEntity?

I'm bumping this thread for visibility, I'd be grateful if someone with more knowledge can share their ideas.

To me it seems completely wrong to store two transforms for essentially one object (an apple). Say apple is affected by gravity using the PhysicsBodyComponent than ModelEntity will be have transform.translation reflecting the fall while top level Entity appears static, which seems very inviting for bugs?

Entity.load vs Entity.loadModel
 
 
Q