Wrist buttons
As the Quest ecosystem evolves, so does the number of inputs available to users. With the growing adoption of hand input, the demand is present for intuitive system control with hands. Previously, Quest has leveraged a gesture-based Quick Action Menu, which allows users to access common actions via a sequence of hand gestures.
For a lightweight alternative, users can now quickly access primary actions with minimal effort via virtual wrist buttons. The user has two virtual buttons, placed where the wrist and the palm of the hand meet, which provide commonly used shortcuts. The user interacts with the buttons via direct touch, pressing directly on the button with their opposing finger.
In the default arrangement, the wrist button on the user’s right arm is the Meta button and the button on the left wrist is the App Settings button. This creates parity to the Quest hardware controllers, allowing users to quickly access familiar controller actions with hands input.
The Quick Action Menu is still available to users to enable in the System Settings.
Meta wrist button
There are two interactions to perform on the Meta wrist button and only one interaction to perform on the secondary wrist button.
A single tap or press can be performed on both wrist buttons, while a long press can only be performed on the Meta wrist button.
Single tap on wrist button
Long press on wrist button
The presses can only be performed by the opposing hand’s index finger.
In addition to the direct interaction, single-handed use is available to the user. See description in Accessibility section.
Currently, the Meta wrist button is limited to two actions. The two actions are the most commonly used by Quest user while interacting with hands input:
1. Show / Hide system UI | The primary action of the Meta button is showing or hiding the system UI. The result of this action is the same as pressing the Meta button on the physical controller, creating parity to the interaction required on each input, a single press. |
2. Recentering | The secondary action available through the wrist button is recentering. When a user recenters, the user’s environment and UI reorient itself based on the user’s head pose. This action is not immediate when the recentering signal is received by the system, rather a countdown occurs once the recentering process has begun. The user then orients their headpose to the desired location of the recenter action. The user must hold down the wrist button for the duration of the recenter process. If the user terminates the interaction in the middle of the recentering process, the recentering is canceled. |
The wrist button appears in 2 opposing forms, a button on the user’s primary arm’s wrist and the user’s secondary arm’s wrist.
Meta button
The Meta button functions with parity to the Meta button on the controller hardware. The user can tap the virtual button quickly or long press to invoke a secondary action.
App settings button
The App Settings button functions with parity to the App Settings button on the controller hardware. The function of this button is defined by the currently open application.
There are two interactions to perform on the Meta wrist button and only one interaction to perform on the secondary wrist button.
A single tap or press can be performed on both wrist buttons, while a long press can only be performed on the Meta wrist button.
Single tap
Single quick press = duration of press “< 500ms”
Long press
Long press = duration of press “> 500ms”
The both press interactions can only be performed by the opposing hand’s index finger.
In addition to the direct interaction, single-handed use is available to the user. See description in Accessibility section below.
If it’s not comfortable for users to perform interactions with two hands, the actions can be performed with a single hand. With the conditions met to make the wrist button appear, the user can pinch their index finger and thumb together and perform both wrist button actions. The user can perform a quick pinch to have the same effect as a short press or a long pinch to have the same effect as a long press. The actions of show / hide system UI and recentering will occur respectively.
Depending on which hand performs the single-hand interaction (pinch), the corresponding wrist button action(s) will occur. (Dominant hand performs the pinch, Meta wrist button action is called)
The user can interact with the wrist button only when it is visible. There are several heuristics defining when and how the wrist button is available to the user. A balance is struck between discoverability and proper interaction while minimizing false positives and disrupting immersive applications.
The following conditions are cumulative and must all be met for the wrist button to appear.
Field of view
The user’s hands must be within a specified range of the user’s field of view (FOV). Hands too far on the peripherals of the user’s FOV are prone to accidental activations and may suffer from degradation in hand tracking quality.
Angle of palm
The majority of the user’s palm must be facing the user. A generous range of wrist rotation is taken into account to accommodate user's individual comforts.
Position of fingers
Regardless of the user’s hand pose, if the previous conditions are met, the wrist button will be present. A user can have any combination of fingers curled, loose fist, etc. and it will not impact the visibility of the wrist button.
Timeout
If the above conditions are met and the user does not interact with the wrist button for a specified period of time, the wrist button will fade to zero opacity. This behavior helps minimize any distraction of the wrist button.
A balance between not occupying too much real estate on the user’s wrist and providing an adequate hit target and interaction affordance was struck through many rounds of user testing. The wrist button size remains constant to provide proper affordance as an interactive surface and not distract the user with variations in scale when not the focus of the experience.
The size and hit target of the button encourage accurate and successful interactions while not becoming so large that it interferes with avatar embodiment or intersects with virtual clothing:
Attribute | Width | Height | Depth |
---|
Button dimensions | 1.3 cm | 1.3 cm | 0.1 cm |
The placement of the button is optimized for ease of access. Placed just above where the user’s wrist meets their palm, the position avoids the real-world obstructions, such as jewelry or bulky clothing and minimizes potential intersections with the user’s virtual embodiment, their avatar.
After a few interactions with the button, muscle memory builds allowing the user to interact with minimal effort and cognitive load.
It’s important to note, the position of the wrist button does not shift, nor is adjustable. If the button was to shift, previously created proprioception would be unhelpful to the user.
Attribute | X | Y | Z |
---|
Wrist button coordinates relative to wrist joint | 0.0 | 0.0 | 0.0 |
The system wrist buttons are designed to be cohesive to the Quest Design System visual styling and reflect the same interaction affordances and feedback. While aligning to the system visual standards, accommodations have been made to ensure the button reads well across a variety of avatars, contexts, and environments.
With the portable size of the button, retaining legibility of icons and adequate contrast ratio for accessibility were key considerations in testing with users.
Below is a list of our recommended practices when using the wrist buttons in an immersive experience:
DO Design and position non-interactive content freely around wrist button location. The wrist buttons will render above immersive experience content. DON’T Position interactive content close to wrist button location. The actual hit target of the wrist buttons is a bit larger than the button’s visual representation. DO Get creative with non-humanoid virtual avatars, the wrist button will still function as expected even if the user’s virtual representation doesn’t have wrists or fingers. DON’T Place critical status updates or signals in close proximity of the wrist buttons. The data and visuals will be occluded by the rendering of the button.