{
  "schemaVersion": 1,
  "recordType": "completed-production-browser-experiment",
  "date": "2026-09-07",
  "sessionWindow": {
    "localStart": "2026-09-07T13:23:00+08:00",
    "localEnd": "2026-09-07T13:25:00+08:00",
    "timezone": "Asia/Shanghai",
    "precision": "Approximate session window supplied by the browser operator, not per-inference timing."
  },
  "environment": "Codex in-app browser on macOS arm64, using the public production page https://ai-creator.top/relight/.",
  "execution": "The source coffee.png was selected through the public image upload. For the first two exports, the operator moved only the light pointer; the untouched slider displayed 0.30. For the third export, the operator explicitly adjusted the slider to 0.70. Each file was saved with the tool download button. These three PNGs are untouched browser exports: no crop, resize, color adjustment or re-encoding.",
  "source": {
    "id": "coffee",
    "file": "../../images/coffee.png",
    "width": 600,
    "height": 400,
    "provenance": "../../images/sources.json",
    "photographer": "Rachel Michetti",
    "credit": "Coffee photograph courtesy of Pikolo Espresso Bar",
    "license": "CC0, as documented by scikit-image",
    "licenseUrl": "https://scikit-image.org/docs/stable/api/skimage.data.html#skimage.data.coffee"
  },
  "model": {
    "path": "/monodepth_fcn_mobilenet.onnx",
    "bytes": 5541400,
    "sha256": "edb6c39bc50982d6c68dc104753cc58685b43a1f5340054dd65c8fc86b0a3ac4",
    "recoveredSnapshot": {
      "path": "/monodepth_fcn_mobilenet.onnx",
      "bytes": 5541400,
      "sha256": "edb6c39bc50982d6c68dc104753cc58685b43a1f5340054dd65c8fc86b0a3ac4",
      "identicalToBuiltFile": true
    }
  },
  "runtimeRecord": "../runtime.json",
  "settings": {
    "canvasDimensions": [
      600,
      400
    ],
    "depthModelInput": [
      224,
      224
    ],
    "color": {
      "rgb": [
        255,
        255,
        255
      ],
      "hex": "#ffffffff",
      "description": "Default opaque white"
    },
    "unchangedSettings": "Default depth model and rendering path. No source edits between the three exports.",
    "positionMeasurement": "The DOM pointer style left/top values were read by the browser operator after moving the light. They are image-space pixel positions, not physical distances or incidence angles.",
    "strengthDisclosure": {
      "firstTwoDisplayedSlider": 0.3,
      "firstTwoShaderStrengthInferredFromSource": 0.4,
      "firstTwoSliderAdjusted": false,
      "thirdExplicitSliderValue": 0.7,
      "shaderUniformDirectlyCaptured": false,
      "explanation": "The renderer initializes x.current to 0.4. Its strength/color effect skips while b.current is true; the later initialization effect then sets b.current false. Moving the pointer changes only the light-position ref. Therefore source analysis indicates the first two exports retained 0.4 despite the displayed 0.30. The explicit third slider change triggers strength synchronization to 0.70.",
      "source": {
        "repositoryPath": "recovered-netlify-dist/assets/index-302b0309.js",
        "sha256": "849203f20f7946a4d60b9818de47fb2d59860a5f871f12d04b5e871a43b0ccfc",
        "line": 89
      },
      "filenameBoundary": "The existing left-030/right-030 filenames preserve the displayed slider labels, not a direct measurement of shader intensity. They are retained for artifact continuity."
    }
  },
  "cases": [
    {
      "id": "left-030",
      "file": "coffee-left-030.png",
      "label": "Left, display 0.30 (source: 0.40)",
      "pointerCssPixels": {
        "left": 115,
        "top": 77
      },
      "observation": "The left tabletop and left side of the saucer receive a stronger lift than in the right-light treatment. The cup interior and white rim become brighter. Existing spoon reflections and the broad shadow beneath the service remain recognizable.",
      "decision": "Usable as a creative preview after highlight review. The raw file has a one-pixel black final row and rightmost column, so it fails an edge-to-edge product-image delivery check.",
      "displayedStrength": 0.3,
      "explicitStrengthAdjustment": false,
      "shaderStrengthInferredFromSource": 0.4,
      "shaderUniformDirectlyCaptured": false
    },
    {
      "id": "right-030",
      "file": "coffee-right-030.png",
      "label": "Right, display 0.30 (source: 0.40)",
      "pointerCssPixels": {
        "left": 481,
        "top": 77
      },
      "observation": "The upper-right tabletop and right rim/saucer receive more lift, while the far-left tabletop is less bright than in the left-light version. The metallic spoon retains its source reflection pattern; the model has not relit a separately observed three-dimensional scene.",
      "decision": "An inspectable alternative direction, subject to the same black-edge defect and white-rim highlight review. This is not evidence of a physically correct replacement light.",
      "displayedStrength": 0.3,
      "explicitStrengthAdjustment": false,
      "shaderStrengthInferredFromSource": 0.4,
      "shaderUniformDirectlyCaptured": false
    },
    {
      "id": "right-070",
      "file": "coffee-right-070.png",
      "label": "Right, explicitly set 0.70",
      "pointerCssPixels": {
        "left": 481,
        "top": 77
      },
      "observation": "The right tabletop and orange-red saucer become more emphatic. Large bright areas on the cup rim and interior lose visible tonal separation, and the source shadow still remains. The result increases emphasis more than it establishes a different physical lighting arrangement.",
      "decision": "Reject for a product brief requiring restrained porcelain highlights, faithful color and a clean full-frame export. Keep as a documented stress case, not as the recommended setting.",
      "displayedStrength": 0.7,
      "explicitStrengthAdjustment": true,
      "shaderStrengthInferredFromSource": 0.7,
      "shaderUniformDirectlyCaptured": false
    }
  ],
  "scope": {
    "completedBrowserExports": 3,
    "independentSourcePhotographs": 1,
    "parameterExperiment": "Move the pointer at unchanged initial strength: slider displayed 0.30, source indicates internal shader value 0.40. Then explicitly set 0.70 at the same right-hand pointer position. No shader uniform was directly captured.",
    "visualReview": "Source and all three output PNGs inspected, followed by Pillow/NumPy measurements of the original files.",
    "notMeasured": [
      "Physical ground-truth illumination or reflectance",
      "Colorimetric accuracy, linear-light radiance or exposure stops",
      "Cold-start model download speed or inference duration",
      "Network privacy behavior",
      "Generality across subjects, devices or browsers",
      "Direct WebGL shader-uniform capture; first-run intensity is inferred from reviewed initialization code"
    ]
  }
}
