CC0 · PBR · PNG
Free seamless textures for games and 3D
In short
Grab3D offers 36 free seamless PBR textures in 7 groups, from wood planks and linen to cobblestone, grass and painted metal. Every texture tiles in both directions, has a fixed size in metres and comes as base colour, normal (OpenGL and DirectX), roughness, AO and height maps in 4K, 2K and 1K, released under CC0.
- Textures
- 36 · 7 categories
- Maps
- Base color, Normal (GL + DX), Roughness, AO, Height
- Resolutions
- 2K, 1K (plus 4K for 1)
- All downloads
- 567 MB
- License
- CC0 1.0
01Texture categories
The textures share one look: soft pastel colours, clean shapes and little noise, so they sit well next to low poly and cozy 3D models. Each page shows the material on a test scene and in an example room with models from the library, lists its tile size and offers ZIP downloads per resolution, 1 of them also in 4K.
-



-



-



-



-



-



Concrete and tile textures
5 seamless textures: concrete, pavers, bathroom tiles, terrazzo
- 5 textures
-

02All 36 textures
Cozy Wood Planks
Cozy Light Oak Planks
Cozy Walnut Planks
Cozy Herringbone Parquet
Cozy White Painted Planks
Cozy Wood Shingles
Cozy Linen Fabric
Cozy Linen Fabric Cream
Cozy Linen Fabric Rose
Cozy Linen Fabric Sky Blue
Cozy Knit
Cozy Plaid Fabric
Cozy Loop Carpet
Cozy Cobblestone
Cozy Stone Slabs
Cozy Stone Wall
Cozy River Pebbles
Cozy Gravel
Cozy Brick Wall
Cozy White Brick Wall
Cozy Grey Brick Wall
Cozy Beaver Tail Roof Tiles
Cozy Slate Roof
Cozy Grass
Cozy Flower Meadow
Cozy Soil
Cozy Sand
Cozy Snow
Cozy Forest Floor
Cozy Concrete
Cozy Board Formed Concrete
Cozy Sidewalk Pavers
Cozy Bathroom Tiles
Cozy Terrazzo
Cozy Diamond Plate
Cozy Painted Metal Panels
03Using the textures
Tiling and real scale
Each texture page states how many metres one tile covers, for example 2 × 2 m for plank floors or 25 cm for linen. Divide the object size in metres by the tile size and use the result as UV repeat: a 6 m floor with a 2 m tile repeats 3 times. With UVs in metres (world aligned or box mapped), the scale is simply 1 divided by the tile size.
Normal maps: OpenGL or DirectX
Every download contains two normal maps. normal_gl follows the OpenGL convention (green channel Y+) for Blender, Godot, Unity and three.js. normal_dx is the same map with the green channel inverted (Y-) for Unreal Engine and other DirectX style tools. Picking the wrong one makes bumps look like dents.
Blender
Use a Principled BSDF. Load the base colour as sRGB and every other map as Non-Color. Connect normal_gl through a Normal Map node in tangent space. For real relief, add a Displacement node with the height map, midlevel 0 and the scale from the texture page in metres. Blender ignores the AO map when rendering, so it can stay out.
Godot 4
Create a StandardMaterial3D. Albedo texture = base colour, roughness texture = roughness with the channel set to Red or Gray, enable the normal map with normal_gl and ambient occlusion with the AO map. The height map can drive parallax through the heightmap option. Set the tiling with UV1 scale.
Unity (URP or Built-in)
Base Map = base colour, Normal Map = normal_gl with texture type Normal map, Occlusion = AO. Unity works with smoothness, not roughness: invert the roughness map (1 minus roughness) and store it in the alpha channel of the metallic map, or use a Shader Graph with a One Minus node. The height map serves as parallax map. Set tiling in the material.
Unreal Engine
Use normal_dx, the DirectX convention Unreal expects, and import it with the Normalmap compression setting. Turn off sRGB on roughness, AO and height, keep it on for the base colour. Multiply a TexCoord node by the number of repeats to set the tiling from the tile size in metres.
three.js
MeshStandardMaterial with map, normalMap, roughnessMap, aoMap and, on finely subdivided geometry, displacementMap. Set map.colorSpace to SRGBColorSpace, wrapS and wrapT to RepeatWrapping and repeat.set(x, y) on every texture. normalMap uses normal_gl, displacementScale is the height range in metres.
In every download
- Six PBR maps: base colour, normal OpenGL, normal DirectX, roughness, ambient occlusion and height
- PNG files, base colour in sRGB, data maps linear, height map in 16 bit grey
- Seamless in both directions, one fixed tile size in metres per texture
- One ZIP per resolution, so you only download the size you need
- README with scale, map formats and engine setup, LICENSE with the CC0 text, preview render
Questions and answers
Are these seamless textures really free?
Yes. All textures are released under CC0 1.0. Download them without an account and use them in commercial games, renders, client work or your own asset packs, no attribution needed.
What does seamless mean for a texture?
The right edge continues the left edge and the top continues the bottom, in every map. Placed side by side, the tiles form one continuous surface without visible lines, which is what large floors, walls and terrain need.
Which resolution should I download?
2K is a good default for games and renders. 1K is enough for mobile, web and small objects. 4K exists for close-up renders where it is offered. All resolutions are scaled from the same source, so they look identical apart from detail.
Are the textures photo scans?
No, they are stylized: soft colours, simple shapes and little noise. That makes them a match for low poly, cartoon and cozy games, while photoreal projects are better served by scanned materials.
Can I use the textures in a 2D game?
Yes. The base colour maps are seamless images on their own and work as ground or wall tiles in a tilemap. For ready made 2D tiles with collision, the Grab3D tilesets are the better start.
More free 2D assets and textures
3D icon packs UI Basics 1UI Basics 2Business and MarketingCommunicationE-CommerceWeather and Nature

