Skip to content

Releases: Pico-Developer/PICO-Unity-Integration-SDK

3.3.0

18 Sep 12:10
75f5ff2

Choose a tag to compare

This article records the changes to the PICO Unity Integration SDK in version 3.3.0.

Download the SDK

Download the latest version of the PICO Unity Integration SDK from the Download screen.

What's new

Released on: September 18, 2025
Required PICO device's system version: 5.13.0 for PICO 4 series, 5.14.0 or later for PICO 4 Ultra series
Add

Module Description
General Supported the Unity OpenXR Plugin, and you can use this plugin to integrate XR functionalities into your app. For more information, refer to Add support for the Unity OpenXR Plugin.
PICO Building Blocks Added the following blocks:

* PICO Spatial Anchor Sample
* PICO Spatial Mesh
* PICO Scene Capture
* PICO Composition Layer Overlay
* PICO Composition Layer Underlay

For more information, refer to PICO Building Blocks.
Compatible with the Unity OpenXR Plugin.
Enterprise services Added the following APIs:

* GetHeadTrackingStatus: Gets the status of HMD tracking.
* GetHeadPose: Gets the pose of the HMD.
* GetControllerPose: Gets the pose of the controller.
* GetSwiftPose: Gets the pose of a motion tracker.
* GetSwiftTrackerDevices: Gets the information of motion trackers.
* GetHeadIMUData: Gets the IMU data of the HMD.
* GetControllerIMUData: Gets the IMU data of the controller.
* GetSwiftIMUData: Gets the IMU data of a motion tracker.
* StartSwiftTrackerPairing: Starts pairing motion tracker(s).
* UnBondSwiftTracker: Unbonds motion tracker(s).
* ResetTracking: Resets tracking.
* SetFenceColor: Sets the color of the fence.
* GetFenceColor: Gets the color of the fence.
* SetUsbTetheringStaticIP: Sets the static IP for USB tethering.
* GetUsbTetheringStaticIPLocal: Gets the local static IP for USB tethering.
* GetUsbTetheringStaticIPClient: Gets the client static IP for USB tethering.
* SetLargeSpaceMapScale: Sets the scale of the large-space map.
* GetPredictedMainSensorState2: Gets the predicted pose and status of the main sensor when the VST image is being displayed.
* UseGlobalPose: Uses the global pose for HMD and controller tracking.
* ConvertPoseCoordinate: Converts the coordinate of a pose.
Developer Tools Added the PICO Debugger, which is a debugging tool that allows you not only to view logs and scene information, but also to use its built-in tools to optimize your application in a more targeted way. For more information, refer to "PICO Debugger".
Optimize
Module Description
--- ---
Rendering Optimized the "Use Premultiplied Alpha" parameter used for configuring composition layers:

* Enabled the premultiplied alpha effect for content, which multiplies the RGB color channels by the alpha value (R×A, G×A, B×A).
* Improved the rendering performance of transparent elements, such as UI, particles, and more.
* Fixed visual defects such as color fringing at the edges of semi-transparent objects.
* Supported the specification for OpenXR and GPU hybrid rendering.
Change
Module Description
--- ---
Rendering Renamed the PXR_Over Lay component used for configuring composition layer parameters to PXR_Composition Layer.

3.2.0

27 Jun 12:01
a127cc1

Choose a tag to compare

This article records the changes to the PICO Unity Integration SDK in version 3.2.0.

What's new

Released on: May 29, 2025
Required PICO device's system version: 5.13.0 or later (PICO Neo3 and PICO 4 series devices are currently not supported)
The newly added content is as follows:

Module Description
General Added the PICO XR Portal - a developer portal consisting of four sections: Configs, Tools, Samples, and About.
Project Validation supported checking the following settings:

* When using Unity6, check if the current project has the Run In Background option checked. If not, report an error.
* Check if the MRC checkbox is checked in the PXR_Manager (Script) panel. If not, report an error.
* Verify if the Display Refresh Rates parameter is set to Default. If not, report an error.
* When using Vulkan, check if the Optimize Buffer Discards option is checked. If not, report an error.
PICO Building Blocks supported setting up the following:

