Skip to main content

material_v2_0.json

material.json Copy Json { "$schema": "http://json-schema.org/draft-04/schema#", "definitions": { "texture_map": { "type": "object"...

material_v2_0.json

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "definitions": {
    "texture_map": {
      "type": "object",
      "properties": {
        "image_path": {
          "type": "string",
          "default": ""
        },
        "tile_mode": {
          "enum": [
            "normal",
            "auto_size",
            "mirror_x",
            "mirror_y",
            "mirror_xy"
          ]
        },
        "rotation_angle": {
          "type": "number"
        },
        "layout_angle": {
          "type": "number"
        },
        "dpi": {
          "type": "integer",
          "minimum": 0
        },
        "dpi_h": {
          "type": "integer",
          "minimum": 0
        },
        "crop": {
          "type": "object",
          "properties": {
            "x": {
              "type": "number",
              "minimum": 0
            },
            "y": {
              "type": "number",
              "minimum": 0
            },
            "width": {
              "type": "number",
              "minimum": 0
            },
            "height": {
              "type": "number",
              "minimum": 0
            }
          },
          "required": [
            "x",
            "y",
            "width",
            "height"
          ]
        },
        "mip_map": {
          "type": "boolean"
        },
        "flip_x": {
          "type": "boolean"
        },
        "flip_y": {
          "type": "boolean"
        }
      },
      "required": [
        "image_path"
      ]
    },
    "diffuse": {
      "type": "object",
      "properties": {
        "texture_map": {
          "$ref": "#/definitions/texture_map"
        },
        "color": {
          "$ref": "../../v1.0/color/color.json"
        },
        "blend_mode": {
          "enum": [
            "overlay",
            "multiply",
            "recolor"
          ]
        }
      },
      "required": [
        "texture_map"
      ]
    },
    "specular": {
      "type": "object",
      "properties": {
        "texture_map": {
          "$ref": "#/definitions/texture_map"
        },
        "color": {
          "$ref": "../../v1.0/color/color.json"
        },
        "spread": {
          "type": "number"
        },
        "inherit": {
          "enum": [
            "independent",
            "diffuse"
          ]
        }
      },
      "required": [
        "spread",
        "color"
      ]
    },
    "normal": {
      "type": "object",
      "properties": {
        "texture_map": {
          "$ref": "#/definitions/texture_map"
        },
        "depth": {
          "type": "number"
        },
        "inherit": {
          "enum": [
            "independent",
            "diffuse",
            "specular"
          ]
        }
      },
      "required": [
        "depth"
      ]
    },
    "channel": {
      "type": "object",
      "properties": {
        "diffuse": {
          "$ref": "#/definitions/diffuse"
        },
        "specular": {
          "$ref": "#/definitions/specular"
        },
        "normal": {
          "$ref": "#/definitions/normal"
        }
      },
      "required": [
        "diffuse"
      ]
    },
    "vect3d": {
      "type": "object",
      "properties": {
        "x": {
          "type": "number"
        },
        "y": {
          "type": "number"
        },
        "z": {
          "type": "number"
        }
      },
      "required": [
        "x",
        "y",
        "z"
      ]
    },
    "side": {
      "type": "object",
      "properties": {
        "diffuse": {
          "$ref": "#/definitions/diffuse"
        },
        "specular": {
          "$ref": "#/definitions/specular"
        },
        "normal": {
          "$ref": "#/definitions/normal"
        },
        "transparency": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        }
      }
    },
    "common_material": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "metadata": {
          "type": "object"
        },
        "user_information": {
          "type": "string"
        },
        "front": {
          "$ref": "#/definitions/side"
        },
        "back": {
          "$ref": "#/definitions/side"
        }
      },
      "required": [
        "name",
        "type",
        "front"
      ]
    },
    "marker": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "pos": {
          "$ref": "#/definitions/vect3d"
        }
      },
      "required": [
        "pos",
        "name"
      ]
    },
    "edge": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "markers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/marker"
          },
          "minimum": 2
        }
      },
      "required": [
        "name"
      ]
    }
  },
  "oneOf": [
    {
      "type": "object",
      "allOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "fabric"
              ]
            },
            "physics": {
              "$ref": "../../v1.0/material/physics.json"
            }
          }
        },
        {
          "$ref": "#/definitions/common_material"
        }
      ]
    },
    {
      "type": "object",
      "allOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "seam",
                "trim_edge"
              ]
            },
            "blend_mode": {
              "enum": [
                "overlay",
                "multiply",
                "normal"
              ]
            },
            "thickness": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            "finish_effect": {
              "enum": [
                "none",
                "flat",
                "rounded",
                "double_rounded"
              ]
            },
            "hide_background": {
              "type": "boolean"
            }
          }
        },
        {
          "$ref": "#/definitions/common_material"
        }
      ]
    },
    {
      "type": "object",
      "allOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "artwork"
              ]
            },
            "blend_mode": {
              "enum": [
                "overlay",
                "multiply",
                "normal"
              ]
            },
            "print_execution": {
              "type": "string"
            },
            "hide_background": {
              "type": "boolean"
            },
            "physics": {
              "$ref": "../../v1.0/material/physics.json"
            }
          }
        },
        {
          "$ref": "#/definitions/common_material"
        }
      ]
    },
    {
      "type": "object",
      "allOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "trim"
              ]
            },
            "blend_mode": {
              "enum": [
                "overlay",
                "multiply",
                "normal"
              ]
            },
            "hide_background": {
              "type": "boolean"
            },
            "physics": {
              "$ref": "../../v1.0/material/physics.json"
            }
          }
        },
        {
          "$ref": "#/definitions/common_material"
        }
      ]
    },
    {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "trim3d"
              ]
            },
            "channels": {
              "type": "array",
              "items": {
                "channel": {
                  "$ref": "#/definitions/channel"
                }
              }
            },
            "path": {
              "type": "string"
            },
            "mass": {
              "type": "number",
              "minimum": 0
            },
            "up_axis": {
              "type": "integer"
            },
            "front_axis": {
              "type": "integer"
            },
            "vertical": {
              "type": "integer",
              "minimum": 1,
              "maximum": 6
            },
            "facing": {
              "enum": [
                0,
                90,
                180,
                270
              ]
            },
            "mirror": {
              "type": "boolean"
            },
            "scale": {
              "$ref": "#/definitions/vect3d"
            },
            "markers": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/marker"
              }
            },
            "edges": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/edge"
              }
            },
            "transparency": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            }
          },
          "required": [
            "type",
            "path"
          ]
        },
        {
          "$ref": "#/definitions/common_material"
        }
      ]
    }
  ]
}

Did this answer your question?