{"id":758,"date":"2026-03-25T16:35:14","date_gmt":"2026-03-25T15:35:14","guid":{"rendered":"https:\/\/www.youbiquo.eu\/geckode\/?page_id=758"},"modified":"2026-03-26T17:58:06","modified_gmt":"2026-03-26T16:58:06","slug":"vr-mr-leonardo-xr-sdk-2","status":"publish","type":"page","link":"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/","title":{"rendered":"VR\/MR &#8211; Leonardo XR SDK"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"758\" class=\"elementor elementor-758\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fd26faf e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"fd26faf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fc25ac3 elementor-widget elementor-widget-heading\" data-id=\"fc25ac3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">VR\/MR - LeonardoXR SDK<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-79fb590 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"79fb590\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-fc8f20f e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"fc8f20f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-738a8c1 elementor-widget__width-initial elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents\" data-id=\"738a8c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;headings_by_tags&quot;:[&quot;h3&quot;,&quot;h4&quot;,&quot;h5&quot;,&quot;h6&quot;],&quot;exclude_headings_by_selector&quot;:&quot;footer&quot;,&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;far fa-dot-circle&quot;,&quot;library&quot;:&quot;fa-regular&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\\&quot;e-font-icon-svg e-far-dot-circle\\&quot; viewBox=\\&quot;0 0 512 512\\&quot; xmlns=\\&quot;http:\\\/\\\/www.w3.org\\\/2000\\\/svg\\&quot;&gt;&lt;path d=\\&quot;M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\\&quot;&gt;&lt;\\\/path&gt;&lt;\\\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;Non sono state trovate intestazioni in questa pagina.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__header\">\n\t\t\t\t\t\t<h2 class=\"elementor-toc__header-title\">\n\t\t\t\tVR\/MR \u2014 LeonardoXR SDK\t\t\t<\/h2>\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__738a8c1\" aria-expanded=\"true\" aria-label=\"Open table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/div>\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__738a8c1\" aria-expanded=\"true\" aria-label=\"Close table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<div id=\"elementor-toc__738a8c1\" class=\"elementor-toc__body\">\n\t\t\t<div class=\"elementor-toc__spinner-container\">\n\t\t\t\t<svg class=\"elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading\" aria-hidden=\"true\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-459fe69 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"459fe69\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f22cf9b elementor-widget elementor-widget-text-editor\" data-id=\"f22cf9b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 id=\"vrmr--leonardoxr-sdk\" class=\"code-line code-active-line\" dir=\"auto\" data-line=\"0\">VR\/MR \u2014 LeonardoXR SDK<\/h2><blockquote class=\"code-line\" dir=\"auto\" data-line=\"2\"><p class=\"code-line\" dir=\"auto\" data-line=\"2\"><strong>Version:<\/strong>\u00a01.0.2<br \/><strong>Target Device:<\/strong>\u00a0Youbiquo Leonardo XR<br \/><strong>Base SDK:<\/strong>\u00a0Snapdragon Spaces 1.0.4<\/p><\/blockquote><hr class=\"code-line\" dir=\"auto\" data-line=\"6\" \/><h3 id=\"configurazione-manuale-del-progetto-unity\" class=\"code-line\" dir=\"auto\" data-line=\"8\">Manual Configuration<\/h3><p class=\"code-line\" dir=\"auto\" data-line=\"10\">It&#8217;s recommended to use the Configuration Tool for initial project setup (see <a href=\"https:\/\/www.youbiquo.eu\/geckode\/en\/getting-started-en\/\" data-href=\"01-getting-started.md\">Getting Started<\/a>). This guide describes the equivalent manual steps for those who prefer direct control over the settings.<\/p><h4 id=\"modifica-le-project-settings\" class=\"code-line\" dir=\"auto\" data-line=\"12\">Configuration of Project Settings<\/h4><ol class=\"code-line\" dir=\"auto\" data-line=\"14\"><li dir=\"auto\" data-line=\"14\">Navigate to <strong data-start=\"101\" data-end=\"152\">Edit &gt; Project Settings &gt; XR Plug-in Management<\/strong>, then open the <strong data-start=\"168\" data-end=\"179\">Android<\/strong> tab.<\/li><li data-section-id=\"1raa7ae\" data-start=\"187\" data-end=\"266\">Enable the <strong data-start=\"201\" data-end=\"211\">OpenXR<\/strong> plug-in and the <strong data-start=\"228\" data-end=\"249\">Snapdragon Spaces<\/strong> feature group.<\/li><li data-section-id=\"13jt2v0\" data-start=\"267\" data-end=\"371\">Click the red exclamation mark next to <strong data-start=\"309\" data-end=\"319\">OpenXR<\/strong> to open the <strong data-start=\"332\" data-end=\"361\">OpenXR Project Validation<\/strong> window.<\/li><li data-section-id=\"17xa1xc\" data-start=\"372\" data-end=\"414\">Select <strong data-start=\"382\" data-end=\"389\">Fix<\/strong> for each listed issue.<\/li><li data-section-id=\"1shdo58\" data-start=\"415\" data-end=\"517\">Apply the <strong data-start=\"428\" data-end=\"457\">Enable Both Input Systems<\/strong> setting last, as it requires restarting the Editor.<\/li><\/ol><blockquote class=\"code-line\" dir=\"auto\" data-line=\"20\"><p class=\"code-line\" dir=\"auto\" data-line=\"20\"><strong>Play In Editor:<\/strong> For additional settings related to the workflow in the editor see the dedicated section in <a href=\"https:\/\/www.youbiquo.eu\/geckode\/en\/getting-started-en\/\" data-href=\"01-getting-started.md\">Getting Started<\/a>.<\/p><\/blockquote><h4 id=\"abilita-le-spaces-features\" class=\"code-line\" dir=\"auto\" data-line=\"22\">Enable Space Features<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"24\">Enable features that should be active at runtime in <strong>OpenXR Settings.<\/strong> Each feature corresponds to an AR Foundation Manager and an XR Subsystem:<\/p><table class=\"code-line\" dir=\"auto\" data-line=\"26\"><thead class=\"code-line\" dir=\"auto\" data-line=\"26\"><tr class=\"code-line\" dir=\"auto\" data-line=\"26\"><th>Feature<\/th><th>AR Foundation Manager<\/th><th>XR Subsystem<\/th><\/tr><\/thead><tbody class=\"code-line\" dir=\"auto\" data-line=\"28\"><tr class=\"code-line\" dir=\"auto\" data-line=\"28\"><td>Base Runtime<\/td><td>AR Session<\/td><td>XRSessionSubsystem<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"29\"><td>Camera Frame Access<\/td><td>AR Camera Manager<\/td><td>XRCameraSubsystem<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"30\"><td>Hit Testing<\/td><td>AR Raycast Manager<\/td><td>XRRaycastSubsystem<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"31\"><td>Image Tracking<\/td><td>AR Tracked Image Manager<\/td><td>XRImageTrackingSubsystem<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"32\"><td>Plane Detection<\/td><td>AR Plane Manager<\/td><td>XRPlaneSubsystem<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"33\"><td>Spatial Anchors<\/td><td>AR Anchor Manager<\/td><td>XRAnchorSubsystem<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"34\"><td>Spatial Meshing<\/td><td>AR Mesh Manager<\/td><td>XRMeshSubsystem<\/td><\/tr><\/tbody><\/table><h4 id=\"aggiungi-i-feature-usage-data-allandroid-manifest\" class=\"code-line\" dir=\"auto\" data-line=\"36\">Add Feature Usage Data to the Android Manifest<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"38\">Navigate to <strong>Edit &gt; Project Settings &gt; Snapdragon Spaces Launcher Settings<\/strong> to declare the features required or supported by the application for: <strong>Hand Tracking<\/strong>,\u00a0<strong>Eye Tracking<\/strong>,\u00a0<strong>Passthrough<\/strong>,\u00a0<strong>Controllers<\/strong>\u00a0e\u00a0<strong>Room Scale<\/strong>.<\/p><blockquote class=\"code-line\" dir=\"auto\" data-line=\"40\"><p class=\"code-line\" dir=\"auto\" data-line=\"40\"><strong>Attention:<\/strong> By default, all uses-feature values are set to true. Set features not used by your application to false to avoid false requirements in the manifest.<\/p><\/blockquote><h4 id=\"importa-i-samples\" class=\"code-line\" dir=\"auto\" data-line=\"42\">Import the Samples<\/h4><ol class=\"code-line\" dir=\"auto\" data-line=\"44\"><li class=\"code-line\" dir=\"auto\" data-line=\"44\">Open <strong>Window &gt; Package Manager<\/strong>, select the Snapdragon Spaces package.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"45\">Click <strong>Import<\/strong> on <strong>Core Samples<\/strong>.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"45\">Add all scenes to the build via <strong style=\"font-size: 1rem; white-space-collapse: preserve;\">Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings<\/strong><span style=\"font-size: 1rem; white-space-collapse: preserve;\">.<\/span><\/li><\/ol><blockquote class=\"code-line\" dir=\"auto\" data-line=\"48\"><p class=\"code-line\" dir=\"auto\" data-line=\"48\"><strong>Important:\u00a0 <\/strong><span class=\"Y2IQFc\" lang=\"en\">The Camera Frame Access sample requires unsafe mode enabled in<\/span> <strong>Player Settings &gt; Android &gt; Other Settings &gt; Script Compilation &gt; Allow &#8216;unsafe&#8217; Code<\/strong>.<\/p><\/blockquote><hr class=\"code-line\" dir=\"auto\" data-line=\"50\" \/><h3 id=\"passthrough-setup\" class=\"code-line\" dir=\"auto\" data-line=\"52\">Passthrough Setup<\/h3><p class=\"code-line\" dir=\"auto\" data-line=\"54\"><strong>Passthrough<\/strong> allows you to view your physical environment as an image overlay on VR devices. It&#8217;s available on compatible devices on LeonardoXR.<\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"56\"><li class=\"code-line\" dir=\"auto\" data-line=\"56\">It is activated via the <strong>Extend Content<\/strong> panel in the in-app UI (visible only on Passthrough-compatible devices).<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"56\">It can also be activated with the <strong style=\"font-size: 1rem; white-space-collapse: preserve;\">X<\/strong><span style=\"font-size: 1rem; white-space-collapse: preserve;\"> and <\/span><strong style=\"font-size: 1rem; white-space-collapse: preserve;\">A<\/strong><span style=\"font-size: 1rem; white-space-collapse: preserve;\"> buttons on the controller.<\/span><\/li><li class=\"code-line\" dir=\"auto\" data-line=\"58\">The enable fuction is <code>OnPassthroughToggle()<\/code>\u00a0in\u00a0<code>MainMenuSampleController<\/code>, which sets <code>PassthroughToggle<\/code> on <code>BaseRuntimeFeature<\/code>.<\/li><\/ul><blockquote class=\"code-line\" dir=\"auto\" data-line=\"60\"><p class=\"code-line\" dir=\"auto\" data-line=\"60\"><strong>ATTENTIO:<\/strong> LThe session camera must have <strong>the Background Alpha channel<\/strong> set to <strong>0<\/strong> to use Passthrough correctly. An automatic warning is logged if the settings are incorrect.<\/p><\/blockquote><p class=\"code-line\" dir=\"auto\" data-line=\"62\">The delegate <code>OnSpacesAppSpaceChange<\/code>\u00a0in\u00a0<code>BaseRuntimeFeature<\/code><span class=\"Y2IQFc\" lang=\"en\">notifies when the device performs a recenter (activated by holding down the menu button for 2 seconds on the VRX).<\/span><\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"64\" \/><h2 id=\"scene-setup\" class=\"code-line\" dir=\"auto\" data-line=\"66\">Scene Setup<\/h2><blockquote class=\"code-line\" dir=\"auto\" data-line=\"68\"><p class=\"code-line\" dir=\"auto\" data-line=\"68\"><strong>Note:<\/strong> This guide assumes prior knowledge of AR Foundation and OpenXR. Consult the official AR Foundation and OpenXR documentation for basic concepts.<\/p><\/blockquote><h4 id=\"gerarchia-minima-della-scena\" class=\"code-line\" dir=\"auto\" data-line=\"70\">Minimum Scene Hierarchy<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"72\">To enable positional head tracking on LeonardoXR you need the following items:<\/p><pre><code class=\"code-line\" dir=\"auto\" data-line=\"74\">AR Session\nXR Origin\n  \u2514\u2500\u2500 Camera Offset\n        \u2514\u2500\u2500 Main Camera (tagged as \"MainCamera\")\n<\/code><\/pre><p class=\"code-line\" dir=\"auto\" data-line=\"81\">Create them by right-clicking in the Hierarchy and selecting <strong>XR &gt; AR<\/strong> Session or <strong>XR &gt; XR<\/strong> Origin.<\/p><blockquote class=\"code-line\" dir=\"auto\" data-line=\"83\"><p class=\"code-line\" dir=\"auto\" data-line=\"83\"><strong>Attention:<\/strong><\/p><pre id=\"tw-target-text\" class=\"tw-data-text tw-text-large tw-ta\" dir=\"ltr\" tabindex=\"-1\" role=\"text\" data-placeholder=\"Translation\" data-ved=\"2ahUKEwi0v8LN6L2TAxXNnf0HHezqGTkQ3ewLegQIDBAW\" aria-label=\"Translated text: Disable the AR Camera Manager component if you are not fetching RGB frames from the camera, to avoid lifecycle issues.\"><span class=\"Y2IQFc\" lang=\"en\">Disable the <strong>AR Camera Manager<\/strong> component if you are not fetching RGB frames from the camera, to avoid lifecycle issues.\n\n<\/span><strong>Important:<\/strong> Disable the <strong>AR Camera Background<\/strong> component \u2013 it is not supported and will be automatically disabled at runtime.<\/pre><\/blockquote><hr class=\"code-line\" dir=\"auto\" data-line=\"86\" \/><h3 id=\"application-lifecycle--compatibilit%C3%A0-con-runtime-precedenti\" class=\"code-line\" dir=\"auto\" data-line=\"88\">Application Lifecycle \u2014 Compatibility with Previous Runtimes<\/h3><p class=\"code-line\" dir=\"auto\" data-line=\"90\">The library <strong>Older Runtime Compatibility<\/strong><\/p><p>Prevents the application from launching when the SDK is not compatible with the OpenXR runtime installed on the device.<\/p><p>Two entries are added to the Android manifest at startup:<\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"94\"><li class=\"code-line\" dir=\"auto\" data-line=\"94\"><strong><code>targetAPI<\/code><\/strong> \u2014 corresponds to the version of the OpenXR runtime included in the SDK.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"95\"><strong><code>minAPI<\/code><\/strong> \u2014 the minimum runtime version that each feature supports.<\/li><\/ul><blockquote class=\"code-line\" dir=\"auto\" data-line=\"97\"><p class=\"code-line\" dir=\"auto\" data-line=\"97\"><strong>Versione: <\/strong><span class=\"Y2IQFc\" lang=\"en\">Starting with Snapdragon Spaces <\/span>1.0.4, the <code>minAPI<\/code> for all the features is <code>0.22.0<\/code>.<\/p><\/blockquote><h4 id=\"risultati-di-compatibilit%C3%A0\" class=\"code-line\" dir=\"auto\" data-line=\"99\">Compatibility Results<\/h4><table class=\"code-line\" dir=\"auto\" data-line=\"101\"><thead class=\"code-line\" dir=\"auto\" data-line=\"101\"><tr class=\"code-line\" dir=\"auto\" data-line=\"101\"><th>Risultato<\/th><th>Descrizione<\/th><\/tr><\/thead><tbody class=\"code-line\" dir=\"auto\" data-line=\"103\"><tr class=\"code-line\" dir=\"auto\" data-line=\"103\"><td><strong>Success<\/strong><\/td><td>Nessuna incompatibilit\u00e0 rilevata.<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"104\"><td><strong>Error Runtime Failure<\/strong><\/td><td>Errore del runtime OpenXR.<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"105\"><td><strong>Error Validation Failure<\/strong><\/td><td>Errore nella validazione Older Runtime Compatibility.<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"106\"><td><strong>Error Uninitialized System<\/strong><\/td><td>Errore per mancanza di inizializzazione.<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"107\"><td><strong>Error Runtime Too Old For Application<\/strong><\/td><td>Il runtime installato \u00e8 troppo vecchio per l&#8217;SDK.<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"108\"><td><strong>Error Application Too Old For Runtime<\/strong><\/td><td>L&#8217;SDK \u00e8 troppo vecchio per il runtime installato.<\/td><\/tr><\/tbody><\/table><p class=\"code-line\" dir=\"auto\" data-line=\"110\">When an incompatibility is detected, a pop-up appears with an error message and a <strong>Quit<\/strong> button. For apps with Dual Render Fusion, the user is notified, but the application can still launch.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"112\" \/><h3 id=\"known-issues--vrmr-su-leonardoxr\" class=\"code-line\" dir=\"auto\" data-line=\"114\">Common Issues \u2014 VR\/MR on LeonardoXR<\/h3><blockquote class=\"code-line\" dir=\"auto\" data-line=\"116\"><p class=\"code-line\" dir=\"auto\" data-line=\"116\">For issues not listed here, see the general Snapdragon Spaces platform known issues.<\/p><\/blockquote><h4 id=\"gradle-build-issue\" class=\"code-line\" dir=\"auto\" data-line=\"118\">Gradle Build Issue<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"120\">Adding a custom controller repository can cause Gradle caching errors. Delete the folder. <code>Temp &gt; gradleOut<\/code> usually solves the problem.<\/p><p><strong>AR Foundation Issues<\/strong><\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"124\"><li class=\"code-line\" dir=\"auto\" data-line=\"124\"><strong>AR Raycast Hit restituisce Trackable ID errato<\/strong>\u00a0\u2014\u00a0<code>ARRaycastHit.trackableId<\/code> always gives back <code>0-0<\/code>.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"125\"><strong>Plane Detection blocked<\/strong> \u2014 Mesh triangulation enters an infinite loop in AR Foundation 6.2.1.<\/li><\/ul><h4 id=\"xrit-issues\" class=\"code-line\" dir=\"auto\" data-line=\"127\">XRIT Issues<\/h4><ul class=\"code-line\" dir=\"auto\" data-line=\"129\"><li class=\"code-line\" dir=\"auto\" data-line=\"129\"><strong>AR Raycast Manager added automatically<\/strong> \u2014 XRIT 3.x adds an<br \/><code>AR Raycast Manager<\/code> when there is a <code>XR Raycast Interactor<\/code>, enabling Spatial Meshing regardless of the flag <code>EnableARRaycasting<\/code>. This may reduce performance.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"130\"><strong>Propriet\u00e0 AR Mesh Manager not supported<\/strong> \u2014 Using unsupported properties generates runtime warnings.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"131\"><strong>AR Camera Manager \/ AR Camera Background Issues<\/strong>\u00a0\u2014 Spostarsi tra scene con\u00a0<code>AR Camera Manager<\/code>\u00a0abilitato pu\u00f2 causare freeze. Disabilita\u00a0<code>AR Camera Background<\/code>\u00a0per evitare problemi di rendering.<\/li><\/ul><h4 id=\"play-in-editor-known-issues\" class=\"code-line\" dir=\"auto\" data-line=\"133\">Play In Editor Known Issues<\/h4><ul class=\"code-line\" dir=\"auto\" data-line=\"135\"><li class=\"code-line\" dir=\"auto\" data-line=\"135\"><strong>Memory Leak in Camera Access Simulation<\/strong> \u2014 Risolved in AR Foundation 6.0+.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"136\"><strong>AR Mesh Manager crash senza Normals<\/strong> \u2014Update AR Foundation or enable normals.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"137\"><strong>QR Code Tracking non caricato in Simulation<\/strong> \u2014 There is no simulation subsystem; it bypasses the checks in the build editors.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"138\"><strong>ScriptableSingleton Warning<\/strong> \u2014 Resolved in AR Foundation 5.1.2+.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>VR\/MR &#8211; LeonardoXR SDK VR\/MR \u2014 LeonardoXR SDK VR\/MR \u2014 LeonardoXR SDK Version:\u00a01.0.2Target Device:\u00a0Youbiquo Leonardo XRBase SDK:\u00a0Snapdragon Spaces 1.0.4 Manual Configuration It&#8217;s recommended to use the Configuration Tool for initial project setup (see Getting Started). This guide describes the equivalent manual steps for those who prefer direct control over the settings. Configuration of Project Settings Navigate to Edit &gt; Project Settings &gt; XR Plug-in Management, then open the Android tab. Enable the OpenXR plug-in and the Snapdragon Spaces feature group. Click the red exclamation mark next to OpenXR to open the OpenXR Project Validation window. Select Fix for each listed issue. Apply the Enable Both Input Systems setting last, as it requires restarting the Editor. Play In Editor: For additional settings related to the workflow in the editor see the dedicated section in Getting Started. Enable Space Features Enable features that should be active at runtime in OpenXR Settings. Each feature corresponds to an AR Foundation Manager and an XR Subsystem: Feature AR Foundation Manager XR Subsystem Base Runtime AR Session XRSessionSubsystem Camera Frame Access AR Camera Manager XRCameraSubsystem Hit Testing AR Raycast Manager XRRaycastSubsystem Image Tracking AR Tracked Image Manager XRImageTrackingSubsystem Plane Detection AR Plane Manager XRPlaneSubsystem Spatial Anchors AR Anchor Manager XRAnchorSubsystem Spatial Meshing AR Mesh Manager XRMeshSubsystem Add Feature Usage Data to the Android Manifest Navigate to Edit &gt; Project Settings &gt; Snapdragon Spaces Launcher Settings to declare the features required or supported by the application for: Hand Tracking,\u00a0Eye Tracking,\u00a0Passthrough,\u00a0Controllers\u00a0e\u00a0Room Scale. Attention: By default, all uses-feature values are set to true. Set features not used by your application to false to avoid false requirements in the manifest. Import the Samples Open Window &gt; Package Manager, select the Snapdragon Spaces package. Click Import on Core Samples. Add all scenes to the build via Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings. Important:\u00a0 The Camera Frame Access sample requires unsafe mode enabled in Player Settings &gt; Android &gt; Other Settings &gt; Script Compilation &gt; Allow &#8216;unsafe&#8217; Code. Passthrough Setup Passthrough allows you to view your physical environment as an image overlay on VR devices. It&#8217;s available on compatible devices on LeonardoXR. It is activated via the Extend Content panel in the in-app UI (visible only on Passthrough-compatible devices). It can also be activated with the X and A buttons on the controller. The enable fuction is OnPassthroughToggle()\u00a0in\u00a0MainMenuSampleController, which sets PassthroughToggle on BaseRuntimeFeature. ATTENTIO: LThe session camera must have the Background Alpha channel set to 0 to use Passthrough correctly. An automatic warning is logged if the settings are incorrect. The delegate OnSpacesAppSpaceChange\u00a0in\u00a0BaseRuntimeFeaturenotifies when the device performs a recenter (activated by holding down the menu button for 2 seconds on the VRX). Scene Setup Note: This guide assumes prior knowledge of AR Foundation and OpenXR. Consult the official AR Foundation and OpenXR documentation for basic concepts. Minimum Scene Hierarchy To enable positional head tracking on LeonardoXR you need the following items: AR Session XR Origin \u2514\u2500\u2500 Camera Offset \u2514\u2500\u2500 Main Camera (tagged as &#8220;MainCamera&#8221;) Create them by right-clicking in the Hierarchy and selecting XR &gt; AR Session or XR &gt; XR Origin. Attention: Disable the AR Camera Manager component if you are not fetching RGB frames from the camera, to avoid lifecycle issues. Important: Disable the AR Camera Background component \u2013 it is not supported and will be automatically disabled at runtime. Application Lifecycle \u2014 Compatibility with Previous Runtimes The library Older Runtime Compatibility Prevents the application from launching when the SDK is not compatible with the OpenXR runtime installed on the device. Two entries are added to the Android manifest at startup: targetAPI \u2014 corresponds to the version of the OpenXR runtime included in the SDK. minAPI \u2014 the minimum runtime version that each feature supports. Versione: Starting with Snapdragon Spaces 1.0.4, the minAPI for all the features is 0.22.0. Compatibility Results Risultato Descrizione Success Nessuna incompatibilit\u00e0 rilevata. Error Runtime Failure Errore del runtime OpenXR. Error Validation Failure Errore nella validazione Older Runtime Compatibility. Error Uninitialized System Errore per mancanza di inizializzazione. Error Runtime Too Old For Application Il runtime installato \u00e8 troppo vecchio per l&#8217;SDK. Error Application Too Old For Runtime L&#8217;SDK \u00e8 troppo vecchio per il runtime installato. When an incompatibility is detected, a pop-up appears with an error message and a Quit button. For apps with Dual Render Fusion, the user is notified, but the application can still launch. Common Issues \u2014 VR\/MR on LeonardoXR For issues not listed here, see the general Snapdragon Spaces platform known issues. Gradle Build Issue Adding a custom controller repository can cause Gradle caching errors. Delete the folder. Temp &gt; gradleOut usually solves the problem. AR Foundation Issues AR Raycast Hit restituisce Trackable ID errato\u00a0\u2014\u00a0ARRaycastHit.trackableId always gives back 0-0. Plane Detection blocked \u2014 Mesh triangulation enters an infinite loop in AR Foundation 6.2.1. XRIT Issues AR Raycast Manager added automatically \u2014 XRIT 3.x adds anAR Raycast Manager when there is a XR Raycast Interactor, enabling Spatial Meshing regardless of the flag EnableARRaycasting. This may reduce performance. Propriet\u00e0 AR Mesh Manager not supported \u2014 Using unsupported properties generates runtime warnings. AR Camera Manager \/ AR Camera Background Issues\u00a0\u2014 Spostarsi tra scene con\u00a0AR Camera Manager\u00a0abilitato pu\u00f2 causare freeze. Disabilita\u00a0AR Camera Background\u00a0per evitare problemi di rendering. Play In Editor Known Issues Memory Leak in Camera Access Simulation \u2014 Risolved in AR Foundation 6.0+. AR Mesh Manager crash senza Normals \u2014Update AR Foundation or enable normals. QR Code Tracking non caricato in Simulation \u2014 There is no simulation subsystem; it bypasses the checks in the build editors. ScriptableSingleton Warning \u2014 Resolved in AR Foundation 5.1.2+.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-758","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>VR\/MR - Leonardo XR SDK - Geckode!<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VR\/MR - Leonardo XR SDK - Geckode!\" \/>\n<meta property=\"og:description\" content=\"VR\/MR &#8211; LeonardoXR SDK VR\/MR \u2014 LeonardoXR SDK VR\/MR \u2014 LeonardoXR SDK Version:\u00a01.0.2Target Device:\u00a0Youbiquo Leonardo XRBase SDK:\u00a0Snapdragon Spaces 1.0.4 Manual Configuration It&#8217;s recommended to use the Configuration Tool for initial project setup (see Getting Started). This guide describes the equivalent manual steps for those who prefer direct control over the settings. Configuration of Project Settings Navigate to Edit &gt; Project Settings &gt; XR Plug-in Management, then open the Android tab. Enable the OpenXR plug-in and the Snapdragon Spaces feature group. Click the red exclamation mark next to OpenXR to open the OpenXR Project Validation window. Select Fix for each listed issue. Apply the Enable Both Input Systems setting last, as it requires restarting the Editor. Play In Editor: For additional settings related to the workflow in the editor see the dedicated section in Getting Started. Enable Space Features Enable features that should be active at runtime in OpenXR Settings. Each feature corresponds to an AR Foundation Manager and an XR Subsystem: Feature AR Foundation Manager XR Subsystem Base Runtime AR Session XRSessionSubsystem Camera Frame Access AR Camera Manager XRCameraSubsystem Hit Testing AR Raycast Manager XRRaycastSubsystem Image Tracking AR Tracked Image Manager XRImageTrackingSubsystem Plane Detection AR Plane Manager XRPlaneSubsystem Spatial Anchors AR Anchor Manager XRAnchorSubsystem Spatial Meshing AR Mesh Manager XRMeshSubsystem Add Feature Usage Data to the Android Manifest Navigate to Edit &gt; Project Settings &gt; Snapdragon Spaces Launcher Settings to declare the features required or supported by the application for: Hand Tracking,\u00a0Eye Tracking,\u00a0Passthrough,\u00a0Controllers\u00a0e\u00a0Room Scale. Attention: By default, all uses-feature values are set to true. Set features not used by your application to false to avoid false requirements in the manifest. Import the Samples Open Window &gt; Package Manager, select the Snapdragon Spaces package. Click Import on Core Samples. Add all scenes to the build via Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings. Important:\u00a0 The Camera Frame Access sample requires unsafe mode enabled in Player Settings &gt; Android &gt; Other Settings &gt; Script Compilation &gt; Allow &#8216;unsafe&#8217; Code. Passthrough Setup Passthrough allows you to view your physical environment as an image overlay on VR devices. It&#8217;s available on compatible devices on LeonardoXR. It is activated via the Extend Content panel in the in-app UI (visible only on Passthrough-compatible devices). It can also be activated with the X and A buttons on the controller. The enable fuction is OnPassthroughToggle()\u00a0in\u00a0MainMenuSampleController, which sets PassthroughToggle on BaseRuntimeFeature. ATTENTIO: LThe session camera must have the Background Alpha channel set to 0 to use Passthrough correctly. An automatic warning is logged if the settings are incorrect. The delegate OnSpacesAppSpaceChange\u00a0in\u00a0BaseRuntimeFeaturenotifies when the device performs a recenter (activated by holding down the menu button for 2 seconds on the VRX). Scene Setup Note: This guide assumes prior knowledge of AR Foundation and OpenXR. Consult the official AR Foundation and OpenXR documentation for basic concepts. Minimum Scene Hierarchy To enable positional head tracking on LeonardoXR you need the following items: AR Session XR Origin \u2514\u2500\u2500 Camera Offset \u2514\u2500\u2500 Main Camera (tagged as &quot;MainCamera&quot;) Create them by right-clicking in the Hierarchy and selecting XR &gt; AR Session or XR &gt; XR Origin. Attention: Disable the AR Camera Manager component if you are not fetching RGB frames from the camera, to avoid lifecycle issues. Important: Disable the AR Camera Background component \u2013 it is not supported and will be automatically disabled at runtime. Application Lifecycle \u2014 Compatibility with Previous Runtimes The library Older Runtime Compatibility Prevents the application from launching when the SDK is not compatible with the OpenXR runtime installed on the device. Two entries are added to the Android manifest at startup: targetAPI \u2014 corresponds to the version of the OpenXR runtime included in the SDK. minAPI \u2014 the minimum runtime version that each feature supports. Versione: Starting with Snapdragon Spaces 1.0.4, the minAPI for all the features is 0.22.0. Compatibility Results Risultato Descrizione Success Nessuna incompatibilit\u00e0 rilevata. Error Runtime Failure Errore del runtime OpenXR. Error Validation Failure Errore nella validazione Older Runtime Compatibility. Error Uninitialized System Errore per mancanza di inizializzazione. Error Runtime Too Old For Application Il runtime installato \u00e8 troppo vecchio per l&#8217;SDK. Error Application Too Old For Runtime L&#8217;SDK \u00e8 troppo vecchio per il runtime installato. When an incompatibility is detected, a pop-up appears with an error message and a Quit button. For apps with Dual Render Fusion, the user is notified, but the application can still launch. Common Issues \u2014 VR\/MR on LeonardoXR For issues not listed here, see the general Snapdragon Spaces platform known issues. Gradle Build Issue Adding a custom controller repository can cause Gradle caching errors. Delete the folder. Temp &gt; gradleOut usually solves the problem. AR Foundation Issues AR Raycast Hit restituisce Trackable ID errato\u00a0\u2014\u00a0ARRaycastHit.trackableId always gives back 0-0. Plane Detection blocked \u2014 Mesh triangulation enters an infinite loop in AR Foundation 6.2.1. XRIT Issues AR Raycast Manager added automatically \u2014 XRIT 3.x adds anAR Raycast Manager when there is a XR Raycast Interactor, enabling Spatial Meshing regardless of the flag EnableARRaycasting. This may reduce performance. Propriet\u00e0 AR Mesh Manager not supported \u2014 Using unsupported properties generates runtime warnings. AR Camera Manager \/ AR Camera Background Issues\u00a0\u2014 Spostarsi tra scene con\u00a0AR Camera Manager\u00a0abilitato pu\u00f2 causare freeze. Disabilita\u00a0AR Camera Background\u00a0per evitare problemi di rendering. Play In Editor Known Issues Memory Leak in Camera Access Simulation \u2014 Risolved in AR Foundation 6.0+. AR Mesh Manager crash senza Normals \u2014Update AR Foundation or enable normals. QR Code Tracking non caricato in Simulation \u2014 There is no simulation subsystem; it bypasses the checks in the build editors. ScriptableSingleton Warning \u2014 Resolved in AR Foundation 5.1.2+.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Geckode!\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-26T16:58:06+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/\",\"url\":\"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/\",\"name\":\"VR\/MR - Leonardo XR SDK - Geckode!\",\"isPartOf\":{\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#website\"},\"datePublished\":\"2026-03-25T15:35:14+00:00\",\"dateModified\":\"2026-03-26T16:58:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.youbiquo.eu\/geckode\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VR\/MR &#8211; Leonardo XR SDK\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#website\",\"url\":\"https:\/\/www.youbiquo.eu\/geckode\/\",\"name\":\"Geckode!\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.youbiquo.eu\/geckode\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#organization\",\"name\":\"Geckode!\",\"url\":\"https:\/\/www.youbiquo.eu\/geckode\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/02\/Gemini_Generated_Image_ns1dvvns1dvvns1d-e1774014413830.png\",\"contentUrl\":\"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/02\/Gemini_Generated_Image_ns1dvvns1dvvns1d-e1774014413830.png\",\"width\":778,\"height\":778,\"caption\":\"Geckode!\"},\"image\":{\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"VR\/MR - Leonardo XR SDK - Geckode!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/","og_locale":"en_US","og_type":"article","og_title":"VR\/MR - Leonardo XR SDK - Geckode!","og_description":"VR\/MR &#8211; LeonardoXR SDK VR\/MR \u2014 LeonardoXR SDK VR\/MR \u2014 LeonardoXR SDK Version:\u00a01.0.2Target Device:\u00a0Youbiquo Leonardo XRBase SDK:\u00a0Snapdragon Spaces 1.0.4 Manual Configuration It&#8217;s recommended to use the Configuration Tool for initial project setup (see Getting Started). This guide describes the equivalent manual steps for those who prefer direct control over the settings. Configuration of Project Settings Navigate to Edit &gt; Project Settings &gt; XR Plug-in Management, then open the Android tab. Enable the OpenXR plug-in and the Snapdragon Spaces feature group. Click the red exclamation mark next to OpenXR to open the OpenXR Project Validation window. Select Fix for each listed issue. Apply the Enable Both Input Systems setting last, as it requires restarting the Editor. Play In Editor: For additional settings related to the workflow in the editor see the dedicated section in Getting Started. Enable Space Features Enable features that should be active at runtime in OpenXR Settings. Each feature corresponds to an AR Foundation Manager and an XR Subsystem: Feature AR Foundation Manager XR Subsystem Base Runtime AR Session XRSessionSubsystem Camera Frame Access AR Camera Manager XRCameraSubsystem Hit Testing AR Raycast Manager XRRaycastSubsystem Image Tracking AR Tracked Image Manager XRImageTrackingSubsystem Plane Detection AR Plane Manager XRPlaneSubsystem Spatial Anchors AR Anchor Manager XRAnchorSubsystem Spatial Meshing AR Mesh Manager XRMeshSubsystem Add Feature Usage Data to the Android Manifest Navigate to Edit &gt; Project Settings &gt; Snapdragon Spaces Launcher Settings to declare the features required or supported by the application for: Hand Tracking,\u00a0Eye Tracking,\u00a0Passthrough,\u00a0Controllers\u00a0e\u00a0Room Scale. Attention: By default, all uses-feature values are set to true. Set features not used by your application to false to avoid false requirements in the manifest. Import the Samples Open Window &gt; Package Manager, select the Snapdragon Spaces package. Click Import on Core Samples. Add all scenes to the build via Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings. Important:\u00a0 The Camera Frame Access sample requires unsafe mode enabled in Player Settings &gt; Android &gt; Other Settings &gt; Script Compilation &gt; Allow &#8216;unsafe&#8217; Code. Passthrough Setup Passthrough allows you to view your physical environment as an image overlay on VR devices. It&#8217;s available on compatible devices on LeonardoXR. It is activated via the Extend Content panel in the in-app UI (visible only on Passthrough-compatible devices). It can also be activated with the X and A buttons on the controller. The enable fuction is OnPassthroughToggle()\u00a0in\u00a0MainMenuSampleController, which sets PassthroughToggle on BaseRuntimeFeature. ATTENTIO: LThe session camera must have the Background Alpha channel set to 0 to use Passthrough correctly. An automatic warning is logged if the settings are incorrect. The delegate OnSpacesAppSpaceChange\u00a0in\u00a0BaseRuntimeFeaturenotifies when the device performs a recenter (activated by holding down the menu button for 2 seconds on the VRX). Scene Setup Note: This guide assumes prior knowledge of AR Foundation and OpenXR. Consult the official AR Foundation and OpenXR documentation for basic concepts. Minimum Scene Hierarchy To enable positional head tracking on LeonardoXR you need the following items: AR Session XR Origin \u2514\u2500\u2500 Camera Offset \u2514\u2500\u2500 Main Camera (tagged as \"MainCamera\") Create them by right-clicking in the Hierarchy and selecting XR &gt; AR Session or XR &gt; XR Origin. Attention: Disable the AR Camera Manager component if you are not fetching RGB frames from the camera, to avoid lifecycle issues. Important: Disable the AR Camera Background component \u2013 it is not supported and will be automatically disabled at runtime. Application Lifecycle \u2014 Compatibility with Previous Runtimes The library Older Runtime Compatibility Prevents the application from launching when the SDK is not compatible with the OpenXR runtime installed on the device. Two entries are added to the Android manifest at startup: targetAPI \u2014 corresponds to the version of the OpenXR runtime included in the SDK. minAPI \u2014 the minimum runtime version that each feature supports. Versione: Starting with Snapdragon Spaces 1.0.4, the minAPI for all the features is 0.22.0. Compatibility Results Risultato Descrizione Success Nessuna incompatibilit\u00e0 rilevata. Error Runtime Failure Errore del runtime OpenXR. Error Validation Failure Errore nella validazione Older Runtime Compatibility. Error Uninitialized System Errore per mancanza di inizializzazione. Error Runtime Too Old For Application Il runtime installato \u00e8 troppo vecchio per l&#8217;SDK. Error Application Too Old For Runtime L&#8217;SDK \u00e8 troppo vecchio per il runtime installato. When an incompatibility is detected, a pop-up appears with an error message and a Quit button. For apps with Dual Render Fusion, the user is notified, but the application can still launch. Common Issues \u2014 VR\/MR on LeonardoXR For issues not listed here, see the general Snapdragon Spaces platform known issues. Gradle Build Issue Adding a custom controller repository can cause Gradle caching errors. Delete the folder. Temp &gt; gradleOut usually solves the problem. AR Foundation Issues AR Raycast Hit restituisce Trackable ID errato\u00a0\u2014\u00a0ARRaycastHit.trackableId always gives back 0-0. Plane Detection blocked \u2014 Mesh triangulation enters an infinite loop in AR Foundation 6.2.1. XRIT Issues AR Raycast Manager added automatically \u2014 XRIT 3.x adds anAR Raycast Manager when there is a XR Raycast Interactor, enabling Spatial Meshing regardless of the flag EnableARRaycasting. This may reduce performance. Propriet\u00e0 AR Mesh Manager not supported \u2014 Using unsupported properties generates runtime warnings. AR Camera Manager \/ AR Camera Background Issues\u00a0\u2014 Spostarsi tra scene con\u00a0AR Camera Manager\u00a0abilitato pu\u00f2 causare freeze. Disabilita\u00a0AR Camera Background\u00a0per evitare problemi di rendering. Play In Editor Known Issues Memory Leak in Camera Access Simulation \u2014 Risolved in AR Foundation 6.0+. AR Mesh Manager crash senza Normals \u2014Update AR Foundation or enable normals. QR Code Tracking non caricato in Simulation \u2014 There is no simulation subsystem; it bypasses the checks in the build editors. ScriptableSingleton Warning \u2014 Resolved in AR Foundation 5.1.2+.","og_url":"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/","og_site_name":"Geckode!","article_modified_time":"2026-03-26T16:58:06+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/","url":"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/","name":"VR\/MR - Leonardo XR SDK - Geckode!","isPartOf":{"@id":"https:\/\/www.youbiquo.eu\/geckode\/#website"},"datePublished":"2026-03-25T15:35:14+00:00","dateModified":"2026-03-26T16:58:06+00:00","breadcrumb":{"@id":"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.youbiquo.eu\/geckode\/en\/vr-mr-leonardo-xr-sdk-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.youbiquo.eu\/geckode\/"},{"@type":"ListItem","position":2,"name":"VR\/MR &#8211; Leonardo XR SDK"}]},{"@type":"WebSite","@id":"https:\/\/www.youbiquo.eu\/geckode\/#website","url":"https:\/\/www.youbiquo.eu\/geckode\/","name":"Geckode!","description":"","publisher":{"@id":"https:\/\/www.youbiquo.eu\/geckode\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.youbiquo.eu\/geckode\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.youbiquo.eu\/geckode\/#organization","name":"Geckode!","url":"https:\/\/www.youbiquo.eu\/geckode\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.youbiquo.eu\/geckode\/#\/schema\/logo\/image\/","url":"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/02\/Gemini_Generated_Image_ns1dvvns1dvvns1d-e1774014413830.png","contentUrl":"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/02\/Gemini_Generated_Image_ns1dvvns1dvvns1d-e1774014413830.png","width":778,"height":778,"caption":"Geckode!"},"image":{"@id":"https:\/\/www.youbiquo.eu\/geckode\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/pages\/758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/comments?post=758"}],"version-history":[{"count":34,"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/pages\/758\/revisions"}],"predecessor-version":[{"id":915,"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/pages\/758\/revisions\/915"}],"wp:attachment":[{"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/media?parent=758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}