Press Generate to make an image.
Palette add a color that is not in the image
Most frequent — click a swatch to lock it
Most different — click a swatch to lock it

Added colors lock into the strip, so they survive Generate and are included when you save the palette.

Analysis histogram, frequency and contrast palettes
Channel histogram
Most frequent colors
Most different colors
Interpolate blend two seeds into a morph sequence
8
About & FAQwhat this is, how the patterns work

A free PNG-8 pattern generator that runs in your browser

Random Image Lab turns mathematics into images. Pick a procedural pattern, set a size and a palette, and it renders an indexed-color PNG-8 — the format that stores at most 256 colors as a palette rather than full 24-bit color, and so compresses flat and banded imagery far smaller than PNG-24 or JPEG while staying lossless.

Everything runs as JavaScript on your own machine. No account, no upload, no server sees your work, and the page keeps working offline once loaded. Because the images come from mathematical functions rather than anyone's artwork, you can use them commercially without attribution.

The eight pattern generators

Random noise
Uncorrelated per-pixel values — film grain, static, dither sources.
Perlin noise
Smooth gradient noise layered across octaves. The usual starting point for clouds, marble, terrain and organic surfaces.
Gradient
Linear and radial ramps, useful on their own or as a base to blend other patterns into.
Cells / Voronoi
The plane divided into cells around scattered points. Produces crack lines, rounded blobs, or flat stained-glass regions depending on which distance measure you pick.
Plasma
Recursive subdivision into flowing, high-contrast color fields — the classic demoscene look.
Truchet tiles
A grid of tiles each randomly rotated, so simple arcs assemble into sprawling maze-like geometry.
Reaction diffusion
Two simulated chemicals competing across the grid, growing the spots and stripes found on animal coats.
Cellular automata
Neighbour-counting rules run over many generations, producing caves, mazes and crystal growth.

Making a texture that tiles seamlessly

Turn on tiling before generating. The noise is then sampled on a periodic lattice so the left column matches the right and the top row matches the bottom, and the image repeats forever with no visible seam — what you need for a CSS background, a game surface material, or a fabric print. Tiling pins a couple of the shape controls to values that keep the lattice intact; the readouts show the value actually in force rather than the one you set.

Why dithering matters at small palettes

Reduce a smooth gradient to a handful of colors and it bands into visible stripes. Dithering scatters the quantization error into neighbouring pixels so your eye blends them back into a gradient. Floyd–Steinberg diffusion looks organic and irregular; ordered Bayer dithering lays down a regular crosshatch with a deliberately retro, early-90s feel.

After the render

  • Post-processing — blur, sharpen, median despeckle, emboss, outline and threshold, applied to the finished image.
  • Recolor — remap the palette of an image you already like, including generated complementary, analogous, triadic, split-complementary and tetradic harmonies, without regenerating the pattern.
  • Symmetry — mirror, quad mirror, pinwheel and kaleidoscope folds.
  • Aspect and size — non-square ratios plus rescaling, from 16 up to 512 pixels.
  • Batch and morph — generate many variations at once, or interpolate between two settings and export the sequence as an animated GIF.
  • Reproducibility — every image comes from a seed, so the same seed and settings give the same image again. Capture settings as a share link, a preset, or a favourite.

Common questions

Is it really free?

Yes, and there is no account. The whole generator is this one page.

Do my images get uploaded anywhere?

No. Generation, filtering and export all happen in the browser; nothing is sent over the network.

What size should I export?

For a tiling background, 64 or 128 pixels is usually plenty — the pattern repeats, so a larger tile mostly costs bytes. Use 256 or 512 when the image is shown once at full size.

How do I get the smallest file?

Cut the palette. PNG-8 stores one palette index per pixel, so dropping from 256 to 32 colors is a large saving, and dithering can hide most of the quality cost.

Can I use these images in a commercial project?

Yes — generated from math on your own machine, no third-party rights attached, no attribution required.