Fact-checked by Grok 2 weeks ago

Worley noise

Worley noise, also known as cellular noise or Voronoi noise, is a procedural noise function introduced by Steven Worley in 1996 for generating cellular textures in computer graphics. It produces patterns by partitioning space into a random array of cells using scattered feature points and computing distances from any location to the nearest such points, creating basis functions that mimic Voronoi diagrams. This approach complements traditional noise functions like Perlin noise by enabling efficient, storage-free synthesis of organic and geometric textures without precalculation. The core of Worley noise lies in its basis functions F_n(x), where F_1(x) is the distance to the closest feature point from position x, F_2(x) to the second-closest, and so on, with feature points distributed via a process in a spatial for reproducibility. Linear combinations, such as F_2(x) - F_1(x), yield effects like boundaries or veins, while summation extends it to multiscale patterns. Computationally, it involves hashing to locate relevant grid cells (typically 1–3 neighbors) and squared distances to avoid square roots, making it suitable for rendering. In applications, Worley noise has been pivotal for solid texturing in rendering natural phenomena, including flagstone tiling, crusty organic skin, crumpled paper, ice formations, rocky surfaces, mountain ranges, and craters. It supports bump and color mapping on objects, and later optimizations have enhanced its use in shaders for reptile scales, minerals, and generation. Since its , the technique has influenced in fields like video games, film , and scientific , often integrated with other noise types for complex simulations.

Fundamentals

Definition

Worley noise, also known as cellular noise, is a procedural generation technique that produces pseudo-random scalar values by computing distances from a given point in space to the nearest scattered feature points, or seeds. Introduced as a cellular texture basis function, it defines outputs such as F_n(x), the distance to the n-th closest feature point, enabling the creation of continuous functions that mimic irregular, organic structures. This noise is primarily employed in for generating textures that simulate natural phenomena, including stone surfaces, crusty organic skin, ice formations, and rocky surfaces, all through without requiring stored images or extensive precomputation. Its outputs can be mapped to colors, displacements, or other properties to add detail to models efficiently. Key characteristics of Worley noise include its deterministic nature—yielding identical results for the same input and —while producing visually random-appearing patterns; scalability to two, three, or higher dimensions; and computational suitable for rendering applications. The function relates to Voronoi diagrams through the partitioning of around points, where boundaries occur at locations. Named after its inventor, Steven Worley, the technique was first described in 1996 as a complement to existing noise functions like Perlin noise for solid texturing in computer graphics.

Relation to Voronoi diagrams

Voronoi diagrams provide the geometric foundation for Worley noise by partitioning a space—such as a plane in two dimensions or a volume in three dimensions—into non-overlapping cells, where each cell consists of all points closer to a specific seed point (also called a feature or generator point) than to any other seed. These cells are convex polygons (in 2D) or polyhedra (in 3D), bounded by planes or lines that represent the set of points equidistant from two adjacent seeds. Worley noise extends this Voronoi tessellation by transforming the discrete cell boundaries into continuous scalar functions that assign real values to any point in space based on its distances to the nearest seeds, rather than solely defining proximity regions. For example, the value at a point can represent the to the closest seed within its cell or the difference between distances to the first and second nearest seeds, creating smooth gradients that vary continuously except at cell boundaries where derivatives become discontinuous. This approach enables the noise to produce organic patterns with subtle variations, ideal for procedural texturing. In a two-dimensional example, randomly distributed seeds generate Voronoi cells that approximate irregular hexagonal shapes due to the geometric constraints of equidistant boundaries, forming a across the plane. The Worley noise value at a given point is then computed from its position relative to these cell boundaries, such as scaling the from the cell's to emphasize interior or proximity. While Voronoi diagrams emphasize exact spatial division through , Worley noise distinguishes itself by prioritizing distance-derived perturbations to simulate natural irregularities, such as cracks or veins, without requiring the full of a complete . This focus on functional output over structural partitioning makes it particularly suited for dynamic applications in .

Algorithm

Seed placement

