# GazeRayHand: Combining Gaze Ray and Hand Interaction for Distant Object Manipulation
## 3 Design of GazeRayHand Techniques  
We propose the GazeRayHand manipulation which utilizes the relative position between a gaze ray and a hand. Before selecting an object, the magenta gaze ray starting from the user's forehead to a gazing point is updated according to the gazing direction. The object that a user is looking at is selected when placing a hand on the gaze ray for more than 0.3 s, which is to prevent unintended selection. After selecting an object, the ray is fixed at the position to prevent fluctuating gaze movement during object manipulation. To provide visual feedback, the selected object color is changed to yellow and a small spherical indicator (radius: 0.015 m) appears on the gaze ray at the hand position when selection happens. This small indicator lets the user estimate how far the user's hand moved for manipulation from the original position when selection took place. The GazeRayHand translates or rotates the selected object in the direction of the hand is relative to the ray (see Figure 1). Hence, moving a hand up, down, left, or right relative to the gaze ray translates or rotates the object in the corresponding directions. We differentiate translation and rotation interactions by two hand gestures: V gesture (stretching index and middle fingers while closing the others) for translation, and fist gesture (closing all five fingers) for rotation. Moving the hand forward or backward translates the selected object forward or backward with the V gesture or rotates the selected object clockwise and counter-clockwise (yawing at the depth axis) with the fist gesture. To allow users to handle one or two DOFs separately for 3D manipulation, the GazeRayHand technique estimates which manipulation the hand interaction is for between depth and horizontal/vertical manipulations. If the hand moves more in the depth direction rather than in the horizontal/vertical direction, the hand movement results in depth manipulation but not horizontal/vertical manipulation, and vice versa. The hand manipulation area was empirically decided through a pilot study with five VR-experienced participants. In the pilot study, we found that it was easy to move a hand 0.25 m away in any direction from the point where the user initially placed the hand on the gaze ray for object selection. Thus, we designed the hand manipulation area as a cube having 0.5 m sides with its center point at the hand position when selecting an object. For rate-based control, we also designed the range of the translation and rotation speeds through the pilot study. The basic idea of controlling the speeds was calculating them with the distance between the hand and gaze ray. As the hand moves farther from the gaze ray, the speed increases. The translation speed ranges from 0.05 m/s to 1.2 m/s, while the rotation speed changes from 0.05 rad/s to 1 rad/s. To prevent unintentional translation or rotation, the hand should be placed more than 0.05 m away from the initial position at selection. We mapped the maximum distance in the hand manipulation area (0.5 m) to the maximum speed and the starting point of manipulation (0.05 m) to the minimum speed. A simple hand opening gesture stops the manipulation, and the object returns to its original color, and the gaze ray updates again according to the user's gaze direction. The width of gaze ray was set to 0.03 m, and the hand model was visualized using Vive Hand Tracking SDK 1.0.0 [37]. To mitigate the occlusion and detraction of the user's view, we made the hands and gaze-ray semi-transparent. Based on the GazeRayHand manipulation, we additionally implemented another variation, named GazeRayHand2. Both techniques work identically for selection, translation, and rotation using hands, but the GazeRayHand2 technique adds gaze-based translation to the GazeRayHand technique. To achieve this, the GazeRayHand2 creates a white, semi-transparent sphere around an object when it is selected. The radius of the sphere is 20 percent larger than the radius of the selected object's bounding sphere.