RFC 9695

The 'haptics' Top-Level Media Type

๐Ÿ“… published March 2025, from ietf

Internet Engineering Task Force (IETF) โœจ RFC 9695: The 'haptics' Top-Level Media Type ๐Ÿฆ‹

Okay bestie, so this RFC is by Y. K. Muthusamy and C. Ullrich, published March 2025 ๐ŸŒธ. It's on the Standards Track ๐Ÿ’…, which means it's an actual Internet Standard, not just a vibe. It doesn't obsolete or update any other RFCs, so it's a fresh start ๐Ÿงš. Its ISSN is 2070-1721 ๐Ÿ“š.

Main quest: it registers a brand-new top-level media type called 'haptics' ๐Ÿ’–. Under it, different formats for haptics (touch and vibration feedback stuff ๐Ÿซถ) can get their own subtypes.

Abstract

Okay so the abstract is giving "we're making a whole new top-level type for touch data" ๐Ÿคญ. It also registers a bunch of subtypes that already exist out in the wild, so they're officially part of the family now ๐Ÿ‘‘.

Status of This Memo

This is an Internet Standards Track document ๐Ÿ’…. It's a product of the IETF and has the consensus of the IETF community, plus public review and IESG approval. If you want more on what Internet Standards are, check Section 2 of RFC 7841 ๐ŸŒˆ. The current status, errata, and feedback info live at https://www.rfc-editor.org/info/rfc9695 โœจ.

Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved. ๐Ÿ’œ

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stand on the publication date. Read those carefully, bestie, because they explain your rights ๐Ÿ™ˆ. Any code pulled out of this document has to include Revised BSD License text, as described in Section 4.e of the Trust Legal Provisions, and it comes with no warranty, per the Revised BSD License ๐Ÿ“œ.

Table of Contents

   1.  Introduction
   2.  Background and Justification
     2.1.  MPEG ISOBMFF
     2.2.  Haptic Sub-Modalities
     2.3.  Another Human Sense
     2.4.  Commercial Uptake
     2.5.  Haptic Data Formats in Use
     2.6.  Haptic Subtypes (Envisioned Standards)
     2.7.  'application' Top-Level Type Not Suitable
   3.  Security Considerations
   4.  IANA Considerations
     4.1.  Definition and Encoding
     4.2.  Registration Procedure
     4.3.  Subtype Registrations
       4.3.1.  IVS Haptics Type
       4.3.2.  HJIF Haptics Type
       4.3.3.  HMPG Haptics Type
   5.  Normative References
   6.  Informative References
   Authors' Addresses

1. Introduction ๐ŸŒท

Okay so "haptics" is the whole idea of making touch-y sensations happen on a device ๐Ÿซถ. It's everywhere, especially on phones, where your screen buzzes when you type on that virtual keyboard โŒจ๏ธ๐Ÿ’…. Haptic tech is kinda different from audio and video, because it needs some kind of actuator to actually make you feel something ๐Ÿ˜ญ. On phones and game controllers those are usually tiny vibrating motors ๐Ÿ“ณ, and in big car touchscreens they can be specialized piezoelectric materials โšก. Basically every modern smartphone, game controller, and VR controller has haptics now, which makes them the perfect target for upgraded media experiences ๐ŸŽ€.

Internet Media Types [RFC6838] are how we label content moving over Internet protocols ๐Ÿท๏ธ. This document defines a new top-level type, 'haptics', following [RFC9694] ๐ŸŒˆ. It means "this content describes haptic data" โœจ, and different haptic formats can be registered under it ๐Ÿฆ‹.

2. Background and Justification ๐ŸŽ€

Haptic signals add an extra layer of immersion when they're paired with audio and video ๐Ÿคฉ. Haptic tracks can live in their own files and play back in sync with audio/video files, giving you audio, visual, AND tactile stuff all at once ๐Ÿ’–. Even more recently, haptic tracks have been embedded in standard file formats like ISOBMFF (ISO Base Media File Format), so they can play over one or more actuators at the same time as audio and video [ISOBMFF-IS] ๐ŸŽฌ. Haptic signals also show up in RTP media streams, like game streaming, XR, and wearables ๐Ÿฅฝ.