In the Worley noise algorithm, the seed placement phase initializes the feature points, also known as seeds, which serve as the generators for the subsequent Voronoi-like partitioning of . These seeds are distributed across the evaluation domain using a regular cubic in three dimensions (or analogous structures in other dimensions), where the s bound the and ensure efficient querying during evaluation. Each contains a variable number of , typically around 2 to 4 on average for standard implementations, to achieve a desired without excessive clustering. The placement process begins by determining the number of seeds per cell via a with a mean density parameter λ, often set around 2 to 4 to balance uniformity and randomness; for efficiency, the distribution is clamped to avoid extremes, such as zero seeds per cell, which could create gaps. Within each cell, seeds are positioned at uniformly random locations within the cell using pseudo-random numbers generated from a of the cell's coordinates. This hashing ensures deterministic across evaluations while avoiding periodic artifacts inherent in purely regular lattices. Key parameters influencing seed placement include the resolution, which inversely controls overall seed density (e.g., a coarser yields sparser for larger-scale ), and the maximum seeds per , which impacts computational cost and . This structured yet randomized distribution is crucial for producing isotropic, aperiodic patterns that mimic natural cellular structures, as it prevents the uniformity of points from dominating while ensuring comprehensive coverage of the space.

Distance computation

To compute Worley noise at a given query point \mathbf{p} in d-dimensional space (typically d=2 or $3), the algorithm first determines the grid cell containing \mathbf{p} by applying the floor function to each coordinate, yielding integer cell indices (i, j, k) in 3D. Surrounding cells are then identified—commonly a 3×3×3 neighborhood in 3D, encompassing up to 27 cells including the home cell—since seeds in distant cells contribute negligibly to the local distances. Within each candidate cell, seeds are generated procedurally using a hash function on the cell coordinates to seed a pseudorandom number generator, which offsets points randomly within the unit cube (e.g., via linear congruential methods). Euclidean distances from \mathbf{p} to these seeds are calculated, but to optimize performance, squared distances are used instead, avoiding the computationally expensive square root operation while preserving the ordering of distances. The search prioritizes efficiency by maintaining a priority list of the n smallest squared distances encountered so far (where n is typically 1 to 3, depending on the desired output features), updated via after each candidate distance computation. Distant cells are pruned early: before evaluating a neighboring , the algorithm checks if the squared distance from \mathbf{p} to the cell's closest possible point exceeds the current nth smallest distance; if so, the cell is skipped, often reducing the effective search to just a few cells rather than the full neighborhood. This nearest-neighbor approach ensures that only relevant seeds influence the result, with the process scaling linearly in the number of candidates tested. For edge cases such as periodic boundaries in tiled spaces (e.g., for seamless textures), the grid indices are wrapped using modulo arithmetic on the cell coordinates before hashing, allowing seeds to be generated consistently across boundaries. In infinite or non-periodic domains, the standard unbounded grid hashing suffices without modification. The core distance computation can be outlined in pseudocode as follows, assuming 3D and precomputed hash tables for seed generation:
function compute_distances(p, n):
    home_cell = floor(p)  // (ix, iy, iz)
    smallest = [∞] * n    // Initialize n largest possible squared distances
    // Check home cell and neighbors (e.g., offsets from -1 to 1 in each dimension)
    for dx in [-1, 0, 1]:
        for dy in [-1, 0, 1]:
            for dz in [-1, 0, 1]:
                cell = (ix + dx, iy + dy, iz + dz)
                // Prune if cell too far: min squared dist to cell
                min_dsq = 0
                for each dimension d in {x,y,z}:
                    c_min = cell[d]
                    c_max = cell[d] + 1
                    if p[d] < c_min:
                        min_dsq += (c_min - p[d])^2
                    elif p[d] > c_max:
                        min_dsq += (p[d] - c_max)^2
                    // else 0
                if min_dsq > smallest[n-1]: continue
                // Generate m seeds in cell (m ~ Poisson(λ), e.g., λ=3)
                hash_val = hash(cell)
                for i in 1 to m:
                    offset = random_offset(hash_val, i)  // Unit cube offset
                    seed = cell + offset
                    dsq = ||p - seed||^2  // Squared Euclidean distance
                    // Insert dsq into smallest if smaller than largest
                    if dsq < smallest[n-1]:
                        insert_sort(smallest, dsq)
    return smallest  // n smallest squared distances
This loop typically evaluates 10–30 seeds per query point, making it suitable for real-time applications when n is small.

Mathematical Formulation

Core function

