Images & photos

Height image to normal map

Build a tangent-style normal texture from a greyscale height interpretation.

Height image to normal map
Esc to restore

Make it yours

Inputs and settings

Adjust the inputs, then update the preview. Sliders and selectors update directly.

See it take shape

LOCAL & PRIVATE

Preparing your workspace…

Your files and work stay in this page. Export anything you want to keep.

A clear answer. Here’s how.

Uses weighted RGB luma as height, central differences with edge clamping, and a normalised vector (−dx, ±dy, 1). Encodes signed xyz to RGB with flat output approximately (128,128,255). Strength is dimensionless and y convention is explicit. Source alpha is ignored. This is a sampled height interpretation, not recovered surface geometry or a physically calibrated normal map. Supports PNG/JPEG/WebP up to 10 MB and 4 million decoded pixels per file. Browser decoding and single-frame PNG re-encoding remove source metadata/colour profiles; no files leave this device.