* Spatial Audio: free field
* Spatial Audio: ambisonics
Rendering Added the UPxr_SetSuperResolutionOrSharpening API for dynamically enabling and disabling the Super Resolution and Sharpening functionalities.
Sense Pack Added the following APIs for getting the progress of uploading and downloading shared spatial anchors:

* UploadSpatialAnchorWithProgressAsync: Upload spatial anchors and get the upload progress.
* DownloadSharedSpatialAnchorWithProgressAsync: Download shared spatial anchors and get the download progress.
SecureMR Added SecureMR capabilities, which enables secure, AI-powered mixed reality use cases while maintaining rigorous protection of user data and privacy.
Enterprise services Added the following APIs:

* SetDeviceOwner: Sets an app as the device owner app.
* GetDeviceOwner: Gets the device owner app.
* SetBrowserHomePage: Sets a home page for the browser.
* GetBrowserHomePage: Gets the home page of the browser.
* SetMotionTrackerAutoStart: Sets the capability for the PICO Motion Tracker to automatically power on when plugged in.
* AllowWifiAutoJoin: Enables the device to automatically join WiFi.
* GetLargeSpaceBoundsInfoWithType: Gets the bound information of the large space.
Below are the changes to APIs:
Class API
--- ---
PXR_Boundary GetDimensions
GetSeeThroughTrackingState
UseGlobalPose
PXR_FoveationRendering SetFoveationParameters
PXR_HandTracking GetSettingState
PXR_Input GetDominantHand
SetDominantHand
SetControllerVibration
SetControllerVibrationEvent
StopControllerVCMotor
StartControllerVCMotor
SetControllerAmp
StartVibrateBySharem
SaveVibrateByCache
StartVibrateByCache
ClearVibrateByCache
StartVibrateByPHF
PauseVibrate
ResumeVibrate
UpdateVibrateParams
GetBodyTrackingPose
GetMotionTrackerConnectStateWithID
GetMotionTrackerBattery
GetMotionTrackerCalibState
SetBodyTrackingMode
SetBodyTrackingBoneLength
ResetController
SetArmModelParameters
CreateHapticStream
WriteHapticStream
SetHapticStreamSpeed
GetHapticStreamSpeed
GetHapticStreamCurrentFrameSequence
StartHapticStream
StopHapticStream
RemoveHapticStream
AnalysisHapticStreamPHF
PXR_MotionTracking WantEyeTrackingService
WantFaceTrackingService
GetFaceTrackingSupported
StartFaceTracking
StopFaceTracking
GetFaceTrackingState
GetFaceTrackingData
BodyTrackingAbnormalCalibrationData
BodyTrackingStateError
BodyTrackingAction
RequestMotionTrackerCompleteAction
MotionTrackerConnectionAction
MotionTrackerPowerKeyAction
MotionTrackerNumberOfConnections
MotionTrackerBatteryLevel
MotionTrackerKeyAction
MotionTrackingModeChangedAction
CheckMotionTrackerNumber
GetMotionTrackerLocation
GetMotionTrackerBattery
GetMotionTrackerConnectStateWithSN
GetMotionTrackerDeviceType
CheckMotionTrackerModeAndNumber
GetMotionTrackerMode
GetMotionTrackerLocations
ExpandDeviceConnectionAction
ExpandDeviceBatteryAction
ExtDevConnectAction
ExtDevBatteryAction
GetExtDevTrackerConnectState
SetExpandDeviceVibrate
GetExpandDevice
SetExpandDeviceCustomData
GetExpandDeviceCustomData
GetExpandDeviceBattery
SetExtDevTrackerMotorVibrate
SetExtDevTrackerByPassData
GetExtDevTrackerByPassData
GetExtDevTrackerBattery
GetExtDevTrackerKeyData
PXR_System SetExtraLatencyMode
EnableFaceTracking
EnableLipSync
GetFaceTrackingData
SetEyeFOV
SetFaceTrackingStatus
SetCommonBrightness
GetCommonBrightness
GetScreenBrightnessLevel
SetScreenBrightnessLevel
GetDisplayFrequenciesAvailable
Action SessionStateChanged;

3.1.0

27 May 07:45
b8477bb

Choose a tag to compare

Add

Module Details
General Supported the macOS operating system.
Supported Unity 6.
Supported XR Interaction Toolkit 3.x.
Supported AR Foundation 6.0.
Project Validation The Project Validation functionality supported validating the following:

