{
  "schemaVersion": 1,
  "id": "razer-viper-mini",
  "displayName": "Razer Viper Mini",
  "integrationReady": true,
  "integrationScope": "local-project; CC BY attribution retained; manufacturer marks/redistribution review remains separate",
  "asset": {
    "url": "/assets/elite/razer-viper-mini/razer-viper-mini.glb",
    "format": "glb",
    "bytes": 1718224,
    "sha256": "eb37782bcb16b1015f5464e0e31ec8735198ffd9073d21d76152e0d3208d0048",
    "meshes": 5,
    "primitives": 5,
    "vertices": 16999,
    "triangles": 14478,
    "dimensionsMeters": [
      0.060191452503204346,
      0.041607245802879333,
      0.11829999834299088
    ],
    "boundsMeters": {
      "min": [
        -0.030095726251602173,
        0,
        -0.05914999917149544
      ],
      "max": [
        0.030095726251602173,
        0.041607245802879333,
        0.05914999917149544
      ],
      "dimensions": [
        0.060191452503204346,
        0.041607245802879333,
        0.11829999834299088
      ]
    },
    "coordinateContract": {
      "units": "meters",
      "up": "+Y",
      "front": "-Z (mouse buttons)",
      "bottomY": 0,
      "footprintCenteredXZ": true,
      "verifiedScale": false,
      "calibratedToPublishedLength": true,
      "mapping": "source Z-up; source X long axis -> runtime -Z; source Y -> runtime -X; source Z -> runtime +Y"
    }
  },
  "source": {
    "modelName": "Razer Viper Mini",
    "modelUid": "85e1735704c645e5aaead0278a1038fe",
    "viewerUrl": "https://sketchfab.com/3d-models/razer-viper-mini-85e1735704c645e5aaead0278a1038fe",
    "apiUrl": "https://api.sketchfab.com/v3/models/85e1735704c645e5aaead0278a1038fe",
    "creator": "kimberly.h",
    "creatorProfile": "https://sketchfab.com/kimberly.h",
    "description": "Kimberly Hansuwan 100752265",
    "originalLicense": {
      "uri": "https://api.sketchfab.com/v3/licenses/322a749bcfa841b29dff1e8a1bb74b0b",
      "label": "CC Attribution",
      "fullName": "Creative Commons Attribution",
      "requirements": "Author must be credited. Commercial use is allowed.",
      "url": "http://creativecommons.org/licenses/by/4.0/",
      "slug": "by"
    },
    "retainedInputFiles": [
      {
        "name": "model.json",
        "path": "artifacts/mouse-deep-dive-2026-09-13/public-viper-mini/model.json",
        "bytes": 4844,
        "sha256": "7f7ab5982165d6f97240a4b834ad5bd73d71b55bbbd7f75e5c97311eff169ad5",
        "sourceUrl": "https://api.sketchfab.com/v3/models/85e1735704c645e5aaead0278a1038fe"
      },
      {
        "name": "acquisition.json",
        "path": "artifacts/mouse-deep-dive-2026-09-13/public-viper-mini/acquisition.json",
        "bytes": 1654,
        "sha256": "08535049d34ca64f01556b105134a2028b58ab1fc5523d80213e1ec38754171f",
        "sourceUrl": null
      },
      {
        "name": "decoded-meshes.json",
        "path": "artifacts/mouse-deep-dive-2026-09-13/public-viper-mini/decoded-meshes.json",
        "bytes": 3898478,
        "sha256": "d259da7289d76372e007586383d0222a7caa29d13011d2274aa416be39264c62",
        "sourceUrl": null
      },
      {
        "name": "source-materials.json",
        "path": "artifacts/mouse-deep-dive-2026-09-13/public-viper-mini/source-materials.json",
        "bytes": 33126,
        "sha256": "ff1285442ac0a316a547430ff91e889b5664079f1b8b09c9af11c1f52df91960",
        "sourceUrl": null
      },
      {
        "name": "decoded-textures.json",
        "path": "artifacts/mouse-deep-dive-2026-09-13/public-viper-mini/decoded-textures.json",
        "bytes": 13511,
        "sha256": "a09ee1aa90615a9d9d0a0a660819be9b221dbff024f69f6d6f6f935ee28ad3dc",
        "sourceUrl": null
      }
    ],
    "decodedGeometryPath": "artifacts/mouse-deep-dive-2026-09-13/public-viper-mini/decoded-meshes.json",
    "decodedTexturesPath": "artifacts/mouse-deep-dive-2026-09-13/public-viper-mini/decoded-textures.json"
  },
  "license": {
    "label": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "creator": "kimberly.h",
    "attributionRequired": true,
    "commercialUseStated": true,
    "rightsStatus": "creator-attributed-commercial-use-stated"
  },
  "manufacturerReference": {
    "modelIdentity": "Original wired Razer Viper Mini (2020 retail model; RZ01-03250 family)",
    "dimensionsMm": {
      "length": 118.3,
      "gripWidth": 53.5,
      "height": 38.3
    },
    "sourceUrl": "https://mysupport.razer.com/app/answers/detail/a_id/3749/~/razer-viper-mini-%257Crz01-03250-support-%2526-faqs",
    "identityEvidenceUrls": [
      "https://www.razer.com/latam-es/gaming-mice/razer-viper-mini",
      "https://www.rtings.com/mouse/reviews/razer/viper-mini"
    ],
    "note": "Runtime geometry is measured at its maximum outer width, which can exceed the published grip-width number. This is visual planning evidence, not manufacturing or physical-fit certification."
  },
  "scale": {
    "calibrationBasis": "body long-axis bounds",
    "sourceBodyDimensions": [
      1126.8473510742188,
      573.3438568115234,
      396.3230438232422
    ],
    "sourceAllDimensions": [
      1126.8473510742188,
      573.3438568115234,
      396.3230438232422
    ],
    "lengthAxis": 0,
    "uniformScale": 0.00010498316376856645,
    "publishedLengthMeters": 0.1183,
    "finalDimensionsMeters": [
      0.060191452503204346,
      0.041607245802879333,
      0.11829999834299088
    ],
    "finalDimensionErrorsMm": [
      4.878586707945942e-7,
      -0.0000012120728385411894,
      -0.0000016570091219136884
    ]
  },
  "geometry": {
    "sourceModelFaceCount": 14479,
    "decodedValidTriangles": 14478,
    "decodedDegenerateStripTrianglesSkipped": 19311,
    "sourceMeshes": [
      {
        "id": 3,
        "material": "Gloss",
        "triangles": 208
      },
      {
        "id": 14,
        "material": "Grain",
        "triangles": 3575
      },
      {
        "id": 25,
        "material": "Green",
        "triangles": 26
      },
      {
        "id": 36,
        "material": "Rubber",
        "triangles": 10435
      },
      {
        "id": 47,
        "material": "Skates",
        "triangles": 234
      }
    ],
    "parts": [
      {
        "sourceId": 3,
        "material": "Gloss",
        "materialId": "1",
        "sourceTriangles": 208,
        "sourceBounds": {
          "min": [
            -113.88561248779297,
            -95.56120300292969,
            219.8784637451172
          ],
          "max": [
            550.45458984375,
            477.78265380859375,
            592.76953125
          ],
          "dimensions": [
            664.340202331543,
            573.3438568115234,
            372.8910675048828
          ]
        }
      },
      {
        "sourceId": 14,
        "material": "Grain",
        "materialId": "2",
        "sourceTriangles": 3575,
        "sourceBounds": {
          "min": [
            -576.3920288085938,
            -95.56120300292969,
            209.34747314453125
          ],
          "max": [
            550.455322265625,
            477.78265380859375,
            603.425048828125
          ],
          "dimensions": [
            1126.8473510742188,
            573.3438568115234,
            394.07757568359375
          ]
        }
      },
      {
        "sourceId": 25,
        "material": "Green",
        "materialId": "3",
        "sourceTriangles": 26,
        "sourceBounds": {
          "min": [
            -575.1539916992188,
            -42.49089813232422,
            210.66299438476562
          ],
          "max": [
            -420.9505920410156,
            424.53753662109375,
            230.05007934570312
          ],
          "dimensions": [
            154.20339965820312,
            467.02843475341797,
            19.3870849609375
          ]
        }
      },
      {
        "sourceId": 36,
        "material": "Rubber",
        "materialId": "4",
        "sourceTriangles": 10435,
        "sourceBounds": {
          "min": [
            217.12600708007812,
            133.55299377441406,
            317.12298583984375
          ],
          "max": [
            425.2574462890625,
            251.7320098876953,
            524.4669799804688
          ],
          "dimensions": [
            208.13143920898438,
            118.17901611328125,
            207.343994140625
          ]
        }
      },
      {
        "sourceId": 47,
        "material": "Skates",
        "materialId": "5",
        "sourceTriangles": 234,
        "sourceBounds": {
          "min": [
            -543.3436279296875,
            -27.197900772094727,
            207.1020050048828
          ],
          "max": [
            413.96246337890625,
            409.2447509765625,
            232.1527099609375
          ],
          "dimensions": [
            957.3060913085938,
            436.4426517486572,
            25.050704956054688
          ]
        }
      }
    ],
    "cableDecision": "Rubber geometry bounds remain inside the non-Rubber body envelope; no independently external cable component was detected in the decoded visible meshes, so Rubber was retained as the short built-in detail."
  },
  "materials": {
    "sourceMaterialCount": 5,
    "sourceMaterialNames": [
      "Skates",
      "Grain",
      "Gloss",
      "Green",
      "Rubber"
    ],
    "runtimeMaterialCount": 5,
    "runtime": [
      {
        "name": "Skates",
        "baseColor": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/skates-basecolor.png"
      },
      {
        "name": "Skates",
        "stateSetID": 5,
        "baseColor": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/skates-basecolor.png",
        "normal": "neutral-omitted",
        "normalScale": null,
        "roughnessFloor": null,
        "orm": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/skates-orm.png",
        "sourceTextureUids": {
          "baseColor": "5792a07bc09d48d7a3e71b655a6708d9",
          "normal": "1e8dd04291a847faa9c332d6ee15611c",
          "roughness": "198ad7f8686041cba537e60f767bab0d",
          "metallic": "d236cde01b0644a381280e8558d4d6a6"
        },
        "omittedSourceChannels": [
          "Matcap",
          "EmitColor"
        ]
      },
      {
        "name": "Grain",
        "baseColor": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/grain-basecolor.png"
      },
      {
        "name": "Grain",
        "stateSetID": 2,
        "baseColor": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/grain-basecolor.png",
        "normal": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/grain-normal.png",
        "normalScale": 0.2,
        "roughnessFloor": 0.7,
        "orm": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/grain-orm.png",
        "sourceTextureUids": {
          "baseColor": "0b4cb7b1f2ed4ad895d503ad6c49543b",
          "normal": "a2921eba3957476b980df79a819fe5cd",
          "roughness": "5eef0a00cad54aba9d9a462d51622091",
          "metallic": "1ba9e6babed745068caa33e7c99d62ca"
        },
        "omittedSourceChannels": [
          "Matcap",
          "EmitColor"
        ]
      },
      {
        "name": "Gloss",
        "baseColor": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/gloss-basecolor.png"
      },
      {
        "name": "Gloss",
        "stateSetID": 1,
        "baseColor": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/gloss-basecolor.png",
        "normal": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/gloss-normal.png",
        "normalScale": 0.2,
        "roughnessFloor": 0.35,
        "orm": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/gloss-orm.png",
        "sourceTextureUids": {
          "baseColor": "2a8ce276656947e9a0e10b1ded1c0b46",
          "normal": "fa9981989f0140c48cf8171f8f98626c",
          "roughness": "9f4300b755f041a5a3ca39191c203ef3",
          "metallic": "40a06f130eec4ceb81d1b5870ec47e29"
        },
        "omittedSourceChannels": [
          "Matcap",
          "EmitColor"
        ]
      },
      {
        "name": "Green",
        "stateSetID": 3,
        "baseColor": "constant-factor",
        "normal": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/green-normal.png",
        "normalScale": 0.2,
        "roughnessFloor": null,
        "orm": "constant-factors",
        "sourceTextureUids": {
          "baseColor": "c829935f3d28423abc632216d5584aa3",
          "normal": "dc6fac44a65b4a4a8a2e42603ee56cf2",
          "roughness": "aa2a30921d38480ab951a04b8f40f8ff",
          "metallic": "c63541091a254d83938bb8696383ef99"
        },
        "omittedSourceChannels": [
          "Matcap",
          "EmitColor"
        ]
      },
      {
        "name": "Rubber",
        "stateSetID": 4,
        "baseColor": "constant-factor",
        "normal": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/rubber-normal.png",
        "normalScale": 0.2,
        "roughnessFloor": 0.7,
        "orm": "constant-factors",
        "sourceTextureUids": {
          "baseColor": "209c65a322f541f6a3d294038b098dc6",
          "normal": "792ff7e2001b4883a557c375bb50cdc0",
          "roughness": "c64d466c95b447e39f43e502599a4644",
          "metallic": "e27470e3f3c34e2fb22ce10d689a8446"
        },
        "omittedSourceChannels": [
          "Matcap",
          "EmitColor"
        ]
      }
    ],
    "textures": [
      {
        "name": "Skates base color",
        "colorSpace": "sRGB",
        "sourceUid": "5792a07bc09d48d7a3e71b655a6708d9",
        "sourcePath": "C:\\Users\\Niko\\Documents\\ChatGPT\\Deskform\\artifacts\\mouse-deep-dive-2026-09-13\\public-viper-mini\\decoded-textures\\Viper_Mini_Modelv2_Skates_BaseColor.png",
        "sourceBytes": 191759,
        "outputPath": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/skates-basecolor.png",
        "outputBytes": 20976,
        "outputSha256": "147157c8f907b63fa95d8906dd8c4fabe069fef90e362321ec1835c07e13833d",
        "width": 1024,
        "height": 1024,
        "channels": 3,
        "greenChannelInverted": false
      },
      {
        "name": "Skates ORM",
        "colorSpace": "linear",
        "sourceUids": [
          "198ad7f8686041cba537e60f767bab0d",
          "d236cde01b0644a381280e8558d4d6a6"
        ],
        "outputPath": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/skates-orm.png",
        "outputBytes": 27006,
        "outputSha256": "1499cda3e7bed433edc64fe5771e0edb072dd41f95749d3c3d9e512a6cc453c9",
        "width": 1024,
        "height": 1024,
        "channels": 4,
        "channelsPacked": {
          "red": "occlusion=1",
          "green": "roughness",
          "blue": "metallic",
          "alpha": "opaque"
        }
      },
      {
        "name": "Grain base color",
        "colorSpace": "sRGB",
        "sourceUid": "0b4cb7b1f2ed4ad895d503ad6c49543b",
        "sourcePath": "C:\\Users\\Niko\\Documents\\ChatGPT\\Deskform\\artifacts\\mouse-deep-dive-2026-09-13\\public-viper-mini\\decoded-textures\\Viper_Mini_Modelv2_Grain_BaseColor.png",
        "sourceBytes": 122459,
        "outputPath": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/grain-basecolor.png",
        "outputBytes": 17914,
        "outputSha256": "f993c66e055afb45d8d9c6cf032ee8845493370991a05f3d20c2ac05912b070a",
        "width": 1024,
        "height": 1024,
        "channels": 3,
        "greenChannelInverted": false
      },
      {
        "name": "Grain normal",
        "colorSpace": "linear",
        "sourceUid": "a2921eba3957476b980df79a819fe5cd",
        "sourcePath": "C:\\Users\\Niko\\Documents\\ChatGPT\\Deskform\\artifacts\\mouse-deep-dive-2026-09-13\\public-viper-mini\\decoded-textures\\Viper_Mini_Modelv2_Grain_Normal.png",
        "sourceBytes": 118152,
        "outputPath": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/grain-normal.png",
        "outputBytes": 16974,
        "outputSha256": "79d2cee2e6c209a98d1b1822218876c9fa1718f2db3678c47b56b95235182ebf",
        "width": 1024,
        "height": 1024,
        "channels": 3,
        "greenChannelInverted": true
      },
      {
        "name": "Grain ORM",
        "colorSpace": "linear",
        "sourceUids": [
          "5eef0a00cad54aba9d9a462d51622091",
          "1ba9e6babed745068caa33e7c99d62ca"
        ],
        "outputPath": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/grain-orm.png",
        "outputBytes": 161230,
        "outputSha256": "08bde46cab142af0c51fab77f1dd1ddb57dca2b2bbe5c701651c90370f878995",
        "width": 1024,
        "height": 1024,
        "channels": 4,
        "channelsPacked": {
          "red": "occlusion=1",
          "green": "roughness",
          "blue": "metallic",
          "alpha": "opaque"
        }
      },
      {
        "name": "Gloss base color",
        "colorSpace": "sRGB",
        "sourceUid": "2a8ce276656947e9a0e10b1ded1c0b46",
        "sourcePath": "C:\\Users\\Niko\\Documents\\ChatGPT\\Deskform\\artifacts\\mouse-deep-dive-2026-09-13\\public-viper-mini\\decoded-textures\\Viper_Mini_Modelv2_Gloss_BaseColor.png",
        "sourceBytes": 90908,
        "outputPath": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/gloss-basecolor.png",
        "outputBytes": 5715,
        "outputSha256": "f435a5079980377b8931c3059b83a4df919eb8fbb62114b03c3a0c2f187dd361",
        "width": 1024,
        "height": 1024,
        "channels": 3,
        "greenChannelInverted": false
      },
      {
        "name": "Gloss normal",
        "colorSpace": "linear",
        "sourceUid": "fa9981989f0140c48cf8171f8f98626c",
        "sourcePath": "C:\\Users\\Niko\\Documents\\ChatGPT\\Deskform\\artifacts\\mouse-deep-dive-2026-09-13\\public-viper-mini\\decoded-textures\\Viper_Mini_Modelv2_Gloss_Normal.png",
        "sourceBytes": 393396,
        "outputPath": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/gloss-normal.png",
        "outputBytes": 60868,
        "outputSha256": "16bf9ff4ce601f5280aee4e788f5434001f4bef8a5305bef38eeac224090f9d7",
        "width": 1024,
        "height": 1024,
        "channels": 3,
        "greenChannelInverted": true
      },
      {
        "name": "Gloss ORM",
        "colorSpace": "linear",
        "sourceUids": [
          "9f4300b755f041a5a3ca39191c203ef3",
          "40a06f130eec4ceb81d1b5870ec47e29"
        ],
        "outputPath": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/gloss-orm.png",
        "outputBytes": 6255,
        "outputSha256": "6a95754d92c45890cac505266f16a000199f7ebc9469c81acecca7f0837cc90a",
        "width": 1024,
        "height": 1024,
        "channels": 4,
        "channelsPacked": {
          "red": "occlusion=1",
          "green": "roughness",
          "blue": "metallic",
          "alpha": "opaque"
        }
      },
      {
        "name": "Green normal",
        "colorSpace": "linear",
        "sourceUid": "dc6fac44a65b4a4a8a2e42603ee56cf2",
        "sourcePath": "C:\\Users\\Niko\\Documents\\ChatGPT\\Deskform\\artifacts\\mouse-deep-dive-2026-09-13\\public-viper-mini\\decoded-textures\\Viper_Mini_Modelv2_Green_Normal.png",
        "sourceBytes": 128800,
        "outputPath": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/green-normal.png",
        "outputBytes": 12283,
        "outputSha256": "8aacdcdce87135bf4f9d9effe1dc222936a960f1edfaffd4f50b703f7af6efb9",
        "width": 1024,
        "height": 1024,
        "channels": 3,
        "greenChannelInverted": true
      },
      {
        "name": "Rubber normal",
        "colorSpace": "linear",
        "sourceUid": "792ff7e2001b4883a557c375bb50cdc0",
        "sourcePath": "C:\\Users\\Niko\\Documents\\ChatGPT\\Deskform\\artifacts\\mouse-deep-dive-2026-09-13\\public-viper-mini\\decoded-textures\\Viper_Mini_Modelv2_Rubber_Normal.png",
        "sourceBytes": 1900963,
        "outputPath": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/optimized-textures/rubber-normal.png",
        "outputBytes": 482554,
        "outputSha256": "4de14e7154782a8b6257daa35c06432b62dc627aa0aad905d6569bd3832ce44e",
        "width": 1024,
        "height": 1024,
        "channels": 3,
        "greenChannelInverted": true
      }
    ]
  },
  "before": {
    "sourceBounds": {
      "min": [
        -576.3920288085938,
        -95.56120300292969,
        207.1020050048828
      ],
      "max": [
        550.455322265625,
        477.78265380859375,
        603.425048828125
      ],
      "dimensions": [
        1126.8473510742188,
        573.3438568115234,
        396.3230438232422
      ]
    },
    "bodyBounds": {
      "min": [
        -576.3920288085938,
        -95.56120300292969,
        207.1020050048828
      ],
      "max": [
        550.455322265625,
        477.78265380859375,
        603.425048828125
      ],
      "dimensions": [
        1126.8473510742188,
        573.3438568115234,
        396.3230438232422
      ]
    },
    "rubberBounds": {
      "min": [
        217.12600708007812,
        133.55299377441406,
        317.12298583984375
      ],
      "max": [
        425.2574462890625,
        251.7320098876953,
        524.4669799804688
      ],
      "dimensions": [
        208.13143920898438,
        118.17901611328125,
        207.343994140625
      ]
    },
    "sourceTriangles": 14478
  },
  "after": {
    "meshes": 5,
    "primitives": 5,
    "vertices": 16999,
    "triangles": 14478,
    "bounds": {
      "min": [
        -0.030095726251602173,
        0,
        -0.05914999917149544
      ],
      "max": [
        0.030095726251602173,
        0.041607245802879333,
        0.05914999917149544
      ],
      "dimensions": [
        0.060191452503204346,
        0.041607245802879333,
        0.11829999834299088
      ]
    }
  },
  "modifications": [
    "Decoded the ordinary public Sketchfab viewer geometry and textures without Blender, authentication, payment, or protected-download workarounds.",
    "Baked all source mesh ancestry matrices into positions, normals, and tangents using Three.js; converted the source Z-up scene to Y-up.",
    "The source body long axis is X for this model; rotated that axis to runtime -Z so the mouse front faces -Z. The source +Y axis therefore maps to runtime -X.",
    "Calibrated with one uniform scale from the body long axis to the official 118.3 mm length. Preserved the resulting maximum width (the 53.5 mm Razer value is a grip-width specification).",
    "Expanded triangle strips with alternating winding and skipped degenerate strip joins. Flipped OpenGL V coordinates for glTF.",
    "Preserved nonconstant base-color and normal maps; inverted the normal-map green channel for glTF; packed nonconstant roughness and metallic maps into glTF ORM textures with occlusion set to 1; reduced constant maps to material factors.",
    "Applied a small runtime material normalization for the isolated app preview: roughness floors of Grain 0.70, Gloss 0.35 and Rubber 0.70, plus normal strength 0.20 where a normal map remains. Original decoded textures and source files remain retained for provenance.",
    "Merged and welded compatible static surfaces and removed unused graph objects. No source model bytes were changed and no original geometry was authored."
  ],
  "notices": [
    "The community model is attributed to Kimberly Hansuwan / kimberly.h under CC BY 4.0; retain this attribution in any distributed derivative.",
    "The public model is a visual product representation and includes a wired Viper Mini scene. Manufacturer identity, trademarks, and trade-dress rights remain separate from the creator license.",
    "Rubber geometry bounds remain inside the non-Rubber body envelope; no independently external cable component was detected in the decoded visible meshes, so Rubber was retained as the short built-in detail.",
    "The original decoded source files remain unchanged under artifacts/mouse-deep-dive-2026-09-13/public-viper-mini."
  ],
  "preview": {
    "inspectionPlan": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/inspection-plan.json",
    "expectedImage": "artifacts/mouse-deep-dive-2026-09-13/viper-mini-conversion/previews/razer-viper-mini.png",
    "status": "visually-verified-in-local-app",
    "actualAppImage": "artifacts/mouse-deep-dive-2026-09-13/app-mini/razer-viper-mini.png",
    "checkedModelSha256": "eb37782bcb16b1015f5464e0e31ec8735198ffd9073d21d76152e0d3208d0048",
    "checkedAt": "2026-09-14T00:51:13.520Z",
    "observation": "Black plastic body, green emblem/underside details and scroll wheel rendered in the actual app using the optimized delivery asset."
  }
}
