For software partners
For photo-management and library software that needs to know which files are the same picture: across folders, catalogues and devices, after resizing, re-saving, cropping or rotation.
What the engine does
- Groups copies of the same picture. Identical files, resized and re-encoded copies, crops, rotations, mirrors, borders and caption bars. Each link comes with its evidence: same file, a hash distance, or matched points and overlap. Measured rates
- Reads what files say about who made them. EXIF, IPTC and XMP creator, credit and rights fields, including PLUS, quoted as found.
- Writes a verifiable record. A Merkle root over every record, which can be timestamped with OpenTimestamps.
It looks for copies, not look-alikes. It can occasionally join two photographs of one scene by one photographer, and every link carries its evidence. It never says who owns an image.
How it runs
- On the device, offline. Everything runs where the images are, on the CPU, with no GPU. The network is used only to download the copy-detection model once (SSCD, 99 MB, checked against a pinned hash; it can ship with your installer) and, if asked, to file a timestamp.
- Python today. Python 3.11 or later, with Pillow, NumPy, iscc-core, PyTorch (CPU) and OpenCV. There are no bindings for other languages yet: no C, Rust, Swift, JavaScript or mobile build.
- Images are never stored. They are decoded in memory and let go; only digital fingerprints and metadata text are kept.
Integration shapes
| Shape | Status | What it is |
|---|---|---|
| Library | Built | Python modules: fingerprint_image_bytes for the
digital fingerprints, copies.Embedder and
copies.Verifier for crop-robust matching. |
| CLI | Built | registry audit run <folder> --out <folder>
writes a report, a CSV and JSON. |
| Local service | Not built | A process on the same machine that your app calls over localhost. A thin wrapper around the library; built when a partner needs it. |
Benchmark on your own test set
Public benchmarks only go so far. Send a description of your test set, or run the benchmark yourself on it, and we will report recall and false matches per edit, with the command to reproduce them. Your images stay with you.
Licensing
The code is source-available under the PolyForm Noncommercial License 1.0.0. Commercial use needs a commercial licence from Bakau. Terms are agreed case by case; none are published yet. The repository is not public yet; access is on request.
Write to outreach@bakau.org with what your product does and roughly how many images a library holds.