The core function of Worley noise computes a scalar value at any point x in \mathbb{R}^D (where D is the dimension, typically 2 or 3) by evaluating distances to nearby randomly placed seed points, forming the basis for cellular patterns. In its simplest form, the noise value is F_1(x) = \|x - p_i\|, where p_i denotes the nearest seed point to x. These distances are measured using the Euclidean metric, expressed as \|x - p\| = \sqrt{\sum_{k=1}^D (x_k - p_k)^2}, which ensures isotropic propagation of influence from each seed in the space. For computational efficiency, squared distances are often used during evaluation, with the square root applied only if the actual distance is required. A more expressive formulation incorporates multiple nearest seeds by first ordering the distances as d_1 \leq d_2 \leq \dots \leq d_n from x to the n closest (with n typically small, like 2 or 3), then deriving the noise via a function of these distances; for instance, to emphasize near Voronoi cell boundaries, the difference d_2 - d_1 yields values approaching zero along edges, creating - or crack-like patterns. To produce bounded outputs suitable for texturing, the resulting noise values are normalized to the interval [0, 1] through division by a reference scale, such as the maximum anticipated distance within a seed grid cell or an empirically determined bound obtained by evaluating the function at thousands of sample points to capture its range.

Output variations

The output of Worley noise is derived by combining distances from a point to multiple nearest feature points, enabling a range of textures from smooth gradients to sharp boundaries. The simplest variation, denoted F1, uses the Euclidean distance d_1 to the nearest feature point, producing a continuous function with smooth gradients that diminish toward cell centers and increase toward boundaries, ideal for simulating organic forms like lava flows. A more nuanced variation, , employs the distance d_2 to the second-nearest feature point, which remains continuous but exhibits derivative discontinuities where the ordering of nearest points changes, such as at cell boundaries or triple points, thereby accentuating structural edges in textures. To emphasize cell boundaries explicitly, the difference F2 - F1 yields values approaching zero along Voronoi edges, creating ridge- or crack-like patterns suitable for simulating fractures or veins, as this combination highlights regions where the nearest and second-nearest distances are equal. Further customization arises from weighted linear combinations of these distances, such as a \cdot d_1 + b \cdot d_2 or more complex forms like $2 d_3 - d_2 - d_1, where coefficients a and b tune the balance between and roughness; evaluations up to the fourth-nearest distance d_4 allow for about 40 such combinations, each imparting distinct perceptual qualities like mottled or effects. For increased complexity mimicking natural structures, octave layering sums scaled versions across frequencies, formulated as G_n(\mathbf{x}) = \sum_{i=0}^{5} 2^{-i} F_n(2^i \mathbf{x}), where F_n is a base variation like F1; this produces multilayered resembling crumpled or , enhancing detail without altering the core computations.

Applications

Computer graphics texturing

Worley noise plays a pivotal role in texturing by generating cellular patterns that mimic organic structures, making it a staple for procedural since its in 1996. As a solid texturing basis function, it complements to produce diverse effects like , rock, or mountain ranges, enhancing surface detail without relying on precomputed images. Its procedural nature allows seamless scalability across resolutions, ideal for rendering complex scenes in and . In procedural shaders using GLSL or HLSL, Worley noise facilitates through gradients of its distance functions, simulating subtle surface perturbations such as those on crumpled paper or . For , it drives geometric alterations to create raised spots or inset channels, adding tangible depth to models. Color variation is achieved by mapping noise outputs to splines, yielding patterns like polka dots or veins in materials such as or lava flows. Worley noise integrates readily into industry tools for texturing terrain and organic assets. Houdini's Worley Noise VOP scatters points to compute cellular noise, supporting for rock-like formations. Blender's Voronoi evaluates Worley noise at input coordinates, enabling procedural patterns in networks for materials and . Unity's Shader Graph Voronoi generates Worley-based noise for UV-driven texturing in materials. Similarly, Unreal Engine's noise expressions include Voronoi (Worley) variants for creating billowy cloud textures or effects in game environments. Since its inception, the technique has influenced in workflows, contributing to realistic organic rendering in pipelines. Its GPU-friendliness stems from parallelizable distance searches among seed points, enabling efficient evaluation without precomputation. Optimized implementations limit searches to a 2x2 grid per cell, matching speeds on parallel hardware.

