Make seamless Perlin, value, and Worley noise for shaders, masks, displacement, and VFX, with FBM controls and a tiled preview so you can trust the edges. Everything renders in this tab; nothing uploads.
Choose the noise type, set the feature size with frequency, then add detail with octaves and persistence. Leave tileable on for material work, reroll the seed until the pattern feels right, and download the PNG.
| Type | Look | Typical uses |
|---|---|---|
| Perlin | Smooth, rolling, organic | Clouds, terrain height, dissolve masks, water, wear masks |
| Value | Similar to Perlin but blockier, more axis-aligned | Cheap variation masks, retro looks, stylized breakup |
| Worley F1 | Cellular - dark cell centers, bright borders | Caustics, scales, cracked mud, foam, stone |
| Worley F2 | Softer cellular, second-closest feature point | Organic tissue, bubbles, softer cell looks |
| Worley F2 - F1 | Thin dark cell borders - a crack network | Cracks, cell walls, voronoi outlines, leather |
One layer of noise is smooth and boring. Fractal Brownian motion (FBM) stacks several layers - each octave doubles the frequency of the last, adding finer and finer detail. Persistence controls how loud each successive octave is: at 0.5 every octave contributes half as much as the previous one (the classic look); push it toward 0.9 for harsh, noisy detail or down toward 0.2 for gentle rolling shapes with just a hint of texture.
This is exactly the same construction you'd write in HLSL or VEX - this tool just bakes it to a texture so you can sample one map instead of paying for eight noise evaluations per pixel in your shader.
With tileable ticked, the noise lattice wraps at the texture border - the gradient at the right edge is the gradient at the left edge, so the pattern repeats with no visible seam in either direction. Each FBM octave doubles the period, which keeps every layer seamless too. Use the preview 2x2 tiled toggle to see the texture repeated and confirm there's no seam.
Because the output tiles perfectly, you rarely need a huge texture: a seamless 512 tiled four times looks better than a 2048 stretched once, and costs a sixteenth of the memory. That's why the resolution dropdowns stop at 2048.
Noise is data, not color - untick sRGB when importing into your engine, and consider a single-channel compression format (BC4 in Unreal) since the map is grayscale.
This runs as plain HTML and JavaScript. The texture is made in this tab, and the PNG download is built locally. Nothing is sent anywhere. View source if you want to check.