ADR-0034 Storage Path Scheme Update

Publication Date2022-05-23
Last Update2022-06-27
StatusAccepted
AmendsADR-0021 Storage Path Scheme

Context

Updates on storage paths for all Use Cases in order to more properly reflect on the final applications / services and their operation.

Conclusion

Storage Access Paths in Use Cases

Use Case 1

Changes in contrast with the previous version of UC3 storage path scheme:

  • Animation, Avatar, Garment and Storage files are no longer required to be saved in Storage, as they are prebaked in the Unity Application in the form of alembic files.
  • No scan functionality is implemented so no need for Scanatar files to be saved in Storage.

Therefore no Storage will be utilized for Use Case 1.

Use Case 2

Filename Description Type Folder Path
avatar-file-{timestamp} The Metail avatar that is created for each user .bin(*) avatar>user>{userID}
garment-file-{group_id} The garment 3D design file .bw garment>internal
user-media-{timestamp} A photo taken by the user .jpg collection>user>{userID}
output-{timestamp} The synthesized image, output from the platform .jpg collection>user>{userID}
scanatar-file-{timestamp} A temporary 3D Object .ply qcscan>user>{userID}
scanatar-meta-{timestamp} A JSON file that features details about the Scanatar .json qcmeta>user>{userID}

(*) The bin file is a proprietary Metail format. For every photograph submitted by the user, we will apply its pose to the bin file and generate a temporary FBX file that will be used in VStitcher to dress the avatar with the selected garment. See UC2 architecture diagram for details.

Use Case 3

Changes in contrast with the previous version of UC3 storage path scheme:

  • Avatar files are no longer needed to be saved in storage. They are included in the mobile application.
  • A garment file is now a container that features fbx, texture and obi files.
  • Texture files are no longer needed to be saved in storage. They are included inside the garment asset bundles.
  • Scanatar files are no longer required because there will be no scan function in the application.
Filename Description Type Folder Path
garment-file-{timestamp} The garment asset bundle file. It’s a no filetype file that is read by Unity and contains fbx, texture and obi files. no filetype garment>shared
photo-{documentID}-{timestamp} Photos that are saved by the user when trying on a garment using the camera .jpg photos>user>{userID}

Term Index

  • documentID: Google Firestore Database saves and handles data into Collections. Data entries written in a collection are assigned a unique id. This ID is used in Firebase Storage to connect assets to collection items.
  • userID: Each registered user has a unique identifier in Firestore Database. This user id is used in some parts in Firebase Storage path scheme to denote ownership of assets.
  • timestamp: The timestamp is expressed in milliseconds since the Unix Epoch.
  • group_id: An identifier (group_id field also in Firestore) of a garment size set bw file.