Develop

Gaze Grab Interactions

Updated: Aug 19, 2026

What are Gaze Grab Interactions?

The Gaze Grab Interaction enables users to grab and manipulate objects in virtual reality using their gaze to target which object to interact with. Once an object is targeted, the user initiates the grab with their hands, controllers, or both, depending on how the interaction is set up.
Headset view of a cube held in mid-air after the user targeted it with gaze and pinched to grab it.

How do Gaze Grab Interactions Work?

A gaze grab interaction pairs an interactor on the rig with an interactable on the object.
ComponentWhere it goes
GazeInteractor
On each hand or controller, added by the HandGazeInteractor prefab for hands and the ControllerGazeInteractor prefab for controllers and controller driven hands.
GazeInteractable
On each grabbable object.
Grabbable
On each grabbable object, alongside GazeInteractable. It receives the interaction events and moves the object. Any IPointableElement can take this role.
Diagram of the gaze grab component chain. On the rig, the HandGazeInteractor and ControllerGazeInteractor prefabs add a GazeInteractor, which pairs with a GazeInteractable on the grabbable object. The interactable sends interaction events to a Grabbable and drives an optional movement provider.
The interactor and the interactable communicate to determine whether a gaze grab has taken place and how the interaction behaves.
The quick action collects these components on a child GameObject of the target, named ISDK_GazeInteraction.
Hierarchy panel with the ISDK_GazeInteraction child GameObject highlighted under the IconBox object.
The GazeInteractor on the rig takes its candidates from the GazeConecaster and its selection signal from a pinch selector.
The Gaze Interactor component in the Inspector, showing the Pointer Transform, Selector, and Candidate Provider fields.
The GazeInteractable on the object points at the surface used for hit testing, the Grabbable that receives the events, and the movement provider that moves the object.
The Gaze Interactable component in the Inspector, with the Surface field set to a Collider Surface and the Movement Provider field set to a Move From Target Provider.
The Grabbable holds the grab and physics settings that apply once the object is selected.
The Grabbable component in the Inspector, showing the Transfer On Second Selection, Max Grab Points, Physics, and Optionals fields.

Movement providers

A movement provider is an optional component on the interactable that controls how the object moves once it is grabbed. If you do not assign one, the Gaze Grab quick action adds MoveFromTargetProvider, which moves the object one to one with the interactor.
The following providers are the ones most relevant to gaze grab. For the full set, including every property, see Movement Providers.
ProviderDescriptionStatus
MoveFromTargetProvider
Moves the object one to one with the interactor. This is the default.
Stable
CoronaryMovementProvider
Maps movement relative to an estimated position of the user’s heart and core. It can also billboard the object to face the user, which suits grabbable UI panels.
Experimental
MaintainOffsetFromTargetProvider
Holds the object at a fixed offset from the interactor, as if it were parented to the interactor.
Experimental
MatchTargetAtSourceProvider
Links movement deltas from the interactor to the object. The object matches those transformations in its own local space.
Experimental
PanToRotateProvider
Rotates the object along the movement delta of the interactor, without changing its position. Its Sensitivity property scales the rotation relative to interactor motion.
Experimental

CoronaryMovementProvider

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.
CoronaryMovementProvider is the recommended provider for moving a grabbable UI panel, because it can billboard the panel to face the user. It is designed for a specific gaze-driven grab integration, and its behavior outside that context is not guaranteed.
The Coronary Movement Provider component in the Inspector with Billboard To Face User selected.
For the property reference, see CoronaryMovementProvider.

Learn more