IP Library Granted Patent US 12,504,821
Granted Patent B2
US 12,504,821 · App. 16/888,301 · Granted Dec 23, 2025

Haptics application programming interface

Inventors: Douglas A. Scott (Mountain View, CA); Michael Y. Diu (Campbell, CA); Camille Moussette (Los Gatos, CA); Jean-Pierre Mouilleseaux (San Francisco, CA); Linus Persson (Cupertino, CA); Madeleine Cordier (San Francisco, CA); Jules Fennis (Mountain View, CA); Mel He (Sunnyvale, CA); Brian Gleeson (Mountain View, CA)
Assignee: Apple Inc.
G06F3/016G06F3/165G06F3/167
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,504,821
App. No.
16/888,301
Granted
Dec 23, 2025
Kind
B2
Abstract

Systems and methods are disclosed defining haptic patterns that include both haptic events and audio events, and optionally include video or animation. The haptic patterns can be called from an application or included as an attachment to a message and played on an electronic device that receives the message. A haptics application programming interface has a haptic experience mapping functionality that generates a same, or similar, haptic experience on different manufacturers or models of electronic devices having different haptic hardware. Haptic patterns can include synchronized haptic and audio events. Haptic event attributes include start time, sharpness, and intensity. Sharpness and/or intensity can be controlled via a parameter envelope for a single event, or for multiple events in a haptic pattern. Sharpness indicates a quality of the tactile sensation of a haptic event, from smooth or rounded, to sharp or precise.

Claims (35)

1 . A computer-implemented method, comprising:

receiving, on a first device, a command to play a haptic pattern comprising a plurality of time-ordered events, wherein the plurality of time-ordered events is played on the first device and a second device, wherein the first device is communicatively coupled to the second device;

scheduling the plurality of time-ordered events according to a start time of each of the plurality of time-ordered events, wherein the start time of each of the plurality of time-ordered events is relative to a start time of the haptic pattern; and

causing playback of each of the plurality of time-ordered events in the haptic pattern in accordance with the scheduling on the first and second devices, wherein the playback includes mapping, by the first device, an event of the plurality of time-ordered events using a sharpness parameter and an intensity parameter for the second device to low-level haptic commands using an application programming interface (API) native to a hardware type of the second device, wherein the mapping is dependent on the hardware type of the second device, the sharpness parameter determines a tactile quality of a haptic output so that a lowest sharpness parameter value corresponds to a continuously differentiable haptic waveform, having no discontinuities, and a highest sharpness parameter value corresponds to a non-continuously differentiable waveform, including at least one discontinuity, and the intensity parameter determines a tactile magnitude of the haptic output.

2 . The method of claim 1 , wherein waveform values for the sharpness parameter are configured by mixing a sine wave with a complex waveform.

3 . The method of claim 1 , wherein at least one of the plurality of time-ordered events is an audio event having an audio waveform and an audio volume.

4 . The method of claim 1 , wherein at least two events of the plurality of the time-ordered events are haptic events that at least partially overlap in time, further comprising mixing, in a position domain, an overlapping portion of each of the at least two haptic events, before outputting the haptic output to haptic hardware.

5 . The method of claim 1 , wherein at least two events of the plurality of time-ordered events have a same start time, further comprising causing playback of the at least two events at a same time.

6 . The method of claim 5 , further comprising controlling an intensity of the at least two events of the plurality of time-ordered events in accordance with an intensity envelope.

7 . The method of claim 5 , wherein one of the at least two events of the plurality of time-ordered events is an audio event and one of the at least two events of the plurality of time-ordered events is a haptic event, and the at least two events are played at a same time.

8 . The method of claim 7 , wherein the haptic event is one of a haptic transient event having a fixed duration or a haptic continuous event having a specified duration.

9 . The method of claim 1 further comprising controlling an intensity of a haptic event in the plurality of time-ordered events in accordance with an intensity envelope associated with the haptic event.

10 . The method of claim 9 , further comprising controlling a volume of an audio event and the intensity of the haptic event in accordance with the intensity envelope.

