{"version":"1.0","provider_name":"Geckode!","provider_url":"https:\/\/www.youbiquo.eu\/geckode","author_name":"Aida Garfami","author_url":"https:\/\/www.youbiquo.eu\/geckode\/author\/aida-garfami\/","title":"LeonardoXR SDK Documentation - Geckode!","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"jUytggE7Md\"><a href=\"https:\/\/www.youbiquo.eu\/geckode\/en\/leonardoxr-sdk-documentation\/\">LeonardoXR SDK Documentation<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/www.youbiquo.eu\/geckode\/en\/leonardoxr-sdk-documentation\/embed\/#?secret=jUytggE7Md\" width=\"600\" height=\"338\" title=\"&#8220;LeonardoXR SDK Documentation&#8221; &#8212; Geckode!\" data-secret=\"jUytggE7Md\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/www.youbiquo.eu\/geckode\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","description":"LeonardoXR SDK Documentation LeonardoXR SDK Documentation \u2014 LeonardoXR SDK Youbiquo \u2014 LeonardoXR SDK \u2014 Developer Documentation \u00a0 \u00a0 SDK Version 1.0.2 Target Device Youbiquo Leonardo XR Spaces SDK Snapdragon Spaces 1.0.4 Unity Version 6000.0.58f2 Language English Document Index # Title Description 01 Getting Started Project setup, SDK installation, URP and Play-in-Editor configuration 02 VR \/ MR Manual project config, Passthrough, scene setup, lifecycle compatibility 03 Features Snapdragon Spaces features + LeonardoXR proprietary features 04 Samples Guide Overview of all available samples and how to run them 05 Interaction Package Guides XRIT 3.x, XR Hands, controllers and hand tracking 06 Advanced Display refresh rate, performance settings, custom controllers, QNN 01 Getting Started Version 1.0.2 | Device: Youbiquo Leonardo XR | Base SDK: Snapdragon Spaces 1.0.4 Introduction This guide explains how to configure a Unity project for development on Leonardo XR, the Youbiquo AR headset based on Snapdragon Spaces. The goal is to familiarise developers with the SDK configuration for building applications on Leonardo. The next guide covers how to interact with controllers and hands. Leonardo XR runs Android 12 and follows a development workflow familiar to anyone who has previously built Android applications. Required Software Before starting, make sure the following software and packages are installed at the specified versions: Software \/ Package Version Unity Hub Latest available Unity Editor 6000.0.58f2 LeonardoXR SDK 1.0.2 Snapdragon Spaces SDK 1.0.4 OpenXR Plugin 1.15.1 AR Foundation 6.2.1 XR Interaction Toolkit 3.3.0 XR Hands 1.7.2 UniTask 2.5.10 VS Code, Visual Studio or similar IDE \u2014 NOTE\u00a0Unlike the base Snapdragon Spaces guide (which recommends v1.10.0 for Unity 2022), Unity 6 with LeonardoXR uses OpenXR 1.15.1. Do not modify this version manually \u2014 the Package Manager handles it through the SDK dependencies. Create a New Project Open Unity Hub and click\u00a0New Project. Select the\u00a0Universal 3D\u00a0template. Name the project (e.g.\u00a0LeonardoXR_Test) and choose a destination folder. Click\u00a0Create Project. After creation, Unity opens the project with a sample scene in the Hierarchy panel. Switch Platform to Android From the main menu select\u00a0File &gt; Build Profiles. In the Build Profiles window select\u00a0Android\u00a0from the Platform list. Click\u00a0Switch Platform\u00a0and wait for the process to complete. Close the Build Profiles window. Install Snapdragon Spaces SDK IMPORTANT\u00a0Snapdragon Spaces SDK\u00a0must be installed before\u00a0the LeonardoXR SDK. The LeonardoXR runtime depends on it and will not compile without it. Download Snapdragon Spaces SDK v1.0.4 from the Qualcomm developer portal (a developer account is required):\u00a0https:\/\/spaces.qualcomm.com\/developer\/vr-mr-sdk\/#downloads Open the Package Manager (Window &gt; Package Manager). Click\u00a0+\u00a0and select\u00a0Add package from tarball\u2026 Browse to the downloaded\u00a0.tgz\u00a0file and click\u00a0Open. Installation will start automatically. During installation, two prompts may appear: &#8220;Enable the new input system?&#8221; \u2192 click\u00a0Yes. &#8220;XR Interaction Layer Mask Update Required&#8221; \u2192 for a new project, click\u00a0I Made a Backup, Go Ahead! NOTE\u00a0The editor will restart after installation \u2014 this is expected behaviour, not a crash. For version control, copy the\u00a0.tgz\u00a0into the project&#8217;s\u00a0Packages\/\u00a0folder before adding it; the manifest will then use a relative path, which is better for source control. Unity 6.3+ \u2014 Known Spaces SDK issue:\u00a0After installation you may see the following compile error: BaseRuntimeFeature.InterceptEnvironmentBlendMode.cs(15,10): error CS0592: Attribute 'SerializeField' is not valid on this declaration type. To fix it, double-click the error in the Console to open the file, then remove the\u00a0[SerializeField]\u00a0attribute on line 15. This is a bug in Snapdragon Spaces 1.0.4 that only surfaces on Unity 6.3 and above. Install LeonardoXR SDK Download LeonardoXR SDK v1.0.2 from the Youbiquo Developer area. Open the Package Manager (Window &gt; Package Manager). Click\u00a0+\u00a0and select\u00a0Add package from tarball\u2026 Browse to the LeonardoXR SDK\u00a0.tgz\u00a0file and click\u00a0Open. The SDK will be installed together with its dependencies:\u00a0OpenXR Plugin 1.15.1,\u00a0AR Foundation 6.2.1,\u00a0XR Interaction Toolkit 3.3.0, and\u00a0XR Hands 1.7.2\u00a0\u2014 no manual installation of these packages is required. LeonardoXR SDK Manager After the LeonardoXR SDK is installed, a\u00a0LeonardoXR SDK Manager\u00a0window opens automatically. If it does not appear, open it from\u00a0LeonardoXR &gt; SDK Manager\u00a0in the menu bar. The window has two tabs: Setup tab\u00a0\u2014 displays the status of the two packages that cannot be resolved automatically: Package Status Action Snapdragon Spaces SDK 1.0.4 \u2713 \/ \u2717 Browse\u2026\u00a0\u2014 opens a file picker to select the\u00a0.tgz\u00a0and installs it via Package Manager UniTask 2.5.10 \u2713 \/ \u2717 Install\u00a0\u2014 installs UniTask directly from the official Cysharp Git repository Once both packages show \u2713, the setup is complete. Use the\u00a0\u21ba Refresh\u00a0button at any time to re-check the current state. About tab\u00a0\u2014 displays version information for the SDK, device, and Unity Editor. Configure XR Plugin Management and OpenXR Open Project Settings Go to\u00a0Edit &gt; Project Settings\u00a0and select\u00a0XR Plug-in Management\u00a0in the left sidebar. Enable OpenXR and Snapdragon Spaces Click the\u00a0Android\u00a0tab (top right of the window). Under\u00a0Plug-in Providers, ensure both are checked:\u00a0OpenXR\u00a0and\u00a0Snapdragon Spaces feature group. Configure OpenXR Features Click\u00a0OpenXR\u00a0in the left sidebar. In the Snapdragon Spaces feature list, enable only\u00a0Base Runtime\u00a0and disable all others. Advanced features (Hit Testing, Plane Detection, etc.) can be enabled later as needed. NOTE\u00a0For Hand Tracking to work correctly on LeonardoXR, the\u00a0Hand Tracking Subsystem\u00a0option must be enabled in the\u00a0All Features\u00a0section of OpenXR. Add LeonardoXR Feature Group Return to\u00a0XR Plug-in Management &gt; Android. In the Plug-in Providers list, also check\u00a0LeonardoXR feature group. Run Project Validation In the Project Settings sidebar click\u00a0Project Validation. The window shows a list of configuration errors to fix. Click\u00a0Fix All\u00a0to resolve them automatically. NOTE\u00a0Some fixes may require an editor restart. Re-run validation after restarting to confirm all errors are resolved. Import Samples Before creating your own scenes it is useful to import the samples included in each package. For each package: open\u00a0Window &gt; Package Manager, select\u00a0In Project, select the package, expand the\u00a0Samples\u00a0section and click\u00a0Import. Package Samples XR Hands Gestures, Hand Visualizer XR Interaction Toolkit Starter Assets, Hand Interaction Demo Snapdragon Spaces Core Samples LeonardoXR Core Samples, Documentation After importing all samples, add scenes to the build via\u00a0Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings. Configure URP Graphics and Quality Settings Open\u00a0Edit &gt; Project Settings &gt; Graphics. Under\u00a0Default Render Pipeline, click the circle and select\u00a0Mobile_RPAsset. Go to\u00a0Project Settings &gt; Quality. In the Levels section, ensure\u00a0Mobile\u00a0has a green checkbox in the Android column. If not, click the\u00a0Default\u00a0triangle under Android"}