Immersion TouchSense™ Fundamentals

IMMERSION CORPORATION

Immersion and the Immersion logo are trademarks of Immersion Corporation.

Immersion Corporation 1998-2001

801 Fox Lane, San Jose, CA 95131

Phone (408) 467-1900 . Fax (408) 467-1901

Revision 1.4 help

March 7, 2001

The latest version of this document can be downloaded at:

www.immersion.com

Introduction

Background

Touch-Enabled Devices

Applications

Overview

Desktop Computing

Web Computing

Gaming

Effect Design

Overview

Device Differences

Tactile Interface Design Considerations

Overview

General Issues

Touch-Specific Issues

Effect Descriptions

Vibrational

Periodic

Positional

Texture

Enclosure

Ellipse

Spring

Grid

Directional

Constant

Ramp

Resistive

Damper

Friction

Inertia


Background: Table of Contents

Introduction

Background

Touch-Enabled Devices

Applications

Overview

Desktop Computing

Web Computing

Gaming


Background

Immersion Corporation develops and licenses TouchSense technologies, which engage the human sense of touch in computing environments. Supplementing visual and audio feedback, touch gives users an improved perceptual experience. Although it is often taken for granted, touch is a highly developed human sense that is central to exploring the world, understanding information, and manipulating objects. Touch-enabled computers give software and Web page developers access to this very capable sense allowing creation of sophisticated custom sensations that make the user experience more natural, informative, engaging, and enriching. By connecting the developer's imagination with the user's sense of touch, TouchSense technologies mark a milestone in the advance of modern user interfaces.

People distinguish a remarkable range of sensations with their hands. A touch-enabled device such as a mouse, joystick, gamepad, or other computer peripheral provides a variety of information through different tactile sensations and variations of intensity. In practice, delivering a rich array of sensations is quite difficult to achieve at a reasonable cost in such a small package. TouchSense technology, through years of expansion and refinement since its inception in 1993, proves its worthiness in product after product.

Personal computer user interfaces have progressed dramatically since 1983 when monitors displayed white or green characters on black backgrounds. To this monocolor character interface, computer manufacturers added rudimentary monocolor graphics and sound. Over time, these additions matured to become fine color graphics and high fidelity sound. All of these features that were once expensive and considered unnecessary for general users are now standard and indispensable. Although falling prices were an important factor, these advances in user interfaces helped drive widespread adoption of computers in homes and businesses.

Operating system and application designers exploited the new user interface hardware by making the screen visually analogous to a familiar physical workplace, the "desktop." They added file and folder icons, borrowed menus from restaurants and windows from buildings. They added optional sound effects to alert messages and interactive events such as dropping a file into the trash.

There is a common theme behind these efforts to remodel the computer user interface. User interface designers strive to exploit mental and physical abilities; attributes that make humans extraordinarily adept at interacting with the physical world. In other words, they work to make the desktop more like a physical desk. Making the computer less conceptual and more physical makes it easier to use and more engaging.

Designers also improved the input side of the user interface, originally modeled after a typewriter. They invented the mouse to give users the analog of a hand on the desktop. The mouse enables users to directly manipulate desktop objects: to move, stretch, or select the targets of operation, for example. After some training, direct manipulation with a mouse is much easier for most people than remembering and typing commands.

"Touching" a desktop object with a traditional mouse pointer is unlike touching a physical object with a hand in an important way: the pointer provides visual feedback but no tactile sensation. Along with the rest of the desktop, the pointer provides the look of the physical world but nothing of its feel. But why shouldn't it?

Sight and sound are two channels for communicating between computers and users; touch is a third channel. Like early computer graphics and sound hardware, devices that convey information through a user's sense of touch have traditionally been too expensive or too poor in quality for widespread adoption. Immersion Corporation brings touch technology to the mainstream by making it high in fidelity and reasonable in cost.

In this document, as well as in many of our developer tools and other documentation, the concept of "force feedback" - the addition of touch information to the human-computer interface - is referred to in a variety of ways. Immersion has developed a broad array of force feedback device technologies which feel and behave differently but which, ultimately, allow a user to interact with computer software in a physical, tactile way. Different names are used in an attempt to convey the many subtle differences in how these devices operate. Fundamentally, these varied naming conventions, including such words and phrases as "tactile feedback," "haptics," "full force feedback," "vibro-tactile," "rumble feedback," "touch-enabled," "touch-activated", and many more, all refer to different flavors of a single unified concept: the ability of a computer system, including both hardware and software, to communicate tactile content and information to a user across a broad range of applications. At Immersion we combine and unify this range of functionalities under our TouchSense™ mark.

Touch-Enabled Devices

Applications


Background: Touch-Enabled Devices

Touch-Enabled Devices

A touch-enabled device transfers forces to a user's hand or fingers under the direction of a computer. The ability of the TouchSense device to play tactile effects depends on special hardware inside the device, in combination with software which directs what kinds of effects the device should play--not just any peripheral device will do.

Joysticks, steering wheels, and gamepads used in computer games comprise one class of touch device: game controllers. As a gamer turns a simulated airplane or race car with a joystick or steering wheel, he or she feels a physical sensation--which may take the form of an increase in pressure or vibration--which is how a real flight stick or steering wheel feels under the same circumstances. Games were and are an important proving ground for touch-enabled devices and user interfaces.

Immersion designed several types of touch-enabled computer mice that extend the sense of touch to mainstream PC users. These users may now engage a third sense while they surf the web, use productivity applications, and perform other tasks on their computer's desktop. Immersion's TouchSense mice fall into a second class of touch device known as pointing devices.

Touch-enabled devices vary not only in form, but also in the range and quality of sensations they deliver. The simplest devices have very limited repertoires: they pulse and vibrate without control over the properties of the vibration. The most complex devices exert rapidly changing forces on all of their axes. Most devices fall somewhere between the simplest and the most complex, providing the ability to move in one or two axes and independently modulate several properties of the forces they exert. Remember that simple touch sensations, such as vibration, are not without value; game users, for example, are adept at "suspending disbelief" and interpreting vibrations meaningfully, especially when they are reinforced by visual or sound effects.

For general use, a wider range of available sensations gives user interface designers the ability to create more realistic experiences for their users. With the right combinations of forces, a mouse or joystick reacts like an elastic material, or feels as though it is moving through liquid or across a textured surface. Compelling sensations are rich in complexity, achieved by adjusting forces on all axes simultaneously and rapidly. Designing such a device is a challenging engineering effort, especially when minimizing size and cost. The increased versatility gives user interface designers a broader palette from which to compose touch sensations that best convey an experience. As an analogy, consider black-and-white graphics versus color. Consider 256 colors versus 16 million.


Background: Applications: Table of Contents

Applications

Overview

Desktop Computing

Web Computing

Gaming


Background: Applications

Applications

Touch improves a user interface in two ways. It improves user satisfaction. More importantly, it improves user performance. Often it can do both.

Touch-enabled user interfaces improve user performance by supplementing visual and audio information. In some settings, and among some users, visual and auditory feedback are poor or inappropriate conductors of information. For example:

  • In a car, controls that operate by sight draw the driver's attention from the road.
  • In an office, audio feedback disturbs nearby colleagues.
  • Users with imperfect sight, hearing, or neuromuscular control may have difficulty operating visual and audio interfaces.

Even under excellent conditions for viewing and hearing, touch substantially improves user performance. Consider this:

