8.2 Material schema

8.2.1 Overview

This is the documentation about the JSON schema file. The actual file is located in the ASAM OpenMATERIAL 3D GitHub repository.

The following diagram shows the hierarchy of the fields defined in this schema. Fields marked with (R) are required. A field can be optional while some of its children are required. In that case, the required children only have to be filled in if the optional parent field is present.

Diagram

8.2.2 metadata

The key meta information about the material properties.

Type: object
Required: Yes

8.2.2.1 name

The display name of the material, such as 'Red brick' or 'Dark asphalt'.

Type: string
Required: Yes

8.2.2.2 description

Short description of the material in two to three sentences.

Type: string
Required: No

8.2.2.3 uuid

Universally unique identifier for the material in 8-4-4-4-12 format, see [12]. The uuid stays the same, even if version is updated.

Type: string
Pattern: \b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\b$
Required: Yes

8.2.2.4 materialVersion

The version number of the material, following semantic versioning (for example, '1.0.0').

Type: string
Pattern: ^\d+\.\d+\.\d+$
Required: Yes

8.2.2.5 openMaterial3dVersion

The version of the ASAM OpenMATERIAL 3D specification used, adhering to semantic versioning (for example, '1.0.0').

Type: string
Pattern: ^\d+\.\d+\.\d+$
Required: Yes

8.2.2.6 copyrights

Indicates copyright details, including the year and copyright holder (for example, '© 2024 ACME Inc.').

Type: array
Item count: at least 1
Item type: string
Required: Yes

8.2.2.7 license

Describes the license for material distribution. Use an SPDX identifier for open-source licenses (for example, 'MIT'), or provide a URL or filename for proprietary licenses.

Type: string
Required: Yes

8.2.2.8 authors

Lists the author(s) of the material as a name, email, or company.

Type: array
Item count: at least 1
Item type: string
Required: Yes

8.2.2.9 creationDate

The date and time of material creation, formatted as YYYYMMDDTHHMMSSZ according to ISO 8601 [8] (for example, '20240703T101728Z').

Type: string
Pattern: ^\d{8}T\d{6}Z$
Required: No

8.2.3 materialProperties

Properties related to the material.

Type: object
Required: Yes

8.2.3.1 surfaceRoughness

Information about the surface roughness of the material.

Type: object
Required: No

8.2.3.1.1 surfaceHeightRms

Root mean square of the surface height deviations, also called RMS roughness. This is a vertical measure of roughness. Unit: meter (m).

Type: number
Range: [0, inf[
Required: Yes

8.2.3.1.2 surfaceCorrelationLength

Correlation length of the surface height deviations, that is, the distance after which the autocorrelation function has dropped to 1/e. This is a horizontal measure of roughness. Unit: meter (m).

Type: number
Range: [0, inf[
Required: Yes

8.2.3.1.3 sources

Sources of the surface roughness data. Multiple sources should be comma-separated.

Type: string
Required: Yes

8.2.3.2 emissivityData

Emissivity data of the material.

Type: object
Required: No

8.2.3.2.1 emissivityCoefficient

Emissivity describes the ability to emit energy as thermal radiation. It is given as the fraction of thermal radiation emitted by a surface relative to the radiation emitted by an ideal black body at the same temperature. The hemispherical total emissivity is used here, which considers the full emission over all wavelengths, directions, and polarizations at one particular temperature: ε(T).

Type: number
Range: [0, 1]
Required: Yes

8.2.3.2.2 temperature

Temperature at which the emissivity is measured. Unit: kelvin (K).

Type: number
Range: [0, inf[
Required: Yes

8.2.3.2.3 sources

Sources of the emissivity data. Multiple sources should be comma-separated.

Type: string
Required: Yes

8.2.3.3 elasticityData

Information about the elasticity of the material.

Type: object
Required: No

8.2.3.3.1 youngsModulus

Young’s modulus of the material. Unit: pascal (Pa). The upper limit corresponds to the Young’s modulus of a diamond.

Type: number
Range: [0, 1500000000000]
Required: Yes

8.2.3.3.2 poissonsRatio

Poisson’s ratio of the material.

Type: number
Range: [-1, 0.5]
Required: Yes

8.2.3.3.3 sources

Sources of the elasticity data. Multiple sources should be comma-separated.

Type: string
Required: Yes

8.2.3.4 densityData

Information about the density of the material.

Type: object
Required: No

8.2.3.4.1 density

Density of the material. Unit: kg/m3. The upper limit corresponds to the density of Osmium.

Type: number
Range: [0, 25000]
Required: Yes

8.2.3.4.2 sources

Sources of the density data. Multiple sources should be comma-separated.

Type: string
Required: Yes

8.2.3.5 retroreflectivityData

Information about the retroreflective properties of the material in the visible light spectrum.

Type: object
Required: No

8.2.3.5.1 coefficientOfRetroreflection

Coefficient of retroreflection. Unit: candela per lux per square meter (cd lx-1 m-2).

Type: number
Range: [0, 5000]
Required: Yes

8.2.3.5.2 sources

Sources of the retroreflectivity data. Multiple sources should be comma-separated.

Type: string
Required: Yes

8.2.3.6 electromagneticPropertiesUri

Relative or absolute file path to a property look-up table file with electromagnetic material properties. For cross-platform compatibility, Unix-style paths are recommended.

Type: string
Pattern: .*_emp\.xompt$
Required: No

8.2.3.7 opticalPropertiesUri

Relative or absolute file path to a property look-up table file with optical material properties. For cross-platform compatibility, Unix-style paths are recommended.

Type: string
Pattern: .*_optical\.xompt$
Required: No

8.2.3.8 brdfUris

Relative or absolute file paths to one or multiple property look-up table files with wavelength-dependent bidirectional reflectance distribution functions. For cross-platform compatibility, Unix-style paths are recommended.

Type: array
Item type: string
Item pattern: .*_brdf\.xompt$
Required: No

8.2.3.9 reflectionCoefficientUris

Relative or absolute file paths to one or multiple property look-up table files with wavelength-dependent reflection coefficient values. For cross-platform compatibility, Unix-style paths are recommended.

Type: array
Item type: string
Item pattern: .*_reflCoeff\.xompt$
Required: No

8.2.3.10 customProperties

Non-standardized material properties for custom tools or tool chains.

Type: object
Required: No