* Whether the "Write Permission" parameter is set to "External( SDCard)" and Android API's version is later than 32.
* Whether the current Unity version being used is supported by the current version of SDK.
* Whether the URP package has been downloaded but not configured or used. If so, an error will be reported.
* When URP is enabled, check whether the Main Camera in the current scene has Video Seethrough set and whether post processing has been enabled for the Main Camera. If both conditions are met, an error will be reported.
* Whether the Fixed Foveated Rendering functionality is enabled while using URP. If so, an error will be reported.
* Whether the "Target Architectures" parameter is set to "ARM64" and the "Scripting Backend" parameter is set to "IL2CPP". If not, an error will be reported.
* When Application SpaceWarp (AppSW) is enabled, check whether the current Unity version is 2021 LTS or later. If not, an error will be reported.
* Whether the number of composition layers in the current scene exceeds 7, which is the supported maximum. If so, an error will be reported.
* Whether the number of composition layers in the current scene exceeds 4, which is the recommended number. If so, an error will be supported.
* When the Late Latching functionality is enabled, check whether the current Unity version is 2021.3.19f or later and is earlier than 2022.
* Whether composition layers and the Late Latching functionality are used simultaneously in the current project.
* Whether the Super Resolution and Subsampling functionalities are used simultaneously in the current project.
* Whether the Sharpening and Subsampling functionalities are used simultaneously in the current project.
* When the current project uses Unity 6, URP, OpenGLES, and Multipass, check whether MSAA is disabled. If it is not disabled, an error will be reported.
* If the current project uses Vulkan and MRC, check whether the "Color Space" parameter is set to "Linear". If not, an error will be reported.
Rendering Supported enabling Super Resolution, Subsampling, and Sharpening for compostion layers. For more information, refer to this article.
Sense Pack * Spatial Anchor:
* Added the PXR_Spatial Anchor (Script) component for easier management of spatial anchors' lifecycle, including creating, updating, persisting anchors, and more.
* Added the QuerySpatialAnchorObjectsAsyncAPI to query the GameObjects that have the PXR_Manager (Script) component added to them.
* Added the SpatialAnchor prefab for easier creation of spatial anchors.
* Scene Capture: Added the PXR_Scene Capture Manager (Script) component for easier integration of the Scene Capture functionality. This component also supports previewing scene capture data using a JSON file generated by the "Room Capture" app.
* Spatial Mesh: The PXR_Spatial Mesh Manager (Script) component is updated as follows::
* Supported configuring callback functions for Unity Event.
* Supported customizing colors for spatial meshes.
Building Blocks PICO Building Blocks system is updated as follows:

* Supported setting up PICO's Body Tracking, Body Tracking Debug, and Object Tracking functionalities with one click.
* Supported XR Interaction Toolkit 3.0.
Enterprise Service Added the following APIs, which only supports PICO 4 Ultra Enterprise:

* OpenCameraAsyncfor4U: Opens the camera. After the camera is opened, you can use the APIs for retrieving camera data and more.
* Configurefor4U: Configures camera parameters.
* Configurefor4U: Uses the default camera settings. The default frame rate is 60fps.
* StartPreviewfor4U: Renders content to the specified surface with the specified PXRCaptureRenderMode.
* SetCameraFrameBufferfor4U: Sets a frame buffer for the camera. The frame buffer is used to store image data with specified width and height.
* StartGetImageDatafor4U: Starts getting image data with the specified PXRCaptureRenderMode.
* CloseCamerafor4U: Closes the camera.
* GetCameraIntrinsicsfor4U: Gets the values of the intrinsic parameters (cx, cy, fx, fy) for the camera. These values are calculated based on the width, height, horizontal FOV, and vertical FOV you specify.
* GetCameraExtrinsicsfor4U: Gets the extrinsic parameters for the camera.
* GetCameraParametersNewfor4U: Gets the values of the cameras' intrinsic and extrinsic parameters. The values are calculated based on the width and height you specify.
Change
Module Details
--- ---
General The SDK only supports developing 64-bit apps.
The "PXR_SDK" option on the top menu bar is changed to "PICO".
Interaction Tracking Origin: The "Stage Mode" checkbox on the PXR_Manager (Script) panel is checkable only when the "Tracking Origin Mode" parameter is set to "Floor".
Known issues
For Unity 2022 and above, if you are using OpenGLES and MultiView in your project and have added the Universal Render Pipeline but are not using it, you should actively remove the URP package, remove the current light and add a new one. Otherwise, the app may crash during runtime.