How is it that a person can drink a cup of coffee while simultaneously reading a newspaper?

  • Release grip on paper, casually adjusting other hand's grip to compensate for paper sag. Perhaps rest bottom of paper in lap (without looking)
  • While still reading (perhaps slower), slowly feel around table for coffee mug, adjusting direction based on feel.
  • When found, feel for handle and grip.
  • Bring mug to lips, keeping mug level, rotating arm and wrist appropriately (by weight and grip pressure).
  • Tilt mug back when mug is felt against lips.
  • Return mug to table slowly, adjusting course if small collisions detected. Notice that you do not even need to look at the table, you can feel it through the mug!
  • And you never lost your position on the page.

Now imagine without force feedback...

First, try to imagine holding the paper or turning the pages without feeling them!

  • Release grip of one hand
  • Visually identify path for arm to take. Bumping into things will only be known if it causes unexpected movement.
  • View placement of fingers on mug handle
  • Slowly lift mug, watching for unexpected rotation... since you cannot FEEL slipping or weight... you must be cautious about how much force you use... too much and coffee will shoot everywhere... too little grip and the mug will tip!
  • Think about how you will bring the mug to your lips without the sense of touch. Will you use mirrors?
  • Will you check your shirt for spills after every sip?
  • Remember to watch your grip, proximity to table, and arm movement as you return the mug to the table.
  • Now try finding the edge of the paper again without feeling for it.

So many actions are made easy with the sense of touch.

This example has a direct counterpart in computer user interfaces. Without touch, the reader of a long document must interrupt his or her reading, visually move the pointer to the scroll bar, click to view the next page, and resume reading. For subsequent pages, clicking in place works, provided that the user has not inadvertently moved the pointer. If a scroll bar had the feel of a trough and tended to attract and hold the pointer within it, or give a tap when the pointer passed over it, the reader could find and operate the scroll bar without thought and without losing time by suspending and resuming his or her reading. In this example, and many more, touch improves performance by making the desktop feel like the physical world. Utilizing the highly developed human sense of touch to gather, process, and act upon information improves user performance.

Desktop Computing

Web Computing

Gaming


Background: Applications: Desktop Computing

Desktop Computing

The Immersion Desktop software supplied with the TouchSense mouse is called when the user interacts with standard Windows OS user interface elements such as icons, menu items, buttons, drop-down lists, and many others. By supplying touch feedback for user gestures, this software makes desktop objects feel much more like physical objects. For example, a window feels elastic when a user stretches or shrinks it. The items in menus feel like mechanical detents; the mouse provides a very positive sensation of "dropping into" each item, which in turn conveys a strong sense that the user has engaged the item. Scroll bars have the same sort of detent effect, making it very clear to a reading user that the mouse engaged the scroll bar and that a click will scroll the page. Unlike desktop sound effects, a TouchSense mouse can be silent, providing feedback to the user, but not to nearby colleagues.

Different people have different thresholds for feeling force. Different people have different preferences for how desktop controls should feel. Users may adjust the overall strength and feel of individual effects with the Immersion Desktop control panel.

Developers may associate specialized touch sensations with application-specific features by writing code. For example, a drawing application might deploy an invisible but tangible grid to enable regular object alignment without visual clutter. A word processing application might superimpose a texture over a block of text formatted in a particular style. An on-line presentation tool might give a speaker tactile presentation timing cues not seen or heard by the audience.


Background: Applications: Web Computing

Web Computing

Graphics, and to a smaller extent, sound, make Web pages more attractive and effective than plain text. Touch effects further enhance Web pages, making them easier to understand and use, and more fun, too.

Many home pages are crowded with small type. In an attempt to reduce visual clutter, some Web page designers are abandoning the underscore convention for marking text links and the blue outline convention for identifying graphic links. As a result, on some pages, it can be difficult to see what is a link and what is not. With a TouchSense mouse, Web page visitors can feel links as they move the mouse over a page. Links feel like detents or divots that attract the mouse. When exploring pages that contain forms, TouchSense mouse users can feel menu choices, text, and check boxes. Relying on touch for detecting links frees Web page visitors to concentrate their visual attention on the page content, which makes communication of that content more effective and the experience of the page more enjoyable.

Web page designers and programmers can also add custom effects to pages. Custom effects are packaged in touch effect files called IFR (Immersion Force Resource) files, which browsers download and cache like other Web page resource files such as GIF or WAV. Touch effect files are small compared to graphics and sound effects, so they do not appreciably increase download time. A browser plugin supplied with the TouchSense mouse interprets custom effects for Netscape Navigator; an ActiveX control does the same for Microsoft Internet Explorer. Touch-enabled Web pages do not interfere with the experience of users who have ordinary mice; their browsers interpret the pages as if they had no touch effects.

In addition to benefiting from the standard features provided by Immersion Desktop, web page developers can also synchronize custom touch effects with animation and sound effects or apply specialized touch effects to images or other elements of their web pages. For example, in a children's story, a picture of an old car might be labeled "Start the Car." Clicking the car image could make the image shake and the mouse vibrate in synchronization with the sound of a starter motor. Once the car started, the animation, sound, and feeling of the mouse could all change to mimic the quiet smoothness of a running engine. Reinforcing sight with synchronized sound and touch gives users a satisfying experience that is much more like "being there" than watching a simple animation.

Immersion TouchSense technology also integrates smoothly and easily with content created in web animation tools such as Macromedia Flash and Shockwave. A dynamic combination of visual, audio, and tactile content will draw users in and keep them engaged, surfing, and exploring a site longer and more thoroughly.


Background: Applications: Games

Gaming

For computer game players, two considerations predominate: realism and scoring. Progress in computer graphics, in sound, and now in touch--or force feedback, as it is known by the gaming community--are all aimed at increasing a player's feeling of "presence" in the game and improving his or her performance. Game developers create software that re-creates realistic environments and may now enrich their content with touch-enabled joysticks, wheels, gamepads, and mice.

Consider the kind of game in which a player explores a space in an attempt to shoot opponents before being shot. In this sort of game, players navigate by moving a mouse or a joystick. By strongly resisting movement or telegraphing impact, a force feedback device can notify a user that he has backed into a wall. The ability to feel a wall frees a retreating player to dedicate visual attention to scanning in other directions. A touch device may be used to signal hit direction. Such a device can also signal the presence of an opponent who is outside the player's visual field by moving sharply to indicate a near miss fired from the right or left.

For first-person shooters, intuitive information such as backing into a wall is easily simulated with an opposing force. Hit direction is better understood by applying a directional force rather than a showing a visual cue. Games already exist that provide a feeling for picking up game objects, firing weapons, riding trains, elevators and conveyors. New opportunities such as "feeling around in the dark", "tactile texturing", and countless others just wait for an aspiring game developer to implement them.

In driving games, a touch-enabled steering wheel instantly notifies the driver that the car's tires are slipping on ice, giving the driver time to compensate and avoid a spin or crash. . TouchSense wheels give game drivers a realistic sensation of the surface the car is driving on: smooth or bumpy pavement, gravel, grass, etc. By telegraphing changes in the driving surface just as a real wheel would, the TouchSense wheel gives a more realistic experience and helps the driver achieve the maximum speed consistent with the tires' ability to maintain cohesion.

Force feedback increases the sense of presence in flight games by allowing players to feel engines start and run roughly until warmed up. Feel the roughness of the runway followed by the smoothness of lift-off. Feel the recoil when firing a gun. In the same games, force feedback improves player performance by informing a player when her plane is hit from behind. Without force feedback, such attacks are imperceptible until the plane is so damaged that an instrument senses a problem, which is usually too late. Staring at instruments is a good way to miss important actions occurring outside the plane. In games, as in other applications, adding a sense of touch conveys information to users that cannot practically be communicated by visual or audio feedback.