2.1. MPEG ISOBMFF ๐ŸŽž๏ธ

Historically, there's been no registration for haptic formats ๐Ÿ˜ณ. But haptics got proposed as a first-order media type (same level as audio and video) in ISOBMFF back in April 2020 ๐ŸŒธ. That proposal kept going until it became an International Standard, and it got published in January 2022 [ISOBMFF-IS] ๐Ÿฅณ. Haptics is officially part of ISO/IEC 14496-12 (ISOBMFF), 7th Edition โœจ. So honestly, there's a strong case for adding haptics to the IETF's list of recognized top-level media types ๐Ÿ‘‘.

Once the top-level type 'haptics' is registered, we picture these designations for haptics in mp4 files ๐Ÿงš:

  • haptics/mp4: mp4 files with just haptic tracks and no audio or video (think streaming games, or haptic files for vests, belts, gloves, and so on) ๐Ÿงค
  • video/mp4: mp4 files with video, audio, and haptics (keeping it consistent with existing mp4 video files) ๐ŸŽฅ
  • audio/mp4: mp4 files with audio and haptics (keeping it consistent with existing audio-only mp4 files, no video) ๐ŸŽง

2.2. Haptic Sub-Modalities ๐ŸŒˆ

Haptics has several sub-modalities ๐Ÿ’…:

  • Vibrotactile (touch, vibration) ๐Ÿ“ณ
  • Kinesthetic (force feedback) ๐Ÿ•น๏ธ
  • Surface (surface friction) โœ‹
  • Spatial, non-contact (ultrasound) ๐Ÿฆ‡
  • Thermal (temperature) ๐Ÿ”ฅ

So making 'haptics' its own top-level type means formats for all of these can be defined way more cleanly ๐Ÿงน. That would not be possible if 'haptics' got stuck under 'audio', 'video', or 'application' ๐Ÿ™…โ€โ™€๏ธ.

2.3. Another Human Sense ๐Ÿ‘€

Okay so 'audio' is about hearing and 'video' is about seeing ๐Ÿ‘‚๐Ÿ‘๏ธ. It only makes sense that touch, which is just as important, gets its own top-level type 'haptics' ๐Ÿซถ. Putting haptics under 'audio' or 'video' would be weird, because some files and use cases need haptics and have nothing to do with sound or visuals at all ๐Ÿ™ƒ.

2.4. Commercial Uptake ๐Ÿ“ฑ

Haptics is quickly becoming a standard feature on consumer electronics ๐Ÿ”ฅ. For example:

  • iPhone (231+ million units sold in 2023 [iPhone-Sales]): built-in support for haptic-encoded data ๐ŸŽ
  • Android (1.27+ billion units sold in 2023 [Android-Sales] [GlobalSmartPhone-Sales]): API support for haptic buffers ๐Ÿค–
  • W3C (HTML vibration API [W3C-Vibration]): optionally supported in mobile web browsers. W3C has also defined vibration extensions for gamepads [W3C-Gamepad] ๐ŸŒ
  • Game consoles (45+ million units sold in 2023 [GameConsole-Sales]): MS Xbox, Sony PlayStation, Nintendo Switch, etc. ๐ŸŽฎ
  • XR devices (30+ million units sold in 2023 [XRDevice-Sales]): OpenXR haptic API ๐Ÿฅฝ

Haptic media is expected to get passed around between these devices ๐Ÿ”. Since they make up the majority of consumer electronics (CE) devices, there's a strong case for 'haptics' as a top-level media type ๐Ÿ’œ.

2.5. Haptic Data Formats in Use ๐Ÿงฉ

