<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.3.5) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-habib-voxelvideo-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>VoxelVideo Format</title>

    <author fullname="Daniel Habib">
      <organization>True3D Technologies Inc.</organization>
      <address>
        <postal>
          <street>15 Morris Ave</street> <street>Apt. 307</street>
          <city>Long Branch, NJ</city>
          <code>07740</code>
          <country>US</country>
        </postal>
        <phone>+1 908 812 8365</phone>
        <email>daniel@quickvid.ai</email>
      </address>
    </author>
    <author fullname="Alyssa Joaquin">
      <organization>True3D Technologies Inc.</organization>
      <address>
        <email>alyssa.joaquin@gmail.com</email>
      </address>
    </author>

    <date year="2024" month="September" day="06"/>

    <area>AREA</area>
    <workgroup>WG Working Group</workgroup>
    <keyword>next generation</keyword> <keyword>unicorn</keyword> <keyword>sparkling distributed ledger</keyword>

    <abstract>


<?line 77?>

<t>This document proposes the VoxelVideo format, a file structure designed specifically for the efficient handling, playback, and livestreaming of 3D voxel-based videos. The format is intended for applications in gaming, virtual reality, live sports, and interactive media, providing a robust framework for managing complex 3D data with spatial precision and color fidelity. This document describes the current JSON-based version and outlines future plans to adopt a more efficent, compressed format.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://example.com/LATEST"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-habib-voxelvideo/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        WG Working Group mailing list (<eref target="mailto:WG@example.com"/>),
        which is archived at <eref target="https://example.com/WG"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/voxelvideos/voxel-video-file-format"/>.</t>
    </note>


  </front>

  <middle>


<?line 81?>

<section anchor="introduction"><name>Introduction</name>

<t>The VoxelVideo format addresses the need for an efficient and scalable method to handle, render, and stream 3D voxel-based videos. Existing video formats are not optimized for the distinct characteristics of voxel data, such as spatial precision and color fidelity in three dimensions. The VoxelVideo format is tailored for use in applications like gaming, virtual reality, live sports, and interactive media, where real-time manipulation and playback of complex 3D content are essential. This document describes the JSON-based format and outlines future enhancements, including the adoption of a compressed binary format aimed at improving performance and reducing file sizes.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>This document uses the following terms:</t>

<t><list style="symbols">
  <t><strong>Voxel</strong>: a three-dimensional pixel representing a point in 3D space with associated attributes such as color <xref target="AES"></xref>.</t>
  <t><strong>I-frame (Intra-coded frame)</strong>: A self-contained video frame that fully represents the voxel grid.</t>
  <t><strong>P-frame (Predicted frame)</strong>: A video frame which contains only information on the differences from previous frames.</t>
</list></t>

</section>
<section anchor="voxelvideo-format-overview"><name>VoxelVideo Format Overview</name>

<t>The VoxelVideo format utilizes a JSON-based structure to organize 3D voxel data, facilitating efficient playback and manipulation. It is designed to be straightforward to implement, with a focus on clarity and accessibility in its initial version. Future iterations will shift towards a compressed binary format to enhance scalability and performance.</t>

</section>
<section anchor="file-structure-and-key-components"><name>File Structure and Key Components</name>

<t>The current structure of the VoxelVideo is as follows:</t>

<figure><sourcecode type="typescript"><![CDATA[
export default interface VoxelVideoData {
  Version: number;        // Specifies the version of the file format
  Framerate: number;      // Frames per second
  Framecount: number;     // Total number of frames
  Duration: number;       // Total duration of the video in seconds
  Dimensions: {           // Dimensions of the voxel matrix
    x: number;            // Width in voxels
    y: number;            // Height in voxels
    z: number;            // Depth in voxels
  };
  Title: string;          // Title of the video
  Blocks: (string | null)[][]; // 3D array representing the voxel grid
}
]]></sourcecode></figure>

<section anchor="version"><name>Version</name>

<t>The <spanx style="verb">Version</spanx> field ensures compatibility across different iterations of the format.</t>

</section>
<section anchor="playback-metadata"><name>Playback Metadata</name>

<t>Metadata fields like <spanx style="verb">Framerate</spanx>, <spanx style="verb">Framecount</spanx>, and <spanx style="verb">Duration</spanx> provide
essential information for correct playback of the video content.</t>