Design: Table of Contents

Effect Design

Overview

Device Differences

Tactile Interface Design

Overview

General Issues

Device-Specific Issues


Design: Overview

Overview

Immersion TouchSense Technology provides the designer of a tactile interface with a broad palette of touch effect types. Each available force feedback effect type is a "primitive" - a simple, elemental sensation with a unique set of properties and a specific behavior. A usable effect is created by tuning the properties of a chosen primitive. The tuned effect may then be used either on its own, or in combination with other tuned effects, to create a final, complete effect.

Effects can vary over space (the area of the screen), over time, or both. Some effects can be experienced passively (they happen TO the user), while some, by design, only happen in response to movement or displacement initiated by the user. Effects with a spatial component involve or react to movement or changes in cursor position, and include the following:

  • pushes or pulls in a particular direction
  • resistance to or amplification of a user's cursor movements
  • textures and contours

Effects with a temporal component involve variation over or repetition in time, and include the following:

  • repeating (periodic or vibration) effects, with an effect interval playing over and over in time at a chosen frequency
  • effects wrapped in envelopes, with finite attack and fade periods flanking the primary effect magnitude
  • effects of finite duration

Effects playing without requiring participation from the user include:

  • pushes or pulls in a particular direction
  • periodic or vibration effects

Effects playing only in response to user movement include:

  • resistance to or amplification of a user's cursor movements
  • textures and contours, which require a user to move around in order to feel them

Device Differences

Considerations


Design: Device Differences

Device Differences

A wide variety of peripheral devices are enabled with Immersion TouchSense technology. Different models of TouchSense computer mice are available for use in web browsers, games, and productivity applications. Gamepads, joysticks, and steering wheels for games and simulators exist from a variety of manufacturers. Yet other types of devices are under development in Immersion's laboratories.

The nature of the device limits the types of touch effects felt. A steering wheel, for instance, turns left and right, so it plays effects on the x-axis only. A joystick, attached to its base at a single point, cannot play effects which require an exploration of 2-dimensional space, like textures and contours. A tactile mouse, free from a base attachment, is unable to exert lateral forces, making it unable play effects like pushes, pulls, gravity, or resistance to movement.

 | Tactile Feedback Mouse or Trackball | Joystick | Steering Wheel | Full Force Feedback Gamepad | Full Force Feedback Mouse | Rumble Feedback Gamepad
Periodic | X | X | X | X | X | X
Texture | X |  |  |  | X |
Enclosure | X |  |  |  | X |
Ellipse | X |  |  |  | X |
Spring |  | X | X | X | X |
Grid |  |  |  |  | X |
Constant |  | X | X | X | X |
Ramp |  | X | X | X | X |
Damper |  | X | X | X | X |
Friction |  | X | X | X | X |
Inertia |  | X | X | X | X |

Despite the apparent limitations of any given device, the variety of individual sensations each can play is virtually limitless. In tactile effect design, the challenge lies in creating compelling sensations which convey the correct impression, taking into account strengths, weaknesses, and limitations of the target device. An analogy can be made in symphonic music: A violin and a piano each make music, but the two instruments cannot do exactly the same things. Nonetheless, breathtaking concertos have been written by talented composers for each of these instruments, each taking advantage of the instrument's strengths and sidestepping its limitations.


Design: Considerations: Table of Contents

Tactile Interface Design

Overview

General Issues

Touch-Specific Issues


Design: Considerations

Considerations

When touch sensations are needed for a particular project, where does one begin? Effect creation and placement is an art, analogous to the creation and arrangement of graphics and sound within a piece of electronic media. Some issues which arise during this process are simply a matter of good general design and planning. Other issues are specific to tactile effect design. Both types are addressed below.

General Issues

Touch-Specific Issues


Design: Considerations: General Issues

General Issues

When designing a user interface, keep in mind the ultimate experience of the user. Spend a fair amount of time planning before creating the first effect. Answer several basic questions:

  • What is the intention of the user interface? Is it showing something, selling something, explaining something, exposing something? Does it deal with tangible things or abstract concepts?
  • How should the user feel when experiencing the final product? Relaxed? Excited? Frightened? Curious?
  • Are the touch sensations a central part of the presentation, or are they intended to support and enhance other content?
  • Will the user be watching something passively, doing something actively, or some of both?
  • Should everything about the interface be straightforwardly presented to the user, or will the user have an opportunity to explore the interface to find hidden "gifts" or "surprises"?
  • What kind of touch-enabled device or devices will most users be equipped with for experiencing the finished work?

There are certainly other questions of this type which go into the planning process for any new interface design project.

Once defined and taking shape in your mind, consider the the following for the project:

Simple sensations are often the most effective. It is sometimes surprising to realize that something like a very simple Pop or Click sensation, created in seconds in Immersion Studio, can bring a menu to life. An effective, satisfying interface can keep users navigating through to other areas of a website, or make them keep coming back to a deftly touch-enabled productivity application, because they like the feel of it. And there's no doubt about it: simple is often very satisfying. A designer does not have to make wildly complex effects to make a compelling user interface. If it's needed, however, complexity is at the designer's fingertips.

Sensations which fit in with graphical and sound content in time and space make the whole greater than the sum of its parts. Seeing, hearing, and feeling an object or activity, where the visual, audio, and tactile parts are well-synchronized in time and space, and where each part is as realistic as possible, draws a user in to the presentation in a way just seeing and hearing alone cannot. Throughout our lives, the sense of touch is so inextricably linked to the physical, real world, that a user who feels tactile sensations from a computer has much more of an experience of "really being there." In contrast, poor synchronization of tactile content with other content in time can actually be distracting to a user, and detract from the experience. A little care and planning here goes a very long way in making an exceptional final product.

It's bad to annoy the user. Poorly designed touch sensations can be annoying and counterproductive. While a high-pitched buzz may be very effective as part of an alert or other occasional effect intended to grab attention, continuous high-pitched buzzing which occurs frequently will eventually cause a user to leave the site or application, annoyed. Remember the BLINK tag in HTML? It's not used much anymore. Just because you can do something, doesn't mean you don't have to be careful with how or where you do it. The same goes for effects which prevent a user from doing something. If a game player cannot fix on a target because he is being thrown around by his joystick, or if a web surfer cannot select a menu item because her full force-feedback mouse is pushing her hand around wildly, these users are not likely to have good feelings about the game or website as a whole. Preventing this type of result is entirely a matter of thoughtful interface design.

It's bad to confuse and overwhelm the user. Just as too many beautiful sounds played simultaneously become a cacophony, too many compelling touch sensations played together or too close to each other in time and space can become muddy and overwhelming. Each individual sensation will lose its impact, and the user will get tired quickly. Tactile sensations should be placed and spaced so each one has the intended impact on the user, and doesn't blur into the other sensations (unless, of course, this is the intended effect). At the same time, too few or too sparsely spaced effects will disrupt the tactile continuity of the presentation. A decision to create a tactile interface requires a commitment to incorporate enough touch sensations as well, not just throw in one or two here and there for novelty.

Familiarity eases the user experience. Tactile effects can relay important information to a user, which might not be available or practical to provide through graphics or sound. As such, the collection of touch sensations in a website, game, or application becomes a sort of language that the user learns to facilitate navigation and understanding. Limiting the tactile language to a manageable, reused set of sensations makes the user's learning process easier, because there is less tactile "terminology" to remember.


