Type a surface. twirl returns five PNGs: albedo, normal, roughness, metallic, and height. They tile. Drop them into Blender, Unreal, Unity, or Godot.
Five generations a day on the free plan. Public materials download with a commercial license. Standard is $16/mo, Pro is $25/mo. The model is Patina AI; you can run something like it yourself. twirl hosts the prompt, the maps, a public library, and plugins later.
The five maps
A PBR material is the maps your renderer uses so the surface holds up under any light. twirl uses the metallic roughness vs specular glossiness metalness/roughness set in the table below.
| Map | Use it as |
|---|---|
| Albedo | Base color. Lighting baked out. sRGB. |
| Normal | Detail without extra geo. OpenGL in Blender; Unreal wants DirectX (green flipped). |
| Roughness | Black glossy, white matte. Unity usually wants this inverted as smoothness. |
| Metallic | 0 for wood/plastic/stone, 1 for metal. |
| Height | Displacement or bump. Not a color input. |
One credit is one generation at 1×. 2× costs two credits, 4× costs four.
Poly Haven first, if they have it
If the brick you need is already on Poly Haven or ambientCG, grab that. 8K, CC0, no account. Read photoscans vs generating from a prompt when you are deciding between a scan and a generation. twirl is for the surface that is not in those catalogs — browse metal materials and brick materials, or open oxidized copper and red brick directly.
Into Blender
Open the Shader Editor, select the Principled BSDF, and hit Ctrl+Shift+T (Node Wrangler). Point it at the folder. If the files are named Albedo, Normal, Roughness, and Metallic, it wires itself. Set albedo to sRGB and everything else to Non-Color. Height does not auto-wire; send it through a Displacement node with the material set to Displacement and Bump, and keep the scale small. If the lighting looks inside-out, invert green on the normal. That is DirectX vs OpenGL.
Generate at 1× until the prompt is right, then upscale.
Unreal wants ORM (occlusion / roughness / metallic in RGB) and DirectX normals. Unity URP/HDRP wants a Mask Map and smoothness, not roughness. Invert roughness for now; packers are coming. For ground and road surfaces, try asphalt materials as a generation starting point.