| rfc9695.original | rfc9695.txt | |||
|---|---|---|---|---|
| MEDIAMAN Y. K. Muthusamy | Internet Engineering Task Force (IETF) Y. K. Muthusamy | |||
| Internet-Draft | Request for Comments: 9695 | |||
| Intended status: Standards Track C. Ullrich | Category: Standards Track C. Ullrich | |||
| Expires: 28 January 2024 27 July 2023 | ISSN: 2070-1721 March 2025 | |||
| The 'haptics' Top-level Media Type | The 'haptics' Top-Level Media Type | |||
| draft-ietf-mediaman-haptics-05 | ||||
| Abstract | Abstract | |||
| This memo serves to register and document the 'haptics' top-level | This memo registers and documents the 'haptics' top-level media type, | |||
| media type, under which subtypes for representation formats for | under which subtypes for representation formats for haptics may be | |||
| haptics may be registered. This document also serves as a | registered. This document also serves as a registration for a set of | |||
| registration for a set of subtypes, which are representative of some | subtypes, which are representative of some existing subtypes already | |||
| existing subtypes already in use. | in use. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 28 January 2024. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9695. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Background and Justification | |||
| 2. Background and Justification . . . . . . . . . . . . . . . . 3 | 2.1. MPEG ISOBMFF | |||
| 2.1. MPEG ISOBMFF . . . . . . . . . . . . . . . . . . . . . . 3 | 2.2. Haptic Sub-Modalities | |||
| 2.2. Haptic Sub-modalities . . . . . . . . . . . . . . . . . . 4 | 2.3. Another Human Sense | |||
| 2.3. Another Human Sense . . . . . . . . . . . . . . . . . . . 4 | 2.4. Commercial Uptake | |||
| 2.4. Commercial Uptake . . . . . . . . . . . . . . . . . . . . 4 | 2.5. Haptic Data Formats in Use | |||
| 2.5. Haptic Data Formats in Use . . . . . . . . . . . . . . . 5 | 2.6. Haptic Subtypes (Envisioned Standards) | |||
| 2.6. Haptic Subtypes (envisioned standards) . . . . . . . . . 6 | 2.7. 'application' Top-Level Type Not Suitable | |||
| 2.7. 'application' top-level type not suitable . . . . . . . . 6 | 3. Security Considerations | |||
| 3. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 4. IANA Considerations | |||
| 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 4.1. Definition and Encoding | |||
| 4.1. Definition and Encoding . . . . . . . . . . . . . . . . . 8 | 4.2. Registration Procedure | |||
| 4.2. Registration Procedure . . . . . . . . . . . . . . . . . 8 | 4.3. Subtype Registrations | |||
| 4.3. Subtype Registrations . . . . . . . . . . . . . . . . . . 8 | 4.3.1. IVS Haptics Type | |||
| 4.3.1. IVS Haptics Type . . . . . . . . . . . . . . . . . . 8 | 4.3.2. HJIF Haptics Type | |||
| 4.3.2. HJIF Haptics Type . . . . . . . . . . . . . . . . . . 9 | 4.3.3. HMPG Haptics Type | |||
| 4.3.3. HMPG Haptics Type . . . . . . . . . . . . . . . . . . 10 | 5. Normative References | |||
| 5. Normative References . . . . . . . . . . . . . . . . . . . . 11 | 6. Informative References | |||
| 6. Informative References . . . . . . . . . . . . . . . . . . . 12 | Authors' Addresses | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
| 1. Introduction | 1. Introduction | |||
| The term 'haptics' refers to the generation of touch-related | The term 'haptics' refers to the generation of touch-related | |||
| sensations in a device or interface. Haptics is widely used in | sensations in a device or interface. Haptics is widely used in | |||
| consumer devices in order to provide touch-based feedback to users. | consumer devices in order to provide touch-based feedback to users. | |||
| The most common use of haptics is in mobile devices, where it is used | The most common use of haptics is in mobile devices, where it is used | |||
| to provide feedback to users interacting with the touchscreen, e.g., | to provide feedback to users interacting with the touchscreen, e.g., | |||
| typing on a virtual keyboard. Haptic technologies are unlike audio | typing on a virtual keyboard. Haptic technologies are unlike audio | |||
| and visual enabling technologies in the sense that they require some | and visual enabling technologies in the sense that they require some | |||
| form of actuation in order to create a tactile sensation. For mobile | form of actuation in order to create a tactile sensation. For mobile | |||
| phones and game controllers, these actuators are typically small | phones and game controllers, these actuators are typically small | |||
| vibrating motors. For large touchscreens in vehicles, these | vibrating motors. For large touchscreens in vehicles, these | |||
| actuators can be specialized piezoelectric materials. Haptic | actuators can be specialized piezoelectric materials. Haptic | |||
| capabilities are found in nearly every modern smartphone and game and | capabilities are found in nearly every modern smartphone, game, and | |||
| virtual reality controller, making these devices an ideal target for | virtual reality controller, making these devices an ideal target for | |||
| enhanced media experiences. | enhanced media experiences. | |||
| Internet Media Types [RFC6838] are used to label content carried over | Internet Media Types [RFC6838] are used to label content carried over | |||
| Internet protocols. This document defines a new top-level type | Internet protocols. This document defines a new top-level type, | |||
| 'haptics' according to [TOPLEVEL]. This top-level type indicates | 'haptics', according to [RFC9694]. This top-level type indicates | |||
| that the content specifies haptic data. Under this top-level type, | that the content specifies haptic data. Under this top-level type, | |||
| different representation formats of haptics may be registered. | different representation formats of haptics may be registered. | |||
| 1.1. Terminology | ||||
| The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, | ||||
| SHOULD,SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL in | ||||
| this document are to be interpreted as described in BCP 14 [RFC2119] | ||||
| [RFC8174] when, and only when, they appear in all capitals, as shown | ||||
| here. | ||||
| 2. Background and Justification | 2. Background and Justification | |||
| Haptic signals provide an additional layer of entertainment and | Haptic signals provide an additional layer of entertainment and | |||
| sensory immersion for the user, when combined with audio and video | sensory immersion for the user, when combined with audio and video | |||
| signals. Haptic tracks, in separate files, can be combined with | signals. Haptic tracks, in separate files, can be combined with | |||
| audio/video files and played back in sync to provide an overall | audio/video files and played back in sync to provide an overall | |||
| immersive media experience (audio, visual, tactile) for the user. | immersive media experience (audio, visual, tactile) for the user. | |||
| More recently, haptic tracks embedded in standard file formats such | More recently, haptic tracks embedded in standard file formats, such | |||
| as ISOBMFF (ISO Base Media File Format), enable playback of the | as ISOBMFF (ISO Base Media File Format), enable playback of the | |||
| haptic signals over one or more actuators, simultaneously with audio | haptic signals over one or more actuators, simultaneously with audio | |||
| and video playback [ISOBMFF-IS]. Haptic signals are also part of | and video playback [ISOBMFF-IS]. Haptic signals are also part of | |||
| media streams that use RTP, such as those for streaming games, XR, | media streams that use RTP, such as those for streaming games, XR, | |||
| and wearables. | and wearables. | |||
| 2.1. MPEG ISOBMFF | 2.1. MPEG ISOBMFF | |||
| Historically, there has not been a registration of formats for | Historically, there has not been a registration of formats for | |||
| haptics. However, haptics was proposed as a first-order media type | haptics. However, haptics was proposed as a first-order media type | |||
| (at the same level as audio and video) in ISOBMFF in April 2020. The | (at the same level as audio and video) in ISOBMFF in April 2020. The | |||
| proposal has since progressed to International Standard, and was | proposal has since progressed to International Standard, and was | |||
| published in January 2022 [ISOBMFF-IS]. Haptics is officially part | published in January 2022 [ISOBMFF-IS]. Haptics is officially part | |||
| of the ISO/IEC 14496-12 (ISOBMFF) standard, 7th Edition. Given this | of the ISO/IEC 14496-12 (ISOBMFF) standard, 7th Edition. Given this | |||
| development, a strong case can be made for haptics to be added to the | development, a strong case can be made for haptics to be added to the | |||
| list of top-level media types recognized by the IETF. | list of top-level media types recognized by the IETF. | |||
| We envision the following designations for haptics in mp4 files, once | We envision the following designations for haptics in mp4 files, once | |||
| the top-level type 'haptics' is registered: | the top-level type 'haptics' is registered: | |||
| 1. 'haptics/mp4' - mp4 files with just haptic tracks and no audio or | * 'haptics/mp4' - mp4 files with just haptic tracks and no audio or | |||
| video in them (e.g., streaming games, haptics files for haptic | video in them (e.g., streaming games, haptics files for haptic | |||
| vests, belts, gloves, etc.) | vests, belts, gloves, etc.) | |||
| 2. 'video/mp4' - mp4 files with video, audio, and haptics (to ensure | * 'video/mp4' - mp4 files with video, audio, and haptics (to ensure | |||
| consistency with existing mp4 files with video content) | consistency with existing mp4 files with video content) | |||
| 3. 'audio/mp4' - mp4 files with audio and haptics (to ensure | * 'audio/mp4' - mp4 files with audio and haptics (to ensure | |||
| consistency with existing mp4 files with audio content without | consistency with existing mp4 files with audio content without any | |||
| any video) | video) | |||
| 2.2. Haptic Sub-modalities | 2.2. Haptic Sub-Modalities | |||
| There are multiple sub-modalities of haptics: | There are multiple sub-modalities of haptics: | |||
| * Vibrotactile (touch, vibration) | * Vibrotactile (touch, vibration) | |||
| * Kinesthetic (force feedback) | * Kinesthetic (force feedback) | |||
| * Surface (surface friction) | * Surface (surface friction) | |||
| * Spatial, non-contact (ultrasound) | * Spatial, non-contact (ultrasound) | |||
| skipping to change at page 4, line 28 ¶ | skipping to change at line 154 ¶ | |||
| Therefore, designating 'haptics' as a top-level media type enables | Therefore, designating 'haptics' as a top-level media type enables | |||
| the definition of data formats pertaining to these sub-modalities in | the definition of data formats pertaining to these sub-modalities in | |||
| a more streamlined manner. This would not be possible if 'haptics' | a more streamlined manner. This would not be possible if 'haptics' | |||
| were to be placed under other top-level types like 'audio', 'video', | were to be placed under other top-level types like 'audio', 'video', | |||
| or 'application'. | or 'application'. | |||
| 2.3. Another Human Sense | 2.3. Another Human Sense | |||
| The top-level media type 'audio' pertains to the human sense of | The top-level media type 'audio' pertains to the human sense of | |||
| hearing, the top-level media type 'video' pertains to the human sense | hearing; the top-level media type 'video' pertains to the human sense | |||
| of seeing, so it only makes sense for the (equally important) human | of seeing; so it only makes sense for the (equally important) human | |||
| sense of touch to be represented by another top-level media type | sense of touch to be represented by another top-level media type | |||
| 'haptics'. Placing 'haptics' under 'audio' or 'video' is not | 'haptics'. Placing 'haptics' under 'audio' or 'video' is not | |||
| reflective of the kinds of files or use cases that would need haptics | reflective of the kinds of files or use cases that would need haptics | |||
| but have nothing whatsoever to do with audio or video. | but have nothing whatsoever to do with audio or video. | |||
| 2.4. Commercial Uptake | 2.4. Commercial Uptake | |||
| Haptics is rapidly becoming a standard feature of consumer electronic | Haptics is rapidly becoming a standard feature of consumer electronic | |||
| devices. For example: | devices. For example: | |||
| * iPhone (206+ million units sold in 2020): native support for | * iPhone (231+ million units sold in 2023 [iPhone-Sales]): built-in | |||
| haptic encoded data | support for haptic-encoded data | |||
| * Android (1.38+ billion units sold in 2020): API support of haptic | * Android (1.27+ billion units sold in 2023 [Android-Sales] | |||
| buffers | [GlobalSmartPhone-Sales]): API support of haptic buffers | |||
| * W3C (HTML vibration API [W3C-Vibration]): Optionally supported in | * W3C (HTML vibration API [W3C-Vibration]): Optionally supported in | |||
| mobile web browsers. W3C has also defined vibration extensions | mobile web browsers. W3C has also defined vibration extensions | |||
| for gamepads [W3C-Gamepad] | for gamepads [W3C-Gamepad] | |||
| * Game consoles (39+ million units sold in 2019): MS Xbox, Sony | * Game consoles (45+ million units sold in 2023 | |||
| PlayStation, Nintendo Switch, etc. | [GameConsole-Sales]): MS Xbox, Sony PlayStation, Nintendo Switch, | |||
| etc. | ||||
| * XR devices (9+ million units sold in 2019): OpenXR haptic API | * XR devices (30+ million units sold in 2023 [XRDevice-Sales]): | |||
| OpenXR haptic API | ||||
| Haptic media is expected to be commonly exchanged between these | Haptic media is expected to be commonly exchanged between these | |||
| devices. Since they represent the majority of CE devices, a strong | devices. Since they represent the majority of consumer electronics | |||
| case can be made for 'haptics' as a top-level media type. | (CE) devices, a strong case can be made for 'haptics' as a top-level | |||
| media type. | ||||
| 2.5. Haptic Data Formats in Use | 2.5. Haptic Data Formats in Use | |||
| There are multiple instances of existing haptic data formats that | There are multiple instances of existing haptic data formats that | |||
| will live as sub-types under the proposed 'haptics' top-level media | will live as sub-types under the proposed 'haptics' top-level media | |||
| type. While these subtypes have *not* been registered with IANA or | type. While these subtypes have *not* been standardized (yet), the | |||
| standardized (yet), the prevalence of these haptic data formats in a | prevalence of these haptic data formats in a large number of devices | |||
| large number of devices around the world, pre-dating the | around the world, pre-dating the standardization of haptic tracks in | |||
| standardization of haptic tracks in ISOBMFF, provides a compelling | ISOBMFF, provides a compelling argument for 'haptics' to be | |||
| argument for 'haptics' to be designated as a top-level media type: | designated as a top-level media type: | |||
| * 'ahap': The AHAP haptic data format [AHAP] is currently the | * 'ahap': The AHAP haptic data format [AHAP] is currently the | |||
| standard encoding on all iOS devices + iOS connected game | standard encoding on all iOS devices + iOS connected game | |||
| peripherals. The format has seen usage and adoption beyond Apple | peripherals. The format has seen usage and adoption beyond Apple | |||
| devices as well, with decoders available for Android and other XR | devices as well, with decoders available for Android and other XR | |||
| systems. | systems. | |||
| * 'ogg': Google has introduced a proprietary extension to the OGG | * 'ogg': Google has introduced a proprietary extension to the OGG | |||
| format in the latest version of Android 11. This encoding enables | format in the latest version of Android 11. This encoding enables | |||
| haptic media to be stored in OGG files. | haptic media to be stored in OGG files. | |||
| skipping to change at page 5, line 48 ¶ | skipping to change at line 225 ¶ | |||
| II, ROG Phone 3) that are sold worldwide | II, ROG Phone 3) that are sold worldwide | |||
| * 'hapt': The HAPT haptic data format is currently a vendor-specific | * 'hapt': The HAPT haptic data format is currently a vendor-specific | |||
| format that is in use: | format that is in use: | |||
| - In mobile haptic advertising (for W3C devices) | - In mobile haptic advertising (for W3C devices) | |||
| - The following Japanese game developers use the HAPT format as | - The following Japanese game developers use the HAPT format as | |||
| part of Immersion's TouchSense SDK: | part of Immersion's TouchSense SDK: | |||
| o KLAB: https://www.klab.com/en/ (https://www.klab.com/en/) | o KLAB: https://www.klab.com/en/ | |||
| o Craft&Meister: http://www.crafts-meister.co.jp/pc/ | o Craft&Meister: https://www.crafts-meister.co.jp/pc/ | |||
| company_en.html (http://www.crafts-meister.co.jp/pc/ | company_en.html | |||
| company_en.html) | ||||
| - Tencent is using the TouchSense SDK for their popular social | - Tencent is using the TouchSense SDK for their popular social | |||
| media application QQ and live streaming application NOW: | media application QQ and live streaming application NOW: | |||
| Immersion-Announces-Tencent-Licenses-TouchSense-Technology- | "Immersion Announces Tencent Licenses TouchSense Technology to | |||
| Deliver | Deliver Next-Generation Interactive Experiences" (https://web.a | |||
| (https://www.businesswire.com/news/home/20171026006443/en/ | rchive.org/web/20241201160955/https://www.businesswire.com/news | |||
| Immersion-Announces-Tencent-Licenses-TouchSense%C2%AE- | /home/20171026006443/en/Immersion-Announces-Tencent-Licenses- | |||
| Technology-Deliver) | TouchSense%C2%AE-Technology-Deliver) | |||
| Given the widespread use of these subtypes, it makes sense for | Given the widespread use of these subtypes, it makes sense for | |||
| 'haptics' to be a top-level media type. | 'haptics' to be a top-level media type. | |||
| 2.6. Haptic Subtypes (envisioned standards) | 2.6. Haptic Subtypes (Envisioned Standards) | |||
| The MPEG ISOBMFF proposal included an informative annex of known | The MPEG ISOBMFF proposal included an informative annex of known | |||
| haptic coding formats with proposed FourCC codes for them. These | haptic coding formats with proposed FourCCs (four-character codes) | |||
| codes are not registered yet, but the plan is indeed to standardize | for them. The first two, hmpg and hjif, have been registered per | |||
| these haptic coding formats in the near future. Once standardized, | this document and have already been standardized in ISO-IEC 23090-31: | |||
| these types should also be registered as subtypes of the 'haptics' | Haptics coding [MPEG-Haptics-Coding]. As for the remaining codes, | |||
| top-level media type: | once the format names have been finalized and standardized, these | |||
| types should also be registered as subtypes of the 'haptics' top- | ||||
| level media type: | ||||
| * 'hmpg': the MPEG-I haptics streamable binary coding format | * 'hmpg': the MPEG-I haptics streamable binary coding format | |||
| described in ISO/IEC DIS 23090-31: Haptics coding | described in ISO/IEC 23090-31: Haptics coding | |||
| [MPEG-Haptics-Coding] | [MPEG-Haptics-Coding] | |||
| * 'hjif': the MPEG-I haptics JSON-based interchange format described | * 'hjif': the MPEG-I haptics JSON-based interchange format described | |||
| in ISO/IEC DIS 23090-31: Haptics coding [MPEG-Haptics-Coding] | in ISO/IEC 23090-31: Haptics coding [MPEG-Haptics-Coding] | |||
| * IEEE P1918.1.1 vibrotactile coding standard [IEEE-P191811] being | * IEEE 1918.1.1 vibrotactile coding standard [IEEE-191811] being | |||
| developed under the IEEE Tactile Internet initiative as part of | developed under the IEEE Tactile Internet initiative as part of | |||
| the 5G URLL profile. Format name is yet to be finalized. | 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 | * Enumerated effects haptic coding format (based on MIDI). Format | |||
| name is yet to be finalized. | name is yet to be finalized. | |||
| * Audio-to-vibe haptic coding format (automatic audio to vibration | * Audio-to-vibe haptic coding format (automatic audio-to-vibration | |||
| conversion algorithms). Format name is yet to be finalized. | conversion algorithms). Format name is yet to be finalized. | |||
| 2.7. 'application' top-level type not suitable | 2.7. 'application' Top-Level Type Not Suitable | |||
| From the above arguments, it is clear that haptics does not really | From the above arguments, it is clear that haptics does not really | |||
| belong under any other media type. To reiterate, there are three | belong under any other media type. To reiterate, there are three | |||
| main reasons why the 'haptics' media type does not fit under the | main reasons why the 'haptics' media type does not fit under the | |||
| 'application' top-level type: | 'application' top-level type: | |||
| * haptics connects to a sensory system, touch/motion, directly, and | * haptics connects to a sensory system, touch/motion, directly, and | |||
| is more specific than the abstract 'application' type, and | is more specific than the abstract 'application' type, and | |||
| * 'application' has historically been used for applications, i.e., | * 'application' has historically been used for applications, i.e., | |||
| skipping to change at page 7, line 25 ¶ | skipping to change at line 300 ¶ | |||
| Haptics are interpreted data structures that represent collections of | Haptics are interpreted data structures that represent collections of | |||
| different media rendering instructions intended to be decoded and | different media rendering instructions intended to be decoded and | |||
| rendered on target device hardware. Haptic data can be represented | rendered on target device hardware. Haptic data can be represented | |||
| as collections of signal data and/or descriptive text in XML/JSON or | as collections of signal data and/or descriptive text in XML/JSON or | |||
| a similar format. Signal data is typically not executed by endpoint | a similar format. Signal data is typically not executed by endpoint | |||
| processors and represents minimal security risk. Descriptive text is | processors and represents minimal security risk. Descriptive text is | |||
| typically parsed and represented in memory using standard XML data | typically parsed and represented in memory using standard XML data | |||
| structures. This data is utilized to construct one or more signals | structures. This data is utilized to construct one or more signals | |||
| that are sent to the endpoint device hardware. | that are sent to the endpoint device hardware. | |||
| Because of the media/rendering nature of the data path for haptic | Because of the media/rendering nature of the data path for haptic- | |||
| coded data the security profile of haptic data is expected to be | coded data, the security profile of haptic data is expected to be | |||
| largely consistent with the security profile of visual and audio | largely consistent with the security profile of visual and audio | |||
| media data. | media data. | |||
| As with any synthesized media data (audio, video, and haptics), there | As with any synthesized media data (audio, video, and haptics), there | |||
| is a security risk associated with execution of commands based on the | is a security risk associated with execution of commands based on the | |||
| descriptive encoding either through its inherent extensibility or | descriptive encoding either through its inherent extensibility or | |||
| through the insertion of arbitrary executable data in the descriptive | through the insertion of arbitrary executable data in the descriptive | |||
| format itself. Indeed, media rendering systems are normally | format itself. Indeed, media rendering systems are normally | |||
| implemented with a mix of user and kernel space execution since these | implemented with a mix of user and kernel space execution since these | |||
| media must ultimately make their way to a hardware system. In | media must ultimately make their way to a hardware system. In | |||
| skipping to change at page 8, line 11 ¶ | skipping to change at line 335 ¶ | |||
| properly controlled or inadvertently exceed safety levels. | properly controlled or inadvertently exceed safety levels. | |||
| Implementors need to ensure that adequate measures are taken to | Implementors need to ensure that adequate measures are taken to | |||
| prevent such scenarios. | prevent such scenarios. | |||
| These security considerations apply to the subtype registrations | These security considerations apply to the subtype registrations | |||
| described in this document as well as all future haptics | described in this document as well as all future haptics | |||
| registrations. | registrations. | |||
| 4. IANA Considerations | 4. IANA Considerations | |||
| This specification registers a new top-level type, 'haptics', and | IANA has registered 'haptics' in the "Top-Level Media Types" registry | |||
| requests IANA to add it to the registry of top-level types specified | defined in [RFC9694] and registered several subtypes. IANA has also | |||
| in [TOPLEVEL], adds it as an alternative value of "Type Name" in the | added 'haptics' as an alternative value of "Type Name" in the media | |||
| media types registration form [Media-Type-Registration], and | types registration form [Media-Type-Reg]. | |||
| registers several subtypes for it. | ||||
| 4.1. Definition and Encoding | 4.1. Definition and Encoding | |||
| 'haptics' as the primary media content type indicates that the | 'haptics' is the primary media content type that indicates the | |||
| content identified by it requires a certain haptics subsystem such as | content identified by it requires a certain haptics subsystem such as | |||
| low-level haptics APIs, which in turn will require hardware | low-level haptics APIs, which in turn will require hardware | |||
| capabilities such as one or more actuators to render the haptics | capabilities such as one or more actuators to render the haptics | |||
| media. The 'haptics' media type does not provide any specific | media. The 'haptics' media type does not provide any specific | |||
| information about the underlying data format and how the haptics | information about the underlying data format and how the haptics | |||
| information should be interpreted -- the subtypes defined within a | information should be interpreted -- the subtypes defined within a | |||
| 'haptics' tree name the specific haptic formats. Unrecognized | 'haptics' tree name the specific haptic formats. Unrecognized | |||
| subtypes of 'haptics' should be treated as 'application/octet- | subtypes of 'haptics' should be treated as 'application/octet- | |||
| stream'. Implementations may still pass unrecognized subtypes to the | stream'. Implementations may still pass unrecognized subtypes to the | |||
| haptics subsystem and associated rendering hardware. | haptics subsystem and associated rendering hardware. | |||
| 4.2. Registration Procedure | 4.2. Registration Procedure | |||
| New haptics formats should be registered using the online form | New haptics formats should be requested using the Application for a | |||
| [Media-Type-Registration]. [RFC6838] should be consulted on | Media Type online form [Media-Type-Reg]. [RFC6838] should be | |||
| registration procedures. In particular, the haptics specification | consulted on registration procedures. In particular, the haptics | |||
| should preferably be freely available. | specification should preferably be freely available. | |||
| Note that new subtypes may define parameters. If an implementation | Note that new subtypes may define parameters. If an implementation | |||
| does not recognize a parameter sub-value in the comma- separated | does not recognize a parameter sub-value in the comma-separated list, | |||
| list, it should ignore the sub-value and continue processing the | it should ignore the sub-value and continue processing the other sub- | |||
| other sub-values in the list. | values in the list. | |||
| 4.3. Subtype Registrations | 4.3. Subtype Registrations | |||
| In this section, the initial entries under the top-level 'haptics' | In this section, the initial entries under the top-level 'haptics' | |||
| media type are specified. They also serve as examples for future | media type are specified. They also serve as examples for future | |||
| registrations. | registrations. | |||
| 4.3.1. IVS Haptics Type | 4.3.1. IVS Haptics Type | |||
| Type name: haptics | Type name: haptics | |||
| Subtype name: ivs | ||||
| Required parameters: N/A | Subtype name: ivs | |||
| Optional parameters: N/A | Required parameters: N/A | |||
| Encoding considerations: 8bit if UTF-8; binary if UTF-16 or UTF-32 | Optional parameters: N/A | |||
| Interoperability considerations: The IVS format is a device- | Encoding considerations: 8bit if UTF-8; binary if UTF-16 or UTF-32 | |||
| 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 XXXX. | 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. | ||||
| [Note to RFC Editor: Please replace XXXX with the number of this | Security considerations: See Section 3 of RFC 9695. | |||
| RFC.] | ||||
| Published specification: ISO/IEC JTC 1/SC 29/WG 2 N 0072 "Encoder | Published specification: ISO/IEC JTC 1/SC 29/WG 2 N0072 "Encoder | |||
| Input Format for MPEG Haptics" [MPEG-Haptics-Encoder]. | Input Format for MPEG Haptics" [MPEG-Haptics-Encoder]. | |||
| Applications that use this media type: All applications that are able | Applications that use this media type: All applications that are | |||
| to create, edit, or display haptic media content. | able to create, edit, or display haptic media content. | |||
| Additional information: | 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 | ||||
| * File extension(s): Haptic file extensions used for IVS files: .ivs | Person & email address to contact for further information: | |||
| Yeshwant Muthusamy (yeshwant@yeshvik.com) | ||||
| * 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 | Change controller: ISO/IEC JTC1/SC 29/WG 7 (MPEG 3D Graphics and | |||
| Haptic Coding) | Haptic Coding) | |||
| 4.3.2. HJIF Haptics Type | 4.3.2. HJIF Haptics Type | |||
| Type name: haptics | Type name: haptics | |||
| Subtype name: hjif | Subtype name: hjif | |||
| Required parameters: N/A | ||||
| Optional parameters: N/A | Required parameters: N/A | |||
| Encoding considerations: 8bit if UTF-8; binary if UTF-16 or UTF-32 | Optional parameters: N/A | |||
| Interoperability considerations: The HJIF format is a human-readable | Encoding considerations: 8bit if UTF-8; binary if UTF-16 or UTF-32 | |||
| 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 XXXX. | 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. | ||||
| [Note to RFC Editor: Please replace XXXX with the number of this | Security considerations: See Section 3 of RFC 9695. | |||
| RFC.] | ||||
| Published specification: ISO/IEC DIS 23090-31: Haptics coding | Published specification: ISO/IEC 23090-31: Haptics coding | |||
| [MPEG-Haptics-Coding]. | [MPEG-Haptics-Coding]. | |||
| Applications that use this media type: All applications that are able | Applications that use this media type: All applications that are | |||
| to create, edit, or display haptic media content. | able to create, edit, or display haptic media content. | |||
| Additional information: | 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 | ||||
| * File extension(s): Haptic file extensions used for HJIF files: | Person & email address to contact for further information: | |||
| .hjif | Yeshwant Muthusamy (yeshwant@yeshvik.com) | |||
| * 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 | Change controller: ISO/IEC JTC1/SC 29/WG 7 (MPEG 3D Graphics and | |||
| Haptic Coding) | Haptic Coding) | |||
| 4.3.3. HMPG Haptics Type | 4.3.3. HMPG Haptics Type | |||
| Type name: haptics | Type name: haptics | |||
| Subtype name: hmpg | Subtype name: hmpg | |||
| Required parameters: N/A | ||||
| Optional parameters: N/A | Required parameters: N/A | |||
| Encoding considerations: binary | Optional parameters: N/A | |||
| Interoperability considerations: The HMPG format is a streamable | Encoding considerations: binary | |||
| 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 XXXX. | 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. | ||||
| [Note to RFC Editor: Please replace XXXX with the number of this | Security considerations: See Section 3 of RFC 9695. | |||
| RFC.] | ||||
| Published specification: ISO/IEC DIS 23090-31: Haptics coding | Published specification: ISO/IEC 23090-31: Haptics coding | |||
| [MPEG-Haptics-Coding]. | [MPEG-Haptics-Coding]. | |||
| Applications that use this media type: All applications that are able | Applications that use this media type: All applications that are | |||
| to create, edit, or display haptic media content. | able to create, edit, or display haptic media content. | |||
| Additional information: | 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 | ||||
| * File extension(s): Haptic file extensions used for HMPG files: | Person & email address to contact for further information: | |||
| .hmpg | Yeshwant Muthusamy (yeshwant@yeshvik.com) | |||
| * 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 | Change controller: ISO/IEC JTC1/SC 29/WG 7 (MPEG 3D Graphics and | |||
| Haptic Coding) | Haptic Coding) | |||
| 5. Normative References | 5. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | ||||
| Requirement Levels", BCP 14, RFC 2119, | ||||
| DOI 10.17487/RFC2119, March 1997, | ||||
| <https://www.rfc-editor.org/info/rfc2119>. | ||||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
| [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type | [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type | |||
| Specifications and Registration Procedures", BCP 13, | Specifications and Registration Procedures", BCP 13, | |||
| RFC 6838, DOI 10.17487/RFC6838, January 2013, | RFC 6838, DOI 10.17487/RFC6838, January 2013, | |||
| <https://www.rfc-editor.org/info/rfc6838>. | <https://www.rfc-editor.org/info/rfc6838>. | |||
| [TOPLEVEL] Dürst, M. J., "Guidelines for the Definition of New Top- | [RFC9694] Dürst, M.J., "Guidelines for the Definition of New Top- | |||
| Level Media Types", Work in Progress, Internet-Draft, | Level Media Types", BCP 13, RFC 9694, | |||
| draft-ietf-mediaman-toplevel-03, 26 March 2023, | DOI 10.17487/RFC9694, March 2025, | |||
| <https://datatracker.ietf.org/doc/draft-ietf-mediaman- | <https://www.rfc-editor.org/info/rfc9694>. | |||
| toplevel/03/>. | ||||
| 6. Informative References | 6. Informative References | |||
| [ISOBMFF-IS] | [AHAP] Apple Inc., "Representing haptic patterns in AHAP files", | |||
| "ISO/IEC 14496-12 (7th Edition) Information technology — | Apple Developer Documentation, | |||
| Coding of audio-visual objects — Part 12: ISO base media | ||||
| file format", <https://www.iso.org/standard/83102.html>. | ||||
| [MPEG-Haptics-Encoder] | ||||
| "Encoder Input Format for MPEG Haptics", | ||||
| <https://www.mpegstandards.org/standards/ | ||||
| Explorations/40/>. | ||||
| [AHAP] "Apple Haptic Audio Pattern", | ||||
| <https://developer.apple.com/documentation/corehaptics/ | <https://developer.apple.com/documentation/corehaptics/ | |||
| representing_haptic_patterns_in_ahap_files>. | representing_haptic_patterns_in_ahap_files>. | |||
| [Android-Sales] | ||||
| Counterpoint, "Global Smartphone Sales Share by Operating | ||||
| System", <https://www.counterpointresearch.com/insights/ | ||||
| global-smartphone-os-market-share/>. | ||||
| [GameConsole-Sales] | ||||
| D'Angelo, W., "PS5 vs Xbox Series X|S vs Switch 2023 | ||||
| Worldwide Sales Comparison Charts Through December - | ||||
| Sales", VGChartz.com, | ||||
| <https://www.vgchartz.com/article/459672/ps5-vs-xbox- | ||||
| series-xs-vs-switch-2023-worldwide-sales-comparison- | ||||
| charts-through-december/>. | ||||
| [GlobalSmartPhone-Sales] | ||||
| sellcell, "How many mobile phones are sold each year?", | ||||
| <https://www.sellcell.com/how-many-mobile-phones-are-sold- | ||||
| each-year/>. | ||||
| [IEEE-191811] | ||||
| IEEE, "IEEE Standard for Haptic Codecs for the Tactile | ||||
| Internet", IEEE Std 1918.1.1-2024, | ||||
| DOI 10.1109/IEEESTD.2024.10555007, June 2024, | ||||
| <https://ieeexplore.ieee.org/document/10555007>. | ||||
| [iPhone-Sales] | ||||
| Backlinko, "iPhone Users and Sales Stats", | ||||
| <https://backlinko.com/iphone-users>. | ||||
| [ISOBMFF-IS] | ||||
| ISO/IEC, "Information technology - Coding of audio-visual | ||||
| objects - Part 12: ISO base media file format", 7th | ||||
| Edition, ISO/IEC 14496-12:2022, January 2022, | ||||
| <https://www.iso.org/standard/83102.html>. | ||||
| [Media-Type-Reg] | ||||
| IANA, "Application for a Media Type", | ||||
| <https://www.iana.org/form/media-types>. | ||||
| [MPEG-Haptics-Coding] | [MPEG-Haptics-Coding] | |||
| "ISO/IEC DIS 23090-31 Information Technology — Coded | ISO/IEC, "Information Technology -- Coded representation | |||
| representation of immersive media — Part 31: Haptics | of immersive media -- Part 31: Haptics coding", ISO/ | |||
| coding", <https://www.iso.org/standard/86122.html>. | IEC 23090-31:2025, January 2025, | |||
| <https://www.iso.org/standard/86122.html>. | ||||
| [W3C-Vibration] | [MPEG-Haptics-Encoder] | |||
| "W3C Vibration API (Second Edition)", | MPEG, "Encoder Input Format for Haptics", MPEG 134 Meeting | |||
| <https://www.w3.org/TR/vibration/>. | Document, 15 May 2021, | |||
| <https://www.mpegstandards.org/standards/ | ||||
| Explorations/40/>. | ||||
| [W3C-Gamepad] | [W3C-Gamepad] | |||
| "W3C Gamepad Extensions", | W3C, "Gamepad Extensions", W3C Editor's Draft, | |||
| <https://w3c.github.io/gamepad/extensions.html>. | <https://w3c.github.io/gamepad/extensions.html>. | |||
| [IEEE-P191811] | [W3C-Vibration] | |||
| "P1918.1.1 - Haptic Codecs for the Tactile Internet", | W3C, "Vibration API (Second Edition)", W3C Recommendation, | |||
| <https://standards.ieee.org/project/1918_1_1.html>. | 18 October 2016, | |||
| <https://www.w3.org/TR/2016/REC-vibration-20161018/>. | ||||
| Latest version available at | ||||
| <https://www.w3.org/TR/vibration/> | ||||
| [Media-Type-Registration] | [XRDevice-Sales] | |||
| "IANA, Application for a Media Type", | Binarybox Studios, "Virtual reality market size 2023", | |||
| <http://www.iana.org/form/media-types>. | LinkedIn, <https://www.linkedin.com/pulse/virtual-reality- | |||
| market-size-2023-binarybox-studios-dfbif/>. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Yeshwant K. Muthusamy | Yeshwant K. Muthusamy | |||
| 600 Longwood Drive | 600 Longwood Drive | |||
| Allen, TX 75013 | Allen, TX 75013 | |||
| United States of America | United States of America | |||
| Phone: +1 469-854-9836 | Phone: +1 469-854-9836 | |||
| Email: yeshwant@yeshvik.com | Email: yeshwant@yeshvik.com | |||
| Chris Ullrich | Chris Ullrich | |||
| 311 Court Ave | 311 Court Ave | |||
| Ventura, CA 93003 | Ventura, CA 93003 | |||
| United States of America | United States of America | |||
| Phone: +1 805-320-0774 | Phone: +1 805-320-0774 | |||
| Email: chrisullrich@gmail.com | Email: chrisullrich@gmail.com | |||
| End of changes. 87 change blocks. | ||||
| 262 lines changed or deleted | 261 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||