Develop
Develop
Select your platform

Touch Hand Grab Interactions

Updated: Nov 3, 2025
Experimental
This feature is considered experimental. Use caution when implementing it in your projects as it could have performance implications resulting in artifacts or other issues that may affect your project.

Design Guidelines: Providing a comfortable hand tracking experience is essential for creating immersive and enjoyable apps. Refer to the Design Guidelines at the bottom of the page to learn about best practices and to minimize risks of user discomfort.

Touch Hand Grab lets you use hands or controller driven hands to grab objects based on their collider configuration and dynamically conform fingers to their surface. This feature isn’t available for controllers. To learn about best practices when designing for hands, see Designing for Hands. To try Touch Hand Grab in a pre-built scene, see the Touch Grab scene.
Note: If you are just getting started with this Meta XR feature, we recommend that you use Building Blocks, a Unity extension for Meta XR SDKs, to quickly add features to your project.

TouchHandGrabInteractor

The TouchHandGrabInteractor defines the touch interaction properties for this interactor including the set of spheres that are used for testing overlap with associated interactables.
  • Open Hand configures the maximum open-hand joint rotations that a procedural grab will match.
  • Hand Sphere Map configures the set of spheres per hand joint that are checked for overlap with a corresponding interactable.
  • Hover Location and Min Hover Distance defines the broadphase location and radius that is used for choosing a corresponding interactable as a candidate.
  • Grab Location defines the root of the point transform for the IPointable events that TouchHandGrabInteractor broadcasts.
  • Curl Delta Threshold defines the angular threshold difference between a locked finger curl and a tracked finger curl under which a finger release will not trigger.
  • Curl Delta Threshold defines the consecutive time threshold a locked finger curl must be greater than the curl delta threshold of a tracked finger curl under which a finger release will not trigger.
  • Iterations gives you control over the number of iterations that should be used to compute procedural finger poses. A higher iterations will be more accurate but less performant.

TouchHandGrabInteractable

The TouchHandGrabInteractable defines the colliders that are used by the interactor to test overlap against and be conformed to during selection.
  • Bounds Collider configures the broadphase collider for this interactable for more performant overlap testing. Overlaps outside of this collider will be ignored.
  • Colliders configures the list of colliders that the TouchHandGrabInteractor will conform fingers to. These can be primitive colliders or convex mesh colliders. Concave objects should be split into a set of convex hull mesh colliders.

TouchHandGrabInteractorVisual

The TouchHandGrabInteractorVisual forwards the grab state of a TouchHandGrabInteractor to a SyntheticHand.

Reference

For reference information about the components used by grabbables, see the following links.

Known Issues

Touch grab interactions have the following known issues:
  • When interacting with larger objects, it is possible for the object to become locked to the user’s hand if the fingers cannot be spread far enough to disengage the sphere overlap detection.
  • Finger joints can look incorrect in certain situations.

Learn more

Design guidelines

Hands

Core interactions

Did you find this page helpful?