searches the current version of every section · esc to close

Viewing this section as of v0.1.27 (tagged 2026-04-02). Go to current →

26.05.02 Artifact Volume

Artifact volume models each artifact as a three-dimensional box. The box then participates in the reconstruction logic, instead of relying on the explicit content of the artifact. For layout modes that use artifact volume, the scale member of the Embedding object SHOULD be ignored and a new member is introduced to Artifact's Metadata:

interface Metadata {
	volume: Volume // OPTIONAL
	// ...
}

where

  • volume is OPTIONAL, and its value MUST be of type Volume. If it is not provided but is needed for the reconstruction logic, the default value MUST be used.

The Volume type object is used to represent the dimensions of the artifact for the reconstruction logic, such as the stacking logic. The Volume type is defined as

type Volume = {
    width: number   // REQUIRED
    length: number  // REQUIRED
    height: number  // REQUIRED
}

where each member is REQUIRED. If the artifact has not been rotated in the scene, then

  • width corresponds to the x-axis in the scene.
  • length corresponds to the y-axis in the scene.
  • height corresponds to the z-axis in the scene.

The default value for volume is 1 for each member of the Volume type.

Implementations SHOULD proportionally scale down oversized artifacts to fit within their volume box, or their volume box multiplied by a factor. The Layout Mode module introduces a new member in FormProperties:

interface FormProperties {
	scaleVolumeMultiplier: number // OPTIONAL
	// ...
}

where

  • scaleVolumeMultiplier is OPTIONAL and its value MUST be of type number. It represents the tolerance for oversized artifacts and the target size of the scale-down, i.e., volume ×\times scaleVolumeMultiplier. If it is not provided, the default value 1 MAY be used, or implementations MAY use their own default value and SHOULD state the default value they use.