Design: Considerations: Touch-Specific Issues

Touch-Specific Issues

Some aspects of tactile interface design are specific to working with touch sensations and the devices that impart them. Here are some things to remember when designing a touchable user interface:

A tactile interface holds the user by the hand. A user experiencing a tactile interface usually navigates the interface with the same hand that feels touch effects. The most obvious implication of this fact is that strong forces applied to the hand of the user will have an equally strong impact on that user's ability to navigate as desired. The interface designer must remember that an interface that holds the user's hand in this way can be helpful and guiding, or frustrating and confounding. Any user encountering the latter type of interface may decide that no feedback is better than unhelpful feedback, and will either unplug the device or leave altogether.

Some effects can be heard as well as felt. On certain devices, particularly force-feedback mice of all descriptions, repeating effects of certain frequencies in the audible range can be heard as well as felt. The human ear can hear frequencies above about 20 Hz (a period of 0.05 seconds). Therefore, any periodic effect with a period shorter than 0.05 seconds will be heard by the user to some extent. Other types of effects can be sufficiently strong that a clicking or banging can be heard from the device. This fact can sometimes be exploited to create both tactile and sound effects from a tactile peripheral device. If it is important that a touch-enabled application or web page be completely silent, however, the tactile interface designer must test all touch effects with an ear for the sounds they might also make when they play.

Effects can cancel each other. You design two strong tactile effects, then play them simultaneously, and feel nothing. Why? Strong pushes in opposite directions add up to no push at all. A stiff spring overlaid with a strong constant force can make the spring disappear. The sum of two periodics slightly out of phase can be a faint, wimpy periodic instead of the intended interesting harmonic. When adding effects together into a single compound effect, it is important to test the result and test again to make sure it feels as planned.


Primitives

Vibrational
  • Periodic

Positional

  • Texture
  • Enclosure
  • Ellipse
  • Spring
  • Grid

Directional

  • Constant
  • Ramp

Resistive

  • Damper
  • Friction
  • Inertia


Primitives: Directional: Periodic

Periodic

Periodic effects are vibrations, like the buzz of an electric razor, the whir of a cooling fan, the shaking of your wheels on uneven pavement, or the deep rumble of a distant volcano. Vibrations are all around us. Anything that buzzes or rattles can be modeled by a periodic effect.

Periodic means something that regularly repeats; a periodic effect consists of a series of individual pulses or "waves" repeated over and over again. Think of waves blown by the wind passing over the surface of a lake. If you put your hand in the water, you would feel the crest and trough of each wave as they pass one by one by your hand.

Periodic effects are supported by all TouchSense mice, joysticks, and wheels. Periodic effects affect a mouse regardless of its position on the screen. In other words, a Periodic is a passively experienced effect.

Direction

Specifies the axis along which the periodic effect plays. This property is ignored for a tactile feedback mouse, as the force is always up-down.

Duration

The duration determines how long the entire Periodic effect lasts. It has no effect on the period.

Envelope

An envelope allows you to change the level of a Periodic as it plays. It affects the entire effect over its whole duration, not the individual repeating cycles. If you are making a Periodic simulating the feel of a passing train, you might use an envelope to make the shaking swell up from nothing as the train approaches, and then decay again as the train heads away.

An envelope has both an attack portion and a fade portion; each of these has an associated level and time. During the beginning, or attack portion of the effect, the force intensity, or level, ramps from the attack level to the effect's overall magnitude over the attack time. During the end, or fade portion of the effect, the level ramps from the effect's magnitude to the fade level over the fade time.

Gain

Gain is a factor with which you can scale the entire envelope of the effect. It ranges from 0 to 10000, where a gain of 10000 is equivalent to multiplying the forces throughout the effect by a factor of 1, and does not change the size of the envelope at all. A Gain of 5000 would cut all the forces throughout the effect in half. Gain and magnitude are different in that the gain changes the entire size of the envelope whereas the magnitude only changes the strength of the sustained force.

Magnitude

The magnitude of a Periodic effect represents the sustain level of the effect: the maximum force on the device during the central, unchanging part of the envelope. A high magnitude means a strong vibration, whereas a magnitude below 100 may be too weak to be felt. Magnitude is applied in both the positive and negative directions; a value of 10,000 represents the maximum magnitude and will make the Periodic vibrate strongly in both directions.

A negative magnitude inverts the positive and negative directions, so it pushes in the opposite direction it would have if the magnitude had been positive. In the graphs above this has the effect of flipping the waveform around the blue line.

Offset

The offset indicates a value added to the amplitude of the Periodic. Unlike magnitude, it acts in a direction. For example, a positive offset increases the force in the positive direction (makes the waves higher above the blue line) and decreases it in the negative direction (makes the waves shorter below the blue line). A negative offset increases the force in the negative direction and decreases it in the positive direction.

Phase

The phase of a periodic effect is the point along the waveform where the effect begins. It is only relevant for low-frequency vibrations as you can't notice a phase-shift in a high-frequency vibration. With a phase of 0 the first waveform will play at the beginning. With a phase of 180 degrees the first waveform will play starting at its halfway point. The following table indicates where selected phase values in degrees lie along the various waveforms. m is the top of the wave, -m is the bottom, and 0 is the midpoint, where no force is applied in either direction.

0
90
180
 270
square
m
m
-m
 -m
sawtooth up
0
(1/4)m
(1/2)m

(3/4)m [reaches m just before cycle repeats]
sawtooth down
m
(3/4)m
(1/2)m

(1/4)m [reaches 0 just before cycle repeats]
sine/triangle
0
m
0
 -m

Period

The period is how long a single repeating cycle (pulse) of the vibration lasts. This determines the "frequency" of the vibration. Periodics with shorter periods (higher frequencies) feel like buzzes. Periodics with longer periods (lower frequencies) feel like rumbles or taps.

The period has no effect on the overall duration of a Periodic.

Waveform

A Periodic's waveform is the "shape" of the repeated pulses. Shown below are the five basic waveform varieties: Square, Sawtooth Up, Sawtooth Down, Sine, and Triangle. The graphs display the force over time: area above the blue line means a force in the direction specified for the effect, area below the blue line means a force in the opposite direction.

Square. The most intense of all of the waveforms, due to its abrupt transitions.

Sawtooth Up. The waveform steadily rises and then drops suddenly after reaching a maximum force.

Sawtooth Down. The waveform steadily drops and then rises vertically after reaching a minimum force.

Sine. The smoothest of the vibrations.

Note that this waveform is not supported on the Logitech iFeel Mouse and MouseMan and will be played as a square wave on these mice.

Triangle. In between the square and the sine wave in terms of "smoothness" of the vibration.

Note that this waveform is not supported on the Logitech iFeel Mouse and MouseMan and will be played as a square wave on these mice.


Primitives: Positional: Texture

Texture

Texture effects can simulate the grit of sandpaper, the ribs of a washboard, or the strings of a tennis racquet. Textures are often assigned to areas on the screen to make an object or background feel scratchy, grooved, grainy, or bumpy. A Texture is only felt when the mouse is moved.

Textures are composed of a series of speed bumps spaced at regular intervals. For each direction of mouse travel (left, right, up, and down) a different sensation can be defined. The following diagram shows a Texture that has different bump properties (width, height, and spacing) for each direction of travel.

In the three-dimensional coordinate system above, force magnitude is represented by the vertical axis. The other two axes represent direction of mouse travel. Imagine the mouse to be at rest in the center of the coordinate system (0,0,0). Now, if you move the mouse upward, you would feel the dark gray bumps depicted in the upper right. Likewise, if you move the mouse to the left, you would feel the light gray bumps on the left.

