Posts under Spatial Computing topic

Post

Replies

Boosts

Views

Activity

re-entering website environment fails
I have been working with visionOS 27's website environment features, and I have found when entering a website environment, leaving the website environment, waiting 10 seconds, and then trying to re-enter the website environment, the attempt fails. The thrown error reports: AbortError: Immersive request was superseded by another request Strangely, if I try to immediately re-enter the website environment, I succeed. I have to wait several seconds before trying to re-enter the environment to experience the failure. The workaround is to reload the page. Anyone know why this is occurring or how to avoid it? Anyone know a more graceful workaround than asking the user to reload the page? I have filed a feedback on this: FB23208345
1
0
1k
Jun ’26
EnvironmentBlendingComponent(.occluded(by: .surroundings)) culling entities entirely?
Hi there! While building my visionOS app, I’ve encountered some strange behaviour with EnvironmentBlendingComponent. Entities using .occluded(by: .surroundings) are culled entirely whenever a Mac Virtual Display or Apple Immersive Environment is behind them, regardless of the entities’ actual depth, and even when the environment is set to coexist. This feels like it could be a bug, although I’m fairly new to visionOS development, so I may be missing something! In a .mixed immersive space with plain passthrough, the component behaves as I would expect: an entity is occluded accurately when a real-world object is placed in front of it. However, when either of the following is visible behind the entity: a Mac Virtual Display window; or an Apple Immersive Environment enabled using the Digital Crown, the entity carrying EnvironmentBlendingComponent disappears completely. This happens even when the entity is physically closer to the viewer than the virtual surface. An otherwise identical entity without the component remains visible. Moving the virtual surface out of the line of sight, disabling the Immersive Environment, or removing the component immediately makes the entity visible again. Is it intended that .occluded(by: .surroundings) treats Mac Virtual Display and Apple Immersive Environments as occluders? The documentation describes this mode as depth-based occlusion against static “real-world objects”, so it isn’t clear whether these system-rendered virtual surfaces should participate. Even if they are intended to participate, the observed behaviour appears depth-independent: the entire entity is hidden when the virtual surface is behind it, rather than only when the surface is closer to the viewer. That seems inconsistent with the documented depth-based behaviour. I can reproduce this on an M5 Apple Vision Pro running visionOS 26.5 using the following minimal example: import SwiftUI import RealityKit import UIKit @main struct OcclusionReproApp: App { var body: some SwiftUI.Scene { WindowGroup { OcclusionReproLauncher() } ImmersiveSpace(id: "immersive") { RealityView { content in // Control: opaque, no component — proves the bare setup renders. let control = ModelEntity( mesh: .generateSphere(radius: 0.12), materials: [SimpleMaterial(color: .green, isMetallic: false)] ) control.position = [-0.25, 1.2, -1.3] // ~1.3 m ahead, eye height // Under test: identical opaque sphere plus the occlusion component. let occluded = ModelEntity( mesh: .generateSphere(radius: 0.12), materials: [SimpleMaterial(color: .red, isMetallic: false)] ) occluded.position = [0.25, 1.2, -1.3] occluded.components.set( EnvironmentBlendingComponent(preferredBlendingMode: .occluded(by: .surroundings)) ) content.add(control) content.add(occluded) } } .immersionStyle(selection: .constant(.mixed), in: .mixed) // Let the app's mixed space coexist with an Apple Immersive Environment, // as visionOS suppresses Environments while an immersive space is open otherwise. // The same bug can be reproduced with just a Mac Virtual Display, but // this provides a second way to reproduce the same behaviour: .immersiveEnvironmentBehavior(.coexist) } } struct OcclusionReproLauncher: View { @Environment(\.openImmersiveSpace) private var openImmersiveSpace var body: some View { Button("Open immersive space") { Task { await openImmersiveSpace(id: "immersive") } } .padding() } } To reproduce (on a Vision Pro, as the Simulator won't provide passthrough): Open the immersive space in plain passthrough. Both spheres should be visible. Place a real object in front of the red sphere. It should be occluded correctly according to depth. Open a Mac Virtual Display or enable an Apple Immersive Environment, with its visible surface behind the red sphere. The red sphere disappears entirely, despite being in front of that surface. The green control sphere remains visible. Move the virtual surface out of view or disable it, and the red sphere reappears. Please let me know if this is expected behaviour, or if I'm doing something wrong - thanks! Jack
3
0
759
Jun ’26
RCP Assistant provenance
For the Reality Composer Pro Assistant that generates 3D objects and materials: what's the commercial-use and licensing status of generated assets in shipped apps, and what data underpins the model? Alternatively, am I able to upload an original image and use that for 3D generation?
1
5
475
Jun ’26
Is there a way at all to create a shadow catcher object in RealityKit?
As the title says. I am developing an app for IOS 18, which involves adding a building relatively far away from the user's place (around 10-20m.), and I need to building to show contact shadows with the floor for added realism. Now, I know that RealityKit has automatic contact shadows using GroundingShadowComponent, but this only works if the object is placed in a plane that has been detected by ARKit... and ARKIt doesn't detect floors so far away, so I need to add my own shadows: add an invisible plane acting as a floor below my building, and have it receive shadows and show only the shadows. The problem is that, from what I see, RealityKit has no materials that can do this: UnlitMaterial ignores all lighting, including shadows. SimpleMaterial does display the shadows, but the floor is displayed too. I can make the material almost transparent (setting the opacity to 0.01 or something), but the floor is still visible. OcclusionMaterial with receiveDynamicLighting is a solution, but it doesn't work either. If I declare it using OcclusionMaterial(receivesDynamicLighting: true), all I get is an invisible plane with no contact shadows in it. What do other people do for this? Do people just bake in the contact shadows in the 3D model?
2
0
782
Jun ’26
Personas stopped working during full immersive SharePlay Session
I got it working recently that I could be in an immersive environment in my App with another FaceTime participant while we both see each others personas. The room needed to be shared as it has a presentation baked in to it that one person can present. However, since yesterday whenever I enter the immersive SharePlay experience, the personas no longer appear and only a coin of the other person is visible with the text "immersed" beneath it. The room is still shared, so I can change the slides and the other person can see the changes. If one person exits the immersive space, their persona is rendered from my point of view (in the immersive space) but we can't be in there together.
1
0
442
Jun ’26
Custom 3D Models on MapKit Map
We currently use MapKit as our map layer for our application. We have 3D models of buildings and other features that we want to overlay and visualize on the map. The issue seems to be that - as far as I can tell - we can only pitch the map to whatever iOS decides is the "right" pitch for the map, not what our imagery has. So if we wanted to pitch the map even when 3D imagery isn't available it doesn't seem like that is possible. Are there options for us to provide our own 3D models / imagery in MapKit? Or is there something else we should be looking at?
2
1
620
Jun ’26
SpatialPreviewSample project from Spatial Preview framework is unable to stream to Vision Pro
I've been trying to implement the new Spatial Preview framework in my app but I've been unable to make it work. I then tried the official sample: https://developer.apple.com/documentation/spatialpreview/working-with-content-from-your-mac-app-using-spatial-preview But this sample is also not able to stream anything to my Vision Pro. Both my Mac & Vision Pro are on the same network with bluetooth enabled, I'm using Mac Virtual Display but the "Stream USD Scene to a vision pro" does nothing. Mac is on macOS 27 and Vision Pro on visionOS 27, I'm using XCode 27. So everything should be setup correctly here. Log says: {CSInlineDonation[async]: "com.example.apple-samplecode.SpatialPreviewSampleB9WT723MN2" add-update-items:1 delete-items:0}: Failed to request donation Error Domain=CSIndexErrorDomain Code=-1000 "Failed to request donation" UserInfo={NSDebugDescription=Failed to request donation, NSUnderlyingError=0x778d201b30 {Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.SetStoreUpdateService was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.SetStoreUpdateService was invalidated from this process.}}} Just submitted a ticket about this issue: FB23028075 Am I doing something wrong here? Anyone got the sample working?
7
0
709
Jun ’26
Interactive Surfaces
I have been building a visionOS app that converts anaglyphs and SBS to 3D experiences, and my current approach has been hamstrung by my dependency on a shader graph which separates imagery into right and left eye. It works very well, but ultimately is just a material. The way I have implemented this so far is with VNC to show a 3d Blender window and browser experiences. Ideally, I'd be able to have interactivity in both that didn't depend on an attached computer. Is there any way to accomplish that?
2
0
443
Jun ’26
How to make an animation stop at the last frame after playing with xcode+RCP
This is my animation playback method, there are two issues. 1.How to make the animation stop until the last frame after playing once when isLoop=false? When I specify the name of an animClipName animation clip, I cannot play the corresponding animation name. How do I set it up? The animation structure is shown in the figure. PlayAnim(animEntityName: "Book",animClipName: "Open",isLoop: false) private func PlayAnim(animEntityName: String,animClipName: String? = nil,isLoop:Bool = true,transitionDuration: Double = 0.5){ guard let XR = XR else { return } guard let entity = XR.findEntity(named: animEntityName) else { return } let availableAnims = entity.availableAnimations let targetAnimResource: AnimationResource? if let clipName = animClipName { targetAnimResource = availableAnims.first(where: { $0.name == clipName }) } else { targetAnimResource = availableAnims.first } guard let animClip = targetAnimResource else { return } let anim = animClip.repeat(count: isLoop ? 0 : 1) entity.playAnimation(anim,transitionDuration: transitionDuration) }
1
0
468
Jun ’26
MR app to obscure exterior views from a moving simulator rig
My cousin implanted an itch I'd like to scratch. She does some academic psycho-neurological research that I don't fully understand. But in talking it sounds like mixed reality in the AVP might facilitate a type of research that she's pursuing. I just don't know if such a thing is currently possible with the AVP given how it treats physically moving frames of reference. The idea is to have subjects in a motion vehicle simulator rig, able to operate it and see the interior of the vehicle/gauges/etc. But at times and in specific ways, obscure the views out of the "windows" of the vehicle. The obvious problem here is that the AVP doesn't like being in a dynamically moving frame of reference. This seems to be beyond what "travel mode" is intended for. They need to bump and turn the subjects to get the responses they're studying, so not a smooth ride like on a plane or train. The interior of the simulator rig is a "known object" and can be modeled. I just watched the new video about training/tracking a hand-held object via Create ML. Could a similar approach from a hand-held object be applied to the user's surroundings - the mocked up vehicle interior and its window frames? We'd then apply an obscuring blur or even just an opaque polygon to that "window" while the simulator rig (and thus the user) is in motion? The alignment of the blur/polygon doesn't need to have perfect tracking and registration. Update rate does not need to be low millisecond, but full second updates might make motion sickness worse. Also, am I correct in inferring that object tracking should be free from major drift over the course of tens of minutes? A stretch: would it be possible to counteract the illumination from room light sources so that the movement of light/dark is reduced on the interior of the "vehicle" while it is moving? I also noticed in the new "Explore enhancements to visionOS object tracking" video that some of the effect of overlaying MR elements onto something that is visually passed through is being demonstrated on an iPhone. Could a proof of concept of this app(?) be "mocked up" using an iPhone as a basis to justify the expense of buying the AVP? Hold the phone while the rig is moving, track the interior and blur/"open" the windows as seen on the phone screen?
1
0
464
Jun ’26
Questions about RoomPlan, Room API, USDZ/STEP comparison, and extended spatial scanning
Dear Apple Developer Team, I would like to ask a few questions related to RoomPlan, Room API, USDZ export, and possible future spatial scanning workflows: Can the RoomPlan or Room API load an existing USDZ room model and compare it in real time with a new live scan of the same space? Is Apple considering extending RoomPlan beyond indoor rooms, for example to scan outdoor areas, house exteriors, terrain, and simple building volumes with rough dimensions? Also in indoor to scan slopes with angle room for rooms in roof floor? Will RoomPlan support multi-floor continuous scanning, custom object detection elements, and reliable export of the scanned result to USDZ for further CAD/BIM workflows? Is it possible to create a real-time comparator between a reference object in USDZ or STEP format and a physical object being scanned live, so that deviations in geometry or dimensions can be detected during scanning? Best regards, Ivo Saina
3
0
1.1k
Jun ’26
Creation of 3d Assets and Inclusion in RCP3 for use in Package called by visionOS App
Currently, I have a very basic entity in RCP that I call in my app's immersive view based on an included Package. I'm trying to get a much better 3d asset to use in my app instead. I've been afraid to put much effort into learning Blender to create and export an USDx asset for import into RCP3 (it's a whole world of learning itself...). I may be able to start using agents like Codex tied into Blender to see if I can more quickly create a 3d asset. I tried using the new AI assistant in RCP3 and it seems like I could create a 3d entity, but I'm not sure it will be the level of detail I want. Any high-level advice for the workflow (nowadays with AI agents) to create a desirable 3d asset, get it into RCP3, and then into Xcode?
1
0
398
Jun ’26
"Open Website Environment" menu gone?
In visionOS 26 (with Website Environments enabled), there was a two step action to enable the environment: click button on the left of the address bar (1 in image), then click "Open Website Environment" (2 in image). This example was shown again this year in Build next-generation experiences with visionOS 27. But I do no see this working in visionOS 27. Instead, I've needed to add a button for the user to open (and optionally close) the website environment. Is adding a button/control to the web page the new way to activate website environments?
1
0
942
Jun ’26
Baked Lighting How-To
Good Morning! Following the RCP 3 lightmap workflow: I've added Lightmap components to my entities and hit Bake, but I get "Lightmap bake failed: no lightmappable entities found — enable Process for Lightmaps in an asset's Geometry Transform Settings." I can't locate that flag anywhere in the GUI, and my scene objects are prototype instances. Could you walk through the complete end-to-end setup for baking lighting: where the Process for Lightmaps flag actually lives (on the instance or the source asset?), whether lightmap UVs must be authored or are auto-generated, and how the Lightmap component relates to that eligibility flag?
2
3
561
Jun ’26
Recommended locomotion settings to reduce motion sickness in ImmersiveSpace?
I have a question about user-controlled movement inside a visionOS ImmersiveSpace. If an app allows the user to move through a virtual space, what are the recommended ways to reduce motion sickness or discomfort? Specifically: Are there recommended movement speed limits for comfortable locomotion in an immersive space? Are there recommended acceleration, deceleration, or turning speed limits? Is snap turning generally preferred over smooth turning on visionOS? Are teleportation, short-range movement, or fixed-position interaction recommended over continuous movement? Are there any visionOS-specific comfort guidelines for camera movement, artificial locomotion, field-of-view reduction, or user-controlled navigation? My goal is to allow limited movement in an immersive environment while keeping the experience comfortable for most users.
1
0
522
Jun ’26
Foveated Streaming with CloudXR using KRVR's native PCVR streaming app
I'm shipping a PCVR streaming app using PSVR2 Sense controllers on the Vision Pro. Four pain points I'd love clarity on: PSVR2 L3/R3 thumbstick click at rest — Apple's GameController framework doesn't fire a stick-click event unless there's axis deflection. Users physically clicking the stick straight in get nothing. Is this an intentional filter, and is a change planned? Haptic forwarding PC → AVP. On CloudXRKit there's NSKStreamClientHapticDelegate for dispatching server-generated haptic events into CHHapticEngine. Does FoveatedStreaming have an equivalent delegate, or are streamer apps expected to bring their own side-channel for haptics? Controller pose — we're currently going through ARKit's AccessoryTrackingProvider and combining with GCController input. Is that the recommended supported path for FoveatedStreaming apps, or is there something more native to the framework planned? Gaze clarity :- The framework already uses gaze internally to drive foveation tile selection on the server. Is any per-frame metadata returned to the client that tells us — even loosely — where the user is looking? A gaze quadrant, a foveal-tile coordinate, distance-from-fovea-centre. Anything we can feed back to the PC to tune its own pipeline. Privacy-preserving aggregates — would Apple consider exposing fixation/saccade ratios, gaze stability over the last N frames, dwell-on-region signals? Lets apps push higher detail without ever learning raw direction. 3. What's the actual barrier — strictly privacy, or also performance? If it's privacy, would an on-device processing surface (App Intent style, Background Asset extension, etc.) be a viable path to let apps act on gaze without raw access? 4. are there public APIs in this area today that I've missed? I've been working from the swiftinterface + WWDC sessions and don't want to be reinventing something that already exists in a quieter corner of the SDK.
1
0
614
Jun ’26
re-entering website environment fails
I have been working with visionOS 27's website environment features, and I have found when entering a website environment, leaving the website environment, waiting 10 seconds, and then trying to re-enter the website environment, the attempt fails. The thrown error reports: AbortError: Immersive request was superseded by another request Strangely, if I try to immediately re-enter the website environment, I succeed. I have to wait several seconds before trying to re-enter the environment to experience the failure. The workaround is to reload the page. Anyone know why this is occurring or how to avoid it? Anyone know a more graceful workaround than asking the user to reload the page? I have filed a feedback on this: FB23208345
Replies
1
Boosts
0
Views
1k
Activity
Jun ’26
EnvironmentBlendingComponent(.occluded(by: .surroundings)) culling entities entirely?
Hi there! While building my visionOS app, I’ve encountered some strange behaviour with EnvironmentBlendingComponent. Entities using .occluded(by: .surroundings) are culled entirely whenever a Mac Virtual Display or Apple Immersive Environment is behind them, regardless of the entities’ actual depth, and even when the environment is set to coexist. This feels like it could be a bug, although I’m fairly new to visionOS development, so I may be missing something! In a .mixed immersive space with plain passthrough, the component behaves as I would expect: an entity is occluded accurately when a real-world object is placed in front of it. However, when either of the following is visible behind the entity: a Mac Virtual Display window; or an Apple Immersive Environment enabled using the Digital Crown, the entity carrying EnvironmentBlendingComponent disappears completely. This happens even when the entity is physically closer to the viewer than the virtual surface. An otherwise identical entity without the component remains visible. Moving the virtual surface out of the line of sight, disabling the Immersive Environment, or removing the component immediately makes the entity visible again. Is it intended that .occluded(by: .surroundings) treats Mac Virtual Display and Apple Immersive Environments as occluders? The documentation describes this mode as depth-based occlusion against static “real-world objects”, so it isn’t clear whether these system-rendered virtual surfaces should participate. Even if they are intended to participate, the observed behaviour appears depth-independent: the entire entity is hidden when the virtual surface is behind it, rather than only when the surface is closer to the viewer. That seems inconsistent with the documented depth-based behaviour. I can reproduce this on an M5 Apple Vision Pro running visionOS 26.5 using the following minimal example: import SwiftUI import RealityKit import UIKit @main struct OcclusionReproApp: App { var body: some SwiftUI.Scene { WindowGroup { OcclusionReproLauncher() } ImmersiveSpace(id: "immersive") { RealityView { content in // Control: opaque, no component — proves the bare setup renders. let control = ModelEntity( mesh: .generateSphere(radius: 0.12), materials: [SimpleMaterial(color: .green, isMetallic: false)] ) control.position = [-0.25, 1.2, -1.3] // ~1.3 m ahead, eye height // Under test: identical opaque sphere plus the occlusion component. let occluded = ModelEntity( mesh: .generateSphere(radius: 0.12), materials: [SimpleMaterial(color: .red, isMetallic: false)] ) occluded.position = [0.25, 1.2, -1.3] occluded.components.set( EnvironmentBlendingComponent(preferredBlendingMode: .occluded(by: .surroundings)) ) content.add(control) content.add(occluded) } } .immersionStyle(selection: .constant(.mixed), in: .mixed) // Let the app's mixed space coexist with an Apple Immersive Environment, // as visionOS suppresses Environments while an immersive space is open otherwise. // The same bug can be reproduced with just a Mac Virtual Display, but // this provides a second way to reproduce the same behaviour: .immersiveEnvironmentBehavior(.coexist) } } struct OcclusionReproLauncher: View { @Environment(\.openImmersiveSpace) private var openImmersiveSpace var body: some View { Button("Open immersive space") { Task { await openImmersiveSpace(id: "immersive") } } .padding() } } To reproduce (on a Vision Pro, as the Simulator won't provide passthrough): Open the immersive space in plain passthrough. Both spheres should be visible. Place a real object in front of the red sphere. It should be occluded correctly according to depth. Open a Mac Virtual Display or enable an Apple Immersive Environment, with its visible surface behind the red sphere. The red sphere disappears entirely, despite being in front of that surface. The green control sphere remains visible. Move the virtual surface out of view or disable it, and the red sphere reappears. Please let me know if this is expected behaviour, or if I'm doing something wrong - thanks! Jack
Replies
3
Boosts
0
Views
759
Activity
Jun ’26
RCP Assistant provenance
For the Reality Composer Pro Assistant that generates 3D objects and materials: what's the commercial-use and licensing status of generated assets in shipped apps, and what data underpins the model? Alternatively, am I able to upload an original image and use that for 3D generation?
Replies
1
Boosts
5
Views
475
Activity
Jun ’26
Is there a way at all to create a shadow catcher object in RealityKit?
As the title says. I am developing an app for IOS 18, which involves adding a building relatively far away from the user's place (around 10-20m.), and I need to building to show contact shadows with the floor for added realism. Now, I know that RealityKit has automatic contact shadows using GroundingShadowComponent, but this only works if the object is placed in a plane that has been detected by ARKit... and ARKIt doesn't detect floors so far away, so I need to add my own shadows: add an invisible plane acting as a floor below my building, and have it receive shadows and show only the shadows. The problem is that, from what I see, RealityKit has no materials that can do this: UnlitMaterial ignores all lighting, including shadows. SimpleMaterial does display the shadows, but the floor is displayed too. I can make the material almost transparent (setting the opacity to 0.01 or something), but the floor is still visible. OcclusionMaterial with receiveDynamicLighting is a solution, but it doesn't work either. If I declare it using OcclusionMaterial(receivesDynamicLighting: true), all I get is an invisible plane with no contact shadows in it. What do other people do for this? Do people just bake in the contact shadows in the 3D model?
Replies
2
Boosts
0
Views
782
Activity
Jun ’26
Personas stopped working during full immersive SharePlay Session
I got it working recently that I could be in an immersive environment in my App with another FaceTime participant while we both see each others personas. The room needed to be shared as it has a presentation baked in to it that one person can present. However, since yesterday whenever I enter the immersive SharePlay experience, the personas no longer appear and only a coin of the other person is visible with the text "immersed" beneath it. The room is still shared, so I can change the slides and the other person can see the changes. If one person exits the immersive space, their persona is rendered from my point of view (in the immersive space) but we can't be in there together.
Replies
1
Boosts
0
Views
442
Activity
Jun ’26
Custom 3D Models on MapKit Map
We currently use MapKit as our map layer for our application. We have 3D models of buildings and other features that we want to overlay and visualize on the map. The issue seems to be that - as far as I can tell - we can only pitch the map to whatever iOS decides is the "right" pitch for the map, not what our imagery has. So if we wanted to pitch the map even when 3D imagery isn't available it doesn't seem like that is possible. Are there options for us to provide our own 3D models / imagery in MapKit? Or is there something else we should be looking at?
Replies
2
Boosts
1
Views
620
Activity
Jun ’26
SpatialPreviewSample project from Spatial Preview framework is unable to stream to Vision Pro
I've been trying to implement the new Spatial Preview framework in my app but I've been unable to make it work. I then tried the official sample: https://developer.apple.com/documentation/spatialpreview/working-with-content-from-your-mac-app-using-spatial-preview But this sample is also not able to stream anything to my Vision Pro. Both my Mac & Vision Pro are on the same network with bluetooth enabled, I'm using Mac Virtual Display but the "Stream USD Scene to a vision pro" does nothing. Mac is on macOS 27 and Vision Pro on visionOS 27, I'm using XCode 27. So everything should be setup correctly here. Log says: {CSInlineDonation[async]: "com.example.apple-samplecode.SpatialPreviewSampleB9WT723MN2" add-update-items:1 delete-items:0}: Failed to request donation Error Domain=CSIndexErrorDomain Code=-1000 "Failed to request donation" UserInfo={NSDebugDescription=Failed to request donation, NSUnderlyingError=0x778d201b30 {Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.SetStoreUpdateService was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.SetStoreUpdateService was invalidated from this process.}}} Just submitted a ticket about this issue: FB23028075 Am I doing something wrong here? Anyone got the sample working?
Replies
7
Boosts
0
Views
709
Activity
Jun ’26
Interactive Surfaces
I have been building a visionOS app that converts anaglyphs and SBS to 3D experiences, and my current approach has been hamstrung by my dependency on a shader graph which separates imagery into right and left eye. It works very well, but ultimately is just a material. The way I have implemented this so far is with VNC to show a 3d Blender window and browser experiences. Ideally, I'd be able to have interactivity in both that didn't depend on an attached computer. Is there any way to accomplish that?
Replies
2
Boosts
0
Views
443
Activity
Jun ’26
How to make an animation stop at the last frame after playing with xcode+RCP
This is my animation playback method, there are two issues. 1.How to make the animation stop until the last frame after playing once when isLoop=false? When I specify the name of an animClipName animation clip, I cannot play the corresponding animation name. How do I set it up? The animation structure is shown in the figure. PlayAnim(animEntityName: "Book",animClipName: "Open",isLoop: false) private func PlayAnim(animEntityName: String,animClipName: String? = nil,isLoop:Bool = true,transitionDuration: Double = 0.5){ guard let XR = XR else { return } guard let entity = XR.findEntity(named: animEntityName) else { return } let availableAnims = entity.availableAnimations let targetAnimResource: AnimationResource? if let clipName = animClipName { targetAnimResource = availableAnims.first(where: { $0.name == clipName }) } else { targetAnimResource = availableAnims.first } guard let animClip = targetAnimResource else { return } let anim = animClip.repeat(count: isLoop ? 0 : 1) entity.playAnimation(anim,transitionDuration: transitionDuration) }
Replies
1
Boosts
0
Views
468
Activity
Jun ’26
MR app to obscure exterior views from a moving simulator rig
My cousin implanted an itch I'd like to scratch. She does some academic psycho-neurological research that I don't fully understand. But in talking it sounds like mixed reality in the AVP might facilitate a type of research that she's pursuing. I just don't know if such a thing is currently possible with the AVP given how it treats physically moving frames of reference. The idea is to have subjects in a motion vehicle simulator rig, able to operate it and see the interior of the vehicle/gauges/etc. But at times and in specific ways, obscure the views out of the "windows" of the vehicle. The obvious problem here is that the AVP doesn't like being in a dynamically moving frame of reference. This seems to be beyond what "travel mode" is intended for. They need to bump and turn the subjects to get the responses they're studying, so not a smooth ride like on a plane or train. The interior of the simulator rig is a "known object" and can be modeled. I just watched the new video about training/tracking a hand-held object via Create ML. Could a similar approach from a hand-held object be applied to the user's surroundings - the mocked up vehicle interior and its window frames? We'd then apply an obscuring blur or even just an opaque polygon to that "window" while the simulator rig (and thus the user) is in motion? The alignment of the blur/polygon doesn't need to have perfect tracking and registration. Update rate does not need to be low millisecond, but full second updates might make motion sickness worse. Also, am I correct in inferring that object tracking should be free from major drift over the course of tens of minutes? A stretch: would it be possible to counteract the illumination from room light sources so that the movement of light/dark is reduced on the interior of the "vehicle" while it is moving? I also noticed in the new "Explore enhancements to visionOS object tracking" video that some of the effect of overlaying MR elements onto something that is visually passed through is being demonstrated on an iPhone. Could a proof of concept of this app(?) be "mocked up" using an iPhone as a basis to justify the expense of buying the AVP? Hold the phone while the rig is moving, track the interior and blur/"open" the windows as seen on the phone screen?
Replies
1
Boosts
0
Views
464
Activity
Jun ’26
Questions about RoomPlan, Room API, USDZ/STEP comparison, and extended spatial scanning
Dear Apple Developer Team, I would like to ask a few questions related to RoomPlan, Room API, USDZ export, and possible future spatial scanning workflows: Can the RoomPlan or Room API load an existing USDZ room model and compare it in real time with a new live scan of the same space? Is Apple considering extending RoomPlan beyond indoor rooms, for example to scan outdoor areas, house exteriors, terrain, and simple building volumes with rough dimensions? Also in indoor to scan slopes with angle room for rooms in roof floor? Will RoomPlan support multi-floor continuous scanning, custom object detection elements, and reliable export of the scanned result to USDZ for further CAD/BIM workflows? Is it possible to create a real-time comparator between a reference object in USDZ or STEP format and a physical object being scanned live, so that deviations in geometry or dimensions can be detected during scanning? Best regards, Ivo Saina
Replies
3
Boosts
0
Views
1.1k
Activity
Jun ’26
Creation of 3d Assets and Inclusion in RCP3 for use in Package called by visionOS App
Currently, I have a very basic entity in RCP that I call in my app's immersive view based on an included Package. I'm trying to get a much better 3d asset to use in my app instead. I've been afraid to put much effort into learning Blender to create and export an USDx asset for import into RCP3 (it's a whole world of learning itself...). I may be able to start using agents like Codex tied into Blender to see if I can more quickly create a 3d asset. I tried using the new AI assistant in RCP3 and it seems like I could create a 3d entity, but I'm not sure it will be the level of detail I want. Any high-level advice for the workflow (nowadays with AI agents) to create a desirable 3d asset, get it into RCP3, and then into Xcode?
Replies
1
Boosts
0
Views
398
Activity
Jun ’26
"Open Website Environment" menu gone?
In visionOS 26 (with Website Environments enabled), there was a two step action to enable the environment: click button on the left of the address bar (1 in image), then click "Open Website Environment" (2 in image). This example was shown again this year in Build next-generation experiences with visionOS 27. But I do no see this working in visionOS 27. Instead, I've needed to add a button for the user to open (and optionally close) the website environment. Is adding a button/control to the web page the new way to activate website environments?
Replies
1
Boosts
0
Views
942
Activity
Jun ’26
Baked Lighting How-To
Good Morning! Following the RCP 3 lightmap workflow: I've added Lightmap components to my entities and hit Bake, but I get "Lightmap bake failed: no lightmappable entities found — enable Process for Lightmaps in an asset's Geometry Transform Settings." I can't locate that flag anywhere in the GUI, and my scene objects are prototype instances. Could you walk through the complete end-to-end setup for baking lighting: where the Process for Lightmaps flag actually lives (on the instance or the source asset?), whether lightmap UVs must be authored or are auto-generated, and how the Lightmap component relates to that eligibility flag?
Replies
2
Boosts
3
Views
561
Activity
Jun ’26
Recommended locomotion settings to reduce motion sickness in ImmersiveSpace?
I have a question about user-controlled movement inside a visionOS ImmersiveSpace. If an app allows the user to move through a virtual space, what are the recommended ways to reduce motion sickness or discomfort? Specifically: Are there recommended movement speed limits for comfortable locomotion in an immersive space? Are there recommended acceleration, deceleration, or turning speed limits? Is snap turning generally preferred over smooth turning on visionOS? Are teleportation, short-range movement, or fixed-position interaction recommended over continuous movement? Are there any visionOS-specific comfort guidelines for camera movement, artificial locomotion, field-of-view reduction, or user-controlled navigation? My goal is to allow limited movement in an immersive environment while keeping the experience comfortable for most users.
Replies
1
Boosts
0
Views
522
Activity
Jun ’26
Foveated Streaming with CloudXR using KRVR's native PCVR streaming app
I'm shipping a PCVR streaming app using PSVR2 Sense controllers on the Vision Pro. Four pain points I'd love clarity on: PSVR2 L3/R3 thumbstick click at rest — Apple's GameController framework doesn't fire a stick-click event unless there's axis deflection. Users physically clicking the stick straight in get nothing. Is this an intentional filter, and is a change planned? Haptic forwarding PC → AVP. On CloudXRKit there's NSKStreamClientHapticDelegate for dispatching server-generated haptic events into CHHapticEngine. Does FoveatedStreaming have an equivalent delegate, or are streamer apps expected to bring their own side-channel for haptics? Controller pose — we're currently going through ARKit's AccessoryTrackingProvider and combining with GCController input. Is that the recommended supported path for FoveatedStreaming apps, or is there something more native to the framework planned? Gaze clarity :- The framework already uses gaze internally to drive foveation tile selection on the server. Is any per-frame metadata returned to the client that tells us — even loosely — where the user is looking? A gaze quadrant, a foveal-tile coordinate, distance-from-fovea-centre. Anything we can feed back to the PC to tune its own pipeline. Privacy-preserving aggregates — would Apple consider exposing fixation/saccade ratios, gaze stability over the last N frames, dwell-on-region signals? Lets apps push higher detail without ever learning raw direction. 3. What's the actual barrier — strictly privacy, or also performance? If it's privacy, would an on-device processing surface (App Intent style, Background Asset extension, etc.) be a viable path to let apps act on gaze without raw access? 4. are there public APIs in this area today that I've missed? I've been working from the swiftinterface + WWDC sessions and don't want to be reinventing something that already exists in a quieter corner of the SDK.
Replies
1
Boosts
0
Views
614
Activity
Jun ’26