11 . The method of claim 1 , further comprising:

receiving, from a host device application, a query message to the API native to the hardware type of the second device; and

transmitting, to the host device application from the API, attributes to address haptic actuation commands based on at least one of haptic hardware or haptic firmware in the second device in response to receiving the query message;

wherein, the plurality of time-ordered events is played on the first device and the second device, each based on at least one of the respective haptic hardware or the haptic firmware in the first device and the second device.

12 . A non-transitory computer-readable storage medium having executable instructions stored thereon, that when executed by a processing system having at least one hardware processor, cause the processing system to perform operations comprising:

receiving, on a first device, a command to play a haptic pattern comprising a plurality of time-ordered events, wherein the plurality of time-ordered events is played on the first device and a second device;

scheduling the plurality of time-ordered events according to a start time of each of the plurality of time-ordered events, each start time being relative to a start time of the haptic pattern, wherein the start time of each of the plurality of time-ordered events is relative to a start time of the haptic pattern; and

causing playback of each of the plurality of time-ordered events in the haptic pattern in accordance with the scheduling on the first and second devices, wherein the playback includes mapping, by the first device, an event of the plurality of time-ordered events using a sharpness parameter and an intensity parameter for the second device to low-level haptic commands using an application programming interface native to a hardware type of the second device, wherein the mapping is dependent on the hardware type of the second device, the sharpness parameter determines a tactile quality of a haptic output so that a lowest sharpness parameter value corresponds to a continuously differentiable haptic waveform, having no discontinuities, and a highest sharpness parameter value corresponds to a non-continuously differentiable waveform, including at least one discontinuity, and the intensity parameter determines a tactile magnitude of the haptic output.

13 . The medium of claim 12 , wherein waveform values for the sharpness parameter are configured by mixing a sine wave with a complex waveform.

14 . The medium of claim 12 , wherein at least one of the plurality of time-ordered events is an audio event having an audio waveform and an audio volume, the operations further comprising playing the audio event synchronously with a haptic event in the plurality of time-ordered events.

15 . The medium of claim 12 , wherein at least two events of the plurality of the time-ordered events are haptic events that at least partially overlap in time, the operations further comprising mixing, in a position domain, an overlapping portion of each of the at least two haptic events, before being output to haptic hardware.

16 . The medium of claim 15 , the operations further comprising controlling an intensity of both of the at least two events of the plurality of time-ordered events in accordance with an intensity envelope.

17 . The medium of claim 12 , the operations further comprising controlling an intensity of a haptic event in the plurality of time-ordered events in accordance with an intensity envelope associated with the haptic event.

18 . A first electronic device comprising a memory programmed with executable instructions that, when executed by a processing system having at least one hardware processor, cause the processing system to perform operations comprising:

receiving, on the first electronic device, a command to play a haptic pattern comprising a plurality of time-ordered events, wherein the plurality of time-ordered events is played on the first electronic device and a second electronic device;

scheduling the plurality of time-ordered events according to a start time of each of the plurality of time-ordered events, each start time being relative to a start time of the haptic pattern, wherein the start time of each of the plurality of time-ordered events is relative to a start time of the haptic pattern; and

causing playback of each of the plurality of time-ordered events in the haptic pattern in accordance with the scheduling on the first and second electronic devices, wherein the playback includes mapping, by the first electronic device, an event of the plurality of time-ordered events using a sharpness parameter and an intensity parameter for the second electronic device to low-level haptic commands using an application programming interface native to a hardware type of the second device, wherein the mapping is dependent on the hardware type of the second device, the sharpness parameter determines a tactile quality of a haptic output so that a lowest sharpness parameter value corresponds to a continuously differentiable haptic waveform, having no discontinuities, and a highest sharpness parameter value corresponds to a non-continuously differentiable waveform, including at least one discontinuity, and the intensity parameter determines a tactile magnitude of the haptic output.