</section>
<section anchor="voxel-dimensions"><name>Voxel Dimensions</name>

<t><spanx style="verb">Dimensions</spanx> defines the size of the voxel space, specifying the width, height,
and depth necessary for rendering.</t>

</section>
<section anchor="title"><name>Title</name>

<t>The <spanx style="verb">Title</spanx> field serves to identify the content of the video, for
easier cataloging and retrieval.</t>

</section>
<section anchor="blocks-array"><name>Blocks Array</name>

<t>The <spanx style="verb">Blocks</spanx> array represents the 3D voxel grid as a nested array, where each inner array corresponds to a frame of the video. Within each frame, the arrays represent slices of the voxel space at varying depths, providing a structured representation of the 3D voxel data across the entire frame.</t>

</section>
</section>
<section anchor="frame-types-and-future-enhancements"><name>Frame Types and Future Enhancements</name>

<t>Currently, the VoxelVideo format utilizes I-frames, where each frame is a complete voxel grid independent of other frames. Future versions will include P-frames, which will encode changes between frames to reduce file size and improve streaming efficiency in 3D environments.</t>

</section>
<section anchor="interpretation-of-the-blocks-array"><name>Interpretation of the Blocks Array</name>

<t>To interpret the <spanx style="verb">Blocks</spanx> array, read the voxel grid plane by plane, starting at the top-left corner of the first plane (height 0), proceeding row by row from left to right. After completing all rows of a plane, move up to the next plane and repeat the process until all planes are read.</t>

</section>
<section anchor="potential-use-cases"><name>Potential Use Cases</name>

<t>The VoxelVideo format is suitable for scenarios requiring real-time interaction and manipulation of 3D video content. Use cases include immersive virtual reality environments where live 3D voxel video streaming can deliver spatially precise and dynamic visual data. The format is also applicable in education simulations that require high-fidelity 3D visualizations for teaching concepts in fields such as medicine, engineering, and environmental science. Interactive gaming environments can utilize the VoxelVideo format to represent 3D voxel data, allowing for the creation of fully manipulable virtual worlds that support complex interactions within the game environment.</t>

<t>In additon, the VoxelVideo format may be used in live sports broadcasting to generate 3D replays and visualizations, enabling viewers to observe events from various perspectives and analyze the content interactively. This capability can provide additional insights beyond traditional 2D video formats.</t>

<t>The VoxelVideo format supports livestreaming using Dynamic Adaptive Streaming over HTTP (DASH), similar to its application for 2D videos. This approach allows for efficient and scalable delivery of 3D voxel video content across various devices and network conditions by segmenting videos into smaller parts and encoding each segment at different quality levels.</t>

</section>
<section anchor="future-directions"><name>Future Directions</name>

<t>The current version of the VoxelVideo format (version 0.0), utilizes a JSON-based structure designed for simplicity and ease of use, facilitating initial development and experimentation. Future iterations will focus on enhancing performance and scalability by transitioning to a compressed binary format, aiming to reduce file sizes and improve data storage and retrieval efficiency. Additionally, future versions will explore the implementation of P-frames to encode changes between frames, further optimizing file size and playback performance. These enhancements are intended to expand the format's capabilities, providing a more robust solution for managing and delivering 3D voxel-based video content at scale.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This document does not specifically address security considerations. It is important for implementers of the VoxelVideo format to consider the potential security implications associated with processing untrusted voxel data. Implementers should account for the worst-case scenarios in terms of computational complexity, memory usage, and required processing resources when handling voxel data, especially in contexts like livestreaming where inputs may be dynamic and unverified.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA actions.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="AES" >
  <front>
    <title>A methodology to design a 3D graphic editor for micro-modeling of fiber-reinforced composite parts</title>
    <author initials="C. I." surname="Shchurova" fullname="Catherine I. Shchurova">
      <organization></organization>
    </author>
    <date year="2015"/>
  </front>
  <seriesInfo name="Journal" value="Advances in Engineering Software, Volume 90, December 2015, Pages 76-82"/>
</reference>


    </references>

</references>



  </back>

<!-- ##markdown-source:
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

-->

</rfc>

