71 lines
3 KiB
JSON
71 lines
3 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-tuned",
|
|
"figmaSize": "190x110",
|
|
"openPencilSize": "190x110",
|
|
"differentPixels": 7180,
|
|
"differentPercent": 34.35,
|
|
"rmseNormalized": 0.235698,
|
|
"previousDifferentPixels": 13026,
|
|
"previousDifferentPercent": 62.33,
|
|
"finding": "This is the reliable pattern oracle: source and target are copied together and Figma renders the pattern. OpenPencil resolves the source and now uses a closer Figma-like pattern origin, but exact row spacing/tile origin still differs."
|
|
},
|
|
{
|
|
"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": [
|
|
"Continue tuning pattern row spacing and tile origin 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."
|
|
]
|
|
}
|