{
  "benchmark": {
    "edition": "2026-09-03",
    "tester": "justhim",
    "testedAt": "2026-09-03T09:00:00-05:00",
    "sourcePhoto": "/images/image-to-texture/phone-wood-source.webp",
    "sourcePhotoSha256": "eb05ba5741f461bb23dd4d0306e42113cb2390cdcc935d03216db1d3d411326f",
    "inputContract": "Three 512×512 PNG crops from one first-party phone photo; no retouching after crop.",
    "machine": {
      "operatingSystem": "Microsoft Windows 11 Home build 26200",
      "cpu": "AMD Ryzen 5 5600X 6-Core Processor (12 logical processors)",
      "memory": "31.9 GB",
      "gpu": "NVIDIA GeForce RTX 5070",
      "node": "v24.13.1"
    }
  },
  "products": {
    "playtex": {
      "name": "PLAYTEX AI PBR Map Generator",
      "version": "reference build 2ae3dbaf971b21895a84697b5775fa0509cfedf5",
      "committedAt": "2026-09-03T04:57:47-05:00",
      "implementationFiles": {
        "src/constants/defaults.ts": "b53b66cbdfd47d922f17c7b796a151255b9926a88cb2cac79aafd069fd0bcee7",
        "src/lib/imageProcessing.ts": "0871f380b6d76d92dc56990a2fb9612be872f58832076ac98854a5921a5e4a1f",
        "src/lib/materialHeuristics.ts": "3b85034a18e1f04e4e65f8c48c6aa1092320ef82032e9ed11f77cb59d78547f1",
        "src/lib/pbrCalibration.ts": "61b0b46705e6a1a68b3ddfb259df54eee02ea580ac43a0655cbfa5cfe262251a",
        "src/lib/pbrGenerationCore.ts": "96aa5cfbeba5af7d22bc2e9d0432b5b717d350b6dcb6152a01f3957d178c9349",
        "src/lib/processingSettings.ts": "5f3f6b6e7727abfc1fd0fcfc0f300479a956e528d4e9b3ed8176d74d26b93f6a"
      },
      "execution": "Direct synchronous reference-core call using the repository implementation.",
      "inputResolution": "512×512",
      "outputResolution": "512×512",
      "materialClass": "dielectric",
      "materialPreset": "wood",
      "requestedMaps": [
        "albedo",
        "normal",
        "metallic",
        "emission",
        "roughness",
        "height",
        "ao"
      ],
      "settings": {
        "albedo": {
          "brightness": 0,
          "contrast": 1,
          "saturation": 1,
          "hueShift": 0,
          "gamma": 1
        },
        "normal": {
          "strength": 5,
          "blur": 0,
          "detail": 1,
          "invertX": false,
          "invertY": false,
          "format": "opengl",
          "seamless": false,
          "edgeEmphasis": 0.5,
          "microDetailScale": 1,
          "heightToNormalInfluence": 0.3
        },
        "metallic": {
          "mode": "smart",
          "threshold": 128,
          "contrast": 1,
          "clampMin": 0,
          "clampMax": 255,
          "sourceChannel": "luminance"
        },
        "emission": {
          "threshold": 200,
          "mode": "solid",
          "color": "#ffffff",
          "gradientColors": [
            "#ff0000",
            "#ffff00",
            "#00ff00",
            "#00ffff",
            "#0000ff"
          ],
          "gradientIntensities": [
            1,
            1,
            1,
            1,
            1
          ],
          "intensity": 1,
          "glowRadius": 0,
          "sourceMode": "luminance",
          "softThreshold": 0.2,
          "falloffCurve": "smooth",
          "invertOutput": false,
          "colorMatch": false
        },
        "roughness": {
          "source": "luminance",
          "blackPoint": 0,
          "whitePoint": 255,
          "contrast": 1,
          "outputMode": "roughness",
          "clampMin": 0,
          "clampMax": 255,
          "invertOutput": false,
          "responseCurve": "linear"
        },
        "height": {
          "strength": 1,
          "blur": 0,
          "midpointBias": 0,
          "clampMin": 0,
          "clampMax": 255,
          "parallaxSafe": false
        },
        "ao": {
          "radius": 2,
          "intensity": 1,
          "edgeOcclusionBoost": false,
          "heightAwareAO": false
        },
        "global": {
          "seamAwareProcessing": false,
          "mapConsistencyLock": true,
          "powerOfTwoLock": false
        }
      },
      "repetitions": "One warm-up, then five measured generations per crop.",
      "deterministicAcrossMeasuredRuns": {
        "wood-neutral": true,
        "glare-hotspot": true,
        "dark-edge": true
      },
      "pricingAsOfTest": {
        "free": {
          "monthlyPriceUsd": 0,
          "download": false,
          "maxMapResolutionPx": 512,
          "licenseScope": "noncommercial_public"
        },
        "mapper": {
          "monthlyPriceUsd": 3,
          "download": true,
          "maxMapResolutionPx": 2048,
          "licenseScope": "personal"
        },
        "starter": {
          "monthlyPriceUsd": 9,
          "download": true,
          "maxMapResolutionPx": 2048,
          "enginePackageExport": true,
          "licenseScope": "standard_commercial"
        }
      },
      "exportFormats": [
        "PNG map files",
        "ZIP material set",
        "engine package on Starter+"
      ]
    },
    "genpbr": {
      "name": "GenPBR",
      "version": "2.7 (page header observed on test date)",
      "url": "https://genpbr.com/generate",
      "execution": "Public anonymous generator in the Codex in-app Chromium browser.",
      "renderingMode": "Canvas CPU • Universal",
      "inputResolution": "512×512",
      "outputResolution": "512×512",
      "maps": [
        "normal",
        "metallic",
        "roughness",
        "height",
        "ao"
      ],
      "settings": {
        "normalStrength": 5,
        "metallicIntensity": 0.8,
        "roughnessIntensity": 2,
        "aoIntensity": 2,
        "aoRadius": 12,
        "heightContrast": 1,
        "heightBrightness": 0,
        "invertHeight": false
      },
      "repetitions": "One captured generation per crop; glare and neutral normal maps were regenerated and SHA-256 matched the first capture.",
      "observedAnonymousPriceUsd": 0,
      "pricingAsOfTest": {
        "freeAccount": "$0; non-commercial use only; attribution required.",
        "starterMonthly": "$9.99/month; commercial rights listed."
      },
      "observedControls": [
        "Download All",
        "per-map download",
        "Regen"
      ],
      "documentedFormats": [
        "PNG",
        "ZIP archive",
        "MaterialX"
      ],
      "requiredFreeOutputAttribution": "Textures generated with GenPBR — genpbr.com",
      "pricingSource": "https://genpbr.com/pricing",
      "licensingSource": "https://genpbr.com/licensing"
    }
  }
}