Simulation and modeling

Worley noise finds applications in simulation and modeling across various scientific and engineering domains, leveraging its cellular structure—derived from Voronoi diagrams—to approximate irregular, organic patterns in physical phenomena. In , Worley noise is employed to model complex flow behaviors, such as and droplet distributions, by facilitating particle placement that mimics natural clustering. For instance, in volumetric explosion simulations, it generates cellular structures to enhance the realism of expanding shockwaves and debris distributions, often combined with curl noise to produce turbulent flow fields essential for accurate fluid behavior. This approach allows for efficient computation of incompressible flows at resolutions like 32×32×32, supporting interactive modeling of dynamic events. Biological modeling benefits from Worley noise's ability to replicate and pattern irregularities at cellular scales. In simulations, it controls the spatial distribution and geometry of disease spots, such as in , where randomized cell placement simulates spot initiation and growth through scaling and blending with , achieving up to 87% accuracy in visual similarity to real images via validation. Similarly, in , Worley noise drives parametric texturing pipelines to synthesize photo-realistic images, capturing fiber shapes, variations, and staining inconsistencies for training segmentation models, generating datasets with approximately 74,000 fibers across 120 images. These methods enable the modeling of vein-like patterns in leaves or cell structures in tissues by perturbing distances to feature points. In architectural design, Worley noise supports the generation of irregular facades and spatial partitions through procedural Voronoi geometries, adapting to inputs like EEG for user-responsive structures. Parameters such as (controlling point ) and gain (influencing pattern complexity) allow for dynamic 2D-to-3D conversions, where values define depth, facilitating biofeedback-driven designs for building envelopes. For scientific , Worley noise approximates structures by animating bubble-like cellular patterns.

Variants

Standard distance functions

In Worley noise, the standard distance functions are derived from the distances to the nearest feature points (seeds) within the Voronoi partitioning of space, providing foundational building blocks for texture generation. These functions, introduced by Steven Worley, allow for controlled patterns by using different distance metrics, such as , , or Chebyshev, to compute s. The primary function F_1 is defined as the to the closest feature point, d_1. Common implementations may scale this or use alternative metrics for varied effects, such as sharper transitions with Manhattan distance. A more sophisticated variant is F_2, the to the second-closest feature point, d_2. This form captures the between adjacent cells, making it ideal for vein-like or cracked surface simulations when mapped to . The parameterizations can use different metrics to balance detail and smoothness. Additional conventional functions include F_3, the distance to the third-nearest feature point, which introduces greater and by incorporating farther neighbors, useful for simulating layered or aggregated structures like or crumpled surfaces. Hybrid combinations, such as F_2 - F_1, subtract the closest distance from the second to zero out values at Voronoi boundaries while emphasizing edges and internal divisions, thereby highlighting structural boundaries without additional computational overhead. These parameterizations form the core of output variations, where linear or nonlinear blends further tailor the for specific applications. is the standard metric, yielding visually natural results when combined with feature point densities around 3 per unit volume, avoiding artifacts while preserving procedural efficiency.

Advanced modifications

Advanced modifications to Worley address computational efficiency, artifact reduction, and enhanced expressiveness for demanding applications in . A key optimization involves refining the neighbor search during distance computation. By employing to precompute and sort traversal orders for grid cells (e.g., 48 regions in ), algorithms can prioritize closer neighbors and terminate early upon reaching a , avoiding exhaustive searches. This reduces evaluation time by about 15% in relative to the original formulation, while preserving output quality. Complementing this, adaptive feature point placement via subdivision introduces non-uniform seed density. Cells are recursively split until a point is inserted, enabling localized amplification—such as denser cells in high-frequency areas—without global performance degradation. Implemented with precomputed relative coordinates, this variant supports up to 20% faster rendering in adaptive scenarios, facilitating more varied textures like irregular organic surfaces. Periodicity artifacts, inherent in grid-based Worley noise for tiling, are mitigated through non-periodic modifications using Wang tiles. The noise function is reformulated to map onto a minimal tile set, generating seamless, aperiodic patterns at or via preprocessing. This approach integrates with GPU filtering, reducing visible repetition in large textures, with a small increase in evaluation cost. For greater structural variety, Worley noise is often combined with other procedural techniques, such as anisotropic noises, to produce directional details like fibrous materials. Such integrations enhance realism in while maintaining compactness.

