Pattern
A procedural tiling pattern field, as a scalar value or its gradient vector: Voronoi, hex, brick, triangular, spiral, stripes, checker, concentric, dots, or wave.
What it does
Pattern generates a repeating scalar field over space: Voronoi cell art, honeycomb, brickwork, triangular mosaics, spirals, stripes, checkerboards, concentric rings, or a grid of dots. Pick the pattern type and the frame fills with a repeating structure sized by Cell Size.
The default output is a bounded raster, a greyscale image that plugs straight into a Layer. Turn Rasterize off for the raw, unbounded pattern as a scalar field: infinite in every direction, with no fixed resolution, ready to drive a displacement, a mask, or any other node that consumes a field (Gradient, Color Field, the Points node's density input).
When to use it
A tiling texture without hand-drawing it: cells, bricks, hexagons, stripes, rings
A Voronoi cell-noise look for stained glass, cracked-cell, or organic mosaic surfaces
A scalar mask or displacement source with a repeating structure: turn Rasterize off and wire the field into a Distance Field, displacement, or density input
A spiral or concentric-ring motif with adjustable arms and twist
| Parameter | Type | Default | What it does |
|---|---|---|---|
pattern | String | "Voronoi" | Tiling / pattern type emitted as a scalar field. One of: Voronoi, Hexagonal, Brick, Triangular, Spiral, Stripes, Checker, Concentric, Dots, Wave. |
cell_size | Number | 20 | Cell or period size in world units (controls spatial frequency). Sub-unit values fit several cycles across a normalized [0,1] domain. |
seed | Number | 42 | Random seed for cell hashing |
jitter | Number | 1 | Site jitter amount: 0 = regular lattice, 1 = fully randomised |
voronoi_mode | String | "Edge Distance" | Voronoi scalar: Cell Random (per-cell value), Distance (F1 — to nearest site), Edge Distance (cell-boundary look), F2 (2nd-nearest feature distance), F3 (3rd-nearest) — Worley 1996. One of: Cell Random, Distance, Edge Distance, F2, F3. |
arms | Number | 5 | Number of spiral arms |
twist | Number | 0.500 | Twist rate — revolutions added per cell_size of radius |
angle | Number | 0 | Stripe / wave orientation in degrees (0 = vertical stripes, wave travels along +X) |
wave_direction | String | "Linear" | Linear = planar wavefronts along Angle. Radial = concentric ripples from the origin. One of: Linear, Radial. |
phase | Number | 0 | Wave phase in degrees. Ships animated ($T * 90 = a quarter turn per second) — edit or clear the expression to hold it still. |
amplitude | Number | 1 | Wave amplitude (1 = full swing). Bipolar output is exactly amplitude · sin(…). |
offset_x | Number | 0 | X offset of pattern origin in world units |
offset_y | Number | 0 | Y offset of pattern origin in world units |
valence | String | "Scalar" | Scalar: the pattern value. Vector: its gradient (feed Displace for ripples). Colour: per-cell RGB (Voronoi) or grayscale. One of: Scalar, Vector, Colour. |
output_range | String | "Unipolar" | Unipolar: [0,1] — masks and textures. Bipolar: [-1,1] centred on zero — displacement goes both ways (wire into Surface's Position). One of: Unipolar, Bipolar. |
rasterize | Boolean | true | On: bounded raster (drop-and-see). Off: raw infinite field. |
resolution | Vec2 | (512, 512) | Rasterize resolution [width, height] — a window into the field; bigger reveals more. |
position | Vec3 | (0, 0, 0) | Translation (X, Y, Z) |
rotation | Vec3 | (0, 0, 0) | Rotation in degrees (X, Y, Z) |
scale | Vec3 | (1, 1, 1) | Scale (X, Y, Z) |
anchor | Vec3 | (0, 0, 0) | Pivot offset (X, Y, Z) — rotation/scale orbit this point |
opacity | Number | 1 | Layer opacity (0 = transparent, 1 = opaque). Editable, wirable, keyframable. |
Gotchas
Seed, Jitter, and Voronoi Mode only apply to the Voronoi pattern. Hexagonal locks to a regular lattice and the other tiling patterns are closed-form, so those controls hide for everything except Voronoi.
For discrete, addressable cells instead of a continuous greyscale field, such as separable Voronoi or Penrose-style rhombus tiles, use Fracture. Pattern emits a continuous scalar look, not individually selectable cells.
Arms and Twist only appear for Spiral, Angle only for Stripes. Each pattern type shows the parameters it uses.
Resolution is a window into the field, not a zoom level, and it does not rescale the pattern. Raising width or height reveals more of the pattern at the same Cell Size rather than stretching existing cells. It only matters while Rasterize is on.
Offset X/Y shifts the pattern's origin in world units. In raster mode the origin starts at the image centre, so 0, 0 gives a centred pattern and Offset X/Y moves it from there.
Worked example
Add a Pattern node. It defaults to Voronoi with a greyscale raster preview.
Raise or lower Cell Size to control how large the cells read.
Try other pattern types: Hexagonal for honeycomb, Brick for a running bond, Stripes with an Angle, or Spiral with Arms and Twist.
For Voronoi, raise Jitter toward 1 for a fully organic scatter, or drop it toward 0 for a regular lattice; switch Voronoi Mode between Distance, Edge Distance, and Cell Random for different looks.
Wire the output into a Gradient or Color Field to colourise it, or turn Rasterize off and feed the raw field into a displacement or mask input.