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"...

Updated over 3 weeks ago

material.json

Copy 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?