# Seamless Noise Texture Generator > Generate tileable Perlin, value, simplex or Voronoi noise as an 8- and 16-bit PNG. Pick Perlin, value, simplex or Voronoi (Worley) noise, set the cells per tile, octaves, persistence and an optional domain warp, and download a seamless grayscale PNG, a 16-bit height PNG and a 2 × 2 repeat that proves the tiling. The result opens as a graph in Renderloom Material Nodes. Part of usefulweb.app (https://usefulweb.app/). Part of [Renderloom](https://renderloom.usefulweb.app/) (ownerApp: renderloom). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://renderloomnoisetexture.usefulweb.app/ (interactive tool at https://renderloomnoisetexture.usefulweb.app/tool) - JSON API: POST https://renderloomnoisetexture.usefulweb.app/api/v1/calculate with a JSON object of inputs (schema: https://renderloomnoisetexture.usefulweb.app/api/v1/tool) - OpenAPI: https://renderloomnoisetexture.usefulweb.app/openapi.json - MCP (Streamable HTTP): https://renderloomnoisetexture.usefulweb.app/mcp - tool `renderloom_noise_texture` ## Inputs - kind (select): Noise type - style (select): Octave style (Perlin, value, simplex) - scaleX (integer): Horizontal cells per tile - scaleY (integer): Vertical cells per tile - octaves (integer): Octaves - persistence (number): Persistence (gain per octave) - contrast (number): Contrast - jitter (number): Voronoi jitter - warp (number): Domain warp (fraction of the tile) - seed (integer): Seed - size (integer): Texture size (px) ## Method - Noise is generated directly on the periodic tile, so it repeats without blending or mirroring. Perlin and value noise wrap their lattice indices modulo the cell count; simplex noise is sampled on a torus in 4-D (x and y each become a circle); Voronoi feature points repeat with the cell grid and the search covers 5 × 5 cells. - Octaves double the frequency and multiply the amplitude by the persistence. Fractal sum maps −1…1 to 0…1; turbulence sums absolute values; ridged sums (1 − |n|)². Contrast scales the result around its midpoint (around 0 for turbulence). Values are clamped to 0–1. - Seed 0 with Perlin noise uses Ken Perlin’s reference permutation: the generator reproduces his reference value noise(3.14, 42, 7) = 0.13691995878400012. Other seeds shuffle the permutation deterministically; Voronoi points use a 32-bit integer hash. - Voronoi distances are in cell widths (F1 is at most about 0.71 for jitter 0) and clamped to 0–1. The optional domain warp displaces the noise by a second Perlin field with wrap-around sampling. - The continuity check compares the steps across the wrap edges with the steps inside the tile. The 16-bit PNG stores the same values with 65536 levels for height maps.