Digital Passport for Artworks · single-flow prototype
One upload, one continuous chain: vectors first, then trust.
Upload an artwork photo and it runs the whole pipeline in order — fingerprint the image, search for a prior record, score it for forgery risk, then only once it clears (or a reviewer overrides) does it move into the certificate chain that actually signs and issues the passport. Everything below runs in your browser: real hashing, real signatures, real verification.
The vectors decide whether this artwork earns a passport. The trust chain decides whether that passport can be trusted. Two different jobs, one flow.
Prototype notice: Duplicate detection works within a single browser session only — upload one image, then upload another, and the system compares them. There is no persistent database; refreshing the page clears all memory. This demo is designed to show the detection pipeline, not to serve as a production registry.
Session memory: 0 submissions remembered
Step 1
Upload artwork photos
The first photo is treated as the primary submission; the rest just note how many angles were provided.
Confirm the crop
Starts at an auto-detected guess — drag the box to reposition, drag a corner to resize. Only what's inside the box gets fingerprinted; get the frame, wall, and any bystanders out of it.
Confirmed crop used for fingerprinting
Step 2 · vectors
Create fingerprints
Three real, independently-computed fingerprints of the primary image.
Step 3 · vectors
Similarity search
Checked two ways against a small seed set plus everything you've uploaded earlier this session: a perceptual hash (near-duplicate / same crop) and a coarse color-profile signal (tolerant of a different angle, but not a real embedding model — see the note below).
Matching tiers, strongest first: (1) perceptual-hash near-duplicate for same-photo resubmissions; (2) geometric keypoint matching — Harris corners at 5 scales with SIFT-style descriptors and RANSAC verification, the tier that handles same-work-different-angle; validated before shipping: 255 inliers on a simulated angle change of the same painting, 0 on every unrelated pair. 8+ inliers auto-confirms, 4–7 flags for review; (3) embedding model if loaded; (4) local feature vector as last resort. Keypoint matching compares only against photos submitted this session — crop both tight to the artwork for best results.
Advanced / calibration — thresholds
Drag to see exactly where the cutoff sits for whatever you just uploaded — not something a real submitter would need to touch, but useful for testing.
10
0.75
0.80
Step 4 · vectors
Forensic signal fusion
Four genuinely-computed signals stand in for the spectral/FFT, noise-floor, ELA, and metadata checks.
What's real vs. simplified: the exact hash and perceptual hash are genuine, unmodified techniques on your actual image bytes. The other three signals were all directly tested against real photos, not just assumed to work — and testing found spectral/edge-energy, noise-floor, and even a rebuilt ELA metric are all confounded by ordinary content complexity (a busy photo vs. a clean one, or sharp text vs. soft brushwork), not just tampering. They're kept as low-weight, advisory signals a human reviewer might glance at, not trusted as an automated score. Metadata presence is the only one of the four not falsified by testing, so it dominates the fusion below. None of this replaces a trained classifier — it's an honest account of what hand-built heuristics can and can't do at this scale.
Step 5 · vectors
Forgery-risk score & routing
–
forgery-risk score
Step 6 · trust chain
Certificate chain
Governance root → federated root → issuing CA. This infrastructure exists independently of any one artwork — it's already generated, real ECDSA P-256 keys, signed just now in your browser.
Step 7 · trust chain
Issue the passport
The issuing CA signs the artwork record, carrying forward the ArtID and risk score computed in step 5.
Passport metadata
Signed passport
Not issued yet.
Step 8 · trust chain
Revocation
StatusList2021-style: a compact signed bitstring published by the issuing CA. Revoking is instant, no ledger write.
Passport is active — flip to revoke it
Step 9 · trust chain
Verify
Edit the passport JSON below to simulate tampering, then re-verify. This walks the chain the way a museum front desk or customs scanner would.