# NormalMapAI — Free Online Normal Map and PBR Texture Generator
NormalMapAI (https://normalmapai.com/) is a free, zero-login online Normal Map Generator and full PBR Texture Maker built on in-browser WebGL2 GPU shaders. Artists and game developers drop any 2D photo or texture and generate tangent-space normal maps (OpenGL +Y and DirectX -Y), 16-bit PNG height and displacement maps, roughness, ambient occlusion (AO), metallic, curvature, specular, emissive, and channel-packed ORM maps. The same studio includes a seamless tileable texture maker, a transparent PNG background remover for decals and sprites, and a 3D preview (sphere, cube, plane, cylinder, torus) with HDRI and point lighting. glTF, Blender, UE5, and Unity export presets keep the maps engine-ready. Every pixel is processed locally, so textures never leave the device. Pricing is Free: 100% free in-browser, no login required.
## Core capabilities
A free in-browser Normal Map and PBR Texture Generator turns 2D images into normal, 16-bit height, roughness, AO, ORM, and seamless maps via WebGL2. Normals flip between OpenGL green-up and DirectX green-down without a desktop app. Height and displacement export as 16-bit PNG. Roughness, metallic, curvature, specular, and emissive maps sit beside ambient occlusion. ORM packing combines occlusion, roughness, and metallic for glTF and Unreal. Seamless mode makes tileable textures. The transparent PNG tool isolates decals. The viewport previews the set on primitive meshes before export.
## Grayscale bump maps
When a material only needs a classic grayscale bump instead of a tangent-space normal, use the [Online Grayscale Bump Map Generator](https://normalmapai.com/bump-map-generator). It turns a photo into a height-style grayscale image you can plug into a Bump node, while the normal-map path stays available for engines that expect OpenGL or DirectX normals. Sixteen-bit height remains the better source when displacement or a 3D-print relief needs more tonal steps than an 8-bit bump.
## Engine workflows
In Blender, use the normal map in a Normal Map node set to tangent space, or connect the grayscale bump to a Bump node. Feed the 16-bit height map to Displacement, and send roughness, metallic, and AO into Principled BSDF. Match the green channel to OpenGL (+Y). In Unreal Engine 5, import the packed ORM texture and sample it in a material: R for ambient occlusion, G for roughness, B for metallic, with the DirectX (-Y) normal on the Normal pin. Unity URP or HDRP uses the same tangent-space normal, a Mask Map or separate roughness and metallic slots, and the height map for parallax or tessellation.
## Step-by-step usage
1. Open https://normalmapai.com/ in a WebGL2 browser. No account is required.
2. Drop a 2D photo or texture onto the generator.
3. Choose tangent-space normal (OpenGL or DirectX), 16-bit height, roughness, AO, metallic, curvature, specular, emissive, ORM, seamless tile, transparent PNG, or a grayscale bump.
4. Inspect the result in the 3D preview on a sphere, cube, plane, cylinder, or torus with HDRI or point lighting.
5. Export with the glTF, Blender, UE5, or Unity preset and download the PNGs. Processing stays on-device.
## FAQ
**Does NormalMapAI upload my texture?** No. Shaders run in the browser with WebGL2, so source images stay on the device.
**Is there a paid plan?** No. The generator is free, with no login wall.
**Bump or normal?** Use a grayscale bump for a simple Bump node. Use a tangent-space normal for Blender, glTF, Unity, and Unreal. OpenGL is +Y. DirectX is -Y.
**Can I pack ORM?** Yes. Occlusion, roughness, and metallic can be packed into one texture for glTF and UE5.

