How Embossify Turns Image Brightness into 3D Depth
Updated
Embossify maps pixel brightness directly to mesh depth: lighter pixels become deeper facets in the STL mesh, and darker pixels become shallower ones. The site states this explicitly ("Lighter the pixel, deeper facet in the mesh"), and it offers an invert option for the opposite mapping. The result is a fully enclosed tessellation of the rendered 3D mesh, suitable for 3D printing or CNC routing. This applies to JPEG input converted into lithophanes, reliefs, and similar 3D design elements.
The brightness-to-depth rule
The core mechanism is a one-to-one relationship between a pixel's luminance and how far that point is pushed along the depth axis of the mesh.
| Pixel brightness | Facet depth in mesh |
|---|---|
| Lighter | Deeper |
| Darker | Shallower |
Because the mapping is direct, a grayscale gradient in the source image becomes a smooth slope in the mesh. A photo with bright highlights and dark shadows produces a surface with tall peaks where the image is light and low valleys where it is dark.
Why this matters for lithophanes
A lithophane is a thin panel that reveals an image when backlit: thicker areas block more light and appear dark, thinner areas let more light through and appear bright. If you feed a normal photo into a direct brightness-to-depth mapping, light pixels become the thickest regions — the inverse of what a backlit lithophane needs. That is exactly why the invert option exists.
Inverting depth
The site provides an invert control that reverses the mapping: light pixels become shallow and dark pixels become deep. Use it when:
- You are making a lithophane and want the backlit result to match the original photo's tones.
- You are making a relief or stamp and need raised areas to correspond to dark lines or shapes rather than light ones.
- Your source image is a line drawing on a white background and you want the lines to stand out as the high or low features, depending on the effect you want.
The practical test is simple: render once, look at the preview or the printed result, and if the depth reads backwards relative to your intent, enable invert and render again.
What the output actually is
The conversion produces an STL (Stereolithography) file containing a perfectly enclosed tessellation of the rendered 3D mesh. "Enclosed" means the surface is closed rather than an open sheet, which is what makes it usable as a solid model for 3D printing or CNC routing.
The mesh is built from facets (triangles). Resolution is expressed in facet count:
- Free low-resolution rendering: approximately 108k facets, available as an instant download.
- High-resolution rendering: $5 via PayPal, with a higher facet count.
Higher facet counts mean finer triangles, so brightness transitions are represented with more detail and curved or gradual gradients look smoother rather than faceted.
Controls that shape the depth result
Alongside brightness mapping and inversion, the converter exposes parameters that affect the physical geometry:
- Target width (millimeters): sets the overall X dimension of the model.
- Depth (millimeters): sets how far the deepest facet extends — in effect, the contrast of the 3D relief.
- Thicker / Lighter / Darker: adjustment controls for how the tonal range is interpreted.
Width and depth are given in millimeters, so you can size the model to your printer bed or routing stock before downloading.
A concrete example
Suppose you convert a portrait photo where the face is well lit against a dark background:
- With the default mapping, the bright face becomes the deepest region and the dark background becomes the shallowest — a face-shaped depression in a flat plate.
- If your goal is a lithophane that shows the face correctly when backlit, enable invert so the bright face becomes thin (light passes through) and the dark background becomes thick (blocks light).
- Increase the depth value in millimeters to strengthen the tonal contrast; increase target width to scale the panel up.
- Choose high resolution if the photo has fine detail such as hair or fabric texture, since 108k facets may smooth those transitions out.
Practical notes
- The free tier is a low-resolution rendering at roughly 108k facets; high resolution is a paid option at $5 per rendering.
- Bulk purchasing is offered for multiple conversions.
- An API and a render-code feature are listed on the site, which suggests programmatic or repeatable rendering is supported.
- Output is intended for 3D printing or CNC routing, so check that your target width and depth fit your machine's working volume before rendering.