Skip to main content

Material

A material as returned by the API. Use prefix_id in URLs. Besides the fields below the object carries URL fields for every stored file: {slot}_url, {slot}_{res}_url and {slot}_ktx2_{res}_url for slot in color_map, normal_map, roughness_map, metalness_map, splat_map, sky_map and res in 512, 1k, 2k, 4k, 8k; {slot}_url for occlusion_map, orm_map, emissive_map, opacity_map, displacement_map; height_map_url and height_map_{256|512|1k|2k|4k}_url. Each is null when the file is missing.

prefix_idstring
Example: material_abc123
idinteger

Internal numeric id; use prefix_id.

user_idinteger
namestring
statusstring
visibilitystring

Possible values: [private, organization, unlisted, public]

organization_idintegernullable
organization_prefix_idstringnullable
y_flipboolean
normal_conventionstring

Possible values: [opengl, directx]

content_versioninteger

Counts changes of what the stable links serve.

parameters object

glTF 2.0 metallic-roughness factors and settings (KHR_materials_* names, as three.js MeshStandardMaterial uses them). Factors multiply the textures; without a texture the factor is the value. Unknown keys, wrong types and out-of-range values are rejected (422). On update a key set to null returns to its default.

baseColorFactornumber[]

Linear RGBA, multiplies base_color. Default [1, 1, 1, 1].

Possible values: >= 4, <= 4

metallicFactornumber

Multiplies orm.B. Default 1 with a metalness or orm source, else 0.

Possible values: >= 0 and <= 1

roughnessFactornumber

Multiplies orm.G. Default 1.

Possible values: >= 0 and <= 1

normalScalenumber

Strength of the normal texture. Default 1.

Possible values: >= -10 and <= 10

occlusionStrengthnumber

How much orm.R darkens. Default 1.

Possible values: >= 0 and <= 1

emissiveFactornumber[]

Linear RGB, multiplies emissive. Default [0, 0, 0], or [1, 1, 1] with an emissive map.

Possible values: >= 3, <= 3

emissiveStrengthnumber

KHR_materials_emissive_strength. Default 1.

Possible values: >= 0 and <= 1000

alphaModestring

Default OPAQUE, or MASK with an opacity map.

Possible values: [OPAQUE, MASK, BLEND]

alphaCutoffnumber

Cutoff for MASK. Default 0.5.

Possible values: >= 0 and <= 1

doubleSidedboolean

Default false.

displacementScalenumber

Metres the displacement texture moves vertices (three.js, not glTF core). Default 0.02.

Possible values: >= -100 and <= 100

displacementBiasnumber

Metres added to the displacement. Default 0.

Possible values: >= -100 and <= 100

effective_parameters object

glTF 2.0 metallic-roughness factors and settings (KHR_materials_* names, as three.js MeshStandardMaterial uses them). Factors multiply the textures; without a texture the factor is the value. Unknown keys, wrong types and out-of-range values are rejected (422). On update a key set to null returns to its default.

baseColorFactornumber[]

Linear RGBA, multiplies base_color. Default [1, 1, 1, 1].

Possible values: >= 4, <= 4

metallicFactornumber

Multiplies orm.B. Default 1 with a metalness or orm source, else 0.

Possible values: >= 0 and <= 1

roughnessFactornumber

Multiplies orm.G. Default 1.

Possible values: >= 0 and <= 1

normalScalenumber

Strength of the normal texture. Default 1.

Possible values: >= -10 and <= 10

occlusionStrengthnumber

How much orm.R darkens. Default 1.

Possible values: >= 0 and <= 1

emissiveFactornumber[]

Linear RGB, multiplies emissive. Default [0, 0, 0], or [1, 1, 1] with an emissive map.

Possible values: >= 3, <= 3

emissiveStrengthnumber

KHR_materials_emissive_strength. Default 1.

Possible values: >= 0 and <= 1000

alphaModestring

Default OPAQUE, or MASK with an opacity map.

Possible values: [OPAQUE, MASK, BLEND]

alphaCutoffnumber

Cutoff for MASK. Default 0.5.

Possible values: >= 0 and <= 1

doubleSidedboolean

Default false.

displacementScalenumber

Metres the displacement texture moves vertices (three.js, not glTF core). Default 0.02.