You can also play multiple Textures simultaneously, layered on top of one another, to create a more complex overall texture effect. When combined, the forces of Textures are additive up to the maximum possible force output level.

Axes

When it is created, a Texture can be defined as along the X-axis, the Y-axis, or both the X and Y axes. An X-axis Texture can be felt when the mouse travels left or right. In other words, you feel vertical stripes of bumps as you travel horizontally (along the X-axis). A Y-axis Texture can be felt when the mouse travels up or down. You feel horizontal stripes of bumps as you travel vertically (along the Y-axis). A double-axis Texture can be felt along any line of motion, though the stripes of bumps still lie along the X- and Y-axes.

The axes of the Texture cannot be changed dynamically once the effect is created.

Duration

The duration determines how long the Texture lasts.

Gain

Gain is a factor with which you can scale all the magnitudes of the Texture effect. It ranges from 0 to 10000, where a gain of 10000 is equivalent to multiplying the forces throughout the effect by a factor of 1.

Magnitude

Magnitude determines how much each bump is felt: the higher the magnitude the greater the force. There are separate magnitude values for the positive and negative directions of travel along an axis. The positive magnitude controls the magnitude when moving across the Texture down or to the right (in positive directions of travel). The negative magnitude controls the magnitude when moving across the Texture up or to the left (in positive directions of travel).

To create a velvet-like effect, you could supply non-zero bump magnitudes for only one direction of travel (e.g. the Texture would feel fuzzy when moving right, smooth when moving left). To create a grid-like effect, you could supply the same magnitude values for all directions of travel.

Offset

Offset specifies the pixel distance from the left and top edges of the screen or enclosure at which the first texture effect (bump) is felt. Use this property to line up the bumps of a Texture with features on the screen, e.g. so that the bumps correspond with lines or a grid drawn on the screen.

Spacing

Spacing determines how far apart the bumps are. It is the distance in pixels between the centers of two adjacent bumps. There is a positive spacing that denotes this distance when the mouse is moved down or to the right. There is also a negative spacing that denotes this distance when the mouse is moved up or to the left. By setting the positive and negative spacings to different values it is possible to make the Texture feel different in different directions of movement.

Thickness

The bump width, or Thickness, determines how wide the bumps are. It is the width of the bump in the direction of the Texture's axis. The positive thickness denotes the width when the mouse is moved down or to the right. The negative thickness denotes the width when the mouse is moved up or to the left.


Primitives: Positional: Enclosures: Rectangle

Enclosure

An Enclosure allows you to define a rectangular boundary. The edges on the boundary may behave like hard walls and be resistive to your push, or they may be magnetic and pull your hand and device's cursor into the enclosure. It's possible to use an Enclosure to attract a user's cursor to a check box item or create an impenetrable rectangular wall in your application. Enclosures may also enclose other effects and give them a rectangular shape.

An Enclosure is defined by a rectangular boundary which separates the Enclosure's inside from its outside. The Enclosure has a set of inside walls lining the inside of the effect boundary, and a set of outside walls lining the outside of the boundary.

All features of enclosures are available on the full force feedback mouse. Some tactile feedback mice can emulate an Enclosure by playing a bump every time the cursor crosses an Enclosure boundary, but the effect will not have the attractive properties and impenetrability of the same effect played on a full force feedback mouse. The Enclosure effect is not supported on joysticks, wheels, or gamepads.

Center

The Center is the location of the top left corner of the rectangular enclosure.

Clipping Mask

Clipping is a visual effect that causes the cursor to jump to the boundary of the Enclosure whenever the cursor is over a wall where Clipping is active. This visual "stickiness" of the Enclosure boundary gives the illusion of wall impenetrability. You can choose which walls of the enclosure will have the clipping effect.

Direction

The direction of an Enclosure is the effect's angle of rotation. You can specify the direction in either Cartesian or polar coordinates. An Enclosure rotates about its top left corner. The angle of rotation is the angle swept out from the coordinate system's Y-axis by the upward-extended left edge of the Enclosure rectangle.

To determine the direction in Cartesian coordinates, place the bottom left corner of the rectangle at the origin of the graph. Pick any point along the left edge of the rectangle and determine its coordinates.

To determine the angle in polar coordinates, place the bottom left corner of the rectangle at the origin of the graph. Determine the angle from the y-axis to the left edge of the rectangle.

Gain

Gain is a factor with which you can scale the strength of the enclosure.

Inside Effect

An inside effect is an effect that plays only when the cursor is inside the walls of the enclosure.

Rectangle

This property allows you to specify the bounding rectangle for the effect, i.e. the rectangle upon which the Enclosure boundary lies. The top left corner of the Rectangle is a location in absolute screen coordinates, in pixels, and the Rectangle width and height are also in pixels.

Saturation

Saturation indicates the maximum force a wall can exert when resisting penetration.

Stiffness

Stiffness determines how strong the walls are. The stiffer the wall is, the faster the resisting force reaches the saturation level. A negative Stiffness value causes the user to be pulled into the Enclosure boundary. A positive Stiffness value resists the user's movement in toward the boundary.

Stiffness Mask

The Stiffness Mask determines which of the Enclosure's walls apply resistive forces. In combination with the sign of the Stiffness property (positive or negative) and the walls specified in the Clipping Mask, the Stiffness Mask is an important determinant of the specific type of sensation imparted by the Enclosure.

Stiffness
Stiffness Mask
Clipping Mask
Sensation
Positive
Inner & Outer
none
spongy donut surrounding Enclosure boundary
Negative
Inner & Outer
none
attractive groove along Enclosure boundary
Positive
Outer
Outer
repellent; prevents cursor entering Enclosure
Negative
Inner
Inner
repellent; prevents cursor entering Enclosure
Negative
Outer
Outer
prevents cursor leaving Enclosure
Positive
Inner
Inner
prevents cursor leaving Enclosure
Negative
Outer
none
magnetic; pulls cursor into Enclosure
Positive
Inner
none
magnetic; pulls cursor into Enclosure

Thickness

The Thickness of an Enclosure wall is the distance the wall extends from the boundary into the Enclosure (inside walls) or from the boundary out of the Enclosure (outside walls). A greater wall thickness provides a greater distance over which the Enclosure boundary can resist penetration, giving the illusion of greater impermeability.


Primitives: Positional: Enclosures: Ellipse

Ellipse

An Ellipse allows you to define an elliptical or circular boundary. The boundary may behave like a hard wall and be resistive to your push, or it may be magnetic and pull your hand and device's cursor into the Ellipse. It's possible to use an Ellipse to create a circle with a grooved edge or keep a user's cursor outside of a button. Ellipses may also enclose other effects and give them an elliptical shape.

An Ellipse is defined by a curved boundary which separates the Ellipse's inside from its outside. The Ellipse has an inside wall lining the inside of the effect boundary, and an outside wall lining the outside of the boundary.

All features of Ellipses are available on the full force feedback mouse. Some tactile feedback mice can emulate an Ellipse by playing a bump every time the cursor crosses an Ellipse boundary, but the effect will not have the attractive properties and impenetrability of the same effect played on a full force feedback mouse. The Ellipse effect is not supported on joysticks, wheels, or gamepads.

In general, an Ellipse is a curved version of an Enclosure, and as such, its properties match or closely parallel the same properties of an Enclosure effect.

Center

The Center is the center point of the Ellipse.

Direction