19 . The first electronic device of claim 18 , wherein waveform values for the sharpness parameter are configured by mixing a sine wave with a complex waveform.

20 . The first electronic device of claim 18 , wherein at least one of the plurality of time-ordered events is an audio event having an audio waveform and an audio volume, the operations further comprising playing the audio event synchronously with a haptic event in the plurality of time-ordered events.

21 . The first electronic device of claim 18 , wherein at least two haptic events of the plurality of the time-ordered events are haptic events that at least partially overlap in time, the operations further comprising mixing, in a position domain, an overlapping portion of each of the at least two haptic events, before being output to haptic hardware.

22 . The first electronic device of claim 21 , the operations further comprising controlling an intensity of both of the at least two events of the plurality of time-ordered events in accordance with an intensity envelope.

23 . The first electronic device of claim 18 , the operations further comprising controlling an intensity of a haptic event in the plurality of time-ordered events in accordance with an intensity envelope associated with the haptic event.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2020
From: SCOTT, DOUGLAS A.; DIU, MICHAEL Y.; MOUSSETTE, CAMILLE; MOUILLESEAUX, JEAN-PIERRE; PERSSON, LINUS; CORDIER, MADELEINE; FENNIS, JULES; HE, MEL; GLEESON, BRIAN
To: APPLE INC.
Reel/Frame 053086/0269 →
Continuity (2)
Provisional Application 62855876 · May 31, 2019
Related Publication 20200379570A1 · Dec 3, 2020
References Cited (86)
US 6285351B1 · Chang · 2001 [cited by examiner]
US 8605036B1 · Kelly · 2013 [cited by examiner]
US 9542801B1 · Vann · 2017 [cited by examiner]
US 9542820B2 · Moussette · 2017 [cited by examiner]
US 9588588B2 · Israr · 2017 [cited by examiner]
US 9690382B1 · Moussette · 2017 [cited by examiner]
US 10175763B2 · Shah · 2019 [cited by examiner]
US 10402068B1 · Dodge · 2019 [cited by examiner]
US 10417356B1 · Arterburn · 2019 [cited by examiner]
US 10490035B2 · Morrell · 2019 [cited by examiner]
US 10586431B2 · Rank · 2020 [cited by examiner]
US 10745032B2 · Scheggi · 2020 [cited by examiner]
US 10754428B1 · Parise · 2020 [cited by examiner]
US 10762752B1 · Persson · 2020 [cited by examiner]
US 10915174B1 · Wang · 2021 [cited by examiner]
US 11096663B2 · Schneider · 2021 [cited by examiner]
US 11435866B2 · Gray · 2022 [cited by examiner]
US 11474683B2 · Han · 2022 [cited by examiner]
US 20070005835A1 · Grant · 2007 [cited by examiner]
US 20090167509A1 · Fadell · 2009 [cited by examiner]
US 20090247112A1 · Lundy · 2009 [cited by examiner]
US 20090322695A1 · Cho · 2009 [cited by examiner]
US 20100004033A1 · Choe · 2010 [cited by examiner]
US 20110210834A1 · Pasquero · 2011 [cited by examiner]
US 20110291820A1 · Krahenbuhl · 2011 [cited by examiner]
US 20120062491A1 · Coni · 2012 [cited by examiner]
US 20120206246A1 · Cruz-Hernandez · 2012 [cited by examiner]
US 20120235257A1 · Yoshida · 2012 [cited by examiner]
US 20130198625A1 · Anderson · 2013 [cited by examiner]
US 20130307786A1 · Heubel · 2013 [cited by examiner]
US 20140002346A1 · Weddle · 2014 [cited by examiner]
US 20140168110A1 · Araki · 2014 [cited by examiner]
US 20140232657A1 · Aviles · 2014 [cited by examiner]
US 20140300454A1 · Lacroix · 2014 [cited by examiner]
US 20150293592A1 · Cheong · 2015 [cited by examiner]
US 20160042620A1 · Dandie · 2016 [cited by examiner]
US 20160071384A1 · Hill · 2016 [cited by examiner]
US 20160258758A1 · Houston · 2016 [cited by examiner]
US 20160306428A1 · Fleizach · 2016 [cited by examiner]
US 20160349722A1 · On · 2016 [cited by examiner]
US 20160370863A1 · Jones · 2016 [cited by examiner]
US 20170123520A1 · Kim · 2017 [cited by examiner]
US 20180004359A1 · Gray · 2018 [cited by examiner]
US 20180005616A1 · Gullbrand · 2018 [cited by examiner]
US 20180039917A1 · Buttolo · 2018 [cited by examiner]
US 20180050267A1 · Jones · 2018 [cited by examiner]
US 20180050268A1 · Jones · 2018 [cited by examiner]
US 20180050269A1 · Jones · 2018 [cited by examiner]
US 20180061192A1 · Chen · 2018 [cited by examiner]
US 20180095535A1 · Laaksonen · 2018 [cited by examiner]
US 20180143690A1 · Hwang · 2018 [cited by examiner]
US 20180178119A1 · Mizuta · 2018 [cited by examiner]
US 20180243163A1 · Choudhury · 2018 [cited by examiner]
US 20180253322A1 · Yang · 2018 [cited by examiner]
US 20180260567A1 · Ullom · 2018 [cited by examiner]
US 20180329495A1 · Juchem · 2018 [cited by examiner]
US 20190011280A1 · Takenaka · 2019 [cited by examiner]
US 20190015744A1 · Ueda · 2019 [cited by examiner]
US 20190213851A1 · Rihn · 2019 [cited by examiner]
US 20190265946A1 · Bae · 2019 [cited by examiner]
US 20190332352A1 · Anantharaman · 2019 [cited by examiner]
US 20190361655A1 · Das · 2019 [cited by examiner]
US 20200026358A1 · Yokosuka · 2020 [cited by examiner]
US 20200030551A1 · Bøggild-Damkvist · 2020 [cited by examiner]
US 20200081751A1 · Verweij · 2020 [cited by examiner]
US 20200097083A1 · Mao · 2020 [cited by examiner]
US 20200122028A1 · Konishi · 2020 [cited by examiner]
US 20200150857A1 · Birnbaum · 2020 [cited by examiner]
US 20200209967A1 · Sherry · 2020 [cited by examiner]
US 20200344231A1 · Lam · 2020 [cited by examiner]
US 20200356173A1 · Bajaj · 2020 [cited by examiner]
US 20200364026A1 · Lee · 2020 [cited by examiner]
US 20200379569A1 · Scott · 2020 [cited by examiner]
US 20200379570A1 · Scott · 2020 [cited by examiner]
US 20210031235A1 · Neuwirth · 2021 [cited by examiner]
US 20210119555A1 · Toshiyoshi · 2021 [cited by examiner]
US 20210173485A1 · Ryu · 2021 [cited by examiner]
US 20230400928A1 · Scott · 2023 [cited by examiner]
US 20240214726A1 · Jarvis · 2024 [cited by examiner]
Lory Gil, How to Add Reminders and View Your Daily Schedule on Apple Watch. (Year: 2015). [cited by examiner]
Ex Parte Quayle Action received for U.S. Appl. No. 16/888,295, mailed on Jan. 19, 2023, 6 pages. [cited by applicant]
Final Office Action received for U.S. Appl. No. 16/888,295, mailed on Jul. 18, 2022, 8 pages. [cited by applicant]
Non-Final Office Action received for U.S. Appl. No. 16/888,295, mailed on Nov. 12, 2021, 8 pages. [cited by applicant]
Non-Final Office Action received for U.S. Appl. No. 18/452,688, mailed on Mar. 15, 2024, 31 pages. [cited by applicant]
Notice of Allowance received for U.S. Appl. No. 16/888,295, mailed on Mar. 29, 2023, 7 pages. [cited by applicant]
Final Office Action dated Aug. 27, 2024 for U.S. Appl. No. 18/452,688, 47 pages. [cited by applicant]