openpencil/tests/fixtures/figma-oracles/visual-comparison-report.json
2026-05-26 21:12:57 +03:00

69 lines
2.9 KiB
JSON

{
"source": {
"tool": "scripts/visual-compare.ts",
"captured": "2026-05-22",
"outputRoot": "/tmp/open-pencil-oracles"
},
"comparisons": [
{
"name": "pattern-visible-source-frame",
"nodeId": "296784:2258",
"output": "/tmp/open-pencil-oracles/pattern-visible-source-norm",
"figmaSize": "190x110",
"openPencilSize": "190x110",
"differentPixels": 13026,
"differentPercent": 62.33,
"rmseNormalized": 0.361297,
"finding": "This is the reliable pattern oracle: source and target are copied together and Figma renders the pattern. OpenPencil now resolves the source, but tile origin/spacing still differs from Figma."
},
{
"name": "rich-text-decorations",
"nodeId": "296488:2238",
"output": "/tmp/open-pencil-oracles/rich-text/decorations-norm",
"figmaSize": "493x41",
"openPencilSize": "493x23",
"normalization": "Padded/cropped without scaling before diff",
"differentPixels": 6881,
"differentPercent": 34.04,
"rmseNormalized": 0.243701,
"finding": "OpenPencil imports style-run decoration metadata, but exact Figma text height/line metrics still differ substantially."
},
{
"name": "nested-luminance-mask",
"nodeId": "296616:2249",
"output": "/tmp/open-pencil-oracles/masks/nested-norm",
"figmaSize": "240x120",
"openPencilSize": "240x120",
"differentPixels": 12944,
"differentPercent": 44.94,
"rmseNormalized": 0.00385526,
"finding": "Raw AE is high because antialiasing touches many edge pixels, but RMSE is very low and the output is structurally close. Future mask comparison should use tolerant/perceptual metrics."
},
{
"name": "pattern-target-without-source",
"nodeId": "296519:2245",
"output": "/tmp/open-pencil-oracles/pattern-scale1",
"figmaSize": "160x100",
"openPencilSize": "160x100",
"differentPixels": 16000,
"differentPercent": 100,
"finding": "Copying/exporting only a pattern-filled target does not include its source node in clipboard data; OpenPencil must fall back without whole-document context."
},
{
"name": "pattern-frame-with-hidden-source",
"nodeId": "296731:2254",
"output": "/tmp/open-pencil-oracles/pattern-frame-scale1-after-sourceid",
"figmaSize": "180x100",
"openPencilSize": "180x100",
"differentPixels": 9102,
"differentPercent": 50.57,
"finding": "Resolving pattern sources by imported Figma source id works in OpenPencil, but this hidden-source frame oracle renders blank in Figma and is not a parity baseline."
}
],
"nextActions": [
"Tune pattern tile origin and spacing against pattern-visible-source-frame.",
"Use perceptual/color-tolerant image diff for mask comparisons instead of raw absolute-error counts.",
"Tune rich text line metrics before treating underline placement diffs as actionable."
]
}