References

  1. [1]
    A cellular texture basis function | Proceedings of the 23rd annual ...
    A cellular texture basis function. Author: Steven Worley. Steven Worley. 405 El ... Algorithms for solid noise synthesis. In Computer Graphics (SIGGRAPH ...Missing: original | Show results with:original
  2. [2]
    [PDF] Implementation of Fast and Adaptive Procedural Cellular Noise
    Jan 17, 2019 · Cellular noise as defined by Worley is a useful tool to render natural phenomena, such as skin cells, reptiles scales, or rock minerals.
  3. [3]
    [PDF] Fundamentals of Terrain Generation
    Voronoi Noise Biome Generation: Voronoi Noise (aka Worley Noise) is based on randomly placing a bunch of “seeds” in the grid, each of which has a randomly ...
  4. [4]
    Voronoi Diagram -- from Wolfram MathWorld
    A Voronoi diagram is sometimes also known as a Dirichlet tessellation. The cells are called Dirichlet regions, Thiessen polytopes, or Voronoi polygons.
  5. [5]
    [PDF] A Cellular Texture Basis Function - Cedric-Cnam
    A Cellular Texture Basis Function. Steven Worley. 1. ABSTRACT. Solid texturing is a powerful way to add detail to the surface of rendered objects. Perlin's ...
  6. [6]
    Chapter 20. Texture Bombing - NVIDIA Developer
    We use the square of the distance instead of the actual distance to avoid computing a square root. ... Worley, Steven P. 1996. "A Cellular Texture Basis Function.
  7. [7]
    [PDF] A Cellular Texture Basis Function - ITN
    Steven Worley. 1. ABSTRACT. Solid texturing is a powerful way to add detail to the surface of rendered objects. Perlin's “noise” is a 3D basis function used in.
  8. [8]
    Worley Noise VOP node - SideFX
    This operator computes 1D, 3D, and 4D Worley noise, which is synonymous with “cell noise”. Worley noise works by scattering points randomly through space.
  9. [9]
    Voronoi Texture Node - Blender 4.5 LTS Manual
    The Voronoi Texture node evaluates a Worley Noise at the input texture coordinates. ... The difference between F1 and Smooth F1 can be used to create beveled ...
  10. [10]
    Getting the Most Out of Noise in UE4 - Unreal Engine
    Sep 12, 2016 · Voronoi noise is great for billowy clouds, caustics and many other patterns found in nature. It is sometimes referred to as either Worley or Cellular noise.
  11. [11]
    Cellular Noise - The Book of Shaders
    Steven Worley wrote a paper called “A Cellular Texture Basis Function”. In it, he describes a procedural texturing technique now extensively used by the ...
  12. [12]
    Real-time volumetric explosion special effects for games
    Sep 9, 2025 · ... Worley noise, to. simulate cellular structures widely used in ... fluid dynamics. Fedkiw et al. [5] made a major contribution by de ...
  13. [13]
  14. [14]
    Deep learning-based image analysis in muscle histopathology ...
    Mar 6, 2025 · Afterward, we used the rendering software to hand-craft a comprehensive texturing pipeline, which was mainly based on the Worley noise ...
  15. [15]
    [PDF] PERCEPTUAL MATERIALIZATION FOR SPACE INTERFACE
    Worley-noise is the core function that controls the generation of Voronoi geometry, generates patterns by randomly distributing points within a space and then ...
  16. [16]
    [PDF] Texturing & Modeling
    ... Worley. Geometric Tools for Computer Graphics. Philip Schneider and David ... texturing (and modeling) is certainly still in the frontier of computer.
  17. [17]
    Non-periodic Tiling of Procedural Noise Functions
    Aug 24, 2018 · Procedural noise functions have many applications in computer graphics ... Worley noise · better gradient noise · corner tiles · noise · non ...<|separator|>
  18. [18]
    [PDF] A Survey of Procedural Noise Functions - UMD Computer Science
    Gilet and Dischler [GD10] also proposed a 3D extension of the work of Bourque and Dudek [BD04] using a mixture of. Gabor noise and cellular noise. Other ...