Make the output. Check the evidence. / KitForma

Normal Map Generator — Local Height, AO and Roughness PNGs

Turn a height image into downloadable normal, height, estimated ambient-occlusion and roughness maps, entirely in your browser.

No account neededRuns in your browserFree to use
Material Map LabLOCAL WORKSPACE
IMAGE → MAPSChoose · review · download
From question to next step

Material Map Lab

Choose your inputs, or load the working example to explore the result. Your files stay on this device.

Your inputs

Required fields are marked with an asterisk.

01

PNG, JPEG or WebP, up to 20 MB. Outputs preserve aspect ratio and resize to at most 1024 pixels per side.

Loading the local tool… Your files stay in this browser.

Your result

Review your output, then save it to your device.

02

Make the next step clear.

Your findings, assumptions and next steps will appear here after you run the check.

Material Map Lab · https://materials.kitforma.com/ · KitForma

01

Runs locally in your browser

02

Download actual usable output

03

Explicit assumptions and supported inputs

Good questions

Before you start

Is my image sent to a server?

No. Decoding and all map calculations run in your browser.

Does this create a physically measured PBR material?

No. Normal and height maps follow image brightness; roughness and AO are explicitly labeled estimates.

Does seamless sampling repair seams?

No. It wraps derivative sampling; the source texture must already be seamless.

Why is the normal map mostly blue?

A flat tangent-space normal points out of the surface and encodes near RGB 128, 128, 255.

What happens to transparency?

Transparent pixels become zero height. Crop or flatten your source if that is not the intended boundary.

The evidence behind the check

Sources & assumptions

Formats, algorithms and supported features are documented below. Check the stated scope and inspect your output before using it.

Reviewed 2026-10-17. Read our methodology or report an issue.

Essential local storage remembers this choice for up to 180 days. Your choice applies to this subdomain. Global Privacy Control and Do Not Track override optional measurement.

Advertising has a separate choice. Use Advertising preferences in the footer to allow or reject the optional guide-page banner.