├── .gitignore ├── .gitattributes ├── repo └── meta-xr-simulator │ ├── meta-xr-simulator-66.0.0.tar.gz │ ├── meta-xr-simulator-67.0.0.tar.gz │ ├── meta-xr-simulator-68.0.0.tar.gz │ ├── meta-xr-simulator-69.0.0.tar.gz │ ├── meta-xr-simulator-71.0.0.tar.gz │ ├── meta-xr-simulator-64.0.0-alpha.1.tar.gz │ ├── meta-xr-simulator-64.0.0-alpha.2.tar.gz │ ├── meta-xr-simulator-64.0.0-alpha.3.tar.gz │ ├── meta-xr-simulator-66.0.0-alpha.1.tar.gz │ ├── meta-xr-simulator-66.0.0-alpha.2.tar.gz │ ├── meta-xr-simulator-66.0.0-beta.1.tar.gz │ ├── meta-xr-simulator-66.0.0-beta.2.tar.gz │ ├── meta-xr-simulator-66.0.0-beta.3.tar.gz │ ├── meta-xr-simulator-67.0.0-alpha.1.tar.gz │ ├── meta-xr-simulator-67.0.0-alpha.2.tar.gz │ ├── meta-xr-simulator-67.0.0-beta.1.tar.gz │ ├── meta-xr-simulator-67.0.0-beta.2.tar.gz │ ├── meta-xr-simulator-68.0.0-beta.1.tar.gz │ ├── meta-xr-simulator-69.0.0-beta.1.tar.gz │ ├── meta-xr-simulator-69.0.0-beta.2.tar.gz │ ├── meta-xr-simulator-71.0.0-beta.1.tar.gz │ ├── meta-xr-simulator-71.0.0-beta.2.tar.gz │ └── meta-xr-simulator-71.0.0-beta.3.tar.gz ├── README.md └── meta-xr-simulator.md /.gitignore: -------------------------------------------------------------------------------- 1 | **/.DS_Store 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.tar.gz filter=lfs diff=lfs merge=lfs -text 2 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-66.0.0.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ac7502bf2f28b062c517dac69f3b3366e8a0eb53c3b83076f4db60c619504c39 3 | size 121596494 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-67.0.0.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:491edb40e47b4d194dd5c477c29b674ec83451c8c1df84b682309f15a75ebbd3 3 | size 121310241 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-68.0.0.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f61a73572f8acfea7278897fec27d1a25befb253929b588d8915d1fa34b3efdc 3 | size 124860237 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-69.0.0.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d147c30885d6e4cc28ae2b07de3c0ef804ff5af9e1cde287d26c570ce8506efc 3 | size 123778313 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-71.0.0.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d7d0ac340fd1b4575f197fbdd75631e1805fbf42b856086f8a86acb3a16bd7d6 3 | size 122171047 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-64.0.0-alpha.1.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7dbd29410cc0127100852258f9ade2527ce4106196bd585639603993a3c3fb59 3 | size 21009048 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-64.0.0-alpha.2.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:310e9c5ed0180e94a91e9894533616b426edfef2f373964ae0e7f1dd49116ef6 3 | size 21008406 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-64.0.0-alpha.3.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bf301c129664d0349a545e09e17d654ef5f2295929cb45e8990802826ea47782 3 | size 21021662 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-66.0.0-alpha.1.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8c2f4dd2a84f44baa731554575fd6dd63ce3bd75bab880d5b4166630a2d8f459 3 | size 118537048 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-66.0.0-alpha.2.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a82b76e41844cae78c9632e77f97f5e09593c34f6f910a0c94432ae355396632 3 | size 118538329 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-66.0.0-beta.1.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:034d692370d743495ace673df534f8bb7f064fb7886d73dfcf96c8ac27bbb5bc 3 | size 118541847 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-66.0.0-beta.2.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f9d1e5aaa6d4aab89844abd6e72dc6ea53aace3b2fcd49d75d6a0277f438c6d9 3 | size 121596548 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-66.0.0-beta.3.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ac7502bf2f28b062c517dac69f3b3366e8a0eb53c3b83076f4db60c619504c39 3 | size 121596494 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-67.0.0-alpha.1.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:449e2bfbdf23f4d36f89ea47c90b917e0fffc49578fb704db571e948e6ca103e 3 | size 121303836 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-67.0.0-alpha.2.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ed23f913bebbac4e4c4743cf284ec6f963e168ffef1bce5850dd2b7b0a4061ea 3 | size 121304983 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-67.0.0-beta.1.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:651c2b627a8ae62a8beb70fd927ac7825e58fa20d89720e62ad787229d9ef01e 3 | size 121306950 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-67.0.0-beta.2.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:491edb40e47b4d194dd5c477c29b674ec83451c8c1df84b682309f15a75ebbd3 3 | size 121310241 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-68.0.0-beta.1.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f61a73572f8acfea7278897fec27d1a25befb253929b588d8915d1fa34b3efdc 3 | size 124860237 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-69.0.0-beta.1.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:490f42bf8f668a7b1397acbbe1c9703668170e188ad1ec6eef9d09fd2cca2c6b 3 | size 123778644 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-69.0.0-beta.2.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d147c30885d6e4cc28ae2b07de3c0ef804ff5af9e1cde287d26c570ce8506efc 3 | size 123778313 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-71.0.0-beta.1.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f6c644740c0c0f6a21cb235ffdcfb87d7ce6aa74b4ee463e5dffd17472f35722 3 | size 25446619 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-71.0.0-beta.2.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fa3df617e7c19ea20ce67b446904403cd425ce2907290ca605b31182d26bced1 3 | size 122162808 4 | -------------------------------------------------------------------------------- /repo/meta-xr-simulator/meta-xr-simulator-71.0.0-beta.3.tar.gz: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d7d0ac340fd1b4575f197fbdd75631e1805fbf42b856086f8a86acb3a16bd7d6 3 | size 122171047 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Repo for Homebrew artifacts 2 | 3 | You should never need to clone this repo. The content is accessible through `brew tap Oculus-VR/tap`. 4 | 5 | ## Contents 6 | 7 | Develop OpenXR apps on macOS with Meta XR Simulator: [meta-xr-simulator.md](meta-xr-simulator.md) 8 | -------------------------------------------------------------------------------- /meta-xr-simulator.md: -------------------------------------------------------------------------------- 1 | # Develop OpenXR apps on macOS with Meta XR Simulator 2 | 3 | Current version: *71.0.0* 4 | 5 | > **WARNING**: The macOS support of Meta XR Simulator is currently in developer preview. Both the functionality and distribution solution may be subject to changes before production. For feedback and suggestion, please send email to xrsim-mac-feedback@meta.com. 6 | > 7 | > **Apple Silicon Mac** is required. Intel-based Mac is not currently supported. 8 | 9 | ## Prerequisites 10 | 11 | ### Homebrew 12 | Install Homebrew following the instruction on https://brew.sh/ 13 | 14 | ### (Optional) Vulkan SDK 15 | 16 | > NOTE: Vulkan SDK is required by Meta XR Simulator until v69. If you are using Meta XR Simulator v71 or above, you could skip this step unless your application uses it. 17 | 18 | Following the [official instruction](https://vulkan.lunarg.com/doc/sdk/latest/mac/getting_started.html) to install Vulkan SDK: 19 | * Download the Vulkan SDK from the Download Site 20 | Open the downloaded *vulkansdk-macos-v.w.xx.0.dmg*, double click “InstallVulkan” to launch the installer 21 | * During installation, enable **System Global Installation** option, which updates Vulkan Loader and MoltenVK libraries in `/usr/local` 22 | 23 | ### (Optional) CMake 24 | You would need CMake for building apps using OpenXR SDK. To install CMake, run `brew install cmake` from Terminal. 25 | 26 | ### (Optional) Android Device Bridge (adb) 27 | To use **Data Forwarding** (which enables you to use the physical Quest Touch Controller with XR Simulator), you need to have `adb` in your `PATH` environment variable. `adb` is a part of Android SDK Platform Tools and can be installed with **Android Studio** from its [official website](https://developer.android.com/studio). 28 | 29 | ### (Optional) Meta Quest Developer Hub 30 | It's highly recommended to use the **Meta Quest Developer Hub** in conjunction with XR Simulator to manage your Quest headset when using **Data Forwarding**. It allows you to disable the Proximity Sensor and launch the Data Forwarding Server with just a few clicks. You can install it from the [official website](https://developer.oculus.com/meta-quest-developer-hub/). 31 | 32 | ## Install and Use Meta XR Simulator on macOS 33 | 34 | ### Installation 35 | 36 | Run the following commands to install Meta XR Simulator: 37 | 38 | ```bash 39 | brew tap Oculus-VR/tap 40 | brew install meta-xr-simulator 41 | ``` 42 | 43 | If Meta XR Simulator is already installed, you may run the following commands to upgrade: 44 | 45 | ```bash 46 | brew update 47 | brew upgrade meta-xr-simulator 48 | ``` 49 | 50 | After install/upgrade Meta XR Simulator, run the following command to complete the initial setup (as prompted in Homebrew output): 51 | 52 | ```bash 53 | sudo /opt/homebrew/Cellar/meta-xr-simulator/__VERSION__/post_installation_macos.sh 54 | ``` 55 | 56 | The script will remove the quarantine protection from Meta XR Simulator binaries, and create/modify the symbol link `/usr/local/share/openxr/1/active_runtime.json` to set Meta XR Simulator as the default OpenXR runtime to the system. 57 | 58 | > Note 1: If you want to switch between multiple OpenXR runtimes, on top of modifying the global symbol link, you can also set `XR_RUNTIME_JSON` environment variable before running your OpenXR app. It can be used in absence of, or override the OpenXR runtime set through `active_runtime.json`. 59 | 60 | > Note 2: If you forgot which folder has the Meta XR Simulator, you can run `brew info meta-xr-simulator` to obtain that. Homebrew should install it under `/opt/homebrew/Cellar/meta-xr-simulator/` folder, on Apple Silicon Macs. 61 | 62 | ### Launch 63 | 64 | With Meta XR Simulator be setup as the active OpenXR runtime, it will automatically be launched when you are running an OpenXR app. Specifically, you will see its debug window be opened when `xrCreateSession()` is called. 65 | 66 | You can either use a game engine that supports OpenXR on Mac, or follow the subsequent sections to build a native C++ app using the OpenXR SDK. 67 | 68 | ### Synthetic Environment Server 69 | 70 | Synthetic Environment Server simulates the physical environment for mixed reality OpenXR apps. By launching it before Meta XR Simulator starts, the mixed reality app can access passthrough, anchor, or scene data through the corresponding OpenXR extensions. 71 | 72 | To launch Synthetic Environment Server, use one of the scripts under `/opt/homebrew/Cellar/meta-xr-simulator/__VERSION__/synth_env_server`. 73 | 74 | For example, if you want to use a simulated living room, run 75 | ``` 76 | /opt/homebrew/Cellar/meta-xr-simulator/__VERSION__/synth_env_server/LaunchLivingRoom.sh 77 | ``` 78 | 79 | You should not launch more than one Synthetic Environment Server at the same time. All Meta XR Simulator instances will share the same synthetic environment, to simulate a co-location multiplayer experience. 80 | 81 | ### Data Forwarding 82 | 83 | Data Forwarding lets you control the Meta XR Simulator with real Meta Quest controllers by connecting a Quest headset to your computer without wearing it. With this feature, you will find it easier to provide complex input to your application running in the simulator. 84 | 85 | To install Data Forwarding Server to your Quest, run 86 | ``` 87 | adb install /opt/homebrew/Cellar/meta-xr-simulator/__VERSION__/data_forwarding_server/XrSimDataForwardingServer.apk 88 | ``` 89 | 90 | Check our [documentation page](https://developer.oculus.com/documentation/unity/xrsim-data-forwarding) for more details. 91 | 92 | ## Develop OpenXR app using OpenXR SDK 93 | 94 | ### Download OpenXR-SDK-Source 95 | 96 | Clone or download OpenXR SDK from https://github.com/KhronosGroup/OpenXR-SDK-Source 97 | 98 | ### Generate and open Xcode project 99 | 100 | Assuming you already have the latest Xcode installed, you can use the following commands to create the Xcode project: 101 | 102 | ```bash 103 | mkdir -p build/macos 104 | cd build/macos 105 | cmake -G "Xcode" ../.. 106 | ``` 107 | 108 | Please check [BUILD.cs](https://github.com/KhronosGroup/OpenXR-SDK-Source/blob/main/BUILDING.md) of OpenXR SDK for further details. 109 | 110 | **Please verify if Vulkan SDK is correctly detected when running `cmake`. You should see the following lines in the output:** 111 | ``` 112 | -- Found Vulkan: /usr/local/lib/libvulkan.dylib (found version "1.3.275") found components: glslc glslangValidator 113 | -- Enabling Vulkan support 114 | ``` 115 | However, if you see `-- Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR) (found version "")` in the output, please fix your Vulkan installation before proceed. 116 | 117 | ### Build and run hello_xr 118 | 119 | Following the steps to build and launch **hello_xr** from Xcode: 120 | * Open build/macos/OPENXR.xcodeproj in Xcode 121 | * In the Targets dropdown, choose **hello_xr** 122 | Open the Targets dropdown again, click "Edit Scheme …" 123 | * Set **-g vulkan2** or **-g metal** in “Arguments Passed on Launch”, according to the Graphics API you want to use. 124 | * If the active OpenXR runtime hasn’t been set, set `XR_RUNTIME_JSON` to `/opt/homebrew/Cellar/meta-xr-simulator/__VERSION__/meta_openxr_simulator.json` in “Environment Variables” 125 | * Click **Play** button 126 | > Note: Although both `XR_KHR_vulkan_enable` and `XR_KHR_vulkan_enable2` are supported by Meta XR Simualtor, The former is not compatible with MoltenVK. Thus, you may get `ERROR_INCOMPATIBLE_DRIVER` if setting the graphics plugin to "vulkan", instead of "vulkan2". 127 | 128 | ## Develop OpenXR app using Unity 129 | 130 | You need a recent Unity editor build (e.g. latest 2022.3 LTS) for Apple Silicon and _OpenXR Plugin_ to use Meta XR Simulator on macOS. 131 | 132 | Here are the steps to enable OpenXR in a new Unity Project on macOS: 133 | 134 | 0. Refer to the instruction above to install [Vulkan SDK](#vulkan-sdk) and [Meta XR Simulator](#install-and-use-meta-xr-simulator-on-macos) 135 | 1. In Unity Package Manager, install **XR Plugin Management** from Unity Registry. 136 | 2. Install the latest version of Unity's **OpenXR Plugin**. The current version is 1.13.0 which supports macOS. 137 | * If you do not see this version in the version history, you can use "Add package by name" and manually add "com.unity.xr.openxr" and "1.13.0". 138 | 3. After the installation of **OpenXR Plugin**, restart Unity editor, if prompted for enabling the new Input System. 139 | 4. In **Project Settings** / **XR Plug-in Management**, check **OpenXR** in the first tab (the standalone platforms). 140 | 5. Go to the first tab of **XR Plugin-in Management** Settings, click the "Warning" sign besides OpenXR, and click the "Fix All" button. 141 | 6. Click "Edit" button of the "at least one interaction profile must be added" message, it brings you to the **OpenXR Settings** panel, add *Oculus Touch Controller Profile* to *Enabled Interaction Profiles* list. 142 | * (Optional) If you haven't set Meta XR Simulator as the active OpenXR Runtime of the system, you can also set **Play Mode OpenXR Runtime** to `/opt/homebrew/Cellar/meta-xr-simulator/__VERSION__/meta_openxr_simulator.json` in this panel. 143 | 7. Click **Play** button of the Unity editor. It will launch Meta XR Simulator and open its Debug Window if everything is setup correctly. 144 | 145 | You may then install the [Meta XR All-in-one SDK](https://assetstore.unity.com/packages/tools/integration/meta-xr-all-in-one-sdk-269657) (v66 or above), or [Unity XR Interaction Toolkit](https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@3.0/manual/index.html), to develop your OpenXR app using Unity. 146 | 147 | ## Develop OpenXR app using Godot 148 | 149 | You can use [Godot](https://godotengine.org/) 4.3 or a later release to develop OpenXR apps with Meta XR Simulator on an Apple Silicon Mac. 150 | 151 | Here are the brief steps: 152 | 153 | 0. Refer to the instruction above to install [Vulkan SDK](#vulkan-sdk) and [Meta XR Simulator](#install-and-use-meta-xr-simulator-on-macos) 154 | 1. Follow the [Setting up XR](https://docs.godotengine.org/en/stable/tutorials/xr/setting_up_xr.html) page to configure your project. Make sure that OpenXR is enabled, and the XR initialization script is added to the root note of the XR scene. 155 | 2. Use the [playtest buttons](https://docs.godotengine.org/en/stable/getting_started/introduction/first_look_at_the_editor.html#first-look-at-godot-s-editor) to test the scene. It will launch Meta XR Simulator and open its Debug Window if everything is setup correctly. 156 | 157 | 158 | ## More information 159 | 160 | Please check the Meta XR Simulator [documentation](https://developer.oculus.com/documentation/native/xrsim-intro/) to obtain further information. 161 | 162 | ## Known issues 163 | 164 | * The performance of **Synthetic Environment Server** is slower on macOS compared to Windows. It's an known issue and will be optimized later. 165 | * Unity **Oculus XR Plugin** doesn't support OpenXR runtime on Mac. If you are developing a Meta Quest app, you may use **Oculus XR Plugin** on Android and **OpenXR Plugin** on Standalone. **Meta XR Core SDK (v66+)** is compatible with both XR Plugins using Mac. 166 | * Unity does NOT officially support the macOS OpenXR Loader in the **OpenXR Plugin**. And the first version that includes the macOS support is 1.13.0. If the Meta XR Simulator window did not open when you play your project in Unity editor, please double check if the correct version of OpenXR Plugin is installed and activated for OpenXR. --------------------------------------------------------------------------------