Design

System Haptics for Quest

Updated: May 5, 2026
System haptics are standardized tactile feedback patterns built directly into Meta’s platforms, including Quest. They give developers a unified set of haptic responses that can be easily integrated into apps and experiences. Rather than requiring each app to create its own haptic effects, system haptics ensure that feedback feels consistent, reliable, and familiar across the entire ecosystem.

What are system haptics?

Standardized haptic library

A curated set of carefully designed haptic effects for common interactions, such as button presses, notifications, confirmations, and selections, that developers can readily integrate into their apps.

Easy integration

Developers can implement system haptics through simple APIs, reducing development time and complexity. The API is available across Meta’s major developer surfaces, including Unity Core SDK, Hybrid Spatial Runtime (HSR), and Spatial SDK, enabling consistent haptic interactions across apps and platforms.

Benefits

Consistency
Your app's haptic feedback matches the rest of the platform, creating a seamless user experience.
Quality
System haptics are optimized for immersion and reliability, helping your app feel polished and professional.
User trust
Familiar haptic cues make interactions more intuitive and memorable for users.

Design guidelines

To ensure consistency across Meta products, designers and engineers should follow the haptic design guidelines outlined below.
The Essential Pack is a curated collection of nine haptic effects organized into three categories:
  • UI interactions: Feedback for interface elements like buttons, toggles, and sliders.
  • Object interactions: Feedback for manipulating virtual objects in space.
  • System notifications: Feedback for alerts, confirmations, and system-level events.
These effects cover the most common interactions and provide a solid foundation for incorporating haptics into any project.

UI interactions

Hover waveform
Hover
Use when the user hovers over an interactive element. Provides subtle tactile confirmation that the element is ready to be engaged.
Design approach
Mimics the sensation of crossing a relief or contour. A short, sharp transient that marks the boundary of an interactive surface.
Press waveform
Press
Use when the user presses a button or similar control. Delivers clear tactile feedback that the action has been registered.
Design approach
Emulates the bounce-back of a mechanical spring felt when pressing a non-latching button.
Long press waveform
Long press
Use when the user presses and holds a button or interactive control. Signals that a secondary action or extended interaction has been triggered.
Design approach
Guides the user through a sustained press, signaling the moment the hold threshold has been reached and the action accepted.
Select waveform
Select
Use to confirm a selection action, such as toggling a switch or activating a checkbox. Reinforces that the user's choice has been applied.
Design approach
Mimics the stroke of a checkmark, two distinct transient signals without extension, differentiating it from the single-event press interaction.
Deselect waveform
Deselect
Use to confirm a deselection action, such as toggling a switch off or clearing a checkbox. Reinforces that the user's choice has been removed.
Design approach
Mirrors the select pattern in reverse, the same two-transient structure played in opposite order to convey removal rather than activation.

Object interactions

Object hover waveform
Object hover
Use when the user points at a 3D object before grabbing it. Provides a brief tactile cue that the object is within reach and ready to be grasped.
Design approach
A short, sharp transient signal, rather than a continuous one, delivers an immediate tactile marker without interfering with the upcoming grab interaction.
Grab waveform
Grab
Use when the user grabs or picks up an object. Confirms that the object has been successfully grasped.
Design approach
Conveys a sense of weight and resistance at the moment of contact, simulating the physical sensation of taking hold of an object and confirming the grab interaction.
Release waveform
Release
Use when the user releases a previously grabbed object. Confirms that the object has been let go.
Design approach
Mirrors the grab haptic at lower amplitude and frequency, conveying a brief loss of resistance that signals the moment of release.

System notifications

Success waveform
Success
Use to indicate a successful action, task completion, or a positive notification.
Design approach
Two distinct events over 175ms, with amplitude and frequency ramping upward, rising from low to high to convey a sense of accomplishment and positive resolution.
Warning waveform
Warning
Use to indicate a warning or non-critical issue that requires user attention.
Design approach
Inverts the success pattern, two distinct events over 150ms, with amplitude and frequency ramping downward to convey caution rather than resolution.
Error waveform
Error
Use to indicate a critical error or failure that requires immediate user attention.
Design approach
A series of four attention-grabbing events replacing the smooth ramp of success and warning with abrupt repetition to convey urgency and severity.

Implementation

Unity
To use System Haptics in your Unity project for Quest, please refer to the Developer Documentation for System Haptics, and the API Reference for the System Haptics class as part of the XR Core SDK package.

As stated by the documentation, you need to follow these steps:
  1. Add the XR Core SDK package to your Unity project
  2. Add the SystemHapticsPlayPattern() call to the desired interaction.
Developer Documentation
API Reference
Meta Core SDK

Next steps

More about haptics

  • Haptics: Introduction, usage, and terminology.
  • Haptics technology: Actuators, Quest hardware capabilities, and the Meta Haptics Studio + SDK toolchain.
  • Haptics best practices: Multimodal feedback, design elements, characteristics, do’s and don’ts, design process.

Developing experiences