There are already several haptic data formats that will live as subtypes under the proposed 'haptics' top-level media type โœจ. These subtypes have not been standardized yet, but they're everywhere on devices around the world ๐ŸŒ. They even predate the standardization of haptic tracks in ISOBMFF, which is a pretty compelling reason to make 'haptics' a top-level media type ๐Ÿ‘‘:

  • 'ahap': The AHAP haptic data format [AHAP] is currently the standard encoding on all iOS devices and iOS connected game peripherals ๐Ÿ. It's been picked up beyond Apple devices too, with decoders available for Android and other XR systems ๐ŸŒˆ.
  • 'ogg': Google introduced a proprietary extension to the OGG format in the latest version of Android 11 ๐Ÿค–. This encoding lets haptic media get stored in OGG files ๐ŸŽถ.
  • 'ivs': The IVS haptic data format [MPEG-Haptics-Encoder] is in use:
    • In mobile phones from LG Electronics (specifically the V30, V40, and newest V50 models) that are sold worldwide ๐Ÿ“ฑ
    • In gaming phones from ASUS (specifically the ROG, ROG Phone II, and ROG Phone 3 models) that are sold worldwide ๐ŸŽฎ
  • 'hapt': The HAPT haptic data format is currently a vendor-specific format that's in use:

Given how widely these subtypes are used, it totally makes sense for 'haptics' to be a top-level media type ๐Ÿ’…๐Ÿซถ.

2.6. Haptic Subtypes (Envisioned Standards) ๐Ÿ”ฎ

The MPEG ISOBMFF proposal had an informative annex listing known haptic coding formats, with proposed FourCCs (four-character codes) for each one ๐Ÿ“. The first two, hmpg and hjif, have already been registered per this document and standardized in ISO-IEC 23090-31: Haptics coding [MPEG-Haptics-Coding] ๐ŸŽ‰. For the rest, once their format names are finalized and standardized, they should also be registered as subtypes of the 'haptics' top-level type ๐Ÿ’–:

  • 'hmpg': the MPEG-I haptics streamable binary coding format described in ISO/IEC 23090-31: Haptics coding [MPEG-Haptics-Coding] ๐ŸŒŠ
  • 'hjif': the MPEG-I haptics JSON-based interchange format described in ISO/IEC 23090-31: Haptics coding [MPEG-Haptics-Coding] ๐Ÿงพ
  • IEEE 1918.1.1 vibrotactile coding standard [IEEE-191811], being developed under the IEEE Tactile Internet initiative as part of the 5G Ultra-Reliable Low-Latency Communication (URLLC) profile. Format name is yet to be finalized โณ
  • Enumerated effects haptic coding format (based on MIDI). Format name is yet to be finalized ๐ŸŽน
  • Audio-to-vibe haptic coding format (automatic audio-to-vibration conversion algorithms). Format name is yet to be finalized ๐ŸŽต

Part 1 of 3 done, bestie! ๐ŸŒˆ More parts are coming, so stay tuned ๐Ÿฆ‹

2.7. 'application' Top-Level Type Not Suitable

okay so bestie, we've been building up to this and it's giving clarity ๐Ÿ’…โœจ haptics really doesn't belong under any of the other media types. there are three main reasons why 'haptics' doesn't fit under the 'application' top-level type, and I'm going to spell them out ๐ŸŽ€

  • haptics is literally wired into a sensory system, touch and motion ๐Ÿซถ, which makes it way more specific than the super abstract 'application' type. not a vibe match at all ๐Ÿ’€
  • 'application' has historically meant applications, aka code ๐Ÿ”ฅ. and code gets treated with a LOT of care for security. 'haptics' is not code, just like 'audio' and 'video' are not code either ๐ŸŒธ
  • haptics is a property of a media stream. it is not an application under any normal definition ๐Ÿ™ˆ so it deserves its own type ๐Ÿ‘‘

3. Security Considerations

okay this section is serious but I'm gonna make it digestible ๐Ÿฅน

haptics are interpreted data structures ๐Ÿงš. they represent collections of different media rendering instructions that are meant to be decoded and rendered on target device hardware. haptic data can be represented as collections of signal data and/or descriptive text in XML/JSON or a similar format ๐Ÿ’–. signal data is typically not executed by endpoint processors, so it represents minimal security risk โœจ. descriptive text is typically parsed and represented in memory using standard XML data structures ๐ŸŒˆ. that data gets used to build one or more signals that get sent to the endpoint device hardware ๐Ÿฆ‹

because of the media/rendering nature of the data path for haptic-coded data, the security profile of haptic data is expected to be largely consistent with the security profile of visual and audio media data ๐Ÿ’œ

