Can Meta XR SDK build for Windows PC VR, or is it Quest-only?
I've been developing a VR game for Quest Pro/Quest 3 for the past year using Unity 6 (6000.0.40f1) with Meta XR SDK (Core 74.0.1, All-in-One 74.0.2, Interaction SDK 74.0.2, Essentials 74.0.1). Current situation: Standalone Quest APK builds work functionally Performance is poor (~40-50 FPS, pixelated visuals) Unity Editor with Quest Link runs beautifully (80+ FPS, crisp visuals) What I need to know: Can I build a Windows platform executable with Meta XR SDK and run it as a PC VR app via Quest Link? Or is Meta XR SDK strictly for standalone Quest Android builds? What I've done: Optimizing the standalone build with my own code logic and texture compression, and logging disabled (My game has a server logging feature) Limited improvement due to an asset-heavy project Why I'm asking: Since Quest Link (Editor to Quest) performs so well, I'm wondering if I can build a Windows .exe that runs the same way - using my PC's GPU while the Quest acts as a display/input device. Constraints: I need Meta XR SDK specifically for eye tracking (Quest Pro) Not using OpenXR due to reported conflicts with Meta XR SDK Has anyone successfully built Windows PC VR apps using Meta XR SDK? Or is the SDK Android-only, requiring a switch to OpenXR/SteamVR for PC builds? Any guidance or documentation links appreciated! Other questions: Does eye tracking work over Quest Link with Windows builds? Are there specific build settings or plugins needed? Any performance differences vs standalone?5Views0likes0Comments🚀 Social VR Accelerator Orientation
Build and launch a Social VR game in 4 weeks. This isn't just a class, it's an accelerator. You'll start with a Unity template, get weekly mentor support, test with real players, and launch on the Meta Horizon Store by Week 4. To get started, all you need is beginner experience with C#, Unity, or the Horizon World Editor, plus 1–4 hours per day on weekdays. Apply as a team (designer + developer) or solo. This invite is open to Meta Horizon Start Members. In this session, we'll walk through how the 4 weeks work, what's expected each week, and how mentorship and playtesting are set up. You'll get access to your Unity starter template, set up your dev environment, and meet the other teams. What we'll cover: Program timeline and weekly milestones Mentor and check-in structure Starter template walkthrough Team introductions How to get help along the way By the end of orientation, you'll know exactly what you're building toward and how to hit the ground running in Week 1. Not yet a Meta Horizon Start Member? Apply today! Join on Zoom356Views1like3CommentsMeta XR Standalone Simulator V83.2 crash immediately on running the game in unity
Meta XR Standalone Simulator V83.2 crash immediately on running the game in unity I am using Unity 6.3 LTS , Meta All-In-One SDK v83, using URP and Ghraphics API D3D11 full log from simulator app: [com.meta.xrsim.grpcconnectionfeeder]: Handling connection request with URI: [ :: 1]:56959 [com.meta.xrsim.openxrplatform]: Starting logging for device: [: :1]:56959 [com.meta.xrsim. openxrplatform]: Successfully started logging for device: [ :: 1]:56959 [meta.xrsim. logger_factory]: Started message streaming for device: [ :: 1]:56959 [arvr. simulation.xrsim]: XrSynch received changed state no session, asked to terminate: yes [com.meta.xrsim.openxrplatform]: Device 12281027643599708862 notified about disconnected state. (XrInstance destroyed) Scheduled terminaiton. [arvr. simulation.xrsim]: XrSynch received changed state no session, asked to terminate: yes [com.meta.xrsim.openxrplatform]: Device 12281027643599708862 notified about disconnected state. (XrInstance destroyed) Scheduled terminaiton. [arvr. simulation. openxr.xrsyn]: XrStateReactor :: OnDone: Cancelled on the server side [arvr. simulation. openxr.xrsyn]: Client synchronization was interrupted; client may have disconnected. Cancelled on the server side [meta.xrsim. logger_factory]: Message streaming canceled for device: [ :: 1]:56959 [com.meta.xrsim.openxrplatform]: There are no more active connections. Nothing to show. [com.meta.xrsim.openxrplatform]: Device 12281027643599708862 is terminated in platform. [arvr. simulation. openxr. compositor_readback]: Client disconnected during swapchain enumeration (this happens when no XrSession was created for XrInstance): GOAWAY received [arvr. simulation. openxr. compositor_readback]: Failed to enumerate swapchains. Client may have disconnected. [com.meta.xrsim.openxrplatform]: Device 12281027643599708862 notified about disconnected state. (XrInstance destroyed) Scheduled terminaiton. [com.meta.xrsim.grpcconnectionfeeder]: Handling connection request with URI: [ :: 1]:56966 [com.meta.xrsim. openxrplatform]: Starting logging for device: [: :1]:56966 [com.meta.xrsim. openxrplatform]: Successfully started logging for device: [ :: 1]:56966 [meta.xrsim. logger_factory]: Started message streaming for device: [ :: 1]:56966 [arvr. simulation.xrsim]: XrSynch received changed state XR_SESSION_STATE_IDLE, asked to terminate: no [arvr. simulation. xrsim]: XrSynch received changed state XR_SESSION_STATE_READY, asked to terminate: no [arvr. simulation. openxr. compositor_readback]: Client disconnected during swapchain enumeration (this happens when no XrSession was created for XrInstance): Handle canno [arvr. simulation. openxr. compositor_readback]: Failed to enumerate swapchains. Client may have disconnected. [com.meta.xrsim.openxrplatform]: Device 12282005109436999216 notified about disconnected state. (XrInstance destroyed) Scheduled terminaiton. [meta.xrsim. logger_factory]: Message streaming canceled for device: [ :: 1]:56966 [arvr. simulation.xrsim]: XrSynch received changed state XR_SESSION_STATE_SYNCHRONIZED, asked to terminate: no [arvr. simulation.xrsim]: XrSynch received changed state XR_SESSION_STATE_STOPPING, asked to terminate: no [arvr. simulation.xrsim]: XrSynch received changed state XR_SESSION_STATE_IDLE, asked to terminate: no [arvr. simulation.xrsim]: XrSynch received changed state XR_SESSION_STATE_EXITING, asked to terminate: no [arvr. simulation.xrsim]: XrSynch received changed state no session, asked to terminate: no [arvr. simulation.xrsim]: XrSynch received changed state no session, asked to terminate: yes [com.meta.xrsim.openxrplatform]: Device 12282005109436999216 notified about disconnected state. (XrInstance destroyed) Scheduled terminaiton. [arvr. simulation.xrsim]: XrSynch received changed state no session, asked to terminate: yes [com.meta.xrsim.openxrplatform]: Device 12282005109436999216 notified about disconnected state. (XrInstance destroyed) Scheduled terminaiton. [arvr. simulation. openxr.xrsyn]: XrStateReactor :: OnDone: Cancelled on the server side [com.meta.xrsim. openxrplatform]: There are no more active connections. Nothing to show. [com.meta.xrsim.openxrplatform]: Device 12282005109436999216 is terminated in platform. [arvr. simulation. openxr.xrsyn]: Client synchronization was interrupted; client may have disconnected. Cancelled on the server side [arvr. simulation. openxr. compositor_readback]: Using VulkanBundle for device: Device: 000000000 [arvr. simulation. openxr. compositor_readback]: No swapchain images for eye 0 [arvr. simulation. openxr. compositor_readback]: Failed to enumerate swapchains. Client may have disconnected. [com.meta.xrsim.openxrplatform]: Device 12282005109436999216 notified about disconnected state. (XrInstance destroyed) Scheduled terminaiton. ------------------------------------------------------------------------------------------------------ [sim_rpc_xr_sync .cpp:las [General]] Propagating instance exit. .. [sim_rpc_xr_sync.cpp:116 [General]] Cancelling synchronisation. [sim_rpc_xr_sync.cpp:68 [General]] Frontend is disconnected. XrSession synchronization with ipv6: [: :1]:56961 cancelled. Runtime will continue. [sim_rpc_xr_sync.cpp:55 [General]] XrSession synchronization with ipv6: [ :: 1]:56961 finished [sim_rpc_service.cpp:165 [General]] Stopping SimRpc server ... [sim_xrapi_command_hooks.cpp:71 [General]] Command xrHapticParametricGetPropertiesEXTX1 is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrRequestBoundaryVisibilityMETA is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrCreateDynamicObjectTrackerMETA is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrDestroyDynamicObjectTrackerMETA is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrSetDynamicObjectTrackedClassesMETA is not instrumented [sim_xrapi_command_hooks. cpp:71 [General]] Command xrGetSpaceDynamicObjectDataMETA is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrCreateMarkerTrackerAsyncMETAX1 is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrCreateMarkerTrackerCompleteMETAX1 is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrDestroyMarkerTrackerMETAX1 is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrGetSpaceMarkerPayloadMETAX1 is not instrumented [sim_xrapilayer_rendering_d3d11_on_vulkan. cpp:58 [General]] DXGI Adapter NVIDIA GeForce RTX 3080 VMem 10053MB SMem OMB SSMem 8154MB [sim_xrapilayer_rendering_d3d11_on_vulkan. cpp:58 [General]] DXGI Adapter NVIDIA GeForce RTX 3080 VMem 10053MB SMem OMB SSMem 8154MB [sim_xrapilayer_rendering_d3d11_on_vulkan. cpp:58 [General]] DXGI Adapter Microsoft Basic Render Driver VMem OMB SMem OMB SSMem 8154MB [sim_xrapilayer_rendering_d3d11_on_vulkan. cpp:78 [General]] (selected) DXGI Adapter NVIDIA GeForce RTX 3080 VMem 10053MB SMem OMB SSMem 8154MB [XRRP [General]] NO BUFFER DEVICE ADDRESS [XRRP [General]] Device does not support timestamp queries. [sim_xrsession. cpp:35 [General]] Creating XrSession (65767) for XrInstance (65721) (GraphicsApi=D3D11) [sim_xrsession. cpp:194 [Validation]] XrSessionImpl :: switchToSessionState(), session 000001CF6693C680: switch session state from XR_SESSION_STATE_UNKNOWN to XR_SESSION_STATE_IDLE [sim_rpc_xr_sync.cpp:82 [General]] Session state updated to 1, propagating to the frontend ... [sim_xrspace.cpp:48 [Validation]] Space (ReferenceSpace) created (000001CF670B0D80): type(XR_REFERENCE_SPACE_TYPE_VIEW), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_configurationregistry.cpp:260 [General]] saved persistent data to "C:\Users\****\AppData\Roaming\MetaXR\MetaXrSimulator\persistent_data. json" [sim_configurationregistry.cpp:260 [General]] saved persistent data to "C:\Users\****\AppData\Roaming\MetaXR\MetaXrSimulator\persistent_data.json" [sim_window_service. cpp:78 [General]] inserted duplicated window id=session_capture [sim_frontend. cpp:76 [General]] Successfully requested connection. [sim_rpc_xr_sync.cpp:82 [General]] Session state updated to 1, propagating to the frontend ... [sim_xrapilayer_telemetry. cpp:76 [General]] hooking the window function [sim_telemetry_service.cpp:322 [General]] session_id = '5dd1629c-1cf4-4cc5-9109-b08d8f52d360' [sim_window_service. cpp:78 [General]] inserted duplicated window id=plugin [sim_xrspace.cpp:48 [Validation]] Space (ReferenceSpace) created (000001CF670B1F60): type(XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrspace.cpp:48 [Validation]] Space (ReferenceSpace) created (000001CF670B08A0): type(XR_REFERENCE_SPACE_TYPE_VIEW), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrspace.cpp:48 [Validation]] Space (ReferenceSpace) created (000001CF670B0FF0): type(XR_REFERENCE_SPACE_TYPE_LOCAL), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrspace.cpp:48 [Validation]] Space (ReferenceSpace) created (000001CF670B1330): type(XR_REFERENCE_SPACE_TYPE_STAGE), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrspace.cpp:48 [Validation]] Space (ReferenceSpace) created (000001CF670B2AC0): type(XR_REFERENCE_SPACE_TYPE_STAGE), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrspace.cpp:69 [Validation]] Space (ActionSpace) created (000001CF670B15A0): subactionPath(/user/hand/left), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrspace.cpp:69 [Validation]] Space (ActionSpace) created (000001CF670B1670): subactionPath(/user/hand/right), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrspace.cpp:48 [Validation]] Space (ReferenceSpace) created (000001CF670B2B90): type(XR_REFERENCE_SPACE_TYPE_LOCAL), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrspace.cpp:48 [Validation]] Space (ReferenceSpace) created (000001CF670B2ED0): type(XR_REFERENCE_SPACE_TYPE_VIEW), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrspace.cpp:48 [Validation]] Space (ReferenceSpace) created (000001CF670B2100): type(XR_REFERENCE_SPACE_TYPE_STAGE), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrapi_command_hooks.cpp:71 [General]] Command xrCreateDynamicObjectTrackerMETA is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrDestroyDynamicObjectTrackerMETA is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrSetDynamicObjectTrackedClassesMETA is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrGetSpaceDynamicObjectDataMETA is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrCreateMarkerTrackerAsyncMETAX1 is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrCreateMarkerTrackerCompleteMETAX1 is not instrumented [sim_xrapi_command_hooks.cpp:71 [General]] Command xrDestroyMarkerTrackerMETAX1 is not instrumented [sim_xrapi_command_hooks. cpp:71 [General]] Command xrGetSpaceMarkerPayloadMETAX1 is not instrumented [sim_xrspace.cpp:48 [Validation]] Space (ReferenceSpace) created (000001CFB9FECA50): type(XR_REFERENCE_SPACE_TYPE_VIEW), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrspace.cpp:48 [Validation]] Space (ReferenceSpace) created (000001CF8FF829A0): type(XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrspace.cpp:48 [Validation]] Space (ReferenceSpace) created (000001CF66831C10): type(XR_REFERENCE_SPACE_TYPE_LOCAL_FLOOR), pose({(0.000, 0.000, 0.000, 1.000), (0.000, 0.000, 0.000)}) [sim_xrsession. cpp:194 [Validation]] XrSessionImpl :: switchToSessionState(), session 000001CF6693C680: switch session state from XR_SESSION_STATE_IDLE to XR_SESSION_STATE_READY [sim_rpc_xr_sync.cpp:82 [General]] Session state updated to 2, propagating to the frontend ... [sim_xrapilayer_debug_window_vulkan_offscreen.cpp:39 [General]] XrApiLayerDebugWindowVulkan: :setSession(): completed [sim_vulkan_helpers. cpp:871 [General]] Failed to open target process, will continue, but chances to success are minimal, error code: 00000005 [sim_session_capturer.cpp:493 [General]] Transitioning from state IDLE to IDLE [sim_vulkan_helpers. cpp:877 [General]] Failed to duplicate handle for target process, error code: 00000057155Views0likes2CommentsMake GameObjects translucent to the Passthru?
For debugging and for a few specific bits (I want to make a Leia hologram in my scene), I'd love to have the gameobjects be translucent (alpha fine) to the passthru images. If I "just set alpha," the gameobjects are transparent to themselves... but they still block all of the passthru... So... is there a way to make a hologram in your living room that works?Solved90Views0likes5CommentsCannot set Meta Quest Link as active OpenXR runtime normally
Hello! We are developing a PC-VR app in Unity with Meta Quest 3 at our company. We use OpenXR plugin to build the code around OpenXR standard in order to support more platforms in the future. However, the button to set the meta quest link as active runtime for open xr never works on our test PCs. We've tested multiple laptops & PCs in the companies and none of them seem to be work without us manually setting the path in the registry. We've tried starting the Link app as an admin, installed it as an admin etc. One time the registry entry doesn't even get added automatically after installing Meta Quest Link App and we had to install "OpenXR for Windows Mixed Reality" to create it without writing a script to automatically create the group entry ("HKLM\Software\Khronos\OpenXR\1") in the registry. Could anyone help clarify what is up with this case and how we can resolve it? Otherwise the setup process is basically impossible for our potential customers without in-depth technical support... Thank you! References: https://community.khronos.org/t/openxr-directory-not-existing/111184700Views2likes6CommentsIs it possible to create an Overlay like OVR Metrics Tool?
As the title suggests, I was wondering if it's potentially possible with creating an overlay like OVR Metrics Tool, as I am wanting to create an application like XSOverlay for Quest devices that are running standalone applications.67Views0likes2CommentsUnified Social Sharing Between Facebook and Instagram
Dear Meta Product Team, I hope you are doing well. My name is Veeranna Angadi, and I would like to share a product idea that could significantly improve user experience across your platforms. Currently, users actively engage with both Facebook and Instagram, but they are still treated as separate ecosystems when it comes to social sharing. For example, if a user enjoys a reel on Facebook and wants to share it with their Instagram friends, the only available option is sharing via a link. This creates friction and reduces seamless engagement. Proposed Idea: Unified Social Graph & Cross-Platform Sharing I propose introducing a feature that allows: Integration of Facebook friends and Instagram followers into a unified social layer (with user consent and privacy controls) Direct sharing of content (reels, posts, stories) across both platforms without needing external links Optional “Cross-Platform Audience” selection while sharing content Smart suggestions (e.g., “Share this reel with your Instagram close friends”) Benefits: Increased content engagement and retention within Meta platforms Reduced friction in content sharing Stronger ecosystem integration between Facebook and Instagram Improved user satisfaction and time spent on apps Additional Enhancement: A recommendation engine could identify which platform a user’s friends are more active on and suggest optimized sharing for better reach. I believe this idea aligns with Meta’s vision of building connected experiences across platforms. If this idea is considered valuable, I would appreciate recognition or the opportunity to collaborate further. Thank you for your time and consideration. I would be happy to discuss this idea in more detail if required. Warm regards, Veeranna Angadi Bangalore, India35Views0likes2CommentsHelloWorld & Basic Sound tutorials
Hello, hoping somebody has an answer for this. I've been trying to get this basic voice input working and have been running into an issue. https://developers.meta.com/horizon/documentation/unity/unity-tutorial-basic-voice-input/ https://developers.meta.com/horizon/documentation/unity/unity-tutorial-hello-vr/ The issue is I receive and error that says... Script 'CharacterController' has the same name as built-in Unity component. AddComponent and GetComponent will not work with this script. Both meta and unity have a CharacterController. I have been unable to get around this as I need the AddComponent and GetComponent to work. I can't be the first person to come across this; particular when its in a hello world example and yet I can't find any information on it. Help would be appreciated. Thanks7Views0likes0CommentsFirefighter learning VR/AR Advice???
To: Any Available VR/AR Developer, My name is Kyle, and I’m an ARFF firefighter interested in learning AR/VR development to help create better, more realistic training tools for the fire service. Since few firefighters develop—and few developers have been on a nozzle—I think I can bring a useful perspective. I’m reaching out to this Meta forum because this is exactly the kind of place I think I could get good advice. I’d appreciate any advice on: Where to start learning, Which skills matter most, What can I skip early on, and your view of the current AR/VR firefighting training market. Thanks for your time, Kyle7Views0likes0Comments