Free normal map generator, No sign-up

A photo of a surface in, the maps a renderer needs out: normal, height, roughness and occlusion. Quick maps appear at once in your browser; AI maps, with the depth read the right way round, are one click away on a free GPU.

Drop a photo of a surface

  • JPG
  • PNG
  • WebP
  • HEIC

Nothing is uploaded. The file stays on your device.

No photo? Try one:

When to use it

You have a texture, a photo of a wall, a scan or a tile from a pack, and the engine wants more than colour. The quick maps appear at once, at the photo’s own resolution, and the photo stays on your device; they are a heuristic, good where darker really is deeper. The AI maps take about ten seconds on a free shared GPU and read the depth from the shapes instead, which is what painted bricks, tiles and stones need.

The maps you get

In the AI maps, the height comes from a model trained on textures and is saved as a 16-bit PNG; the normal map adds the broad shape a surface-normal model sees, and the roughness is set by what the material is. In the quick maps, the height is the photo’s brightness read as depth, the normal map its slopes, and the roughness comes from local detail. Either way the occlusion map darkens the crevices the height map finds, and the strength and DirectX controls work on both.

Starting from nothing, or the photo does not tile? The texture generator paints a flat, evenly lit surface from a description, or repaints a photo as one that tiles, on a shared GPU; “Adjust the maps” then brings the result back here, to these controls.

Questions

How does it get bumps out of a flat photo?
Two ways. The quick maps, made at once in your browser, read brightness as depth: on a rough surface lit from the front, deeper points catch less light. It is the heuristic Materialize and CrazyBump use, and it fails on painted patterns, where white mortar between red bricks comes out high. The AI maps, one click more, come from models trained on textures, run on our GPU: they read what is raised and what is sunk from the shapes, so bricks stand out from their mortar and cobbles come out rounded.
Quick maps or AI maps?
The AI maps, for almost any surface: the depth is right where brightness misleads, and the roughness is set by what the material is. They take about ten seconds on a free shared GPU and come back at up to 1024 pixels. The quick maps are instant, stay at the photo's full size, and never leave your device. After an AI run you can switch between the two to compare.
OpenGL or DirectX?
The two conventions disagree on which way the green channel points. Blender, glTF, three.js, Godot and Unity, in every render pipeline, use OpenGL; Unreal and 3ds Max use DirectX. Pick the wrong one and the bumps look inside out under some lights. Switch it here rather than fixing it in the engine.
What is the roughness map based on?
In the AI maps, the material: the model names the surface (brick, marble, rusted metal) and sets how rough it is, and a net trained on textures adds the variation across it. In the quick maps, local detail: busy, grainy areas read as rough and smooth areas as glossier, inside a plausible band so nothing comes out as a mirror.
Can I download one map on its own?
Yes. Click a map thumbnail to download that map alone as a PNG. The zip is there when you want the whole set, and the height map has its own tab when that is the one you are after.
Can I use the height map for displacement?
Yes. As a bump map it only changes the shading; as a displacement map it moves the surface, which needs a finely divided mesh. In Blender, plug it into a Displacement node for real depth, or a Bump node for the cheap version. Click the height thumbnail to download it on its own.
Can I make a terrain heightmap with this?
Only of a surface texture, such as a rock face or sand. A heightmap of real terrain, a mountain or an island, comes from elevation data, not a photo, and needs a terrain tool.
Is my photo uploaded?
Not for the quick maps: they are made in your browser and the photo stays on your device. The AI maps are made on our GPU, so when you click Make AI maps the photo is sent for that run, at up to 1024 pixels, and is not kept.
Does it keep the photo seamless?
Yes. Every filter wraps around the edges, and so does every model behind the AI maps, so a tileable photo gives tileable maps. If the photo itself has a seam the report says so, and the Texture generator tab repaints it as one that has none.
Do I need an account or to sign up?
No. There is no sign-up, no login and no email: open the page and use it. The AI runs on a free daily allowance per visitor, and when it is used up the page says when it comes back; the tools that run in your browser keep working in the meantime.

Next