3.0.5

27 May 07:45
95cd8f0

Choose a tag to compare

Add

Module Description
General Added the PICO Building Blocks system, which can help you quickly set up features with one click. The features are either provided by the PICO Unity Integration SDK or Unity itself.
Sense Pack Added the following new semantic labels for Scene Capture: Curtain, Cabinet, Bed, Plant, Screen, Refrigerator, WashingMachine, AirConditioner, Lamp, WallArt.
Project Validation Project Validation supports checking whether your project has correctly set up the keystore and key.
Input * Added the GetControllerStatus API for retrieving the connection status of controller.
* Added the InputDeviceChanged event for receiving the notification when the input device (hand poses / controllers) has changed.
Spatial Audio The PICO Spatial Audio Plugin combines the Spatial Mesh capability with spatial audio rendering, allowing virtual sound sources to interact with the user's real environment.
Enterprise Service * Added value LARGESPACE_MAP_INFO to enumerationSystemInfoEnum, which is used to get the information of the large space map.
* Added the following APIs:
* GetControllerVibrateAmplitude: Gets the vibration amplitude of controllers;
* SetHMDVolumeKeyFunc: Sets a functionality for the volume button of the HMD;
* GetHMDVolumeKeyFunc: Gets the functionality of the volume button of the HMD;
* GetPowerManageMode: Gets the device's power management mode;
* GetEyeTrackRate: Gets the frame rate of eye tracking;
* GetTrackFrequency: Gets the tracking frequency;
* GetDistanceSensitivity: Gets the device's distance sensing sensitivity;
* GetSpeedSensitivity: Gets the device's speed sensing sensitivity;
* SetMRCollisionAlertSensitivity: Sets the device's collision alert sensitivity;l
* GetMRCollisionAlertSensitivity: Gets the device's collision alert sensitivity;
* ConnectWifi: Connects to a WiFi;
* SetStaticIpConfigurationtoConnectWifi: Sets up WifiConfiguration and connects to the WiFi;
* GetSingleEyeSource: Gets the eye that serves as the image source;
* GetViewVisual: Gets the device's view mode;
* GetAcceptCastMode: Gets whether the device accepts screen sharing from the external device;
* GetScreenCastMode: Gets whether the device allows the sharing of its screen to the external device;
* GetScreenRecordShotRatio: Gets the aspect ratio for screen recording and screenshots;
* GetScreenResolution: Gets the resolution for screen recording and screenshots;
* GetScreenRecordFrameRate:Gets the frame rate for screen recording.
Bugfix
  • Fixed the issue that the controllers' battery level couldn't be updated immediately after switching between controllers and hand poses for input.
  • Fixed the issue that the battery level of the left controller was incorrectly displayed as that of the right controller.

3.0.0

27 May 07:44
8a27ed9

Choose a tag to compare

Add

Module Description
Sense Pack Added the Shared Spatial Anchor feature. In the same physical environment, when different users play the same app, they can share content using shared spatial anchors.
Added the Spatial Mesh feature. It supports dynamically scanning the physical environment in real time and then converting the scene content into spatial meshes. You can PICO SDK to retrieve and use spatial meshed in your app.
Added the MR Safeguard feature. When the distance between the objects in the virtual scene and the PICO headset or controllers is within a certain range, the virtual scene will become semi-transparent, revealing the real-world scene.
Added control over spatial data permission. For PICO apps, users can decide whether to authorize your app to use their spatial data.
Interaction
Below are the updates to the Hand Tracking feature:

* Added the High Frequency Tracking mode. It supports tracking a user's hands at 60Hz to capture faster hand movements. This improves the accuracy of hand tracking data.
* Added the Adaptive Hand Model feature. It supports automatically adjusting the size of virtual hand models with the change to the size of a user's hands.
* Provided new hand models, which provide a more realistic representation of the human hand.
Below are the updates to motion tracking:

