Chris Collins

Tools · fabrication

Lithophane, relief and sign maker

Turn a photo into a printable lithophane — flat, curved, a cylinder lamp shade, a globe band, a heart or a framed shape — with a backlit preview, or into an embossed relief; make raised or engraved signs and nameplates in Google Fonts with the layer to change filament at; and extrude an SVG into coloured solids. STL and 3MF out, closed and manifold.

Added

How to use it

Four makers in one tool, all in your browser (nothing is uploaded): Lithophane, Relief, Sign and SVG. Each makes a closed (manifold) solid you can slice straight away.

How to use it

  1. Lithophane. Open a photo (or drop it on the view), or start from a sample — the step wedge is a calibration print: ten steps from thickest to thinnest, to see how your filament passes light.

    • Shape: a flat panel, a curved arc (set the angle), a cylinder or lamp shade (the image wraps once round; relief outside, or inside for a smooth outside), a globe band (± latitude, open at the poles for the lamp), or a heart, circle, oval or rounded rectangle with an outline frame.

    • Thinnest / Thickest: the wall at white and at black. 0.8 and 3 mm are the usual starting point for white PLA.

    • Resolution: the size of one cell in mm; about half the nozzle width is as fine as a printer resolves (0.2–0.3 mm for a 0.4 mm nozzle).

    • Brightness, contrast, gamma and invert adjust the image first; a border at full thickness frames it; a hanger loop goes on top.

    • Thickness mapping: linear (thickness falls in proportion to grey, the classic way), or by light transmission: light through a wall of thickness t falls as e−μt (Beer–Lambert), so the thickness is chosen to make the transmitted light proportional to the pixel’s linear-light value. μ is a property of your filament: print the step wedge, and set μ so the preview matches it.

    • The backlit preview (under the 3-D view) shows the light through each thickness, e−μ(t−tmin).

    • Colour lithophane (advanced): cyan, magenta and yellow layers (0.1 mm plus up to the full colour layer for a saturated channel, from the image’s complement in linear light) under the white lithophane, as four bodies in the 3MF for a multi-material printer. Treat it as an experiment: results depend heavily on the filaments.

  2. Relief. The same image as an embossed relief on a plate: base thickness plus relief height where the image is light (or dark, with the option), on a rectangle, rounded rectangle, circle, oval or heart.

  3. Sign. Type the text (several lines if you like), pick a Google Font (loaded from jsDelivr, or drop your own TTF / OTF / WOFF), the letter size, spacing and alignment, raised or engraved text, the plate shape and size (0 = fit the text), corner radius, thicknesses, a raised border and hanging holes. Two colours on one nozzle: give the first-layer and layer heights and the tool says which layer to change filament before (M600 / "add pause or filament change" in the slicer) — and warns when the plate top or the engraving floor is not on a layer boundary.

  4. SVG. Open an SVG (filled paths, rectangles, circles, ellipses, polygons; group transforms and viewBox are honoured; 96 px per inch otherwise). Each fill colour becomes a body with its own height, on an optional base plate that follows the outline or is a rectangle. Later shapes cover earlier ones, as in the drawing.

  5. Export: one STL, a 3MF with each body named and coloured (for multi-colour printers), or an STL per body. Export standing upright stands a flat lithophane on its bottom edge, the usual way to print one (the layer lines then run across the picture).

⛶ Full screen (or F) gives the 3-D view the whole screen — the browser’s full screen where it is allowed, otherwise a full-window layer (iPhone); ◫ Panels hides the side panel. Escape leaves.

Printing tips

  • Lithophanes: 100 % infill (or enough walls to fill the thickness), slow outer walls, white or natural PLA. Stand flat ones upright, with a brim.

  • Light: a warm LED strip or a battery tea light behind a cylinder; keep heat away from PLA.

  • Signs: the letter size is the font’s em height — capitals come out about 0.7 of it.

Limits

  • The image is sampled into cells; detail finer than the resolution is lost, and very large, very fine lithophanes (millions of cells) make big files. The tool refuses more than 2.5 million cells.

  • μ (attenuation) is not a published constant: it depends on the filament, its colour and the printer. The default (1.5 per mm) is only a starting point — measure yours with the step wedge.

  • Colour lithophanes here are a simple subtractive model, not a calibrated colour pipeline.

  • SVG: strokes, text, gradients, patterns, clip paths and masks are ignored — convert strokes and text to paths first. CSS in <style> blocks is not read (inline style="fill:…" is).

  • Fonts come from Fontsource’s packages of Google Fonts (SIL Open Font License) via jsDelivr; offline, use your own font file.

Related: model splitter (when the lamp shade is bigger than your printer), mold maker, STL viewer, image tool, OpenSCAD.

Engines: manifold-3d 3.5.4 (Apache-2.0) for outlines, text and SVG solids, opentype.js 1.3.4 (MIT) for fonts, three.js 0.147 for the view — from jsDelivr when first needed.

Linking to an example

Share link copies a URL with your settings — never your image, SVG or font file. By hand: /tools/lithophane/?shape=cylinder&width=220&tmax=3.2#litho. The tab is the part after # (litho, relief, sign, svg).

Parameter Meaning

shape

flat, arc, cylinder, sphere, heart, circle, oval, rounded

width, res, tmin, tmax

Image width mm (arc length / circumference when curved); mm per cell; thinnest and thickest wall mm

map, mu

Thickness mapping linear or light; attenuation per mm

bright, contrast, gamma, invert

Image adjustments; invert 1/0

border, framew, hanger, arc, lat, side

Border mm; outline frame mm; hanger loop; arc °; globe band ± latitude °; cylinder relief outside / inside

colour, cmax, sample, upright

Colour lithophane; full colour layer mm; sample image moon, wedge, gradient; export upright

rshape, rwidth, rres, base, relief, rinvert

Relief plate shape, width, resolution, base and relief heights mm, dark is high

text, font, size, spacing, lineh, align, style

Sign text, font (roboto, inter, montserrat, oswald, bebas-neue, roboto-slab, playfair-display, lobster, pacifico, dancing-script, black-ops-one, stardos-stencil, allerta-stencil, press-start-2p), size mm, letter spacing em, line spacing, left/center/right, raised/engraved

plate, platew, plateh, pad, corner, platet, textt, sborder, holes, holed

Plate rounded, rect, stadium, oval, none; sizes and thicknesses mm; holes none, top, corners

platecol, textcol, first, layer

Colours (#rrggbb); first-layer and layer heights mm

svgw, svgbase, svgplate, svgmargin

SVG width mm, base plate mm, base outline or rect, margin mm

Runs entirely in your browser; nothing you type leaves this page.