rockpaintings

Drop a photograph anywhere

It is decoded and analysed in this tab. Nothing uploads, the file is never modified, and closing the tab leaves no trace.

JPEG · PNG · WebP · AVIF — hold Space for the original, drag with R for region statistics, F fits, 1 is 100%

How palimpsest works — and what to trust

A rock-art panel is usually many paintings layered over centuries, then faded, flaked, overgrown and worn. Palimpsest tries to un-collapse that history using two machine-learning models.

1 · The decomposer — a forensic examiner

It groups the surviving pigment into individual figures (even where they overlap), estimates each figure's full original outline including the missing parts, diagnoses why the rest is gone — faded, painted over, lichen, rock loss, animal rubbing, or never finished in the first place — and works out which figure lies over which, giving the panel's relative chronology.

2 · The restorer — a sketch artist with error bars

For a chosen figure it paints several plausible completions. Where the drawings agree, the reconstruction is stable; where they disagree, the uncertainty map runs hot — the model saying “I'm guessing here.” On test panels this self-doubt reliably tracks its actual errors.

Trained on simulated walls

Nobody knows what a faded painting originally looked like, so the models learned from procedurally generated panels aged with simulated fading, collapse, lichen and rubbing — scenes where the complete truth is known. Real panels remain harder: figure names like “macropod” are indicative labels from the training vocabulary, not identifications.

Hypotheses, never evidence

The workbench's analytical tools (stretch, channels) only re-weigh pixels the camera recorded. Palimpsest imagines. Its outputs are kept apart, labelled as hypotheses, and carry full provenance — model version, checksums and sampling seeds — so any claim can be traced and reproduced.

Privacy: unlike the rest of the workbench, this tab sends the photograph to this site's own server for inference. It is processed in memory and never stored. Everything else stays in your browser.