now the scary-ish part ๐Ÿ˜ญ. as with any synthesized media data (audio, video, and haptics), there is a security risk tied to executing commands based on the descriptive encoding. this can happen through its inherent extensibility, or through inserting arbitrary executable data into the descriptive format itself ๐Ÿ’€. media rendering systems are normally implemented with a mix of user and kernel space execution, since these media have to ultimately make their way to a hardware system ๐Ÿ”ฅ. in theory, malicious instructions hiding in descriptive haptic media could execute arbitrary code in kernel space, which would effectively bypass system permissions structures and/or execution sandboxes ๐Ÿ˜ฑ

haptics, audio, and video media all have widespread use, so operating system and device driver implementors need to pay careful attention ๐Ÿ‘‘. they should make sure synthesis and rendering signal paths do not provide attack surfaces for malicious payloads ๐Ÿ›ก๏ธ

thermal haptic devices (the ones that give a sensation of heat) and kinesthetic haptic devices (the ones that give force feedback) could potentially injure users if the heat or force, respectively, isn't properly controlled or accidentally goes past safety levels ๐Ÿšจ implementors need to make sure adequate measures are taken to prevent that ๐Ÿซถ

and finally, these security considerations apply to the subtype registrations described in this document, as well as all future haptics registrations ๐ŸŽ€

4. IANA Considerations

so IANA has registered 'haptics' in the "Top-Level Media Types" registry defined in [RFC9694] ๐ŸŒธ and also registered several subtypes ๐Ÿ’…. IANA has additionally added 'haptics' as an alternative value of "Type Name" in the media types registration form [Media-Type-Reg] โœจ

4.1. Definition and Encoding

'haptics' is the primary media content type ๐Ÿ’–. it indicates the content identified by it requires a certain haptics subsystem, like low-level haptics APIs, which in turn will require hardware capabilities such as one or more actuators to render the haptics media ๐Ÿ”ฅ. the 'haptics' media type doesn't give any specific info about the underlying data format or how the haptics info should be interpreted. that's the job of the subtypes defined within a 'haptics' tree, which name the specific haptic formats ๐Ÿงš

unrecognized subtypes of 'haptics' SHOULD be treated as 'application/octet-stream'. implementations MAY still pass unrecognized subtypes to the haptics subsystem and associated rendering hardware ๐Ÿฆ‹

4.2. Registration Procedure

new haptics formats SHOULD be requested using the Application for a Media Type online form [Media-Type-Reg] ๐Ÿ“. [RFC6838] SHOULD be consulted on registration procedures ๐Ÿ’œ. in particular, the haptics specification SHOULD preferably be freely available ๐ŸŒˆ

note that new subtypes may define parameters ๐ŸŽ€. if an implementation does not recognize a parameter sub-value in the comma-separated list, it SHOULD ignore the sub-value and continue processing the other sub-values in the list โœจ

4.3. Subtype Registrations

in this section, the initial entries under the top-level 'haptics' media type are specified ๐Ÿ’…. they also serve as examples for future registrations ๐Ÿซถ

4.3.1. IVS Haptics Type

Type name:  haptics

Subtype name:  ivs

Required parameters:  N/A

Optional parameters:  N/A

Encoding considerations:  8bit if UTF-8; binary if UTF-16 or UTF-32

Interoperability considerations:  The IVS format is a device-
   independent haptic effect coding based on the XML format.  It is
   designed to enable interoperability between distinct physical
   endpoints.  Not all devices may be able to render all effects
   present in an IVS file.

Security considerations:  See Section 3 of RFC 9695.

Published specification:  ISO/IEC JTC 1/SC 29/WG 2 N0072 "Encoder
   Input Format for MPEG Haptics" [MPEG-Haptics-Encoder].

Applications that use this media type:  All applications that are
   able to create, edit, or display haptic media content.

Additional information:
   File extension(s):  Haptic file extensions used for IVS files:
      .ivs
   Macintosh file type code(s):  (no code specified)
   Macintosh Universal Type Identifier code:  N/A
   Fragment Identifier:  N/A
   Deprecated Alias:  N/A

