Under the hood

How a photo and a sentence become mail.

Four steps between the photo you add and the files that go to the printer and the plotter. Here's each one.

01

Your photo becomes the front

The photo is cover-cropped to the postcard's 3:2 frame — the same math a phone gallery uses for "fill" thumbnails — so nothing gets stretched or squished, just cropped to fit. It's drawn straight onto a canvas at postcard resolution.

Nothing leaves your browser to do this: it's <canvas> compositing, running client-side.

02

The note runs through a humanization engine

Your typed note is converted, letter by letter, into pen strokes using a single-stroke font — the kind engraved for pen plotters, where every letterform is one continuous line rather than a filled shape. Spacing is ink-aware: each letter is placed far enough past the actual ink of the previous one that flourish-heavy scripts never collide or merge, with a wider gap reserved between words than between letters.

On top of that guaranteed spacing, small randomized jitter, tremor, and baseline wobble get layered in — a little rotation and scale per letter, a wandering baseline, a slight tremor along each stroke — so the same note drawn twice never looks quite identical, the way real handwriting doesn't either.

03

Or trace your own handwriting

Upload a .ttf or .otf font file instead of using one of the five bundled hands, and PenPigeon rasterizes each letterform and thins it down to a one-pixel-wide skeleton — the center-line a pen plotter needs, rather than a filled outline. That skeleton is walked and converted into the same stroke format as the bundled fonts, so it goes through the exact same spacing and jitter pipeline afterward.

This step runs in a background worker, since tracing a whole alphabet is the heaviest part of the whole pipeline.

04

Two files come out the other end

The finished postcard isn't one flat image. It's a photo file for the front, an address-and-blank-message-area file for the back, and a standalone message.svg containing nothing but the plotted stroke path — width, position, and order preserved, exactly as a pen plotter driver would need it.

See it happen

This is a real plotted path, not a recording

The line below is genuine engine output — the same stroke data a physical pen plotter would receive — drawn in at the pace a pen would actually move.

Script · rendered live, 34px, seeded for reproducibility

Where the files go

Built for two very different machines

A photo printer and a pen plotter want completely different inputs — so PenPigeon hands each one exactly what it needs.

Photo printer

Gets two flat, full-bleed raster images: your photo for the front, and the address side with the message area left intentionally blank.

front.png · back.png

Pen plotter

Gets one vector file — a single continuous stroke path with position, width, and drawing order all preserved, ready to hand to plotting hardware.

message.svg

You

Gets a composite preview showing exactly how the finished, mailed postcard would look once both machines had done their part.

preview.png
Try it yourself

Every step above runs the moment you start one

No account, no waiting on a server — the wizard is right here.

Start a postcard →