Lab 093 – Manipulation and Gestures fail with Portal Content
When working with Entities inside a portal, Manipulation and Gestures do not work.
Did something change in visionOS 26? I thought gestures were supported for entities in portals, but I can’t put my hands on an example. I put this lab together to test both Tap Gesture and Manipulation Component inside a portal. Both spheres have collision and input components. We add the component in code. Input fails for both entities.
struct Lab093: View {
@State var rootEntity = Entity()
@State var portalEntity = ModelEntity(
mesh: .generatePlane(width: 1.0, height: 1.0, cornerRadius: 0.03),
materials: [PortalMaterial()]
)
var body: some View {
GeometryReader3D { geometry in
RealityView { content in
content.add(rootEntity)
let portalContentRoot = Entity()
portalContentRoot.components.set(WorldComponent())
rootEntity.addChild(portalContentRoot)
portalEntity.position.z = -0.175
portalEntity.components.set(PortalComponent(target: portalContentRoot))
rootEntity.addChild(portalEntity)
guard let scene = try? await Entity(named: "TeleportLabs", in: realityKitContentBundle) else { return }
portalContentRoot.addChild(scene)
scene.position.y = -1.4
// Adding Manipulation to the Green Sphere
if let subject = scene.findEntity(named: "StepSphereGreen") {
subject.components.set(ManipulationComponent())
}
} update: { content in
// Resize the portal plane with the window
let size = content.convert(geometry.size, from: .local, to: .scene)
portalEntity.model?.mesh = .generatePlane(
width: size.x, height: size.y, cornerRadius: 0.03)
}
}
}
}Let me know if you have any ideas for how to get input working in portals, or if you have seen any docs that indicate that is is unsupported.
Support our work so we can continue to bring you new examples and articles.

Follow Step Into Vision