shotMod — third-party notice ============================ ReadFrame (/image-to-text/) reads text out of an image with Tesseract OCR, compiled to WebAssembly and driven by tesseract.js. Every file below is served from this site — nothing is fetched from a CDN, and no image, no text and no language data ever leaves your browser. Components : tesseract.js 6.0.1 tesseract.js-core 6.0.0 (Tesseract 5 compiled with Emscripten) tessdata_best "4.0.0_best_int" language files, redistributed by @tesseract.js-data/ 1.0.0 Licence : Apache License 2.0 (all three) Full text : ./LICENSE Upstream : https://github.com/naptha/tesseract.js https://github.com/naptha/tesseract.js-core https://github.com/tesseract-ocr/tessdata_best Tesseract : https://github.com/tesseract-ocr/tesseract WHAT SHIPS, EXACTLY ------------------- The files are given opaque names under /m/ so they sit in the same immutable edge-cache bucket as every other large binary on this site. This is the mapping, byte for byte — each file is the unmodified upstream artefact: /m/t/e.js 3,954,569 B tesseract.js-core 6.0.0 · tesseract-core-simd-lstm.wasm.js SHA-256 9d7c43fb206dc9f48475228b46bf35f888fa9e6259da2e67d5a75c77049f2dc7 The single-file SIMD LSTM core: the WebAssembly binary is embedded in it as a data: URI, so it fetches no sibling .wasm. Verified 2026-09-06: tesseract.js-core 6.1.2 ships this file byte for byte identical, so a resolved-version drift inside node_modules cannot change what is served. /m/t/w.js 111,162 B tesseract.js 6.0.1 · dist/worker.min.js SHA-256 38645599043239c0eb6db08a6504a92dcdc292200535f3e9339cd77c4443b842 The OCR worker script. It is spawned as a same-origin classic worker, not from a blob: URL, because this site's Content-Security-Policy has no blob: in script-src. /m/t-eng.bin 2,952,873 B @tesseract.js-data/eng 1.0.0 /m/t-spa.bin 2,100,190 B @tesseract.js-data/spa 1.0.0 /m/t-por.bin 1,392,239 B @tesseract.js-data/por 1.0.0 /m/t-fra.bin 707,406 B @tesseract.js-data/fra 1.0.0 /m/t-deu.bin 1,333,102 B @tesseract.js-data/deu 1.0.0 /m/t-ita.bin 1,660,998 B @tesseract.js-data/ita 1.0.0 /m/t-ind.bin 1,194,182 B @tesseract.js-data/ind 1.0.0 /m/t-tur.bin 2,141,291 B @tesseract.js-data/tur 1.0.0 Each is that package's 4.0.0_best_int/.traineddata.gz, renamed and otherwise untouched. Only the language you pick is downloaded, once. REPRODUCING THESE FILES ----------------------- npm pack tesseract.js-core@6.0.0 package/tesseract-core-simd-lstm.wasm.js -> /m/t/e.js package/LICENSE -> ./LICENSE npm pack tesseract.js@6.0.1 package/dist/worker.min.js -> /m/t/w.js npm pack @tesseract.js-data/@1.0.0 package/4.0.0_best_int/.traineddata.gz -> /m/t-.bin shotMod's own source is licensed Apache-2.0 (see README.md in the repository). The Apache-2.0 licence above applies to tesseract.js, tesseract.js-core and the tessdata_best language files. Everything still happens in your browser. No image is uploaded to read it.