The direction of an Ellipse is the effect's angle of rotation. You can specify the direction in either Cartesian or polar coordinates. The angle of the rotation is that swept out between the Y-axis and the Ellipse's vertical axis.

To determine the direction in Cartesian coordinates, place the center of the Ellipse at the origin of the graph. Pick any point along the Ellipse's vertical axis and determine its coordinates.

To determine the angle in polar coordinates, place the center of the Ellipse at the origin of the graph. Determine the angle from the Y-axis to the Ellipse's vertical axis.

Rectangle

This property allows you to specify the bounding rectangle for the effect, i.e. the rectangle which exactly contains the Ellipse boundary. The top left corner of the Rectangle is a location in absolute screen coordinates, in pixels, and the Rectangle width and height are also in pixels.

Thickness

The thickness of the Ellipse wall is measured at the widest part of the wall.


Primitives: Positional: Spring

Spring

A Spring is something that can be stretched or compressed. Springs come in all forms ranging from steel coils like those found in a ballpoint pen or a car's suspension to diving boards to things like rubber bands and bungee cords. Some springs like a steel coil or diving board can both be stretched and compressed while other springs like bungee cords can only be stretched. Stronger or stiffer springs require more force to stretch or compress than weaker springs. And all springs behave linearly, meaning that the further you stretch or compress the spring, the harder it becomes to stretch or compress the spring even further. With no force acting on a spring, it will want to stretch back to its equilibrium length.

The Spring effect works on the full force feedback joystick, steering wheel, gamepad and mouse. It does not work on the tactile feedback mouse. The various properties of the effect allow you adjust things like how strong the Spring is, how stiff it is, where the equilibrium point is, and whether it pushes or pulls you or both.

One use of a Spring effect is to help guide the user's hand. A mouse can be drawn to a particular location on the computer screen, and a game controller can be drawn a little or a lot to a particular position. By moving the center or equilibrium point of the Spring around, you can cause the device to move around by itself, or at least physically guide the user's movements. Using this method, you can implement a pretty cool autopilot that moves, flies, or drives by itself. You can also give the user hints by nudging the device in the proper direction. By adjusting the parameters slightly, you can use a Spring to simulate the feel of being pulled into and getting stuck in a black hole or some kind of gravity field. On a mouse, Enclosure or Ellipse effects can also help guide the user but are usually confined to acting on a certain area of the screen rather than acting on the entire screen like a Spring effect.

On joysticks, steering wheels, and gamepads, you can use a Spring effect to simulate a centering effect. Most Immersion TouchSense sticks, wheels, and gamepads replace the physical centering springs with a control panel slider or other type of control that allows the user to decrease the simulated centering spring force or turn it off altogether. A stronger centering spring will tend to reduce the effect of other forces in the game because the spring's force will oppose or even cancel out a force in the opposite direction. Therefore, many users will turn the default centering spring off in the control panel in order to increase the fidelity of forces. If your game requires spring centering to either aid the user or to enhance gameplay, be sure to create a Spring effect. Do not rely on the control panel's automatic Spring centering since not everyone's device will have this feature active.

Center

Center is the equilibrium or center point of the Spring effect and corresponds to a physical location on the screen for a mouse or a physical location in the device workspace for a game controller. The peripheral will always be pulled towards or pushed away from this physical location. Also see Deadband, which affects the behavior of Center.

On a full force feedback mouse, Center is the distance of the Spring center from the top left corner of the screen in screen pixels. If the Spring acts in both the X and Y directions, there should be two Spring effects, one for each axis, with one effect's Center corresponding to the X axis and the other's Center corresponding to the Y axis.

For game controllers, Center is the distance of the Spring center from the center of the controller workspace in the -10000 to +10000 range. A Spring with Center set to 0 will cause the peripheral to always be pulled to the exact middle of the workspace. If the Spring is along the Y axis, setting Center to -10000 will pull the peripheral all the way forward, and setting Center to +10000 will pull the peripheral all the way back. If the Spring is along the X axis, setting Center to -10000 will pull the peripheral all the way left, and setting Center to +10000 will pull the peripheral all the way right.

Coefficient

For Springs, Coefficient and Stiffness are used interchangeably. As Stiffness implies, the Coefficient determines how strong or stiff the Spring effect is. However, Coefficient also works in conjunction with Saturation to determine the overall level of force of the Spring, so also see the Saturation section. Be careful - coefficient is also the name of a parameter for some other effects like Damper but has different meanings for different effects.

Using the Positive Coefficient and Negative Coefficient parameters, you can create asymmetric Springs which feel different on one side than the other. Here, positive and negative really mean the positive direction (the specified direction of the Spring) and the negative direction (the opposite direction) e.g., right versus left, up versus down; it has nothing to do with whether the parameter has a positive or negative value. For example, if you were to hold the ends of a bungee cord in each hand and keep it just barely taut, it would behave like a Spring with a Positive Coefficient but no Negative Coefficient. If you try moving your right hand towards the right, you will feel the strong Spring force of the bungee cord stretching in the positive direction. However, if you move your right hand towards the left, you won't feel any force because the bungee cord only resists stretching and just becomes slack when compressed. Contrast this with a steel coil held between your hands where you would feel a restoring force whether you try to move your right hand towards or away from your left hand (stretched or compressed the spring).

The range for Coefficient is -10000 to +10000. A Coefficient of +10000 will make it very hard to move the peripheral away from the Center. A Coefficient or Stiffness of 0 will have no stiffness and be no different from having no Spring effect at all. Using a negative value for Coefficient instead of a positive value will cause the peripheral to be pushed away from the Center instead of being pulled towards it.

Deadband

Deadband is also a parameter for other condition-based effects like a Damper and Inertia. Deadband sets the distance from the Center of the Spring over which the effect is not active (no forces are felt). In the black hole example mentioned above, having a Deadband of 0 means the device will be drawn exactly to the center. As soon as the device begins to move away at all from the Center, the Spring force will start ramping up. However, a non-zero Deadband means the Spring force will not start ramping up until the device has moved a distance of Deadband/2 (Deadband spans both sides). Using a small Deadband can help prevent unstable oscillations in a very stiff Spring. A real world example of Deadband is a bungee cord. If you have a 1 foot section of bungee cord and hold the two endpoints together, you won't start feeling the Spring force of the bungee cord ramping up until one endpoint is moved more than 1 foot away from the other endpoint. Until then, the bungee cord is slack.

For a full force feedback mouse, Deadband is expressed in screen pixels. For game controllers, Deadband is in the 0 to +10000 range with +10000 meaning the Deadband extends all the way to the edge of the workspace.

Direction

Direction specifies whether the Spring acts left and right along the X axis, up and down along the Y axis, or at an angle. The Spring can also act both left and right as well as up and down. A Spring at an angle is like a left and right Spring that has been rotated by some angle. All four cases are shown below for a mouse. See the Constant Force description for details on how to specify Direction in either Cartesian or polar coordinates. The Direction also determines which is the positive and which the negative side of the Spring, when setting the values of other Spring properties.

Duration

While you can specify a Duration for a Spring, by default its duration is infinite. It is unusual to specify a non-infinite duration for a Spring.

Gain

Gain is a factor with which you can scale the entire Spring effect. It ranges from 0 to 10000 where 0 makes the Spring effect unnoticeable (equivalent to multiplying all the forces by zero) and 10000 does not change the Spring effect at all (equivalent to multiplying all the forces by one).

Saturation

