CITEC Central Lab Facilities
British Flag   German Flag

Ray Casting

Type: Selection
Authors: Patrick Renner, Nico Luedike
Supervisors: Nikita Mattar, Thies Pfeiffer

Original Design

The Ray-Casting technique is a quite simple method for selection in Virtual Reality. A virtual light ray is used to grab an object. For having an infinite length, the ray selects the first object it hits, only the direction has to be set by movement of the user's hand.

User Perspective

Using the light ray, the user is able to highlight an object in the virtual world just by pointing his hand in it's direction. In the following it can then be selected for manipulation by the user.

When selected, the object is attached to the ray and follows it's movements. The object's distance to the user is constant, thus complex manipulations like rotations require extra afford in this method; "Thus, only 1 degree of freedom (rotation around the ray axis) may be independently controlled using ray-casting" [1] .

When having reached the desired position, the object can be saved and detached from the ray.

Technical Details

The only required hardware is a tracked input device (e.g. the users hand using gloves). A three-dimensional position of this device is needed.

Ray-Casting is a flexible method, which can be implemented in several variations.

Our Realization

To face the problems considering complex manipulations described above, we decided to implement a version of ray casting in which the ray's length is finite and can be changed by the user. In our method the interaction metaphor is not a ray of light, but a virtual pointing staff, which can be arbitrarily extended and shortened. This holds two advantages: Objects can be manipulated in an easier way and furthermore the selection of objects, which are covered by others, is possible. We decided to choose a tracked version of Nintendo's WiiMote due to being an affordable input device with a high usability.

User Perspective

The user can move the pointing staff by simply moving the WiiMote, from which the staff originates. The staff's length can be adjusted by pressing a button and moving the WiiMote forward respectively backward. A slow movement causes only a small adaption of the length, while a fast movement allows rapid scaling, which lasts until the scaling button is released. When the head of the staff hits an object, the representing cylinder becomes green and a box around the object (the so-called bounding box) appears as optical feedback to the user. In this case the user may press the "select-button" to attach the highlighted object to the staff's head.

Since the object follows the staff's movements, the user is able to execute several manipulations. Especially the possibility of scaling the ray allows rotation around all axes, which gives the impression of a hand-centered manipulation. By pressing the selection-button a second time, the object is released and stored in it's current position and orientation.

Technical Details

As mentioned above, our realization of Ray-Casting uses a tracked WiiMote (a "WiiMod"). The user controls the selection and manipulation with two buttons of the WiiMote. One is used to attach objects to the end of the pointing staff, the other one activates the scaling mode for the staff's length. Direction and speed of the scaling are determined by interpreting the WiiMote's position during the scaling process: A slow movement scales the ray in a ratio 1:1 either in positive or negative z-direction in the WiiMote's coordinate system. A fast movement activates a "fast mode", in which the ray is scaled much faster, proportional to the speed of the movement. As long as the scaling-button is pressed, the scaling will continue. Selecting objects is trivially possible by pressing the select-button.

Evaluation (details here)

Ray-Casting is easy to understand and to learn, as most people are used to this concept from real interactions (e.g. (laser-)pointers, garbage pickers). The evaluation of our user study showed following results:



  1. Bowman, Hodges (1997). An evaluation of techniques for grabbing and manipulating remote objects in immersive virtual environments.