{
  "schema": "forge.material-shelf.v1",
  "materials": {
    "Granite_lime_moss": {
      "tile_size_metres": 2.25,
      "maps": {
        "BaseColor": "materials/Granite_lime_moss/BaseColor.png",
        "Normal": "materials/Granite_lime_moss/Normal.png",
        "ORM": "materials/Granite_lime_moss/ORM.png"
      },
      "resolution": 1024,
      "normal_convention": "OpenGL tangent +Y",
      "roughness_factor": 1.0,
      "metalness_factor": 1.0,
      "ORM_channels": {
        "R": "occlusion",
        "G": "roughness",
        "B": "metallic"
      },
      "wrap": "REPEAT",
      "color_space": {
        "BaseColor": "sRGB",
        "Normal": "linear",
        "ORM": "linear"
      },
      "displacement_scale_metres": 0.105,
      "displacement_bias_metres": 0.006,
      "height_map": "materials/Granite_lime_moss/Height.png",
      "height_formula": "outward_metres = 0.006 + sampled_Height * 0.105",
      "height_repeat_metres": 2.25,
      "height_encoding": "16-bit grayscale; original scan extrema normalized 0..1 after periodic seam correction"
    },
    "Dressed_granite": {
      "tile_size_metres": 1.6,
      "maps": {
        "BaseColor": "materials/Dressed_granite/BaseColor.png",
        "Normal": "materials/Dressed_granite/Normal.png",
        "ORM": "materials/Dressed_granite/ORM.png"
      },
      "resolution": 1024,
      "normal_convention": "OpenGL tangent +Y",
      "roughness_factor": 1.0,
      "metalness_factor": 1.0,
      "ORM_channels": {
        "R": "occlusion",
        "G": "roughness",
        "B": "metallic"
      },
      "wrap": "REPEAT",
      "color_space": {
        "BaseColor": "sRGB",
        "Normal": "linear",
        "ORM": "linear"
      }
    },
    "Blue_grey_slate": {
      "tile_size_metres": 3.57,
      "maps": {
        "BaseColor": "materials/Blue_grey_slate/BaseColor.png",
        "Normal": "materials/Blue_grey_slate/Normal.png",
        "ORM": "materials/Blue_grey_slate/ORM.png"
      },
      "resolution": 1024,
      "normal_convention": "OpenGL tangent +Y",
      "roughness_factor": 1.0,
      "metalness_factor": 1.0,
      "ORM_channels": {
        "R": "occlusion",
        "G": "roughness",
        "B": "metallic"
      },
      "wrap": "REPEAT",
      "color_space": {
        "BaseColor": "sRGB",
        "Normal": "linear",
        "ORM": "linear"
      }
    },
    "Breton_blue_timber": {
      "tile_size_metres": 1.0,
      "maps": {
        "BaseColor": "materials/Breton_blue_timber/BaseColor.png",
        "Normal": "materials/Breton_blue_timber/Normal.png",
        "ORM": "materials/Breton_blue_timber/ORM.png"
      },
      "resolution": 1024,
      "normal_convention": "OpenGL tangent +Y",
      "roughness_factor": 1.0,
      "metalness_factor": 1.0,
      "ORM_channels": {
        "R": "occlusion",
        "G": "roughness",
        "B": "metallic"
      },
      "wrap": "REPEAT",
      "color_space": {
        "BaseColor": "sRGB",
        "Normal": "linear",
        "ORM": "linear"
      }
    },
    "Aged_ivory_frames": {
      "tile_size_metres": 1.0,
      "maps": {
        "BaseColor": "materials/Aged_ivory_frames/BaseColor.png",
        "Normal": "materials/Aged_ivory_frames/Normal.png",
        "ORM": "materials/Aged_ivory_frames/ORM.png"
      },
      "resolution": 512,
      "normal_convention": "OpenGL tangent +Y",
      "roughness_factor": 1.0,
      "metalness_factor": 1.0,
      "ORM_channels": {
        "R": "occlusion",
        "G": "roughness",
        "B": "metallic"
      },
      "wrap": "REPEAT",
      "color_space": {
        "BaseColor": "sRGB",
        "Normal": "linear",
        "ORM": "linear"
      }
    },
    "Weathered_zinc_iron": {
      "tile_size_metres": 1.0,
      "maps": {
        "BaseColor": "materials/Weathered_zinc_iron/BaseColor.png",
        "Normal": "materials/Weathered_zinc_iron/Normal.png",
        "ORM": "materials/Weathered_zinc_iron/ORM.png"
      },
      "resolution": 512,
      "normal_convention": "OpenGL tangent +Y",
      "roughness_factor": 1.0,
      "metalness_factor": 1.0,
      "ORM_channels": {
        "R": "occlusion",
        "G": "roughness",
        "B": "metallic"
      },
      "wrap": "REPEAT",
      "color_space": {
        "BaseColor": "sRGB",
        "Normal": "linear",
        "ORM": "linear"
      }
    },
    "Old_window_glass": {
      "tile_size_metres": 1.0,
      "maps": {
        "BaseColor": "materials/Old_window_glass/BaseColor.png",
        "Normal": "materials/Old_window_glass/Normal.png",
        "ORM": "materials/Old_window_glass/ORM.png"
      },
      "resolution": 512,
      "normal_convention": "OpenGL tangent +Y",
      "roughness_factor": 1.0,
      "metalness_factor": 1.0,
      "ORM_channels": {
        "R": "occlusion",
        "G": "roughness",
        "B": "metallic"
      },
      "wrap": "REPEAT",
      "color_space": {
        "BaseColor": "sRGB",
        "Normal": "linear",
        "ORM": "linear"
      }
    },
    "Terracotta": {
      "tile_size_metres": 1.0,
      "maps": {
        "BaseColor": "materials/Terracotta/BaseColor.png",
        "Normal": "materials/Terracotta/Normal.png",
        "ORM": "materials/Terracotta/ORM.png"
      },
      "resolution": 512,
      "normal_convention": "OpenGL tangent +Y",
      "roughness_factor": 1.0,
      "metalness_factor": 1.0,
      "ORM_channels": {
        "R": "occlusion",
        "G": "roughness",
        "B": "metallic"
      },
      "wrap": "REPEAT",
      "color_space": {
        "BaseColor": "sRGB",
        "Normal": "linear",
        "ORM": "linear"
      }
    },
    "Granite_lime_moss_base": {
      "tile_size_metres": 2.25,
      "maps": {
        "BaseColor": "materials/Granite_lime_moss_base/BaseColor.png",
        "Normal": "materials/Granite_lime_moss_base/Normal.png",
        "ORM": "materials/Granite_lime_moss_base/ORM.png"
      },
      "resolution": 1024,
      "normal_convention": "OpenGL tangent +Y",
      "roughness_factor": 1.0,
      "metalness_factor": 1.0,
      "ORM_channels": {
        "R": "occlusion",
        "G": "roughness",
        "B": "metallic"
      },
      "wrap": "REPEAT",
      "color_space": {
        "BaseColor": "sRGB",
        "Normal": "linear",
        "ORM": "linear"
      },
      "displacement_scale_metres": 0.105,
      "displacement_bias_metres": 0.006,
      "height_map": "materials/Granite_lime_moss/Height.png",
      "height_formula": "outward_metres = 0.006 + sampled_Height * 0.105",
      "height_repeat_metres": 2.25,
      "height_encoding": "16-bit grayscale; original scan extrema normalized 0..1 after periodic seam correction"
    }
  },
  "moss_lower_zone": {
    "material": "Granite_lime_moss_base",
    "height_metres": 0.9,
    "uv_rule": "Use identical world-surface metre UV coordinates for both granite maps: U=facade_distance/2.25, V=height/2.25. Bind base material on generated wall faces below 0.9 m. For a soft transition, mix the two BaseColor/ORM samples with 1-smoothstep(0.65,0.9,world_height); normal and height are identical. Do not stretch UVs to fit a wall or base band.",
    "normal_and_height_shared": true
  },
  "runtime_binding": "Bind maps by exact material name. BaseColor sRGB; Normal and ORM linear; RepeatWrapping; texture.flipY=false for glTF UVs; normalScale=(1,1), roughness=1, metalness=1 (ORM drives both). AO reads UV0. Geometry UVs already divide by tile size: do not divide or repeat again.",
  "provenance": {
    "license": "CC0",
    "source": "Poly Haven",
    "ids": [
      "rock_wall_09",
      "worn_rock_natural_01",
      "wooden_planks",
      "metal_plate_02",
      "slate_floor_03"
    ],
    "read_only_source": "/root/fal-author/breton-stone-house-v1"
  }
}