The Surfball is an input device, similar to a mouse or a joystick. Unlike a mouse or joystick, it is capable of controlling all six degrees of freedom (6-DOF) of fully three-dimensional (3-D) motion. The components include a specially marked hand-held ball (the size of a racquetball), a color video camera hooked up to deliver live, moving images to a computer, and special software which interprets the data grabbed from the video camera. It can be used to input 3-D position, velocities, or various combinations of the two, and can be tailored to each application.
As with any 3-D controller, the Surfball is particularly suited to controlling movement in 3-D virtual reality environments. In fact, the name "Surfball" was inspired by its potential application to surfing VRML web sites (credit for the name goes to Chien-Ping Lu). The Surfball might also be used to draw CAD models in 3-D, to operate mechanical devices (such as a crane), to direct a robot arm, or to control just about any device, real or virtual, which moves with up to 6 degrees of freedom (6 DOF). So far, it has been applied to move a user about in a Doom-like graphics environment, to control a virtual spaceship, and to operate a 6-DOF robot arm.
The Surfball was designed and implemented by Kentaro Toyama at the suggestion of Gregory Hager, at Yale University's Center for Computational Vision and Control. Together with Yale's Office of Cooperative Research, we are looking for licensees who may wish to market the Surfball. The Surfball was granted U.S. Patent 5,889,505 on March 30, 1999.
Below is a frontal view of the Surfball. Two colored dots are
painted onto a raquetball which is suspended by elastic bands in a
stationary frame (Frame constructed by Greg Hager).
A close-up of Surfball, camera, and user:
An older prototype of the Surfball being used to control a 6-DOF robot arm:
Using color information to distinguish the ball from the background and the dots from the ball, the software rapidly computes the position of the ball and the two dots as well as the radius of the ball itself. Given this information, it is possible, with a little trigonometry, to infer the complete 3-D pose of the ball (a total of 7 pieces of data - 1 constraint = 6 degrees of freedom). Depending on the application, this information can be used to control either the position or the velocity of an object in a 3-D environment.
Because the tracking and computation take place in software, the Surfball can be easily ported to almost any hardware configuration that allows for fast acquisition of live video images. Currently, Surfball applications have been run on Sun Sparcstations and Silicon Graphics Indigos. High-end personal computers outperform both of these machines with respect to processor and bus speeds, so we will be porting Surfball technology to PCs and Macs in the near future.
A port for PC's with Windows 95 or NT is also under consideration. Please send us e-mail if you're interested. Tell us what kind of system you have, what operating system you're running, and whether you might be interested in helping us develop it.
This page is maintained by:
Kentaro Toyama
All contents Copyright © 1996-1997, Kentaro Toyama.
All rights reserved.
Surfball (TM)
Comments: toyama@cs.yale.edu
Revised: March 20, 1997
URL: http://www.cs.yale.edu/users/toyama/surfball/surfball.html