docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Meta Hand Tracking Wide Motion Mode OpenXR feature

    Enable inference-based hand tracking when hands are outside the camera tracking volume.

    The Wide Motion Mode feature enables the XR_META_hand_tracking_wide_motion_mode2 OpenXR extension. When enabled, the runtime uses inference algorithms (based on prior tracking data, body movement, and additional sensors) to estimate hand poses even when hands are outside the normal camera tracking volume.

    When you enable this feature, it automatically configures the Hand Tracking Data Source feature to request both Unobstructed (optical tracking) and UnobstructedWideMotion (inference-based tracking) as preferred data sources. This configuration ensures the following:

    • The project uses direct optical tracking when hands are visible to the headset cameras.
    • The runtime falls back to wide-motion inference when hands leave the camera field of view.
    Note

    Requesting UnobstructedWideMotion alone disables optical tracking entirely. This feature always requests both sources to ensure continuous hand tracking.

    Prerequisites

    To use the Meta Hand Tracking Wide Motion Mode feature, your project must meet the following requirements:

    • Install the OpenXR package 1.19.0 or newer.
    • Enable the Hand Tracking Subsystem feature and the Hand Tracking Data Source feature. Validation rules alert you if either is missing.

    Android manifest requirements

    When you enable this feature, the following entries are automatically added to the Android manifest at build time:

    • com.oculus.permission.BODY_TRACKING: the permission wide motion mode needs to use body tracking data.
    • com.oculus.software.body_tracking: declares body tracking as an optional device feature (required="false").

    Enable Wide Motion Mode

    To enable the Meta Hand Tracking Wide Motion Mode feature:

    1. Go to Project Settings > XR Plug-in Management > OpenXR.
    2. Enable Meta Hand Tracking Wide Motion Mode in the feature list.

    Query the active data source at runtime

    You can check whether the runtime is using optical tracking or wide-motion inference by accessing the subsystem, then querying the active data source:

    if (subsystem.TryGetExtendedData<HandTrackingDataSource>(Handedness.Left, out HandTrackingDataSource source))
    {
        if (source == HandTrackingDataSource.UnobstructedWideMotion)
            Debug.Log("Left hand is using wide-motion inference");
        else if (source == HandTrackingDataSource.Unobstructed)
            Debug.Log("Left hand is using optical tracking");
    }
    

    Tracking behavior

    Be aware of the following when using Wide Motion Mode:

    • Wide Motion Mode might produce less accurate pose estimates than direct optical tracking, particularly when hands have been out of view for extended periods.
    • The runtime transitions back to optical tracking automatically when hands return to the camera tracking volume.

    Additional resources

    • Hand Tracking Data Source feature
    • Hand tracking feature
    In This Article
    Back to top
    Copyright © 2026 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)