Possible values: >= -100 and <= 100

displacementBiasnumber

Metres added to the displacement. Default 0.

Possible values: >= -100 and <= 100

metadata object
property name*any
available_texturesstring[]

Runtime textures the material has sources for.

Possible values: [base_color, orm, normal, emissive, displacement, sky]

links object

Stable links per available texture, e.g. {"base_color":{"ktx2":"/m/material_abc123/base_color.ktx2","webp":"/m/material_abc123/base_color.webp"}}.

property name* object
ktx2string
webpstring
manifest_pathstring
Example: /m/material_abc123.json
variants object[]
  • Array [
  • prefix_idstring
    Example: mvar_abc123
    texturestring
    encodingstring
    blockstringnullable
    qualityintegernullable
    effortintegernullable
    max_sizeintegernullable
    y_flipboolean
    statusstring

    Possible values: [pending, processing, ready, failed]

    preferredboolean
    widthintegernullable
    heightintegernullable
    mip_levelsintegernullable
    byte_sizeintegernullable
    psnrnumbernullable
    metadata object
    property name*any
    urlstringnullable

    The encoded KTX2 file, once ready.

    superseded_atstring<date-time>nullable
    created_atstring<date-time>
    updated_atstring<date-time>
  • ]
  • material_preview_urlstringnullable
    material_preview_thumb_urlstringnullable
    created_atstring<date-time>
    updated_atstring<date-time>
    property name*any

    A material as returned by the API. Use prefix_id in URLs. Besides the fields below the object carries URL fields for every stored file: {slot}_url, {slot}_{res}_url and {slot}_ktx2_{res}_url for slot in color_map, normal_map, roughness_map, metalness_map, splat_map, sky_map and res in 512, 1k, 2k, 4k, 8k; {slot}_url for occlusion_map, orm_map, emissive_map, opacity_map, displacement_map; height_map_url and height_map_{256|512|1k|2k|4k}_url. Each is null when the file is missing.

    Material
    {
    "prefix_id": "material_abc123",
    "id": 0,
    "user_id": 0,
    "name": "string",
    "status": "string",
    "visibility": "private",
    "organization_id": 0,
    "organization_prefix_id": "string",
    "y_flip": true,
    "normal_convention": "opengl",
    "content_version": 0,
    "parameters": {
    "baseColorFactor": [
    0
    ],
    "metallicFactor": 0,
    "roughnessFactor": 0,
    "normalScale": 0,
    "occlusionStrength": 0,
    "emissiveFactor": [
    0
    ],
    "emissiveStrength": 0,
    "alphaMode": "OPAQUE",
    "alphaCutoff": 0,
    "doubleSided": true,
    "displacementScale": 0,
    "displacementBias": 0
    },
    "effective_parameters": {
    "baseColorFactor": [
    0
    ],
    "metallicFactor": 0,
    "roughnessFactor": 0,
    "normalScale": 0,
    "occlusionStrength": 0,
    "emissiveFactor": [
    0
    ],
    "emissiveStrength": 0,
    "alphaMode": "OPAQUE",
    "alphaCutoff": 0,
    "doubleSided": true,
    "displacementScale": 0,
    "displacementBias": 0
    },
    "metadata": {},
    "available_textures": [
    "base_color"
    ],
    "links": {},
    "manifest_path": "/m/material_abc123.json",
    "variants": [
    {
    "prefix_id": "mvar_abc123",
    "texture": "string",
    "encoding": "string",
    "block": "string",
    "quality": 0,
    "effort": 0,
    "max_size": 0,
    "y_flip": true,
    "status": "pending",
    "preferred": true,
    "width": 0,
    "height": 0,
    "mip_levels": 0,
    "byte_size": 0,
    "psnr": 0,
    "metadata": {},
    "url": "string",
    "superseded_at": "2024-07-29T15:51:28.071Z",
    "created_at": "2024-07-29T15:51:28.071Z",
    "updated_at": "2024-07-29T15:51:28.071Z"
    }
    ],
    "material_preview_url": "string",
    "material_preview_thumb_url": "string",
    "created_at": "2024-07-29T15:51:28.071Z",
    "updated_at": "2024-07-29T15:51:28.071Z"
    }