{
  "schema": "gefjunscene.report/1",
  "tool": "GefjunScene 1.0.1",
  "generated_utc": "2026-10-31T15:03:53+00:00",
  "context": {
    "title": "BarStool_fixed",
    "blend_file": "bar_stool_problem.blend",
    "blender_version": "4.5.14 LTS",
    "export_set": "collection 'BarStool'",
    "listing": {
      "width": 38.0,
      "depth": 38.0,
      "height": 78.0,
      "unit": "cm"
    },
    "tolerance_pct": 3.0,
    "placement": "FLOOR",
    "fixes_applied": {
      "reset_specular": [
        "Oak Seat: Specular IOR Level 0.5, Specular Tint white"
      ],
      "single_sided": [
        "Oak Seat: Backface Culling on",
        "Black Steel: Backface Culling on"
      ],
      "floor_origin": [
        "Moved 8 root object(s) by (-0.0000, -0.0000, -0.0500) m"
      ],
      "constant_maps": [
        "Oak Seat: Metallic/Roughness -> Oak_Seat_metal_rough.png (G=roughness, B=metallic)",
        "Black Steel: Base Color -> Black_Steel_basecolor.png",
        "Black Steel: Metallic/Roughness -> Black_Steel_metal_rough.png (G=roughness, B=metallic)"
      ],
      "pot_textures": [
        "oak_seat_3000x2000.jpg 3000x2000 -> oak_seat_3000x2000_2048px.jpg 2048x2048 (original untouched)"
      ],
      "clear_ext_inputs": [
        "Black Steel: Anisotropic set to 0 (KHR_materials_anisotropy is not allowed)"
      ]
    }
  },
  "profile": {
    "id": "amazon-view-in-3d",
    "name": "Amazon View in 3D / View in Your Room",
    "version": "2026.10",
    "note": "Built from public summaries of Amazon's Seller Central '3D model technical requirements' and from rejection messages quoted on Amazon Seller Forums. Amazon's own page is behind Seller Central and may change; edit a copy of this profile when your seller receives different rules. Passing does not guarantee acceptance: Amazon also reviews realism by hand.",
    "sources": [
      {
        "url": "https://sellercentral.amazon.com/seller-forums/discussions/t/5369e5bc-b31e-4655-9c32-dd3d4e5c213e",
        "date": "~2023 (Amazon staff reply; verified 2026-10-01)",
        "used_for": "Amazon staff's list of supported glTF extensions"
      },
      {
        "url": "https://maverickframe.com/blog/3d-model-requirements-amazon-wayfair-shopify/",
        "date": "2026-07-31",
        "used_for": "triangles, texture size/square/power of two, maps, Y-up, floor, no cameras/lights/animation, no double-sided"
      },
      {
        "url": "https://www.vntana.com/resource/amazon-integration/",
        "date": "undated (read 2026-10-01)",
        "used_for": "allowed glTF extensions, 75k recommended triangles, UVs in 0-1"
      },
      {
        "url": "https://sellercentral.amazon.co.uk/seller-forums/discussions/t/3200b156-abf3-492a-a860-7ea0a529681a",
        "date": "~2024",
        "used_for": "hard limit 1,000,000 triangles; 150k-200k expected"
      },
      {
        "url": "https://sellercentral.amazon.in/seller-forums/discussions/t/d30a6309-1e89-453a-a7c5-e1337a3fb1c5",
        "date": "2023-10-11",
        "used_for": "rejection 'Unsupported extensions found: KHR_materials_specular'"
      },
      {
        "url": "https://blog.neural4d.com/image-to-3d/3d-product-rendering-for-ecommerce-amazon-glb-guide-2026/",
        "date": "2026-08",
        "used_for": "5 MB file size (advisory only: other sources say no published limit)"
      }
    ]
  },
  "summary": {
    "counts": {
      "FAIL": 0,
      "WARN": 2,
      "INFO": 1,
      "PASS": 17
    },
    "verdict": "READY WITH WARNINGS"
  },
  "findings": [
    {
      "code": "GLB-UV",
      "severity": "WARN",
      "title": "UVs reach outside 0-1 (U -0.000..1.231, V 0.000..1.000)",
      "detail": "Pack UVs into the 0-1 square (one atlas).",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "UV-RANGE",
      "severity": "WARN",
      "title": "UVs outside 0-1 on 1 object(s)",
      "detail": "Pack the islands into the 0-1 square (one atlas).",
      "targets": [
        {
          "kind": "object",
          "name": "Seat"
        }
      ],
      "fix": "",
      "stage": "scene"
    },
    {
      "code": "SET-EXCLUDED",
      "severity": "INFO",
      "title": "2 camera/light object(s) will be left out of the GLB",
      "detail": "GefjunScene exports without cameras and lights.",
      "targets": [
        {
          "kind": "object",
          "name": "ProductCam"
        },
        {
          "kind": "object",
          "name": "KeyLight"
        }
      ],
      "fix": "",
      "stage": "scene"
    },
    {
      "code": "GLB-ANIM",
      "severity": "PASS",
      "title": "No animations",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "GLB-BOUNDS",
      "severity": "PASS",
      "title": "Product rests on Y=0",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "GLB-CAMERAS",
      "severity": "PASS",
      "title": "No cameras",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "GLB-DIMS",
      "severity": "PASS",
      "title": "Dimensions match the listing within 3.0%",
      "detail": "width 0.38 m (38.0 cm / 14.96 in) vs 0.38 m (38.0 cm / 14.96 in) (-0.0%); depth 0.38 m (38.0 cm / 14.96 in) vs 0.38 m (38.0 cm / 14.96 in) (-0.0%); height 0.78 m (78.0 cm / 30.71 in) vs 0.78 m (78.0 cm / 30.71 in) (+0.0%)",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "GLB-DOUBLE",
      "severity": "PASS",
      "title": "All materials are single-sided",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "GLB-EXT",
      "severity": "PASS",
      "title": "Extensions used: none",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "GLB-HEADER",
      "severity": "PASS",
      "title": "GLB container and JSON chunk are well formed",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "GLB-LIGHTS",
      "severity": "PASS",
      "title": "No lights",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "GLB-MAPS",
      "severity": "PASS",
      "title": "Every material has the required texture maps",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "GLB-SIZE",
      "severity": "PASS",
      "title": "File size 0.66 MB",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "GLB-TEX",
      "severity": "PASS",
      "title": "4 image(s) meet the texture rules",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "GLB-TRIS",
      "severity": "PASS",
      "title": "2,924 triangles",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "glb"
    },
    {
      "code": "DIM-MATCH",
      "severity": "PASS",
      "title": "Size matches the listing within 3.0%",
      "detail": "width 0.38 m (38.0 cm / 14.96 in) vs 0.38 m (38.0 cm / 14.96 in) (-0.0%); depth 0.38 m (38.0 cm / 14.96 in) vs 0.38 m (38.0 cm / 14.96 in) (-0.0%); height 0.78 m (78.0 cm / 30.71 in) vs 0.78 m (78.0 cm / 30.71 in) (+0.0%)",
      "targets": [],
      "fix": "",
      "stage": "scene"
    },
    {
      "code": "GEO-TRIS",
      "severity": "PASS",
      "title": "2,924 triangles after modifiers",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "scene"
    },
    {
      "code": "MAT-PBR",
      "severity": "PASS",
      "title": "2 material(s) translate to allowed glTF PBR",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "scene"
    },
    {
      "code": "PLC-FLOOR",
      "severity": "PASS",
      "title": "Product rests on Z=0, centred at the origin",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "scene"
    },
    {
      "code": "TEX-SIZE",
      "severity": "PASS",
      "title": "4 texture(s) checked",
      "detail": "",
      "targets": [],
      "fix": "",
      "stage": "scene"
    }
  ],
  "scene_facts": {
    "export_set": "collection 'BarStool'",
    "objects": 6,
    "triangles": 2924,
    "size_m": [
      0.3799999952316284,
      0.3799999952316284,
      0.7800000533461571
    ],
    "materials": 2,
    "images": 4,
    "bounds_min": [
      -0.1899999976158142,
      -0.1899999976158142,
      0.0
    ],
    "bounds_max": [
      0.1899999976158142,
      0.1899999976158142,
      0.7800000533461571
    ]
  },
  "glb_facts": {
    "path": "BarStool_fixed.glb",
    "size_bytes": 656732,
    "sha256": "c22b9958539e4fba5009b95b3b5bb51c7b38e6225a9d66a3836a7fde7cd69d12",
    "generator": "Khronos glTF Blender I/O v4.5.51",
    "extensions_used": [],
    "extensions_required": [],
    "triangles": 2924,
    "bounds_min": [
      -0.1899999976158142,
      0.0,
      -0.1899999976158142
    ],
    "bounds_max": [
      0.1899999976158142,
      0.7800000533461571,
      0.1899999976158142
    ],
    "size_m": [
      0.3799999952316284,
      0.7800000533461571,
      0.3799999952316284
    ],
    "uv_range": [
      [
        -1.862645149230957e-07,
        0.0
      ],
      [
        1.2312397956848145,
        1.0
      ]
    ],
    "meshes": 6,
    "instanced_meshes": 6,
    "nodes": 6,
    "cameras": 0,
    "camera_nodes": 0,
    "animations": 0,
    "skins": 0,
    "morph_targets": 0,
    "primitives_without_material": 0,
    "images": [
      {
        "index": 0,
        "name": "oak_seat_3000x2000_2048px",
        "declared_mime": "image/jpeg",
        "mime": "image/jpeg",
        "width": 2048,
        "height": 2048,
        "bytes": 399241,
        "storage": "embedded"
      },
      {
        "index": 1,
        "name": "Oak_Seat_metal_rough",
        "declared_mime": "image/png",
        "mime": "image/png",
        "width": 2048,
        "height": 2048,
        "bytes": 59505,
        "storage": "embedded"
      },
      {
        "index": 2,
        "name": "Black_Steel_basecolor",
        "declared_mime": "image/png",
        "mime": "image/png",
        "width": 2048,
        "height": 2048,
        "bytes": 59508,
        "storage": "embedded"
      },
      {
        "index": 3,
        "name": "Black_Steel_metal_rough",
        "declared_mime": "image/png",
        "mime": "image/png",
        "width": 2048,
        "height": 2048,
        "bytes": 59507,
        "storage": "embedded"
      }
    ],
    "materials": [
      {
        "index": 0,
        "name": "Oak Seat",
        "base_color_texture": true,
        "metallic_roughness_texture": true,
        "double_sided": false,
        "alpha_mode": "OPAQUE",
        "extensions": []
      },
      {
        "index": 1,
        "name": "Black Steel",
        "base_color_texture": true,
        "metallic_roughness_texture": true,
        "double_sided": false,
        "alpha_mode": "OPAQUE",
        "extensions": []
      }
    ],
    "notes": []
  },
  "disclaimer": "GefjunScene checks a scene and GLB against the selected profile. Profiles are compiled from public sources with dates; retailers can change their rules, and Amazon also reviews quality by hand. A READY verdict is not a guarantee of acceptance. GefjunScene is not affiliated with Amazon or Shopify."
}