Person & email address to contact for further information:
   Yeshwant Muthusamy (yeshwant@yeshvik.com)

Change controller:  ISO/IEC JTC1/SC 29/WG 7 (MPEG 3D Graphics and
   Haptic Coding)

4.3.2. HJIF Haptics Type

Type name:  haptics

Subtype name:  hjif

Required parameters:  N/A

Optional parameters:  N/A

Encoding considerations:  8bit if UTF-8; binary if UTF-16 or UTF-32

Interoperability considerations:  The HJIF format is a human-readable
   haptic effect coding based on the JSON format.  It is designed as
   an interchange format for temporal and spatial haptic effects.
   The haptic effects may target specific parts of the human body and
   may be associated with a reference device description allowing
   haptic rendering software to adapt the effects to available
   hardware.

Security considerations:  See Section 3 of RFC 9695.

Published specification:  ISO/IEC 23090-31: Haptics coding
   [MPEG-Haptics-Coding].

Applications that use this media type:  All applications that are
   able to create, edit, or display haptic media content.

Additional information:
   File extension(s):  Haptic file extensions used for HJIF files:
      .hjif
   Macintosh file type code(s):  (no code specified)
   Macintosh Universal Type Identifier code:  N/A
   Fragment Identifier:  N/A
   Deprecated Alias:  N/A

Person & email address to contact for further information:
   Yeshwant Muthusamy (yeshwant@yeshvik.com)

Change controller:  ISO/IEC JTC1/SC 29/WG 7 (MPEG 3D Graphics and
   Haptic Coding)

4.3.3. HMPG Haptics Type

Type name:  haptics

Subtype name:  hmpg

Required parameters:  N/A

Optional parameters:  N/A

Encoding considerations:  binary

Interoperability considerations:  The HMPG format is a streamable
   binary haptic effect coding.  It is designed to enable efficient
   coding of temporal and spatial haptic effects.  The haptic effects
   may target specific parts of the human body and may be associated
   with a reference device description allowing haptic rendering
   software to adapt the effects to available hardware.

Security considerations:  See Section 3 of RFC 9695.

Published specification:  ISO/IEC 23090-31: Haptics coding
   [MPEG-Haptics-Coding].

Applications that use this media type:  All applications that are
   able to create, edit, or display haptic media content.

Additional information:
   File extension(s):  Haptic file extensions used for HMPG files:
      .hmpg
   Macintosh file type code(s):  (no code specified)
   Macintosh Universal Type Identifier code:  N/A
   Fragment Identifier:  N/A
   Deprecated Alias:  N/A

Person & email address to contact for further information:
   Yeshwant Muthusamy (yeshwant@yeshvik.com)

Change controller:  ISO/IEC JTC1/SC 29/WG 7 (MPEG 3D Graphics and
   Haptic Coding)

5. Normative References

[RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type Specifications and Registration Procedures", BCP 13, RFC 6838, DOI 10.17487/RFC6838, January 2013, <https://www.rfc-editor.org/info/rfc6838>.

[RFC9694] Dรผrst, M.J., "Guidelines for the Definition of New Top- Level Media Types", BCP 13, RFC 9694, DOI 10.17487/RFC9694, March 2025, <https://www.rfc-editor.org/info/rfc9694>.

6. Informative References โœจ

okay so this is the receipts drawer ๐Ÿงพ๐Ÿ’… these are the informative references, which means background reading and not requirements, so you can relax and just enjoy the sources. the list covers haptic pattern files, codecs, media formats, browser APIs, and even some sales stats, bestie ๐Ÿฆ‹


Authors' Addresses ๐Ÿซถ

these are the people who wrote it, so you know exactly who to thank (or ask) ๐ŸŒธ

Yeshwant K. Muthusamy
600 Longwood Drive
Allen, TX 75013
United States of America
Phone: +1 469-854-9836
Email: yeshwant@yeshvik.com
Chris Ullrich
311 Court Ave
Ventura, CA 93003
United States of America
Phone: +1 805-320-0774
Email: chrisullrich@gmail.com
๐Ÿ“ฆ where this page comes from