Браузерная «подпись» блюра без камеры

Сравниваем Canvas2D / SVG / WebGL. Хэши и PSNR считаются только по области ВНЕ центрального круга, чтобы текст не влиял на подпись. Также размытый фон теперь вычисляется из базового изображения БЕЗ текста — исключает «протечку» размытия через границу.
proof‑of‑concept

1) Входное изображение

Фон блюрится, круг остаётся резким по маске. Текст = 6 символов A‑Z/0‑9, и при вычислении подписи не учитывается (исключаем круг и убираем влияние текста на размытие).

2) Методы размытия (выполняются на устройстве)

Canvas2D: ctx.filter = blur()
SVG: feGaussianBlur → растеризация
WebGL: шейдер (сепарабельный Гаусс)

3) Сводка/сравнение

Подписи хранятся локально в localStorage.
(пока пусто)

(серия не запускалась)

diagnostics: pending…