Skip to content
Creative3DP Tools

Lithophane Maker

Turn a photo into a printable lithophane — and actually see what it will look like lit from behind before you spend six hours printing it.

Backlit preview Physics-based thickness Nothing uploaded

Drop a photo here or click to browse

JPG, PNG, WebP. Processed on your device — nothing is uploaded.

Why most lithophanes come out disappointing

The standard approach is simple and wrong: take the brightness of each pixel, map it linearly onto a thickness between about 0.8 mm and 3 mm, and generate the mesh. It is easy to implement and it is what nearly every free lithophane generator does.

The problem is that light does not pass through plastic in a straight line on a graph. Absorption follows the Beer-Lambert law:

I = I₀ · e−μt

Transmitted light falls away exponentially with thickness t, at a rate set by the material's absorption coefficient μ. So a linear thickness ramp does not produce a linear brightness ramp. The midtones bunch up, the shadows crush into a single flat black, and the print looks muddier and lower-contrast than the photo you started from.

What this tool does differently

It works backwards from the physics. For each pixel it decides how much light should come through, then solves Beer-Lambert for the thickness that delivers it:

t = −ln(T) / μ

The result is that transmitted light is linear in image brightness — which is what your eye actually sees. Midtones stay open, shadows keep their separation, and the print resembles the photograph.

There is a toggle for this. Turn physically-correct mapping off and the preview switches to the naive linear map the other tools use, so you can watch the midtones collapse. It is the clearest demonstration of why this matters.

The preview is the point

A lithophane is invisible until it is lit. Judging one from a grey 3D render is like judging a photograph from its negative — which is why so many people print two or three before getting one they like, at six-plus hours each.

The right-hand image on this page is a simulation of the finished, backlit print. It computes transmission through the exact thickness at every pixel, using the absorption coefficient of the filament you selected, after quantising the thickness the way your chosen print orientation will actually quantise it.

A couple of other tools do preview the lit result — 3DPlotter states it models Beer-Lambert attenuation, and lithofun has a "realistic rendering" option. What we do differently is publish the model rather than describe it: the absorption coefficient is on the page, the physically-correct mapping has an off switch so you can see what it is buying you, and the preview accounts for orientation instead of assuming you print flat.

The settings that actually matter

Orientation decides what your layer height controls

This is the detail almost every lithophane guide — including, until we checked, ours — gets muddled.

Printed flat, the thickness runs along Z, so it can only change one whole layer at a time. Layer height then caps your tonal steps directly: over a 0.8–3 mm range, 0.2 mm layers give you just 12 greys, 0.12 mm gives 19, and 0.08 mm gives 28. Twelve is not enough for a sky or a cheek.

Printed upright, the thickness runs across X and Y, where a variable-width slicer resolves it to a few hundredths of a millimetre — so you get hundreds of tonal steps, not twelve. Layer height instead sets how many horizontal lines the picture is drawn with.

This is the strongest reason to print upright, and it is measurable: a 2024 study in Polymers tested six FFF parameters against light transmission and found orientation was the largest single factor, at 246.0 lx upright against 194.2 lx flat. The tool has an orientation control and models the right quantiser for each.

Thickness range decides your contrast

The ratio between the light passing through the thinnest and thickest points is your contrast ratio, and it is exponential in the range. The tool displays it live. Under about 8:1 the image looks washed out no matter how good the photo was.

Filament changes the maths, not just the colour

Each material has a different absorption coefficient, so switching filament changes the correct thickness curve — not merely the appearance. White PLA is the dependable default. Natural PLA passes more light for a brighter, flatter image. Grey absorbs heavily and needs a strong backlight.

Print it standing up

Vertically, on its edge. Printed flat, every layer boundary lies parallel to the image and thickness steps a whole layer at a time, which is banding at its worst. Vertical printing puts your XY precision in charge of the detail instead.

Recommended starting point

SettingValue
Thinnest / thickest0.8 mm / 3.0 mm
Layer height0.10–0.12 mm
Detail0.25–0.30 mm per sample
MaterialWhite PLA
OrientationVertical, on its edge
Infill / walls100% infill, 0 top/bottom

Once you have the STL, our print time estimator and cost calculator will tell you what it costs before you start, and the STL viewer will confirm the mesh is watertight.

Frequently asked questions

What is a lithophane?

A thin 3D printed panel whose thickness varies with the brightness of a photo. Held up to a light, the thin areas glow and the thick areas block, and the image appears. Printed flat on its back it looks like a blank white tile — the picture only exists when it is lit from behind.

Why does this look different from other lithophane makers?

Because almost every other tool maps brightness to thickness linearly, and light does not behave linearly. Transmission through plastic follows the Beer-Lambert law, I = I0 x e^(-mu x t), so light falls off exponentially with thickness. A linear map therefore crushes shadows and washes out midtones. This tool inverts the physics instead: it computes the thickness that delivers the right amount of transmitted light, so the printed result matches the photo.

How accurate is the backlit preview?

It is computed from the same physics used to generate the mesh: transmission for the exact thickness at each pixel, using an absorption coefficient for your chosen filament, after quantising thickness the way your chosen print orientation will actually quantise it. It is a model rather than a photograph, so a real print will differ with your light source, your filament batch and your flow calibration — but it is far closer than judging from a grey 3D render.

What thickness should a lithophane be?

The usual range is 0.8 mm at the brightest point to 3 mm at the darkest. Thinner than about 0.6 mm gets fragile and translucent enough to lose contrast; thicker than about 4 mm blocks so much light that dark areas go flat black and print time balloons. The tool shows your resulting contrast ratio and warns if the range is too narrow to be worth printing.

What layer height is best for lithophanes?

0.10 to 0.12 mm, but what it controls depends on orientation. Printed flat, thickness runs along Z and can only change one whole layer at a time, so layer height directly caps your tonal steps — 0.2 mm layers over a 0.8-3 mm range give only 12 greys. Printed upright, which is what you should do, thickness runs across X and Y where a variable-width slicer resolves it far more finely; layer height then sets how many horizontal lines the picture is drawn with instead. Either way 0.10-0.12 mm is the answer, but for different reasons.

Which filament works best?

White PLA is the standard: it diffuses light evenly and has a useful absorption coefficient. Natural or clear PLA passes more light and gives a brighter but lower-contrast result. Grey and coloured filaments absorb far more and need a strong backlight. Pick your material in the tool and the preview updates, because the material changes the thickness curve, not just the look.

Should I print it flat or standing up?

Standing vertically, on its edge. Printing flat means every layer boundary runs parallel to the image plane, so thickness changes land in steps of one whole layer and banding is at its worst. Printed vertically the layers run across the image and detail resolution comes from your XY precision rather than your layer height.

Is my photo uploaded anywhere?

No. The image is read into a canvas and processed entirely in your browser, and the STL is generated on your device. Nothing is transmitted, which matters given these are usually family photos.