{"id":1225,"date":"2026-04-09T17:12:58","date_gmt":"2026-04-09T15:12:58","guid":{"rendered":"https:\/\/www.youbiquo.eu\/geckode\/?page_id=1225"},"modified":"2026-04-09T17:48:11","modified_gmt":"2026-04-09T15:48:11","slug":"samples-guide","status":"publish","type":"page","link":"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/","title":{"rendered":"Samples Guide"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1225\" class=\"elementor elementor-1225\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-59a1b7c 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=\"59a1b7c\" 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-4552b6e elementor-widget elementor-widget-heading\" data-id=\"4552b6e\" 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\">Samples Guide<\/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-af25e4d 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-parent\" data-id=\"af25e4d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-03d1ffe 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=\"03d1ffe\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2d8b463 elementor-widget__width-initial elementor-absolute elementor-widget elementor-widget-table-of-contents\" data-id=\"2d8b463\" 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;_position&quot;:&quot;absolute&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\tSamples Guide \u2014 LeonardoXR SDK\t\t\t<\/h2>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div id=\"elementor-toc__2d8b463\" 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-110d8e7 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=\"110d8e7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5538572 elementor-widget elementor-widget-text-editor\" data-id=\"5538572\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h1 id=\"samples-guide\" class=\"code-line code-active-line\" dir=\"auto\" data-line=\"0\">Samples Guide<\/h1><p class=\"code-line\" dir=\"auto\" data-line=\"2\"><em>Version 1.0.2 | Device: Youbiquo Leonardo XR | Base SDK: Snapdragon Spaces 1.0.4<\/em><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"4\">Samples are organised in two sections:<\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"6\"><li class=\"code-line\" dir=\"auto\" data-line=\"6\"><strong>LeonardoXR Samples<\/strong>\u00a0\u2014 samples specific to Leonardo XR proprietary and interaction features.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"7\"><strong>Snapdragon Spaces Core Samples<\/strong>\u00a0\u2014 samples provided by Qualcomm for base AR\/XR features.<\/li><\/ul><h2 id=\"importing-samples\" class=\"code-line\" dir=\"auto\" data-line=\"9\">Importing Samples<\/h2><h3 id=\"snapdragon-spaces-core-samples\" class=\"code-line\" dir=\"auto\" data-line=\"11\">Snapdragon Spaces Core Samples<\/h3><p class=\"code-line\" dir=\"auto\" data-line=\"13\">The Core Samples package is importable from\u00a0<strong>Window &gt; Package Manager &gt; Snapdragon Spaces &gt; Core Samples<\/strong>. After import, add all scenes to the build via\u00a0<strong>Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings<\/strong>.<\/p><h3 id=\"leonardoxr-core-samples\" class=\"code-line\" dir=\"auto\" data-line=\"15\">LeonardoXR Core Samples<\/h3><p class=\"code-line\" dir=\"auto\" data-line=\"17\">The LeonardoXR Core Samples package is importable from\u00a0<strong>Window &gt; Package Manager &gt; LeonardoXR &gt; Core Samples<\/strong>. After import, scenes are available in\u00a0<code>Samples\/LeonardoXR\/[version]\/Core Samples\/Scenes\/<\/code>.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"19\" \/><h2 id=\"leonardoxr-samples\" class=\"code-line\" dir=\"auto\" data-line=\"21\">LeonardoXR Samples<\/h2><h3 id=\"interaction-scene\" class=\"code-line\" dir=\"auto\" data-line=\"23\">Interaction Scene<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"25\"><li class=\"code-line\" dir=\"auto\" data-line=\"25\"><strong>Scene<\/strong>:\u00a0<code>Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/Interaction<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"27\">A fully pre-configured interaction scene for controller and hand usage. The player assembles a V8 engine on a sci-fi floating table, demonstrating the core interaction capabilities of the SDK.<\/p><p class=\"code-line\" dir=\"auto\" data-line=\"29\"><strong>What it demonstrates<\/strong><\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"30\"><li class=\"code-line\" dir=\"auto\" data-line=\"30\">XR Grab Interactable with socket snapping<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"31\">Affordance system (visual and audio feedback on selection and hover)<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"32\">Hand Menu for in-scene navigation<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"33\">Compatible with both controller (Companion Controller) and hand tracking (Dual Hand Mode)<\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"35\"><strong>How to run it<\/strong><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"37\">Open the\u00a0<strong>Interaction Scene<\/strong>\u00a0from the Package Manager samples, add it to the Build Settings, and deploy to the LeonardoXR. See the\u00a0<a href=\"https:\/\/file+.vscode-resource.vscode-cdn.net\/c%3A\/Users\/Aida%20Garfami\/Downloads\/Documentation\/Documentation\/Documentation\/Documentation~\/Samples%20Guide.md#build-and-run\" data-href=\"#build-and-run\">Build and Run<\/a>\u00a0section below.<\/p><p class=\"code-line\" dir=\"auto\" data-line=\"39\"><img decoding=\"async\" id=\"image-0\" src=\"https:\/\/file+.vscode-resource.vscode-cdn.net\/c%3A\/Users\/Aida%20Garfami\/Downloads\/Documentation\/Documentation\/Documentation\/Documentation~\/imgs\/sample_project\/TP_open.png\" alt=\"\" data-src=\"imgs\/sample_project\/TP_open.png\" data-vscode-context=\"{&quot;webviewSection&quot;:&quot;localImage&quot;,&quot;id&quot;:&quot;image-0&quot;,&quot;preventDefaultContextMenuItems&quot;:true,&quot;resource&quot;:&quot;file:\/\/\/c%3A\/Users\/Aida%20Garfami\/Downloads\/Documentation\/Documentation\/Documentation\/Documentation~\/Samples%20Guide.md&quot;,&quot;imageSource&quot;:&quot;imgs\/sample_project\/TP_open.png&quot;}\" \/><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-1206 size-full\" src=\"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open.png\" alt=\"\" width=\"2559\" height=\"1325\" srcset=\"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open.png 2559w, https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open-300x155.png 300w, https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open-1024x530.png 1024w, https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open-768x398.png 768w, https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open-1536x795.png 1536w, https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open-2048x1060.png 2048w\" sizes=\"(max-width: 2559px) 100vw, 2559px\" \/><\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"41\" \/><h3 id=\"hand-gestures-scene\" class=\"code-line\" dir=\"auto\" data-line=\"43\">Hand Gestures Scene<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"45\"><li class=\"code-line\" dir=\"auto\" data-line=\"45\"><strong>Scene<\/strong>:\u00a0<code>Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/Hand Gestures<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"47\">Demonstrates hand tracking, custom gesture recognition, and real-time hand shape inspection on LeonardoXR.<\/p><p class=\"code-line\" dir=\"auto\" data-line=\"49\"><strong>What it demonstrates<\/strong><\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"50\"><li class=\"code-line\" dir=\"auto\" data-line=\"50\">Custom gesture definition using\u00a0<code>XRHandShape<\/code>\u00a0pose assets<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"51\">Gesture icons and visual feedback for recognised gestures<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"52\"><code>XRHandGestureDebugUI<\/code>\u00a0for real-time joint and gesture state inspection<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"53\">Integration with the XR Hands gesture system<\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"55\"><strong>Prerequisites<\/strong>: XR Hands package installed with the Gestures and Hand Visualizer samples imported.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"57\" \/><h3 id=\"dual-camera-access-scene\" class=\"code-line\" dir=\"auto\" data-line=\"59\">Dual Camera Access Scene<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"61\"><li class=\"code-line\" dir=\"auto\" data-line=\"61\"><strong>Scene<\/strong>:\u00a0<code>Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/Dual Camera Access<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"63\">Demonstrates synchronised access to both Leonardo XR cameras using the Android Camera2 API via a native Java plugin.<\/p><p class=\"code-line\" dir=\"auto\" data-line=\"65\"><strong>What it demonstrates<\/strong><\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"66\"><li class=\"code-line\" dir=\"auto\" data-line=\"66\">Direct camera frame retrieval using the\u00a0<code>Camera2<\/code>\u00a0Android API<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"67\">Native plugin integration (<code>CameraAccessUtility.cs<\/code>\u00a0bridging to\u00a0<code>Camera2StateCallback.java<\/code>)<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"68\">Camera info display and frame rendering in-headset<\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"70\"><strong>Prerequisites<\/strong>: Dual Camera Access enabled in the LeonardoXR feature group.<\/p><blockquote class=\"code-line\" dir=\"auto\" data-line=\"72\"><p class=\"code-line\" dir=\"auto\" data-line=\"72\"><strong>DOCUMENTATION IN PROGRESS<\/strong>\u00a0Detailed API documentation and configuration guide will be available in a future release.<\/p><\/blockquote><hr class=\"code-line\" dir=\"auto\" data-line=\"74\" \/><h3 id=\"ai-image-analyzer-scene\" class=\"code-line\" dir=\"auto\" data-line=\"76\">AI Image Analyzer Scene<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"78\"><li class=\"code-line\" dir=\"auto\" data-line=\"78\"><strong>Scene<\/strong>:\u00a0<code>Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/GPT Image Analyzer<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"80\">Demonstrates AI-powered image analysis on LeonardoXR using GPT vision APIs, with audio output via Google Text-to-Speech.<\/p><p class=\"code-line\" dir=\"auto\" data-line=\"82\"><strong>What it demonstrates<\/strong><\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"83\"><li class=\"code-line\" dir=\"auto\" data-line=\"83\">Capturing frames from the device camera<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"84\">Sending frames to a GPT image analysis API (<code>GPTImageAnalyzer.cs<\/code>)<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"85\">Converting the text response to speech and playing it back (<code>GoogleTextToSpeechConverter.cs<\/code>)<\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"87\"><strong>Prerequisites<\/strong>: Valid GPT and Google TTS API keys configured in the scene.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"89\" \/><h3 id=\"webxr-scene\" class=\"code-line\" dir=\"auto\" data-line=\"91\">WebXR Scene<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"93\"><li class=\"code-line\" dir=\"auto\" data-line=\"93\"><strong>Scene<\/strong>:\u00a0<code>Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/WebXR<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"95\">A scene pre-configured for WebXR export, targeting the Wolvic browser pre-installed on LeonardoXR.<\/p><p class=\"code-line\" dir=\"auto\" data-line=\"97\"><strong>What it demonstrates<\/strong><\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"98\"><li class=\"code-line\" dir=\"auto\" data-line=\"98\">WebXR-compatible XR Rig setup using the\u00a0<code>XRRig WebXR (Controllers)<\/code>\u00a0prefab<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"99\">How to build a Unity project for WebXR using the De-Panther WebXR Export Utility<\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"101\"><strong>Prerequisites<\/strong>: Download and install the\u00a0<a href=\"https:\/\/github.com\/De-Panther\/unity-webxr-export\" data-href=\"https:\/\/github.com\/De-Panther\/unity-webxr-export\">De-Panther WebXR Export Utility<\/a>\u00a0before building.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"103\" \/><h2 id=\"snapdragon-spaces-core-samples-1\" class=\"code-line\" dir=\"auto\" data-line=\"105\">Snapdragon Spaces Core Samples<\/h2><h3 id=\"local-anchors-sample\" class=\"code-line\" dir=\"auto\" data-line=\"107\">Local Anchors Sample<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"109\"><li class=\"code-line\" dir=\"auto\" data-line=\"109\"><strong>Scene<\/strong>:\u00a0<code>Samples\/Snapdragon Spaces\/...\/Core Samples\/Scenes\/Anchor<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"111\">Demonstrates creating and destroying local anchors to precisely track a point in the real world. Requires the\u00a0<strong>Spatial Anchors<\/strong>\u00a0feature enabled in OpenXR.<\/p><p class=\"code-line\" dir=\"auto\" data-line=\"113\"><strong>How it Works<\/strong><\/p><p class=\"code-line\" dir=\"auto\" data-line=\"115\">A transparent positioning gizmo floats 1 metre in front of the camera. When\u00a0<em>Place anchor on surfaces<\/em>\u00a0is enabled, a ray is projected forward each frame. When a surface is hit, the gizmo turns yellow. Touching the touchpad or using the gaze interactor creates an\u00a0<code>ARAnchor<\/code>\u00a0with a tracking gizmo.<\/p><pre><code class=\"code-line language-csharp\" dir=\"auto\" data-line=\"117\"><span class=\"hljs-function\"><span class=\"hljs-keyword\"><span style=\"color: #003366;\">private<\/span><\/span><span style=\"color: #003366;\"> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">OnAnchorsChanged<\/span>(<span class=\"hljs-params\">ARAnchorsChangedEventArgs args<\/span>)<\/span><\/span><span style=\"color: #003366;\">\n{\n    <span class=\"hljs-keyword\">foreach<\/span> (<span class=\"hljs-keyword\">var<\/span> anchor <span class=\"hljs-keyword\">in<\/span> args.updated)\n    {\n        Destroy(anchor.transform.GetChild(<span class=\"hljs-number\">0<\/span>).gameObject);\n        <span class=\"hljs-keyword\">var<\/span> newGizmo = Instantiate(\n            anchor.trackingState == TrackingState.None\n                ? GizmoUntrackedAnchor\n                : GizmoTrackedAnchor);\n        newGizmo.transform.SetParent(anchor.transform, <span class=\"hljs-literal\">false<\/span>);\n    }\n}\n<\/span><\/code><\/pre><p class=\"code-line\" dir=\"auto\" data-line=\"132\"><strong>Saving, Deleting and Loading Anchors<\/strong><\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"134\"><li class=\"code-line\" dir=\"auto\" data-line=\"134\">Enable\u00a0<em>Save new anchors to local store<\/em>\u00a0to persist each new anchor.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"135\">White cube on gizmo = anchor saved and tracked; red cube = not tracked.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"136\"><strong>Load All Saved Anchors<\/strong>\u00a0\u2014 loads and attempts to localise all stored anchors.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"137\"><strong>Clear Store<\/strong>\u00a0\u2014 deletes all stored anchors (does not destroy already-loaded anchors).<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"138\"><strong>Destroy All Anchors<\/strong>\u00a0\u2014 destroys all active anchor GameObjects (with a short delay).<\/li><\/ul><hr class=\"code-line\" dir=\"auto\" data-line=\"140\" \/><h3 id=\"hand-tracking-sample\" class=\"code-line\" dir=\"auto\" data-line=\"142\">Hand Tracking Sample<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"144\"><li class=\"code-line\" dir=\"auto\" data-line=\"144\"><strong>Scene<\/strong>:\u00a0<code>Samples\/...\/Core Samples\/Scenes\/HandTracking<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"146\">Demonstrates hand joint visualisation and gesture recognition via the QCHT interaction package. Requires Hand Tracking and QCHT \/ XR Hands packages.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"148\" \/><h3 id=\"hit-testing-sample\" class=\"code-line\" dir=\"auto\" data-line=\"150\">Hit Testing Sample<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"152\"><li class=\"code-line\" dir=\"auto\" data-line=\"152\"><strong>Scene<\/strong>:\u00a0<code>Samples\/...\/Core Samples\/Scenes\/HitTesting<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"154\">Demonstrates continuous hit testing via raycast against real-world planes and meshes using\u00a0<code>ARRaycastManager<\/code>. Shows how to place virtual objects on detected surfaces.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"156\" \/><h3 id=\"image-tracking-sample\" class=\"code-line\" dir=\"auto\" data-line=\"158\">Image Tracking Sample<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"160\"><li class=\"code-line\" dir=\"auto\" data-line=\"160\"><strong>Scene<\/strong>:\u00a0<code>Samples\/...\/Core Samples\/Scenes\/ImageTracking<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"162\">Demonstrates tracking of printed reference images and virtual content overlay. Supports static and mutable image libraries.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"164\" \/><h3 id=\"plane-detection-sample\" class=\"code-line\" dir=\"auto\" data-line=\"166\">Plane Detection Sample<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"168\"><li class=\"code-line\" dir=\"auto\" data-line=\"168\"><strong>Scene<\/strong>:\u00a0<code>Samples\/...\/Core Samples\/Scenes\/PlaneDetection<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"170\">Demonstrates detection and visualisation of horizontal and vertical planes via\u00a0<code>ARPlaneManager<\/code>. Supports detection modes and optional convex hull planes.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"172\" \/><h3 id=\"camera-frame-access-sample\" class=\"code-line\" dir=\"auto\" data-line=\"174\">Camera Frame Access Sample<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"176\"><li class=\"code-line\" dir=\"auto\" data-line=\"176\"><strong>Scene<\/strong>:\u00a0<code>Samples\/...\/Core Samples\/Scenes\/CameraFrameAccess<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"178\">Demonstrates retrieval of raw camera frames (YUV \/ YUYV) using\u00a0<code>ARCameraManager<\/code>. Includes sensor extrinsics, camera count query and GPU-accelerated frame access. Requires\u00a0<strong>Allow &#8216;unsafe&#8217; Code<\/strong>\u00a0in Player Settings.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"180\" \/><h3 id=\"spatial-meshing-sample\" class=\"code-line\" dir=\"auto\" data-line=\"182\">Spatial Meshing Sample<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"184\"><li class=\"code-line\" dir=\"auto\" data-line=\"184\"><strong>Scene<\/strong>:\u00a0<code>Samples\/...\/Core Samples\/Scenes\/SpatialMeshing<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"186\">Demonstrates real-time environment meshing using\u00a0<code>ARMeshManager<\/code>. Includes an opacity slider and the optional\u00a0<code>SpacesARMeshManagerConfig<\/code>\u00a0component.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"188\" \/><h3 id=\"qr-code-tracking-sample\" class=\"code-line\" dir=\"auto\" data-line=\"190\">QR Code Tracking Sample<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"192\"><li class=\"code-line\" dir=\"auto\" data-line=\"192\"><strong>Scene<\/strong>:\u00a0<code>Samples\/...\/Core Samples\/Scenes\/QRCodeTracking<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"194\">Demonstrates QR code scanning and tracking via\u00a0<code>SpacesQrCodeManager<\/code>. Multiple tracking modes available.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"196\" \/><h3 id=\"xr-interaction-toolkit-sample\" class=\"code-line\" dir=\"auto\" data-line=\"198\">XR Interaction Toolkit Sample<\/h3><ul class=\"code-line\" dir=\"auto\" data-line=\"200\"><li class=\"code-line\" dir=\"auto\" data-line=\"200\"><strong>Scene<\/strong>:\u00a0<code>Samples\/...\/Core Samples\/Scenes\/XRInteractionToolkit<\/code><\/li><\/ul><p class=\"code-line\" dir=\"auto\" data-line=\"202\">Demonstrates standard XRIT interactions (ray interactors, direct interactors, teleportation) in a Snapdragon Spaces project. Compatible with the LeonardoXR configuration.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"204\" \/><h3 id=\"composition-layer-components\" class=\"code-line\" dir=\"auto\" data-line=\"206\">Composition Layer Components<\/h3><p class=\"code-line\" dir=\"auto\" data-line=\"208\">The\u00a0<strong>Spaces Composition Layer<\/strong>\u00a0renders textures directly to the HMD, bypassing post-processing steps. Supported geometry types are Quad, Cylinder, Sphere and Cube. Useful for high-sharpness UI or elements that must maintain quality regardless of scene effects.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"210\" \/><h3 id=\"additional-samples\" class=\"code-line\" dir=\"auto\" data-line=\"212\">Additional Samples<\/h3><table class=\"code-line\" dir=\"auto\" data-line=\"214\"><thead class=\"code-line\" dir=\"auto\" data-line=\"214\"><tr class=\"code-line\" dir=\"auto\" data-line=\"214\"><th>Sample<\/th><th>Description<\/th><\/tr><\/thead><tbody class=\"code-line\" dir=\"auto\" data-line=\"216\"><tr class=\"code-line\" dir=\"auto\" data-line=\"216\"><td>Display Refresh Rate<\/td><td>Query and runtime setting of display refresh rate via the\u00a0<code>XR_EXT_display_refresh_rate<\/code>\u00a0extension.<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"217\"><td>Performance Settings<\/td><td>Setting CPU\/GPU performance levels via the\u00a0<code>XR_EXT_performance_settings<\/code>\u00a0extension.<\/td><\/tr><\/tbody><\/table><hr class=\"code-line\" dir=\"auto\" data-line=\"219\" \/><h2 id=\"build-and-run\" class=\"code-line\" dir=\"auto\" data-line=\"221\">Build and Run<\/h2><p class=\"code-line\" dir=\"auto\" data-line=\"223\">This section describes how to build and deploy a sample application to the LeonardoXR.<\/p><h3 id=\"1-enable-developer-mode\" class=\"code-line\" dir=\"auto\" data-line=\"225\">1. Enable Developer Mode<\/h3><p class=\"code-line\" dir=\"auto\" data-line=\"227\">Developer Mode must be enabled on the LeonardoXR to sideload apps. See the\u00a0<a href=\"https:\/\/file+.vscode-resource.vscode-cdn.net\/c%3A\/Users\/Aida%20Garfami\/Downloads\/Documentation\/Documentation\/Documentation\/Documentation~\/Utilities%20and%20Tips.md\" data-href=\"Utilities%20and%20Tips.md\">Utilities and Tips<\/a>\u00a0chapter for step-by-step instructions.<\/p><h3 id=\"2-connect-the-device\" class=\"code-line\" dir=\"auto\" data-line=\"229\">2. Connect the Device<\/h3><p class=\"code-line\" dir=\"auto\" data-line=\"231\">Connect the LeonardoXR to your computer with a USB cable. The first time you connect, a dialog will appear on the headset asking you to confirm the connection \u2014 accept it.<\/p><h3 id=\"3-add-scenes-to-build-settings\" class=\"code-line\" dir=\"auto\" data-line=\"233\">3. Add Scenes to Build Settings<\/h3><ol class=\"code-line\" dir=\"auto\" data-line=\"235\"><li class=\"code-line\" dir=\"auto\" data-line=\"235\">From the Unity main menu select\u00a0<strong>File &gt; Build Settings\u2026<\/strong><\/li><li class=\"code-line\" dir=\"auto\" data-line=\"236\">Make sure the scenes you want to build are listed in the\u00a0<strong>Scenes in Build<\/strong>\u00a0list. Add them by dragging from the Project panel or clicking\u00a0<strong>Add Open Scenes<\/strong>.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"237\">Alternatively, use\u00a0<strong>Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings<\/strong>\u00a0to add all Snapdragon Spaces sample scenes automatically.<\/li><\/ol><h3 id=\"4-select-the-run-device\" class=\"code-line\" dir=\"auto\" data-line=\"239\">4. Select the Run Device<\/h3><p class=\"code-line\" dir=\"auto\" data-line=\"241\">In the\u00a0<strong>Build Settings<\/strong>\u00a0window, select your LeonardoXR in the\u00a0<strong>Run Device<\/strong>\u00a0field. If the device is not listed, click\u00a0<strong>Refresh<\/strong>.<\/p><h3 id=\"5-build-and-run\" class=\"code-line\" dir=\"auto\" data-line=\"243\">5. Build and Run<\/h3><ol class=\"code-line\" dir=\"auto\" data-line=\"245\"><li class=\"code-line\" dir=\"auto\" data-line=\"245\">Click\u00a0<strong>Build and Run<\/strong>.<\/li><\/ol><p class=\"code-line\" dir=\"auto\" data-line=\"247\"><img decoding=\"async\" class=\"alignnone wp-image-1207 size-full\" src=\"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_build.png\" alt=\"\" width=\"1084\" height=\"735\" srcset=\"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_build.png 1084w, https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_build-300x203.png 300w, https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_build-1024x694.png 1024w, https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_build-768x521.png 768w\" sizes=\"(max-width: 1084px) 100vw, 1084px\" \/><img decoding=\"async\" id=\"image-1\" src=\"https:\/\/file+.vscode-resource.vscode-cdn.net\/c%3A\/Users\/Aida%20Garfami\/Downloads\/Documentation\/Documentation\/Documentation\/Documentation~\/imgs\/sample_project\/TP_build.png\" alt=\"\" data-src=\"imgs\/sample_project\/TP_build.png\" data-vscode-context=\"{&quot;webviewSection&quot;:&quot;localImage&quot;,&quot;id&quot;:&quot;image-1&quot;,&quot;preventDefaultContextMenuItems&quot;:true,&quot;resource&quot;:&quot;file:\/\/\/c%3A\/Users\/Aida%20Garfami\/Downloads\/Documentation\/Documentation\/Documentation\/Documentation~\/Samples%20Guide.md&quot;,&quot;imageSource&quot;:&quot;imgs\/sample_project\/TP_build.png&quot;}\" \/><\/p><ol class=\"code-line\" dir=\"auto\" start=\"2\" data-line=\"249\"><li class=\"code-line\" dir=\"auto\" data-line=\"249\">In the\u00a0<strong>Build Android<\/strong>\u00a0window, enter a name for the APK file (e.g.\u00a0<code>LeonardoXR_Demo.apk<\/code>).<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"250\">Unity will build and deploy the application. The app launches automatically on the headset.<\/li><\/ol><blockquote class=\"code-line\" dir=\"auto\" data-line=\"252\"><p class=\"code-line\" dir=\"auto\" data-line=\"252\">If the app does not launch automatically, find it in the Apps tray on the device and open it manually.<\/p><\/blockquote>\t\t\t\t\t\t\t\t<\/div>\n\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>Samples Guide Samples Guide \u2014 LeonardoXR SDK Samples Guide Version 1.0.2 | Device: Youbiquo Leonardo XR | Base SDK: Snapdragon Spaces 1.0.4 Samples are organised in two sections: LeonardoXR Samples\u00a0\u2014 samples specific to Leonardo XR proprietary and interaction features. Snapdragon Spaces Core Samples\u00a0\u2014 samples provided by Qualcomm for base AR\/XR features. Importing Samples Snapdragon Spaces Core Samples The Core Samples package is importable from\u00a0Window &gt; Package Manager &gt; Snapdragon Spaces &gt; Core Samples. After import, add all scenes to the build via\u00a0Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings. LeonardoXR Core Samples The LeonardoXR Core Samples package is importable from\u00a0Window &gt; Package Manager &gt; LeonardoXR &gt; Core Samples. After import, scenes are available in\u00a0Samples\/LeonardoXR\/[version]\/Core Samples\/Scenes\/. LeonardoXR Samples Interaction Scene Scene:\u00a0Samples\/LeonardoXR\/&#8230;\/Core Samples\/Scenes\/Interaction A fully pre-configured interaction scene for controller and hand usage. The player assembles a V8 engine on a sci-fi floating table, demonstrating the core interaction capabilities of the SDK. What it demonstrates XR Grab Interactable with socket snapping Affordance system (visual and audio feedback on selection and hover) Hand Menu for in-scene navigation Compatible with both controller (Companion Controller) and hand tracking (Dual Hand Mode) How to run it Open the\u00a0Interaction Scene\u00a0from the Package Manager samples, add it to the Build Settings, and deploy to the LeonardoXR. See the\u00a0Build and Run\u00a0section below. Hand Gestures Scene Scene:\u00a0Samples\/LeonardoXR\/&#8230;\/Core Samples\/Scenes\/Hand Gestures Demonstrates hand tracking, custom gesture recognition, and real-time hand shape inspection on LeonardoXR. What it demonstrates Custom gesture definition using\u00a0XRHandShape\u00a0pose assets Gesture icons and visual feedback for recognised gestures XRHandGestureDebugUI\u00a0for real-time joint and gesture state inspection Integration with the XR Hands gesture system Prerequisites: XR Hands package installed with the Gestures and Hand Visualizer samples imported. Dual Camera Access Scene Scene:\u00a0Samples\/LeonardoXR\/&#8230;\/Core Samples\/Scenes\/Dual Camera Access Demonstrates synchronised access to both Leonardo XR cameras using the Android Camera2 API via a native Java plugin. What it demonstrates Direct camera frame retrieval using the\u00a0Camera2\u00a0Android API Native plugin integration (CameraAccessUtility.cs\u00a0bridging to\u00a0Camera2StateCallback.java) Camera info display and frame rendering in-headset Prerequisites: Dual Camera Access enabled in the LeonardoXR feature group. DOCUMENTATION IN PROGRESS\u00a0Detailed API documentation and configuration guide will be available in a future release. AI Image Analyzer Scene Scene:\u00a0Samples\/LeonardoXR\/&#8230;\/Core Samples\/Scenes\/GPT Image Analyzer Demonstrates AI-powered image analysis on LeonardoXR using GPT vision APIs, with audio output via Google Text-to-Speech. What it demonstrates Capturing frames from the device camera Sending frames to a GPT image analysis API (GPTImageAnalyzer.cs) Converting the text response to speech and playing it back (GoogleTextToSpeechConverter.cs) Prerequisites: Valid GPT and Google TTS API keys configured in the scene. WebXR Scene Scene:\u00a0Samples\/LeonardoXR\/&#8230;\/Core Samples\/Scenes\/WebXR A scene pre-configured for WebXR export, targeting the Wolvic browser pre-installed on LeonardoXR. What it demonstrates WebXR-compatible XR Rig setup using the\u00a0XRRig WebXR (Controllers)\u00a0prefab How to build a Unity project for WebXR using the De-Panther WebXR Export Utility Prerequisites: Download and install the\u00a0De-Panther WebXR Export Utility\u00a0before building. Snapdragon Spaces Core Samples Local Anchors Sample Scene:\u00a0Samples\/Snapdragon Spaces\/&#8230;\/Core Samples\/Scenes\/Anchor Demonstrates creating and destroying local anchors to precisely track a point in the real world. Requires the\u00a0Spatial Anchors\u00a0feature enabled in OpenXR. How it Works A transparent positioning gizmo floats 1 metre in front of the camera. When\u00a0Place anchor on surfaces\u00a0is enabled, a ray is projected forward each frame. When a surface is hit, the gizmo turns yellow. Touching the touchpad or using the gaze interactor creates an\u00a0ARAnchor\u00a0with a tracking gizmo. private void OnAnchorsChanged(ARAnchorsChangedEventArgs args) { foreach (var anchor in args.updated) { Destroy(anchor.transform.GetChild(0).gameObject); var newGizmo = Instantiate( anchor.trackingState == TrackingState.None ? GizmoUntrackedAnchor : GizmoTrackedAnchor); newGizmo.transform.SetParent(anchor.transform, false); } } Saving, Deleting and Loading Anchors Enable\u00a0Save new anchors to local store\u00a0to persist each new anchor. White cube on gizmo = anchor saved and tracked; red cube = not tracked. Load All Saved Anchors\u00a0\u2014 loads and attempts to localise all stored anchors. Clear Store\u00a0\u2014 deletes all stored anchors (does not destroy already-loaded anchors). Destroy All Anchors\u00a0\u2014 destroys all active anchor GameObjects (with a short delay). Hand Tracking Sample Scene:\u00a0Samples\/&#8230;\/Core Samples\/Scenes\/HandTracking Demonstrates hand joint visualisation and gesture recognition via the QCHT interaction package. Requires Hand Tracking and QCHT \/ XR Hands packages. Hit Testing Sample Scene:\u00a0Samples\/&#8230;\/Core Samples\/Scenes\/HitTesting Demonstrates continuous hit testing via raycast against real-world planes and meshes using\u00a0ARRaycastManager. Shows how to place virtual objects on detected surfaces. Image Tracking Sample Scene:\u00a0Samples\/&#8230;\/Core Samples\/Scenes\/ImageTracking Demonstrates tracking of printed reference images and virtual content overlay. Supports static and mutable image libraries. Plane Detection Sample Scene:\u00a0Samples\/&#8230;\/Core Samples\/Scenes\/PlaneDetection Demonstrates detection and visualisation of horizontal and vertical planes via\u00a0ARPlaneManager. Supports detection modes and optional convex hull planes. Camera Frame Access Sample Scene:\u00a0Samples\/&#8230;\/Core Samples\/Scenes\/CameraFrameAccess Demonstrates retrieval of raw camera frames (YUV \/ YUYV) using\u00a0ARCameraManager. Includes sensor extrinsics, camera count query and GPU-accelerated frame access. Requires\u00a0Allow &#8216;unsafe&#8217; Code\u00a0in Player Settings. Spatial Meshing Sample Scene:\u00a0Samples\/&#8230;\/Core Samples\/Scenes\/SpatialMeshing Demonstrates real-time environment meshing using\u00a0ARMeshManager. Includes an opacity slider and the optional\u00a0SpacesARMeshManagerConfig\u00a0component. QR Code Tracking Sample Scene:\u00a0Samples\/&#8230;\/Core Samples\/Scenes\/QRCodeTracking Demonstrates QR code scanning and tracking via\u00a0SpacesQrCodeManager. Multiple tracking modes available. XR Interaction Toolkit Sample Scene:\u00a0Samples\/&#8230;\/Core Samples\/Scenes\/XRInteractionToolkit Demonstrates standard XRIT interactions (ray interactors, direct interactors, teleportation) in a Snapdragon Spaces project. Compatible with the LeonardoXR configuration. Composition Layer Components The\u00a0Spaces Composition Layer\u00a0renders textures directly to the HMD, bypassing post-processing steps. Supported geometry types are Quad, Cylinder, Sphere and Cube. Useful for high-sharpness UI or elements that must maintain quality regardless of scene effects. Additional Samples Sample Description Display Refresh Rate Query and runtime setting of display refresh rate via the\u00a0XR_EXT_display_refresh_rate\u00a0extension. Performance Settings Setting CPU\/GPU performance levels via the\u00a0XR_EXT_performance_settings\u00a0extension. Build and Run This section describes how to build and deploy a sample application to the LeonardoXR. 1. Enable Developer Mode Developer Mode must be enabled on the LeonardoXR to sideload apps. See the\u00a0Utilities and Tips\u00a0chapter for step-by-step instructions. 2. Connect the Device Connect the LeonardoXR to your computer with a USB cable. The first time you connect, a dialog will appear on the headset asking you to confirm the connection \u2014 accept it. 3. Add Scenes to Build Settings From the Unity main menu select\u00a0File &gt; Build Settings\u2026 Make sure the scenes you want to build are listed in the\u00a0Scenes in Build\u00a0list. Add them by dragging from the Project panel or<\/p>\n","protected":false},"author":11,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1225","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>Samples Guide - 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\/samples-guide\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Samples Guide - Geckode!\" \/>\n<meta property=\"og:description\" content=\"Samples Guide Samples Guide \u2014 LeonardoXR SDK Samples Guide Version 1.0.2 | Device: Youbiquo Leonardo XR | Base SDK: Snapdragon Spaces 1.0.4 Samples are organised in two sections: LeonardoXR Samples\u00a0\u2014 samples specific to Leonardo XR proprietary and interaction features. Snapdragon Spaces Core Samples\u00a0\u2014 samples provided by Qualcomm for base AR\/XR features. Importing Samples Snapdragon Spaces Core Samples The Core Samples package is importable from\u00a0Window &gt; Package Manager &gt; Snapdragon Spaces &gt; Core Samples. After import, add all scenes to the build via\u00a0Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings. LeonardoXR Core Samples The LeonardoXR Core Samples package is importable from\u00a0Window &gt; Package Manager &gt; LeonardoXR &gt; Core Samples. After import, scenes are available in\u00a0Samples\/LeonardoXR\/[version]\/Core Samples\/Scenes\/. LeonardoXR Samples Interaction Scene Scene:\u00a0Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/Interaction A fully pre-configured interaction scene for controller and hand usage. The player assembles a V8 engine on a sci-fi floating table, demonstrating the core interaction capabilities of the SDK. What it demonstrates XR Grab Interactable with socket snapping Affordance system (visual and audio feedback on selection and hover) Hand Menu for in-scene navigation Compatible with both controller (Companion Controller) and hand tracking (Dual Hand Mode) How to run it Open the\u00a0Interaction Scene\u00a0from the Package Manager samples, add it to the Build Settings, and deploy to the LeonardoXR. See the\u00a0Build and Run\u00a0section below. Hand Gestures Scene Scene:\u00a0Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/Hand Gestures Demonstrates hand tracking, custom gesture recognition, and real-time hand shape inspection on LeonardoXR. What it demonstrates Custom gesture definition using\u00a0XRHandShape\u00a0pose assets Gesture icons and visual feedback for recognised gestures XRHandGestureDebugUI\u00a0for real-time joint and gesture state inspection Integration with the XR Hands gesture system Prerequisites: XR Hands package installed with the Gestures and Hand Visualizer samples imported. Dual Camera Access Scene Scene:\u00a0Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/Dual Camera Access Demonstrates synchronised access to both Leonardo XR cameras using the Android Camera2 API via a native Java plugin. What it demonstrates Direct camera frame retrieval using the\u00a0Camera2\u00a0Android API Native plugin integration (CameraAccessUtility.cs\u00a0bridging to\u00a0Camera2StateCallback.java) Camera info display and frame rendering in-headset Prerequisites: Dual Camera Access enabled in the LeonardoXR feature group. DOCUMENTATION IN PROGRESS\u00a0Detailed API documentation and configuration guide will be available in a future release. AI Image Analyzer Scene Scene:\u00a0Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/GPT Image Analyzer Demonstrates AI-powered image analysis on LeonardoXR using GPT vision APIs, with audio output via Google Text-to-Speech. What it demonstrates Capturing frames from the device camera Sending frames to a GPT image analysis API (GPTImageAnalyzer.cs) Converting the text response to speech and playing it back (GoogleTextToSpeechConverter.cs) Prerequisites: Valid GPT and Google TTS API keys configured in the scene. WebXR Scene Scene:\u00a0Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/WebXR A scene pre-configured for WebXR export, targeting the Wolvic browser pre-installed on LeonardoXR. What it demonstrates WebXR-compatible XR Rig setup using the\u00a0XRRig WebXR (Controllers)\u00a0prefab How to build a Unity project for WebXR using the De-Panther WebXR Export Utility Prerequisites: Download and install the\u00a0De-Panther WebXR Export Utility\u00a0before building. Snapdragon Spaces Core Samples Local Anchors Sample Scene:\u00a0Samples\/Snapdragon Spaces\/...\/Core Samples\/Scenes\/Anchor Demonstrates creating and destroying local anchors to precisely track a point in the real world. Requires the\u00a0Spatial Anchors\u00a0feature enabled in OpenXR. How it Works A transparent positioning gizmo floats 1 metre in front of the camera. When\u00a0Place anchor on surfaces\u00a0is enabled, a ray is projected forward each frame. When a surface is hit, the gizmo turns yellow. Touching the touchpad or using the gaze interactor creates an\u00a0ARAnchor\u00a0with a tracking gizmo. private void OnAnchorsChanged(ARAnchorsChangedEventArgs args) { foreach (var anchor in args.updated) { Destroy(anchor.transform.GetChild(0).gameObject); var newGizmo = Instantiate( anchor.trackingState == TrackingState.None ? GizmoUntrackedAnchor : GizmoTrackedAnchor); newGizmo.transform.SetParent(anchor.transform, false); } } Saving, Deleting and Loading Anchors Enable\u00a0Save new anchors to local store\u00a0to persist each new anchor. White cube on gizmo = anchor saved and tracked; red cube = not tracked. Load All Saved Anchors\u00a0\u2014 loads and attempts to localise all stored anchors. Clear Store\u00a0\u2014 deletes all stored anchors (does not destroy already-loaded anchors). Destroy All Anchors\u00a0\u2014 destroys all active anchor GameObjects (with a short delay). Hand Tracking Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/HandTracking Demonstrates hand joint visualisation and gesture recognition via the QCHT interaction package. Requires Hand Tracking and QCHT \/ XR Hands packages. Hit Testing Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/HitTesting Demonstrates continuous hit testing via raycast against real-world planes and meshes using\u00a0ARRaycastManager. Shows how to place virtual objects on detected surfaces. Image Tracking Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/ImageTracking Demonstrates tracking of printed reference images and virtual content overlay. Supports static and mutable image libraries. Plane Detection Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/PlaneDetection Demonstrates detection and visualisation of horizontal and vertical planes via\u00a0ARPlaneManager. Supports detection modes and optional convex hull planes. Camera Frame Access Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/CameraFrameAccess Demonstrates retrieval of raw camera frames (YUV \/ YUYV) using\u00a0ARCameraManager. Includes sensor extrinsics, camera count query and GPU-accelerated frame access. Requires\u00a0Allow &#8216;unsafe&#8217; Code\u00a0in Player Settings. Spatial Meshing Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/SpatialMeshing Demonstrates real-time environment meshing using\u00a0ARMeshManager. Includes an opacity slider and the optional\u00a0SpacesARMeshManagerConfig\u00a0component. QR Code Tracking Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/QRCodeTracking Demonstrates QR code scanning and tracking via\u00a0SpacesQrCodeManager. Multiple tracking modes available. XR Interaction Toolkit Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/XRInteractionToolkit Demonstrates standard XRIT interactions (ray interactors, direct interactors, teleportation) in a Snapdragon Spaces project. Compatible with the LeonardoXR configuration. Composition Layer Components The\u00a0Spaces Composition Layer\u00a0renders textures directly to the HMD, bypassing post-processing steps. Supported geometry types are Quad, Cylinder, Sphere and Cube. Useful for high-sharpness UI or elements that must maintain quality regardless of scene effects. Additional Samples Sample Description Display Refresh Rate Query and runtime setting of display refresh rate via the\u00a0XR_EXT_display_refresh_rate\u00a0extension. Performance Settings Setting CPU\/GPU performance levels via the\u00a0XR_EXT_performance_settings\u00a0extension. Build and Run This section describes how to build and deploy a sample application to the LeonardoXR. 1. Enable Developer Mode Developer Mode must be enabled on the LeonardoXR to sideload apps. See the\u00a0Utilities and Tips\u00a0chapter for step-by-step instructions. 2. Connect the Device Connect the LeonardoXR to your computer with a USB cable. The first time you connect, a dialog will appear on the headset asking you to confirm the connection \u2014 accept it. 3. Add Scenes to Build Settings From the Unity main menu select\u00a0File &gt; Build Settings\u2026 Make sure the scenes you want to build are listed in the\u00a0Scenes in Build\u00a0list. Add them by dragging from the Project panel or\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"Geckode!\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-09T15:48:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open.png\" \/>\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=\"6 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\/samples-guide\/\",\"url\":\"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/\",\"name\":\"Samples Guide - Geckode!\",\"isPartOf\":{\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open.png\",\"datePublished\":\"2026-04-09T15:12:58+00:00\",\"dateModified\":\"2026-04-09T15:48:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/#primaryimage\",\"url\":\"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open.png\",\"contentUrl\":\"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open.png\",\"width\":2559,\"height\":1325},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.youbiquo.eu\/geckode\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Samples Guide\"}]},{\"@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":"Samples Guide - 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\/samples-guide\/","og_locale":"en_US","og_type":"article","og_title":"Samples Guide - Geckode!","og_description":"Samples Guide Samples Guide \u2014 LeonardoXR SDK Samples Guide Version 1.0.2 | Device: Youbiquo Leonardo XR | Base SDK: Snapdragon Spaces 1.0.4 Samples are organised in two sections: LeonardoXR Samples\u00a0\u2014 samples specific to Leonardo XR proprietary and interaction features. Snapdragon Spaces Core Samples\u00a0\u2014 samples provided by Qualcomm for base AR\/XR features. Importing Samples Snapdragon Spaces Core Samples The Core Samples package is importable from\u00a0Window &gt; Package Manager &gt; Snapdragon Spaces &gt; Core Samples. After import, add all scenes to the build via\u00a0Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings. LeonardoXR Core Samples The LeonardoXR Core Samples package is importable from\u00a0Window &gt; Package Manager &gt; LeonardoXR &gt; Core Samples. After import, scenes are available in\u00a0Samples\/LeonardoXR\/[version]\/Core Samples\/Scenes\/. LeonardoXR Samples Interaction Scene Scene:\u00a0Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/Interaction A fully pre-configured interaction scene for controller and hand usage. The player assembles a V8 engine on a sci-fi floating table, demonstrating the core interaction capabilities of the SDK. What it demonstrates XR Grab Interactable with socket snapping Affordance system (visual and audio feedback on selection and hover) Hand Menu for in-scene navigation Compatible with both controller (Companion Controller) and hand tracking (Dual Hand Mode) How to run it Open the\u00a0Interaction Scene\u00a0from the Package Manager samples, add it to the Build Settings, and deploy to the LeonardoXR. See the\u00a0Build and Run\u00a0section below. Hand Gestures Scene Scene:\u00a0Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/Hand Gestures Demonstrates hand tracking, custom gesture recognition, and real-time hand shape inspection on LeonardoXR. What it demonstrates Custom gesture definition using\u00a0XRHandShape\u00a0pose assets Gesture icons and visual feedback for recognised gestures XRHandGestureDebugUI\u00a0for real-time joint and gesture state inspection Integration with the XR Hands gesture system Prerequisites: XR Hands package installed with the Gestures and Hand Visualizer samples imported. Dual Camera Access Scene Scene:\u00a0Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/Dual Camera Access Demonstrates synchronised access to both Leonardo XR cameras using the Android Camera2 API via a native Java plugin. What it demonstrates Direct camera frame retrieval using the\u00a0Camera2\u00a0Android API Native plugin integration (CameraAccessUtility.cs\u00a0bridging to\u00a0Camera2StateCallback.java) Camera info display and frame rendering in-headset Prerequisites: Dual Camera Access enabled in the LeonardoXR feature group. DOCUMENTATION IN PROGRESS\u00a0Detailed API documentation and configuration guide will be available in a future release. AI Image Analyzer Scene Scene:\u00a0Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/GPT Image Analyzer Demonstrates AI-powered image analysis on LeonardoXR using GPT vision APIs, with audio output via Google Text-to-Speech. What it demonstrates Capturing frames from the device camera Sending frames to a GPT image analysis API (GPTImageAnalyzer.cs) Converting the text response to speech and playing it back (GoogleTextToSpeechConverter.cs) Prerequisites: Valid GPT and Google TTS API keys configured in the scene. WebXR Scene Scene:\u00a0Samples\/LeonardoXR\/...\/Core Samples\/Scenes\/WebXR A scene pre-configured for WebXR export, targeting the Wolvic browser pre-installed on LeonardoXR. What it demonstrates WebXR-compatible XR Rig setup using the\u00a0XRRig WebXR (Controllers)\u00a0prefab How to build a Unity project for WebXR using the De-Panther WebXR Export Utility Prerequisites: Download and install the\u00a0De-Panther WebXR Export Utility\u00a0before building. Snapdragon Spaces Core Samples Local Anchors Sample Scene:\u00a0Samples\/Snapdragon Spaces\/...\/Core Samples\/Scenes\/Anchor Demonstrates creating and destroying local anchors to precisely track a point in the real world. Requires the\u00a0Spatial Anchors\u00a0feature enabled in OpenXR. How it Works A transparent positioning gizmo floats 1 metre in front of the camera. When\u00a0Place anchor on surfaces\u00a0is enabled, a ray is projected forward each frame. When a surface is hit, the gizmo turns yellow. Touching the touchpad or using the gaze interactor creates an\u00a0ARAnchor\u00a0with a tracking gizmo. private void OnAnchorsChanged(ARAnchorsChangedEventArgs args) { foreach (var anchor in args.updated) { Destroy(anchor.transform.GetChild(0).gameObject); var newGizmo = Instantiate( anchor.trackingState == TrackingState.None ? GizmoUntrackedAnchor : GizmoTrackedAnchor); newGizmo.transform.SetParent(anchor.transform, false); } } Saving, Deleting and Loading Anchors Enable\u00a0Save new anchors to local store\u00a0to persist each new anchor. White cube on gizmo = anchor saved and tracked; red cube = not tracked. Load All Saved Anchors\u00a0\u2014 loads and attempts to localise all stored anchors. Clear Store\u00a0\u2014 deletes all stored anchors (does not destroy already-loaded anchors). Destroy All Anchors\u00a0\u2014 destroys all active anchor GameObjects (with a short delay). Hand Tracking Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/HandTracking Demonstrates hand joint visualisation and gesture recognition via the QCHT interaction package. Requires Hand Tracking and QCHT \/ XR Hands packages. Hit Testing Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/HitTesting Demonstrates continuous hit testing via raycast against real-world planes and meshes using\u00a0ARRaycastManager. Shows how to place virtual objects on detected surfaces. Image Tracking Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/ImageTracking Demonstrates tracking of printed reference images and virtual content overlay. Supports static and mutable image libraries. Plane Detection Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/PlaneDetection Demonstrates detection and visualisation of horizontal and vertical planes via\u00a0ARPlaneManager. Supports detection modes and optional convex hull planes. Camera Frame Access Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/CameraFrameAccess Demonstrates retrieval of raw camera frames (YUV \/ YUYV) using\u00a0ARCameraManager. Includes sensor extrinsics, camera count query and GPU-accelerated frame access. Requires\u00a0Allow &#8216;unsafe&#8217; Code\u00a0in Player Settings. Spatial Meshing Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/SpatialMeshing Demonstrates real-time environment meshing using\u00a0ARMeshManager. Includes an opacity slider and the optional\u00a0SpacesARMeshManagerConfig\u00a0component. QR Code Tracking Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/QRCodeTracking Demonstrates QR code scanning and tracking via\u00a0SpacesQrCodeManager. Multiple tracking modes available. XR Interaction Toolkit Sample Scene:\u00a0Samples\/...\/Core Samples\/Scenes\/XRInteractionToolkit Demonstrates standard XRIT interactions (ray interactors, direct interactors, teleportation) in a Snapdragon Spaces project. Compatible with the LeonardoXR configuration. Composition Layer Components The\u00a0Spaces Composition Layer\u00a0renders textures directly to the HMD, bypassing post-processing steps. Supported geometry types are Quad, Cylinder, Sphere and Cube. Useful for high-sharpness UI or elements that must maintain quality regardless of scene effects. Additional Samples Sample Description Display Refresh Rate Query and runtime setting of display refresh rate via the\u00a0XR_EXT_display_refresh_rate\u00a0extension. Performance Settings Setting CPU\/GPU performance levels via the\u00a0XR_EXT_performance_settings\u00a0extension. Build and Run This section describes how to build and deploy a sample application to the LeonardoXR. 1. Enable Developer Mode Developer Mode must be enabled on the LeonardoXR to sideload apps. See the\u00a0Utilities and Tips\u00a0chapter for step-by-step instructions. 2. Connect the Device Connect the LeonardoXR to your computer with a USB cable. The first time you connect, a dialog will appear on the headset asking you to confirm the connection \u2014 accept it. 3. Add Scenes to Build Settings From the Unity main menu select\u00a0File &gt; Build Settings\u2026 Make sure the scenes you want to build are listed in the\u00a0Scenes in Build\u00a0list. Add them by dragging from the Project panel or","og_url":"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/","og_site_name":"Geckode!","article_modified_time":"2026-04-09T15:48:11+00:00","og_image":[{"url":"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/","url":"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/","name":"Samples Guide - Geckode!","isPartOf":{"@id":"https:\/\/www.youbiquo.eu\/geckode\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open.png","datePublished":"2026-04-09T15:12:58+00:00","dateModified":"2026-04-09T15:48:11+00:00","breadcrumb":{"@id":"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/#primaryimage","url":"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open.png","contentUrl":"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/04\/TP_open.png","width":2559,"height":1325},{"@type":"BreadcrumbList","@id":"https:\/\/www.youbiquo.eu\/geckode\/en\/samples-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.youbiquo.eu\/geckode\/"},{"@type":"ListItem","position":2,"name":"Samples Guide"}]},{"@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\/1225","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\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/comments?post=1225"}],"version-history":[{"count":28,"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/pages\/1225\/revisions"}],"predecessor-version":[{"id":1253,"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/pages\/1225\/revisions\/1253"}],"wp:attachment":[{"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/media?parent=1225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}