An online tool that behaves like a small workbench.
Online does not have to mean server-side. The page provides the interface and conversion code, while your device holds and processes the source. Every parameter updates the visible canvas so you can reason about the map before committing it to an asset pipeline.
Source and output stay one click apart
Switch between the original height image and encoded normal result without losing settings. This makes it easier to connect a suspicious edge in the output to the source contrast that caused it.
Move the light before export
Material mode decodes the normal directions and applies a simple local light. Drag on the preview or use the visible X and Y sliders, which also keeps the inspection path usable from a keyboard.
Reveal repeating seams early
A tileable texture can look correct at 1× and fail when repeated. Use 2×, 3×, or 4× preview tiling with Wrap edges to expose discontinuities before the file reaches a larger material scene.
Download the computed map
The PNG is created in the browser from the same pixel buffer shown in Normal mode. Preview lighting and tile repetition are never baked into the exported map.
- Add a sourceChoose a PNG, JPG, or WebP, drag it into the input panel, or begin with a built-in sample.
- Tune reliefAdjust strength, smoothing, filter, orientation, height inversion, and edge behavior.
- Inspect lightingCompare source and normal views, then move the material light with a pointer or the X/Y sliders.
- Export PNGDownload the full generated normal map. Nothing is sent to a server during conversion.
Online normal map generator FAQ
Does online processing mean my image is uploaded?
No. Online describes the browser interface. Once the page loads, the selected texture is decoded and processed locally; the service has no image upload endpoint.
Should white be high or low in the source?
By default, white is treated as high and black as low. Enable Invert height when your source uses the opposite convention or when the result looks embossed instead of engraved.
Which normal map format should I use?
Use the format your target engine requests. Blender and many OpenGL workflows typically use Y+, while several DirectX pipelines use Y−. If uncertain, import a small test and confirm the green-channel direction under a known light.
Can I use a color photo?
Yes. The tool converts RGB brightness into a height field. However, color changes caused by paint or lighting may become false bumps. A cleaned grayscale height image usually creates a more controlled material.
Why is the preview limited to a 1200-pixel edge?
Large images are resized for predictable interactive performance on phones and ordinary laptops. This is an explicit working limit, not an upload limit, because processing stays local. The output keeps the working dimensions shown in the interface.