Restoring Pamela Colman Smith’s 1909 tarot, one card at a time
How I rebuilt all 78 cards and the original back from the two earliest printings, at three times the pixel size of the sharpest complete scans, without redrawing anything by hand.
When we added Tarot to our iPhone app, Universe DMs — Crystal Ball, I wanted the cards people draw to be the original deck drawn by Pamela Colman Smith in 1909. Her images are the ones most people picture when they hear the word tarot, like the young man at the edge of a cliff with a small white dog at his feet. Most later decks borrow her compositions.
The deck was published in London in December 1909, and Smith died in 1951. As far as I can establish, that puts her artwork in the public domain in the United States, the EU and the UK (I’m not a lawyer). I couldn’t find a really good copy of it anywhere.
What’s out there
The printed decks you can buy today are later editions. The best known of them was recoloured in 1971, and its publisher claims copyright in that colouring. I wanted Smith’s colours as they came off the press.
The early printings that are free to use live on Wikimedia Commons as scans, and I went through all of them.
- The “Pam-A” scans. All 78 cards at about 1120 × 1920 pixels, from a printing of 1909–1910, the first edition’s second printing. These are the sharpest complete set. They also carry more than a century of handling: dirt, scratches, a crease, a stain, a torn patch of paper, and a different yellow cast on every card.
- The “Roses & Lilies” scans. The very first printing, December 1909, named after its blue floral back. A collector, Saskia Jansen, scanned her own deck at about 830 × 1430 pixels. They’re smaller and softer, but they come from a different physical copy, and that turned out to matter more than sharpness.
- A 2026 upload at 2100 × 3600. It looks sharp, but it is an upscale of the same Pam-A scans by a method nobody describes. I couldn’t tell which details were Smith’s and which an algorithm had added, so I left it out.
- Library scans. Yale’s Beinecke Library has fine scans of only ten cards, from a printing of about 1937.
So the plan became: take the Pam-A scans as the source for every card face, and use the first printing as a second witness.
Restore or redraw
The first decision was whether to restore the scans or redraw the deck. A redraw would be cleaner and entirely our own work. It would also take an illustrator weeks, and then every one of the 78 cards would need checking against the originals for drift in the details that carry the meaning: the position of a hand, the number of objects on a table, the letters on the Wheel of Fortune.
Those details are what a tarot reading leans on. When a card is drawn in Universe DMs — Crystal Ball, the reading is built from that card’s own symbols, so a slightly wrong hand or a missing letter changes what the card says. I chose to restore. Every line and letter in the finished set comes from the original printings; nothing was redrawn by hand.
The rule I worked to was strict: remove something only when a second printing proves it is damage. If there was any chance a mark was part of the drawing, it stayed. There are three exceptions, a stain on one card and two changes to flat colour and solid black, and I describe each of them below.
The whole process on one card
The Three of Pentacles is the most damaged card in the set. A patch of paper has come away over the arch, and the scan carries 502 specks of dirt, the most of any card. That makes it a good card for showing every step.
Straightening without stretching
Smith drew the black frame around each picture by hand, and no two are quite the same. Some are a percent or two narrower than others, and none is a perfect rectangle. The quick way to make a uniform deck is to warp every frame into the same box. That would have bent her lines, so I didn’t.
The software finds the frame, fits a straight line to each side using only the middle stretch of each edge, and works out how far the card is tilted. The cards were turned by between −0.30° and +0.48° and scaled evenly so every frame is the same height. The Three of Pentacles needed 0.13°. The proportions of each drawing stay exactly as printed, and the paper border around the frame is rebuilt flat so the cards line up in a row.
A shared paper and ink
Every scan had its own tone of aged paper, plus the colour cast of whatever scanner took it. The differences are small card to card, but they show as soon as cards sit side by side. Each card’s paper and black ink were measured on its own border and moved to a single paper tone (#F3EDE0) and a single ink (#1C1816) for the whole deck. The printed colours sit between those two points and move with them, so the yellows, reds and blues stay as printed while each card’s yellowing goes.
In the app this is what lets a three-card reading of the day sit side by side without one card looking older than the others.
Comparing the two printings
The second witness only helps if the two printings can be compared precisely, so most of the effort went into lining them up. Each first-printing card was registered onto its Pam-A twin in two passes. A perspective transform got the cards roughly aligned, then a local alignment corrected the small shifts across the card, using only the parts that have drawing in them, so flat sky and empty paper couldn’t pull it off course. After that, the black ink of the two printings agrees on more than 99% of a typical card.
Get Paul Utr’s stories in your inbox
Join Medium for free to get updates from this writer.
With the two copies stacked, damage is easy to tell from drawing. A dark speck in the Pam-A scan with no ink near it in the first printing is dirt. A small light fleck on flat colour that the first printing doesn’t have is a scratch or a lost bit of ink. Across the deck that came to 7,611 specks and 10,002 flecks, each no larger than 30 pixels. Printed dot screens have thousands of tiny light gaps by design, so a fleck only counted if it stood on its own, and this step left the screens alone.
The comparison also showed something I didn’t expect: the two printings aren’t identical. The plates were touched up between runs. The rain on the Three of Swords, the towers on The Moon and the landscape under the Eight of Wands are drawn differently in the two copies. Wherever they disagree and the difference could be drawing, the Pam-A version stays exactly as printed. Apart from the five small repairs below, I didn’t merge the two into a version that never existed.
I also tried letting the software fill gaps in Pam-A automatically from the first printing. Because the plates differ, it invented detail, so automatic filling became a list of candidates for me to look at and nothing more.
Six repairs by hand
Six spots were too damaged for the automatic cleaning. Each one was reviewed by eye before it was fixed:
- Three of Pentacles. A large patch of paper had come away over the arch mouldings and the top pentacle.
- The Chariot. A white scratch through the black base.
- The Hanged Man. A crease running diagonally through the foliage.
- Five of Cups. A white chip in the black cloak.
- Ten of Pentacles. A scratch across the striped garment.
- Two of Swords. A brown stain on the sea.
For the first five, the missing ink and colour were rebuilt from the first printing after matching its colours to Pam-A. Then Pam-A’s own dot screen was laid back over the patch from a nearby spot, lined up so the dots continue in step. On the Two of Swords the first printing didn’t help, so the stain is covered with a patch of the card’s own screened sea from right next to it.
When The Hanged Man turns up in a reading in Universe DMs — Crystal Ball, it’s this repaired card, with the crease gone.
Three times the resolution
The app opens a drawn card full screen and lets you pinch to zoom. I wanted masters with room to spare for that, for print and for screens to come, so the last step rebuilds each card at three times the scans’ size: 3336 × 5724 pixels, about 1200 dpi at the real size of the card. The cards in the app are cut down from these masters.
A plain upscale makes soft lines and smeared dots, so the card is taken apart first. The black line work is separated from the colour, enlarged on its own, and its edge is placed halfway between the ink and the colour next to it, so the lines keep the weight they have in print. Deep reds and blues are never mistaken for black. The colour under the lines is filled in from clean neighbouring colour only. Anything with fine regular structure, like the line screens, dot screens and hatching, is detected and only lightly cleaned, so the dots stay in place. The pipeline is plain Python with OpenCV, NumPy and SciPy.
Every card you draw in Universe DMs — Crystal Ball is cut from these rebuilt masters.
What I changed on purpose
Two changes go beyond removing damage, and I want to be open about both. Paper grain is smoothed where a colour is genuinely flat, like the yellow sky behind The Fool, because at 3× the grain of a century-old card looks like noise. And inside large solid black areas, the old press often left a fine speckle of paper showing through. The rebuild fills that finest speckle, so solid blacks read as solid. Larger light spots inside the black stay, slightly softened, because at that size they could be part of the drawing.
Before and after
Three cards side by side, as downloaded and as they are now.
The back
The first printing has a back of blue roses and lilies. It’s unsigned and may also be Smith’s. I rebuilt it as a two-colour print, the measured 1909 blue on the deck’s paper tone. The edges were smoothed at three times the size, and printing voids and stray dots smaller than ten source pixels were removed while the design’s own small dots stayed. I also re-centred the pattern, which sat off-centre on the original card.
In the app the cards have a back of our own, a crimson design with a crystal ball among roses and lilies, a nod to that first back. It’s what you see while the deck shuffles in the app, before your card turns over. The app is at universedms.com.
The whole deck
Every file I started from is recorded with its Commons page, its download address and its checksum, and every change to every card is written down: the rotation and scale, how many specks and flecks came out, and each repair with its position and method. The pipeline is a handful of Python scripts, so I can rebuild the deck from the same 158 scans at any time and check every step. While writing this article I reran it on seven cards from fresh downloads, and it reproduced the files in the app to within compression noise.
Where the cards live now
This is the deck you draw from in Universe DMs — Crystal Ball. You can hold a question in mind and pull a card, keep asking within the same reading, or start the day with three cards and ask about any one of them.
Universe DMs — Crystal Ball on the App Store · universedms.com








