Post

Replies

Boosts

Views

Activity

Reply to Issue in TabletopKit Sample scene + shared immersive space
Hey @niklas_prahl The Spatial Personas feature is not available in the Simulator. What you're seeing is just a person's photo/avatar, which can be set in the Contacts app. Currently, seat placement in TabletopKit is not working correctly in the Simulator—so to get accurate results, you need to test on a real device. Testing with Spatial Personas To properly test Spatial Personas, you need two physical Vision Pro devices with two users who have already set up their Spatial Personas. Additionally, both devices must run the same app version with identical bundle and team identifiers. Here are two ways to achieve this: Using Xcode: Connect both Vision Pros to the same Mac and build the app under the same development team. Using TestFlight: Upload the app to TestFlight (internal testing) and install it on both devices. This ensures that both devices are running the exact same build, which is essential for SharePlay sessions. Shared Immersive Space & TabletopKit I've previously attempted to integrate a shared immersive space into a TabletopKit app. However, it seems that Spatial Personas are not currently interactive within TabletopKit when using a custom immersive space. If your goal is better control over Spatial Persona interactions, I recommend using the Group Activities framework instead, as it may provide more flexibility in handling shared experiences. Hope this helps! Let me know if you need further clarification.
1w
Reply to AnchorEntity on Window(Group)?
You can achieve something similar using the ornament modifier in visionOS. The benefit to this solution will be that it won't be lagging like in the @Vision Pro Engineer's solution, since GeometryReader is not updated regulary. Here's an example: import SwiftUI import RealityKit import RealityKitContent struct ContentView: View { var body: some View { Text("Hello, world!") .ornament(attachmentAnchor: .scene(.back)) { Model3D(named: "Scene", bundle: realityKitContentBundle) .frame(depth: -1300) } } } You can find more about the ornament modifier in the Apple documentation.
Dec ’24
Reply to Synchronizing Physics in TableTopKit
One potential solution we explored involves creating a dummy GameEquipment of a different type, adding it to the scene, and overriding the default implementation of GameRenderer's onUpdate() function to handle synchronization. extension GameRenderer { func onUpdate(timeInterval: Double, snapshot: TableSnapshot, visualState: TableVisualState) { self.startInteractionOnProxy() } public func startInteractionOnProxy(){ guard let game = game else { return } let proxyEquipments: [ProxyEquipment] = game.tabletopGame.equipment(of: ProxyEquipment.self) if let proxy = proxyEquipments.first { _ = game.tabletopGame.startInteraction(onEquipmentID: proxy.id) } } } While this approach works to some extent, it has certain drawbacks and limitations, particularly in terms of performance and architectural complexity. It’s the closest we’ve come to achieving the desired synchronization, but we believe there might be a more robust and efficient way to accomplish this. We would still greatly appreciate any guidance from Apple engineers on a more suitable solution to synchronize physical properties in EntityEquipment effectively.
Nov ’24
Reply to Swift Student Challenge
From Swift Student Challenge Terms and Conditions: Your creation should not rely on a network connection and any resources used in your app playground should be included locally in the ZIP file. Submissions will be judged offline. Full Swift Student Challenge Terms and Conditions
Feb ’24