Saturation is also a parameter for some other effects like a Damper and Enclosure. Saturation sets the maximum force output possible for the effect and has a range of 0 to +10000. Setting Saturation to +10000 means don't put any limit on the force output for this Spring; let the Spring effect exert the force determined by the Coefficient and the displacement from Center (minus any Deadband) all the way up to the maximum force possible out of the device. Setting the Saturation to 0 means limit the total force output for this Spring to 0, which means you will never feel anything from the Spring no matter what the Coefficient and displacement from Center are. Setting Saturation to +5000 means limit the force output for this Spring to half the maximum force possible by the device. Saturation is useful for creating a maximum stiffness Spring (Coefficient of +10000) but not letting the force continue to grow linearly as you displace the peripheral farther and farther from the Center. Simply reducing the Coefficient does not have the same effect because the restoring force to the Center becomes weaker everywhere, not just far away from the Center. See the figure at the end of the Spring section for a graphical representation of Saturation.

Like Coefficient, there is a Positive Saturation and a Negative Saturation to allow you to have asymmetric limits for stretching and compressing the Spring. Positive Saturation sets the limit in the positive direction and Negative Saturation sets the limit in the negative direction.

Stiffness

Stiffness is equivalent to Coefficient. However, only one value of Stiffness can be specified for a Spring effect, for all directions of motion. It is therefore impossible to create an asymmetric Spring by specifying the Stiffness property.


Primitives: Positional: Grid

Grid

The Grid effect allows the user's cursor to snap to a node or a line in a grid. It can also repel the user from a node or line.

One possible use of the Grid effect is to have the user's cursor snap to the nodes of a grid as the user resizes a window on the desktop or an object in an application, adding new meaning to the "snap to grid" concept.

The grid effect works on all full force feedback joysticks, steering wheels, gamepads and mice. It does not work on the tactile feedback mouse.

Center

The center, also the same as offset, specifies the location where the first node of the grid is felt on the screen. It is the distance from the left and top edges of the screen to the location where the first node is felt.

Coefficient

Coefficient and strength are interchangeable for a grid. You can adjust the strength to which the user is attracted, or snapped, to a gridline or repelled by it. If the value is positive, then the user is snapped to the lines. If the value is negative, then the user is repelled by the grid lines. You can specify different strength values for horizontal lines and vertical lines. If both the horizontal lines and vertical lines have positive values, then the cursor and users hand will be snapped to the nodes where the lines intersect.

Deadband

Deadband is the same as Spacing, except unlike Spacing, different values of Deadband cannot be specified in the horizontal and vertical directions.

Duration

While you can specify a Duration for a grid, by default its duration is infinite. It is unusual to specify a non-infinite duration for a grid.

Gain

Gain is a factor with which you can scale the entire grid effect. It ranges from 0 to 10000 where 0 makes the grid effect unnoticeable and 10000 does not change the grid effect at all.

Offset

Same as Center.

Saturation

Saturation sets the maximum force output possible for the effect. Setting Saturation to its maximum level means don't put any limit on the force output for the grid. Setting Saturation to the lowest level means you won't feel the grid effect at all.

Spacing

Spacing indicates the amount of space between the horizontal and vertical lines of a Grid. You can specify different Spacing values for the horizontal and vertical directions.

Strength

Same as Coefficient.


Primitives: Directional: Constant

Constant Force

A Constant force is a steady force pushing you in a single direction.

One may use a Constant force to simulate a wind, from the Northeast, pushing a sailboat Southwest. Another use would be to simulate a hockey puck being hit from the left. In this example one would feel the Constant force pushing the puck to the right.

Steering wheels, joysticks and a full force feedback mouse can simulate Constant forces. A tactile feedback mouse cannot.

Direction

The direction tells you where the force comes from; the location of the origin of the force. For instance, if you have a Northeast wind it comes from the northeast and pushes the sailboat southwest. The force is located northeast. If you hit a hockey puck from the left, the force comes from the left and moves the ball to the right. The direction, or source of force is located on the left. The direction can be specified in Cartesian coordinates or Polar Coordinates.

Cartesian coordinates are laid out in the following manner: The X-axis runs in the positive direction towards the right, and in a negative direction to the left. The Y-axis runs in the positive direction downwards and in a negative direction upwards. The Cartesian axes and their positive and negative directions correspond to screen coordinates. The increments are in pixels.

To determine what the direction of a force is in Cartesian coordinates you may do the following. Assume the device is located at the origin , coordinates (0,0), where the two axes meet.. Determine where the force will be coming from. Draw a line from that location to the origin. Choose any point along that line and determine its x-y coordinates. These will be the coordinates used to determine the direction. Note that any point on the line will do, as distance from the origin does not matter in determining direction.

To find the coordinates of the northeast wind draw a line as shown below. Pick any point on that line and determine the coordinates. In this case we pick the point at (1, -1).

Polar Coordinates are specified by angles in hundredth of degrees going clockwise away from the negative Y-axis (which represents zero degrees).

To determine the polar coordinates of a force's direction do the following. Assume the device is located at the origin where the two axes meet. Determine where the force originates. Draw a line from that location to the origin. Determine the angle between the negative y axis and the line drawn.

The Northeast wind would have a direction of 45 degrees in polar coordinates.

Duration

Duration specifies the amount of time the effect lasts in milliseconds. It can range from any finite value greater than 0 to infinity.

Envelope

An Envelope is used to describe how a force starts, how it is sustained and how it ends. It shapes the force over time. If we wanted to describe the envelope simulating hitting a hockey puck we would say the force initially is very strong in the beginning for a very short time when it is struck. Then it has a Constant force at a lesser magnitude for another period of time while it coasts along the ice. Finally it slowly loses strength as it comes to a halt. The attack is how the force starts and the fade is how the force ends. You can set the attack level, attack duration, fade level and fade duration. The force will start out at the attack level and then either reduce or increase to the magnitude of the force in the amount of time specified by the attack duration. After sustaining the force at the magnitude and for the duration specified (less the amount of time for attack and fade durations), the force will reduce or increase to the fade level in the amount of time specified by the fade duration. In the case of the hockey puck we could set the attack level to 10000 for 10 milliseconds, set the magnitude of the sustaining force to 7000 for 30 milliseconds and then have it fade out to a magnitude of 0 over 50 milliseconds. If an effect has an infinite duration, no fade level or fade duration should be set.

Gain

Gain is a factor with which you can scale the entire envelope of the effect. It ranges from 0 to 10000, where a gain of 10000 is equivalent to multiplying the forces throughout the effect by a factor of 1, and does not change the size of the envelope at all. A Gain of 5000 would cut all the forces throughout the effect in half. Gain and magnitude are different in that the gain changes the entire size of the envelope whereas the magnitude only changes the strength of the sustained force.

Magnitude

Magnitude specifies the strength of the force. The values can range from -10000 to 10000. A negative value causes the force to come from the direction opposite to the direction specified. A -10000 magnitude for a Constant force with a direction coming from the north direction would behave as if it were coming from the south.


Primitives: Directional: Ramp

Ramp Force

A Ramp force is a force that steadily increases or decreases in magnitude over time. The Ramp force may act in a single direction or may also change directions.

The sum of the force on a heavy wagon being pushed uphill by an increasingly tired person is an example of a Ramp force. The force of gravity pulls downhill on the wagon with a Constant force throughout. The pusher starts out strong, pushing the load quickly uphill. As he becomes increasingly tired, the upward force he exerts on the wagon decreases. When gravity begins to win, the wagon no longer moves uphill, and slowly begins to move downward in response to gravity. The Ramp force in this situation starts out as a positive force, pushing the wagon uphill, and decreases steadily until it is a negative force, pulling the wagon downhill.