* Added the Object Tracking feature. It supports tracking PICO Motion Trackers and outputs 6DoF data for them. You can use this feature to track PICO Motion Trackers or the objects they attach to.
* Added the callback function for the button event of the PICO Motion Tracker.
* Supported dynamically switching the motion tracking mode.
* Supported stepping recognition.
* Supported passing through data between PICO devices and external devices.
Enterprise Service
* Added a number of APIs. For details, refer to the PXR_Enterprise class (from SetSystemDate to OfflineSystemUpdate) in the API reference.
* Added new enumeration values for SwitchSystemFunction and GetSwitchSystemFunctionStatus. For details, refer to the enumeration values list from SFS_SYSTEM_VIBRATION_ENABLED to SFS_RETRIEVE_MAP_BY_MARKER_FIRST in the descriptions of these two APIs.
Developer Tools The PICO Unity Live Preview Plugin has supported previewing Unity XR Hands in real time.
Others Added the Project Validation feature. This feature can display the validation rules required by the installed XR package. For any validation rules that are not properly set up, you can use this feature to automatically fix them with a single click.

Modify & Optimize

Module Description
Sense Pack Refactorred spatial anchor APIs, thereby providing a more easy-to-use spatial anchor system. For details, refer to "Compatibility & porting guide for MR features".
Refactorred scene capture APIs, thereby providing a quicker workflow for you to retrieve scene anchor data. For details, refer to "Compatibility & porting guide for MR features".
Once video seethrough is enabled, it works throughout the lifecycle of the app.
Interaction Optimized body tracking APIs. For details, refer to "Motion tracking API compatibility information".

Known issues

In Unity 2023, when using overlay layers in the Multiview Rendering mode, the layers will not be displayed or be incorrectly displayed. This issue is expected to be resolved in future engine updates.

2.5.0

27 May 07:41
b316cb8

Choose a tag to compare

Add

Module Description
Rendering Compositor layers of the "External Surface" texture type supported playing back HDR videos and dynamically setting the HDR type (HDRFlags) based on the video's type during playback.
Interaction * Supported enabling the interaction between hands and 3D objects using the XR Interaction Toolkit.
* Supported previewing the hand tracking effect in the PICO Developer Center (PDC).
Enterprise Service
Added the following APIs:

* SetWifiP2PDeviceName: Set a name for the WiFi P2P device.
* GetWifiP2PDeviceName: Get the name of the WiFi P2P device.
* SetScreenBrightness: Set the brightness of the screen.
* SwitchSystemFunction: Enable or disable a specified system function.
* SetSystemKeyUsability: Enable or disable a system key.
* SetLauncher: Set an app as the launcher.
* SetSystemAutoSleepTime: Sets a time after which the device automatically enters the sleep mode
* OpenTimingStartup: Schedule auto startup for the device.
* CloseTimingStartup: Disable scheduled auto startup for the device.
* OpenTimingShutdown: Schedule auto shutdown for the device.
* CloseTimingShutdown: Disable scheduled auto shutdown for the device.
* SetTimeZone: Sets a time zone for the device.
* AppCopyrightVerify: Check whether the user has the entitlement to use the app.
* GotoEnvironmentTextureCheck: Go to the environment texture check page.

Optimize

Module Description
Interaction
Optimized the stability, performance, and interaction capabilities of hand tracking. Below are specific details:

* Improved the stability of wrist tracking, making the tracking of complete hand more stable and reducing the jitter and loss of hand model.
* Improved the success rate of pinch. To enhance the accuracy of pinch recognition, PICO has studied the different ways in which users pinch and conduct corresponding training.
* Decreased the latency in initiating hand poses, allowing virtual hand models to closely mirror users' hand movements in real time.
* Improved the stability of fingers, reducing finger jitter.

Bugfix

  • Fixed the issue that using super resolution and adaptive resolution simultaneously may lead to misalignment of the super-resolutioned areas.
  • Fixed the issue where continuous frame drops and eventual crashes occur when using dynamic overlay layers in non-full-frame scenarios.
  • Fixed the issue where the SDK only provides the vertex coordinates of the ceiling and floor saved by the Room Capture app, and the provided length and width are default values rather than the actual values.