<?xml version='1.0' encoding='utf-8'?>
<PRONOM-Report xmlns="http://pronom.nationalarchives.gov.uk">
  <report_format_detail>
    <FileFormat>
      <FormatID>2020</FormatID>
      <FormatName>Wavefront OBJ File</FormatName>
      <FormatVersion> </FormatVersion>
      <FormatAliases> </FormatAliases>
      <FormatFamilies> </FormatFamilies>
      <FormatTypes>Model</FormatTypes>
      <FormatDisclosure> </FormatDisclosure>
      <FormatDescription>OBJ is an ASCII format for representing 3D geometry. The OBJ format supports both polygonal objects and free-form objects. Polygonal geometry uses points, lines, and faces to define objects while free-form geometry uses curves and surfaces.</FormatDescription>
      <BinaryFileFormat> </BinaryFileFormat>
      <ByteOrders> </ByteOrders>
      <ReleaseDate> </ReleaseDate>
      <WithdrawnDate> </WithdrawnDate>
      <ProvenanceSourceID>170</ProvenanceSourceID>
      <ProvenanceName>Archaeology Data Service / Archaeology Data Service</ProvenanceName>
      <ProvenanceSourceDate>17 Aug 2018</ProvenanceSourceDate>
      <ProvenanceDescription>08/2023- Modified BOF signature to increase two of the byte ranges. Submitted by Preservica.</ProvenanceDescription>
      <LastUpdatedDate>15 Aug 2023</LastUpdatedDate>
      <FileFormatIdentifier>
        <Identifier>fmt/1210</Identifier>
        <IdentifierType>PUID</IdentifierType>
      </FileFormatIdentifier>
      <ExternalSignature>
        <ExternalSignatureID> </ExternalSignatureID>
        <Signature>obj</Signature>
        <SignatureType>File extension</SignatureType>
      </ExternalSignature>
      <InternalSignature>
        <SignatureID>1588</SignatureID>
        <SignatureName>Wavefront OBJ Polygonal Geometry</SignatureName>
        <SignatureNote>BOF:0-1024 (can be unlimited preamble, but we want to anchor near the beginning of the file for most cases). 
Must have vertices:
v &lt;space&gt; 3 x space separated floating point values that can have a negative value or not representing x, y, z. w is optional, line ending.
Later, the vertices must have a face:
f &lt;space&gt; 3+ integer values, can be negative, separated by space. Faces count from 1. PRONOM uses this minimally viable set, however each face can have values for ‘vertex textures’ and ‘vertex normals’ - if present, these values are separated by /. Each row ends in new line character</SignatureNote>
        <ByteSequence>
          <ByteSequenceID>1</ByteSequenceID>
          <PositionType>Absolute from BOF</PositionType>
          <Offset>0</Offset>
          <MaxOffset>1024</MaxOffset>
          <IndirectOffsetLocation> </IndirectOffsetLocation>
          <IndirectOffsetLength> </IndirectOffsetLength>
          <Endianness> </Endianness>
          <ByteSequenceValue>7620{0-8}[30:39]2E[30:39]{0-32}20{0-8}[30:39]2E[30:39]{0-32}20{0-8}[30:39]2E[30:39]{0-64}0A*6620{0-1}[31:39]{0-20}20{0-1}[31:39]{0-20}20{0-1}[31:39]{0-40}0A</ByteSequenceValue>
        </ByteSequence>
      </InternalSignature>
    </FileFormat>
  </report_format_detail>
</PRONOM-Report>