Steering wheels, joysticks and a full force feedback mouse can simulate Ramp forces. A tactile feedback mouse cannot.

Direction

The direction tells you where the force comes from; the location of the origin of the force. Direction for a Ramp force can be specified in Cartesian or polar coordinates, in the same way as for a Constant force.

The direction of a Ramp force specifies the direction whenever the magnitude of the Ramp force is greater than zero. When the force magnitude is less than zero, the direction of the force will be the opposite of that specified for the force as a whole.

Duration

Duration specifies the amount of time the effect lasts in milliseconds. It can range from any finite value greater than 0 to infinity, though an infinite-duration Ramp force will never reach its final magnitude.

Gain

Gain is a factor with which you can scale all the magnitudes of the Ramp effect. It ranges from 0 to 10000, where a gain of 10000 is equivalent to multiplying the forces throughout the effect by a factor of 1.

Magnitude

Magnitude specifies the strength of the force. Two magnitudes are specified for Ramp forces: starting and ending magnitudes. The force begins at the starting magnitude, then changes linearly over time to reach the ending magnitude. If the two magnitudes fall either both positive or both negative then the force will either increase or decrease in a single direction. If one is negative and the other positive, then the force will decrease over time, reverse directions at some point and then increase in strength.


Primitives: Resistive: Damper

Damper

A damper is something that resists motion. Dampers come in all forms ranging from mechanisms like shock absorbers to simple liquids like water or molasses. All dampers behave linearly, meaning that the faster you try to move a damper, the more resistance you feel. For instance, imagine holding a ping-pong paddle underwater and trying to move the broad face back and forth. If you move it very slowly, you feel almost no resistance to your motion, but the faster you try to move it back and forth, the harder it becomes.

The damper effect works on all full force feedback joysticks, steering wheels, gamepads and mice. It does not work on tactile feedback mice. The various properties of Damper allow you adjust things like how strong the effect is and in which direction it resists motion.

One use of a damper effect is to simulate being immersed in a liquid. A simple damper effect of mild strength will make the peripheral feel like it is moving while submerged in a light viscosity liquid like water. A maximum strength damper will feel more like moving through thick mud or molasses.

Another use of a damper is to simulate being on ice. Instead of offering resistance to motion, it is possible to actually add assistive forces to motion. The faster you try to move, the more it helps push you along in the direction you're already going, to the point of shoving you. The end result is like trying to move on ice. Moving very slowly is fine, but making a sudden movement can cause you to feel like you suddenly were shoved and make you lose control.

Center

Center specifies how fast you need to be moving in order not to feel any resistance. Going back to the ping-pong paddle example, if Center is set to zero, this means you will not feel any resistance if you have zero motion. In other words, you only feel the viscous resistance if you start to move the paddle. If the Center is set to 1000, you will feel resistance unless you are moving at a rate of 1000 units per second. This is equivalent to a current running through the water in which you are holding the paddle. Now, holding the paddle still actually results in the resistance of the water current pushing against the motionless paddle. You actually have to move the paddle at the same rate as the water (1000 units per second in this case) to "go with the flow" and not feel any resistance. Also see Deadband, which affects the behavior of Center.

Coefficient

The Coefficient determines how strong or stiff the damper effect is. In other words, the greater the Coefficient, the more quickly the Damper forces increase as cursor velocity increases. Coefficient specifies how big a paddle you are holding underwater. A huge paddle will offer much more resistance to motion than a small paddle at the same paddle velocity, because of the much larger surface area plowing through the water. A Coefficient of zero causes no ramp-up in force for an increase in velocity, so no Damper will be felt. However, Coefficient also works in conjunction with Saturation to determine the overall level of resistance in the Damper, so also see the Saturation section.

Using the Positive Coefficient and Negative Coefficient parameters, you can create asymmetric dampers that feel different when moving in different directions. Here, positive and negative really mean the positive direction and the negative direction (e.g., right versus left, down versus up); it has nothing to do with whether the parameter has a positive or negative value. For example, a bicycle pump offers resistance when you push down, but none when you pull up. It behaves like a damper with a large Positive Coefficient and a zero-valued Negative Coefficient.

The range for Coefficient is -10000 to +10000. Using a negative value for Coefficient instead of a positive value will cause the peripheral to be pushed in the direction of motion instead of resisting it and works well for simulating icy or slippery conditions.

Deadband

Deadband sets the range of cursor velocities over which the Damper effect is not active (no forces are felt). In the underwater paddle example, having a Deadband of 0 means you will start feeling resistance as soon as you start moving at the slightest speed. However, a non-zero Deadband means the resistance will not be felt until you start moving faster than the (Deadband/2) speed away from Center.

Direction

Direction specifies whether the damper acts left and right along the X-axis, up and down along the Y-axis, or at an angle. The damper can also act both left and right as well as up and down. A damper at an angle is like a left and right damper that has been rotated by some angle. See the Spring and Constant Force descriptions for more details on Direction.

Duration

While you can specify a Duration for a damper, by default its duration is infinite. It is unusual to specify a non-infinite duration for a damper.

Gain

Gain is a factor with which you can scale the entire damper effect. It ranges from 0 to 10000 where 0 makes the damper effect unnoticeable and 10000 does not change the damper effect at all.

Minimum

Minimum specifies the minimum velocity level at which the damper forces become active. This property is essentially the same as Deadband, and is used for a zero-centered Damper.

Saturation

Saturation sets the maximum force output possible for the effect and has a range of 0 to +10000. Setting Saturation to +10000 means there should be no limit on the force output for this Damper; the Damper effect should exert the force determined by how big a paddle you're holding and how fast you're moving the paddle all the way up to the maximum force possible out of the device. Setting the Saturation to 0 means the total force output for this damper should be limited to 0, which means you will never feel anything from the damper no matter how quickly you move or how large the Coefficient. Setting Saturation to +5000 means the force output for this damper should be limited to half the maximum force possible from the device. See the figure at the end of the Damper section for a graphical representation of Saturation.

Like Coefficient, there is a Positive Saturation and a Negative Saturation to allow for the existence of asymmetric limits. Positive Saturation sets the limit in the positive direction (the Direction specified for the Damper) and Negative Saturation sets the limit in the negative direction (the opposite direction).

Viscosity

Viscosity, a property that only applies to the Damper effect, is equivalent to Coefficient. However, only one value of Viscosity can be specified for a Damper effect, for all directions of motion. It is therefore impossible to create an asymmetric Damper by specifying the Viscosity property.


Primitives: Resistive: Friction

Friction

A Friction effect is used to simulate the resistance which is caused by one surface moving over another. Friction can also be used to give a feeling of slickness or slipperiness as the user's cursor moves over an area. The more rapid the cursor movement is, the greater the resistance (or assistance) will be.

One use of a friction effect is to simulate moving a box across a rough surface. Another use of a friction is to simulate slipping on an oil slick.

The Friction effect works on all full force feedback joysticks, steering wheels, gamepads and mice. It does not work on the tactile feedback mouse.

The properties of a Friction effect are the same as those of Damper and Inertia. See the Damper section for details.


Primitives: Resistive: Inertia

Inertia

An Inertia effect resists changes in the rate of motion. A change in motion is an acceleration. Inertia is acceleration-based, so the more you accelerate, the more resistance you will feel.

The Inertia effect works on all full force feedback joysticks, steering wheels, gamepads and mice. It does not work on the tactile feedback mouse.

The properties of an Inertia effect are the same as those of Damper and Friction. See the Damper section for details.