Forensic Forward-Model · Capture → Profile → Apply

Artifact Attribution Studio

Capture an instrument's signature from one image — its optics, sensor, and attitude — serialize it as a portable profile, then impose that signature on a clean image. The inverse of correction: you are reconstructing the camera, not removing it.

01Capture
02Profile
03Apply

Source image EXIF read locally · nothing uploads

Drop the reference photo

The instrument whose signature you want to capture. JPEG/PNG renders; HEIC parses EXIF but may not display.

Select image

Decoded EXIF

No image loaded.

Captured profile editable

f-number · pixel pitch (µm)
ISO · exposure · full-well · rolling-shutter readout
k1<0 barrel · k1>0 pincushion · not in EXIF
extrinsic · estimate from converging lines

Load an image to derive a starting profile.

Profile JSON the portable signature

{ }

Import a profile

Paste a previously captured signature to reuse it. Fields merge into the active profile.

Two geometry layers, by design. distortion (k1/k2) is per-lens and undone by a radial remap; attitude (pitch/yaw/roll) is per-shot and undone by a homography. Keeping them separate is what lets Apply impose either independently — or invert just one in Correct mode.

Target image the clean plate to be marked

Drop the image to stamp

A clean photo. The captured signature is imposed on it. JPEG/PNG.

Select image

Pipeline active profile · toggle layers

Geometrydistortion + attitude
Distortion k10
Pitch °0
Yaw °0
Roll °0

Pitch/yaw warp by homography (keystone); roll rotates the frame; k1 is the radial lens bend. In Correct mode these invert.

Diffractionoptical PSF
Blur σ (px)0

Derived from Airy Ø ÷ pitch. The PSF is fixed by aperture; this convolves the plate with it.

Rolling shutterper-row shear
Shear (px, top→bottom)0

On a still, this models a pan during readout: each row offset by readout × motion. Positive shears right toward the bottom.

Noiseshot + read + dark
Strength0
Hot pixels (dark-current)0

Shot noise scales as √(signal·full-well); shadows degrade first. Hot pixels appear with long-exposure profiles.

Flareghost on axis

Source position comes from the profile (marked on the reference image in Capture). Ghost lands opposite frame-center, on the axis — never a fixed point.

Ghost strength40
Veiling glare0