comfyui_pcg docs

Image: Generators#

Noise, patterns, shapes, ramps and other image sources.

14 nodes.

Back to the reference index

Contents#

  • COP Cellular Noise (PCG) — Generates cellular (Voronoi-border) noise with adjustable gaps and bevels between cells.
  • COP Constant (PCG) — Creates an image filled with a single constant colour.
  • COP Fill (PCG) — Fills a layer with a constant value, softly blended through an optional mask.
  • COP Fractal Sample (PCG) — Layers a source image into itself at shrinking, rotating, jittered scales, like fractal noise whose basis function is an image.
  • COP Gradient (PCG) — Generates a gradient (along u, v, a diagonal, radially or by angle) through a color ramp.
  • COP Noise (PCG) — Generates a fractal noise image with optional tiling, animation and post-processing.
  • COP Noise Extra (PCG) — Generates Bubble, Crystal, Phasor, Curl, Curl 3D and Cloud noise.
  • COP Pattern (PCG) — Generates procedural patterns: checkerboard, tiles, cells, UV grid, Julia/Mandelbrot, Chladni, knit and weave.
  • COP Position Map (PCG) — Generates a layer storing a 3D position per pixel, for use as the reference position of 3D noise.
  • COP Random (PCG) — Generates hash-based random values per pixel or per ID.
  • COP Shape (PCG) — Draws a shape as a signed distance field plus an anti-aliased mask.
  • COP Stereogram (PCG) — Creates a single-image autostereogram from a depth layer.
  • COP Text (PCG) — Renders text into an anti-aliased coverage mask, optionally composited over a layer.
  • COP Worley Noise (PCG) — Generates Worley (cellular) noise and its feature-point, cell-border, center and ID layers.

Nodes#

COP Cellular Noise (PCG)#

PCG_COPCellularNoise · category PCG/cop · Houdini: Cellular Noise (COP), Cellular Noise 3D (COP)

Generates cellular (Voronoi-border) noise with adjustable gaps and bevels between cells.

COP Cellular Noise (PCG): input and result

Feature points are scattered on a lattice, each pixel finds its nearest point and the distance to the cell border. The noise value is Amplitude * shape(border) + Shift, followed by the Post Processing steps. In absolute shape mode Gap and Bevel are image-space distances; in relative mode they are fractions from 0 (cell border) to 1 (feature point). The shape is clamp((border - gap) / bevel, 0, 1): Bevel 0 gives hard flat-topped cells, larger values give pointier tops.

Besides noise the node also writes border (distance to the cell border, positive inside the cell), center (position of the nearest feature point) and id (hash of the cell), each with the Prefix prepended. If a cop is connected, its resolution is used; with a Position Layer of 2 channels you get the 2D version, with 3 channels the 3D version.

Inputs

InputTypeDescription
cop (optional)COPIMAGEOptional image. Its resolution is used, new layers are added to it, and it can provide a position layer. If not connected, a new image of the given resolution is created.

Outputs

OutputTypeDescription
copCOPIMAGEImage with the noise layers (noise, border, center, id, each with the Prefix).

Parameters

Range

ParameterTypeDefaultDescription
Amplitude amplitudefloat1Multiplier applied to the shaped cell value.
Shift shiftfloat0Value added after the amplitude.

Pattern

ParameterTypeDefaultDescription
Element Size element_sizefloat [1e-06..10000.0]0.1Average cell size in image units, where the image width is 1.
ParameterTypeDefaultDescription
Element Scale element_scalestring1 1 1Per-axis scale of the cells (anisotropic stretching), one value per axis.
Jitter jitterfloat [0.0..2.0]1How far feature points are moved from their lattice positions. 0 gives a regular grid; values above 1 move points beyond the search range and cause artefacts.
Jitter Scale jitter_scalestring1 1 1Per-axis multiplier of the jitter.
Lattice Type latticemenuGridLayout of the feature points: rectangular grid or hexagonal (2D only, cannot be tiled). Options: Grid (rectangular), Hexagonal (hexagonal).
Metric metricmenuEuclideanDistance function: euclidean (round cells), manhattan (diamond-like) or chebyshev (square-like). Options: Euclidean (euclidean), Manhattan (manhattan), Chebyshev (chebyshev).
Smooth Edge smooth_edgefloat [0.0..10.0]0Rounds the cell borders; 0 keeps them sharp. Hidden when metric ≠ euclidean.
Offset offsetstring0 0 0Shifts the pattern (X Y Z).
Tile tiletoggleoffMakes the pattern repeat seamlessly. The cell count is round(Tile Size / Element Size), so Element Size is adjusted slightly. Rectangular lattice only.
Tile Size tile_sizestring1 1 1Size of one repeat. For non-square images give it in proportion to the aspect ratio (image width is 1). Disabled when tile is off.

Shape

ParameterTypeDefaultDescription
Mode shape_modemenuAbsoluteabsolute: Gap and Bevel are image-space distances. relative: they are ratios between the cell border (0) and the feature point (1). Options: Absolute (absolute), Relative (relative).
ParameterTypeDefaultDescription
Gap gapfloat [0.0..10000.0]0Shrinks the cells so a gap opens between them; large enough values make cells vanish.
Bevel bevelfloat [0.0..10000.0]0.05Width of the falloff at the cell edge. 0 gives hard flat tops; larger values give pointier tops.
Pos Layer pos_layerstring(empty)Optional layer that supplies the sample positions when a cop is connected: 2 channels for 2D, 3 channels for the 3D version (world coordinates). Empty uses the pixel coordinates.
Seed rand_seedint [0..]0Seed of the random feature points.

Post Processing

ParameterTypeDefaultDescription
Fold foldtoggleoffPost Processing: takes the absolute value (negative values become positive).
Complement complementtoggleoffPost Processing: inverts the value (1 - x).
Bias pp_biasfloat [0.0..1.0]0.5Post Processing: Perlin bias. 0.5 does nothing; below 0.5 pulls values towards 0, above 0.5 towards 1.
Gain gainfloat [0.0..1.0]0.5Post Processing: Perlin gain. 0.5 does nothing; above 0.5 steepens the middle, below flattens it.
Gamma gammafloat [0.001..100.0]1Post Processing: raises the value to the power gamma, so values above 1 darken (as in the Houdini noise documentation).
Contrast contrastfloat [-100.0..100.0]1Post Processing: scales the value around 0.5.
Clamp Minimum clamp_minfloat0Post Processing: lower limit, used when Use Clamp Min is on.
Use Clamp Min use_clamp_mintoggleoffEnables the lower clamp.
Clamp Maximum clamp_maxfloat1Post Processing: upper limit, used when Use Clamp Max is on.
Use Clamp Max use_clamp_maxtoggleoffEnables the upper clamp.
ParameterTypeDefaultDescription
Layer Prefix prefixstring(empty)Text prepended to the output layer names (noise, border, center, id).
Resolution resolution_x resolution_yint [1..16384]512, 512Width and height of the generated image. Used only when no cop is connected.

Compared with Houdini

Covers Cellular Noise and Cellular Noise 3D. The ramp for Bevel (Bevel Ramp) is not implemented; the bevel is a linear ramp. The Houdini docs do not say whether Amplitude or Shift is applied first; here the value is multiplied first and then shifted. The Post Processing steps run in the order Fold, Complement, Bias, Gain, Gamma, Contrast, Clamp Min, Clamp Max.


COP Constant (PCG)#

PCG_COPConstant · category PCG/cop · Houdini: Constant (COP), Layer (COP)

Creates an image filled with a single constant colour.

Generates a flat colour image of the given resolution, typically as a base for compositing or as a mask backdrop. The layer has three channels (red, green, blue); enabling Use Alpha adds a fourth channel with the Alpha value. Values are not clamped, so negative and HDR values are allowed.

Outputs

OutputTypeDescription
copCOPIMAGEThe constant image.

Parameters

ParameterTypeDefaultDescription
Resolution resolution_x resolution_yint [1..16384]512, 512Width and height of the image in pixels.
Color red green bluefloat0, 0, 0Colour of the image as red, green and blue values (not clamped, HDR values are allowed).
Alpha alphafloat1Alpha value, used only when Use Alpha is on.
Alpha use_alphatoggleoffOutputs four channels (RGBA) instead of three.
Output Layer layerstringCName of the layer that receives the colour.
Device devicemenuAutoCompute backend. auto uses the GPU (through torch) for larger images when available and the CPU for small ones; cpu and cuda force torch on the CPU or GPU; numpy uses numpy; exact uses numpy in float64 for bit-exact results. Options: Auto (auto), CPU (cpu), CUDA (cuda), NumPy (numpy), Exact (float64) (exact).

Compared with Houdini

Covers Houdini's Constant node and the constant-value use of Layer.


COP Fill (PCG)#

PCG_COPFill · category PCG/cop · Houdini: Fill (COP)

Fills a layer with a constant value, softly blended through an optional mask.

Equivalent of Fill. Every channel of the layer is replaced by the matching entry of value. If a mask layer is given, the constant is blended in proportionally to the mask (clamped to 0-1), so soft masks give soft edges; without a mask the whole layer is filled.

Inputs

InputTypeDescription
copCOPIMAGEImage containing the layer to fill.

Outputs

OutputTypeDescription
copCOPIMAGEImage with the layer filled.

Parameters

ParameterTypeDefaultDescription
Layer layerstringCLayer to fill.
Fill Value valuestring0 0 0Fill value as space-separated numbers, one per channel. If fewer numbers than channels are given, the last one is repeated.
Mask Layer mask_layerstring(empty)Optional mask layer (first channel, clamped to 0-1) controlling how much of the fill is applied. Empty fills everywhere.
Invert Mask invert_masktoggleoffUse 1 minus the mask, so the fill is applied where the mask is low. Disabled when mask_layer = "".

COP Fractal Sample (PCG)#

PCG_COPFractalSample · category PCG/cop · Houdini: Fractal Sample (COP)

Layers a source image into itself at shrinking, rotating, jittered scales, like fractal noise whose basis function is an image.

Equivalent of Fractal Sample. Each octave samples the source layer with a scale of lacunarity^octave, an optional rotation (angle), jitter and random flips, around the image center. The octaves are weighted by roughness^octave and combined by the blend mode: Add, Subtract, Maximum or Over (Over only makes sense for RGBA). With one octave and no rotation or jitter the output equals the source.

Add and Subtract are normalized by the sum of the weights so that the value range matches the source. Samples first have bias subtracted (so the result is centered on 0), and offset_with_bias adds it back at the end. Over does not subtract bias.

Maintain Tileable rounds the lacunarity to an integer and the angle to multiples of 90 degrees; the source itself must already tile for the result to tile. The noise post-processing parameters (fold, complement, bias, gain, gamma, contrast, clamps) are then applied to the combined result in that order.

Inputs

InputTypeDescription
copCOPIMAGEImage containing the source layer.

Outputs

OutputTypeDescription
copCOPIMAGEImage with the fractal layer added.

Parameters

ParameterTypeDefaultDescription
Source Layer source_layerstringCLayer used as the basis function for every octave.
Maintain Tileable maintain_tileabletoggleoffRound lacunarity to an integer and the angle to multiples of 90 degrees. The source must already be tileable.

Fractal

ParameterTypeDefaultDescription
Max Octaves max_octavesint [1..16]4Number of octaves layered.
ParameterTypeDefaultDescription
Lacunarity lacunarityfloat [0.01..16.0]2Scale multiplier per octave: octave n samples the source at lacunarity^n times the frequency.
Roughness roughnessfloat [0.0..4.0]0.5Weight multiplier per octave; lower values make finer octaves weaker.
Bias biasfloat0.5Midpoint subtracted from each sample before weighting. Disabled when blend_mode = over.
Offset with Bias offset_with_biastoggleonAdd the bias back after combining so the result is re-centered on the original midpoint. Disabled when blend_mode = over.
Blend Mode blend_modemenuAddHow octaves combine: Add, Subtract (first octave minus the rest), Maximum, or Over. Over only works with RGBA. Options: Add (add), Subtract (subtract), Maximum (maximum), Over (over).
Border bordermenuWrapSampling outside the source image: tiled (wrap), edge pixel (clamp) or black. Options: Wrap (wrap), Clamp (clamp), Constant (Black) (black).
Filter filtermenuBilinearSampling filter: bilinear or nearest pixel. There is no area filtering, so strongly minified octaves can alias. Options: Bilinear (bilinear), Point (point).

Randomization

ParameterTypeDefaultDescription
Seed rand_seedint [0..]0Seed for jitter, random angles and random flips.
ParameterTypeDefaultDescription
Jitter jitterfloat [0.0..10.0]0Each octave gets a random uv offset in the range plus/minus Jitter.
Angle Mode angle_modemenuPer Octaveper_octave rotates by Angle times (octave + 1) cumulatively; random picks a random angle between -Angle and +Angle per octave. Options: Per Octave (per_octave), Random (random).
Angle anglefloat [-360.0..360.0]0Rotation in degrees (see Angle Mode).
Random Flip X random_flip_xtoggleoffRandomly mirror each octave horizontally.
Random Flip Y random_flip_ytoggleoffRandomly mirror each octave vertically.

Post Processing

ParameterTypeDefaultDescription
Fold foldtoggleoffTake the absolute value of the result (post-process, applied first).
Complement complementtoggleoffInvert the result as 1 minus value.
Bias pp_biasfloat [0.0..1.0]0.5Perlin bias curve: 0.5 does nothing, below 0.5 pulls values toward 0, above 0.5 toward 1.
Gain gainfloat [0.0..1.0]0.5Perlin gain curve; 0.5 does nothing.
Gamma gammafloat [0.001..100.0]1Raises the value to the power gamma; above 1 darkens.
Contrast contrastfloat [-100.0..100.0]1Scales the result around 0.5.
Clamp Minimum clamp_minfloat0Lower clamp value, used only when Use Clamp Min is on.
Use Clamp Min use_clamp_mintoggleoffEnable the lower clamp.
Clamp Maximum clamp_maxfloat1Upper clamp value, used only when Use Clamp Max is on.
Use Clamp Max use_clamp_maxtoggleoffEnable the upper clamp.
ParameterTypeDefaultDescription
Output Layer out_layerstringfractalName of the output layer.

Compared with Houdini

The weight normalization is the plugin's own choice, and the Houdini documentation's reference to gain "after weight and gain" is not implemented. Border offers clamp, wrap and black only; Filter offers bilinear and point only, with no area filtering. The optional per-pixel input layers for octaves, lacunarity and roughness are not supported.


COP Gradient (PCG)#

PCG_COPGradient · category PCG/cop · Houdini: Ramp (COP)

Generates a gradient (along u, v, a diagonal, radially or by angle) through a color ramp.

COP Gradient (PCG): input and result

Equivalent of Ramp. The gradient position (0 to 1) is computed per pixel from the chosen direction and looked up in the ramp. The ramp uses the same text syntax as the geometry-side Attribute Fade and Measure ramps: space-separated position:value stops such as 0:0 0.5:1 1:0, or multi-component values such as 0:0,0,0 1:1,0.5,0. The number of components is taken from the first stop and sets the channel count of the layer.

Radial reaches 1 at a distance of 0.5 from the center; angular runs once around the center, from 0 to 1.

Outputs

OutputTypeDescription
copCOPIMAGEImage containing the gradient layer.

Parameters

ParameterTypeDefaultDescription
Resolution resolution_x resolution_yint [1..16384]512, 512Width and height of the generated image in pixels.
Ramp Type directionmenuLinear V (Vertical)Gradient geometry: u varies left to right, v bottom to top, diagonal along the direction given by Angle, radial by distance from the center, angular by angle around the center. Options: Linear V (Vertical) (v), Linear U (Horizontal) (u), Linear (Angle) (diagonal), Radial (radial), Angular (angular).
Angle anglefloat [-3600.0..3600.0]0Direction of the gradient in degrees (Diagonal only). Hidden when direction ≠ diagonal.
Center center_x center_yfloat [-10000.0..10000.0]0, 0Center of the gradient (Radial and Angular), as an offset in the image's centered coordinates. Hidden when direction ≠ radial direction ≠ angular.
Ramp rampstring0:0 1:1Ramp stops as space-separated position:value pairs. A value may be several comma-separated components to produce a multi-channel layer.
Interpolation ramp_modemenuLinearInterpolation between stops: linear, smooth, or constant (steps). Options: Linear (linear), Smooth (smooth), Constant (constant).
Output Layer layerstringCName of the output layer.
Device devicemenuAutoCompute backend: auto picks automatically, cpu/numpy/cuda force a backend, exact is the reference path. Options: Auto (auto), CPU (cpu), CUDA (cuda), NumPy (numpy), Exact (float64) (exact).

COP Noise (PCG)#

PCG_COPNoise · category PCG/cop · Houdini: Fractal Noise (COP), Fractal Noise 3D (COP)

Generates a fractal noise image with optional tiling, animation and post-processing.

COP Noise (PCG): input and result

Each pixel is given a 3D coordinate (uv times Frequency, placed on the plane z = Offset z, plus Offset x and y), and the value comes from the same fractal_noise function used by the geometry-side Attribute Noise. The same world position therefore gets a bit-identical value in an image and on geometry, as long as the parameters match, which lets you bake a displacement map and displace geometry consistently.

Channels above 1 each use their own seed (seed + k*7919), which gives RGB noise or a 2D flow field in one node (Houdini's Per Component).

Tiling: Tile U wraps the u direction onto a circle, so the result tiles horizontally. Tile U and Tile V together give a seamless 2D tile (a flat torus in four dimensions, as does the Torus noise type, which is simplex noise with both tilings). Lacunarity does not need to be an integer for tiling.

Animation: Time Scale above 0 switches to 4D noise with the fourth coordinate Time * Time Scale. Loop Length (Frames) above 0 moves time around a circle in the (z, w) plane so that frame 0 and the loop length are identical, with a flow speed matching the non-looping case. Looping needs Time Scale above 0 and cannot be combined with Tile U or Tile V, and two-way tiling cannot be combined with Time Scale either (these would need a fifth dimension; the node raises an error instead of silently disabling one).

Post processing runs after Amplitude and Center in this order: Fold, Complement, Bias, Gain, Gamma, Contrast, Clamp Minimum, Clamp Maximum. Bias, Gain and Gamma act on negative values by odd extension (sign(x) * |x|^p) so no NaN appears.

Outputs

OutputTypeDescription
copCOPIMAGENew image with the noise in the output layer.

Parameters

ParameterTypeDefaultDescription
Resolution resolution_x resolution_yint [1..16384]512, 512Output width and height in pixels.
Channels channelsint [1..4]1Number of channels (1-4). Each channel is an independent noise with its own seed.
Output Layer layerstringCName of the output layer.

Range

ParameterTypeDefaultDescription
Amplitude amplitudefloat1Multiplier applied to the noise.
Center biasfloat0Center: constant added after the amplitude.

Pattern

ParameterTypeDefaultDescription
Noise Type noise_typemenuValueBasis noise. Worley F1 is cellular distance to the nearest point, F2-F1 the difference of the two nearest distances. White is uncorrelated per-pixel random. Torus is simplex noise that tiles in both directions. Options: Value (value), Perlin (perlin), Simplex (simplex), Worley Cellular F1 (worley), Worley Cellular F2-F1 (worley_f2f1), White (Random) (white), Torus (torus).
Metric metricmenuEuclideanDistance metric for the Worley types. Worley F2-F1 with Manhattan searches two rings of neighbouring cells (125 instead of 27), because the second-nearest point can lie further out with that metric; it is about 4.6 times slower than the other combinations. Options: Euclidean (euclidean), Manhattan (manhattan), Chebyshev (chebyshev). Hidden when noise_type ≠ worley noise_type ≠ worley_f2f1.
Jitter jitterfloat [0.0..2.0]1Worley types: how far feature points move inside their cells. 0 is a regular grid; above 1 the points leave the search range and artefacts appear (Houdini warns the same). Hidden when noise_type ≠ worley noise_type ≠ worley_f2f1.
Frequency frequencyfloat [0.0..]4Number of noise features across the image: uv is multiplied by this. It is the reciprocal of Houdini's Element Size.
Offset offset_x offset_y offset_zfloat0, 0, 0Offset of the noise space (x, y, z). The z value selects the slice of the 3D noise.
Tile U tile_utoggleoffMake the noise seamless in the horizontal direction. Cannot be combined with Loop Length. Disabled when noise_type = torus.
ParameterTypeDefaultDescription
Tile V tile_vtoggleoffMake the noise seamless in the vertical direction. With Tile U, gives a fully seamless 2D tile. Disabled when noise_type = torus.

Pattern

ParameterTypeDefaultDescription
Seed rand_seedint [0..]0Seed of the noise.

Time

ParameterTypeDefaultDescription
Time Scale time_scalefloat [0.0..10000.0]0Speed of the animation along the fourth dimension. 0 gives static 3D noise and ignores Time and Loop Length.
Time timefloat0Current time (frame) used for animation, multiplied by Time Scale. Disabled when time_scale = 0.
Loop Length (Frames) loop_framesint [0..65536]0If above 0, the animation loops seamlessly after this many frames. Requires Time Scale above 0. Disabled when time_scale = 0.

Fractal

ParameterTypeDefaultDescription
Fractal Type fractalmenuNoneFractal combination of octaves. None uses a single octave (Max Octaves, Lacunarity and Roughness have no effect). Terrain and Hybrid Terrain give the multifractal variants used for terrain. Options: None (none), Standard (standard), Terrain (terrain), Hybrid Terrain (hybrid_terrain).
Max Octaves octavesint [1..16]3Maximum number of octaves summed. Hidden when fractal = none.
Lacunarity lacunarityfloat [0.0..16.0]2Frequency multiplier from one octave to the next. Hidden when fractal = none.
Roughness roughnessfloat [0.0..1.0]0.5Amplitude multiplier from one octave to the next. Hidden when fractal = none.

Post Processing

ParameterTypeDefaultDescription
Fold foldtoggleoffPost processing: take the absolute value.
Complement complementtoggleoffPost processing: replace x with 1 - x.
Bias pp_biasfloat [0.0..1.0]0.5Post processing: Perlin bias. 0.5 leaves the values unchanged; below 0.5 pulls toward 0, above 0.5 toward 1.
Gain gainfloat [0.0..1.0]0.5Post processing: Perlin gain. 0.5 leaves the values unchanged; above 0.5 steepens the middle, below 0.5 flattens it.
Gamma gammafloat [0.001..100.0]1Post processing: x^gamma. Above 1 darkens, following Houdini's noise documentation.
Contrast contrastfloat [-100.0..100.0]1Post processing: scales values around 0.5.
Clamp Minimum clamp_minfloat0Lower limit used when Use Clamp Min is on.
Use Clamp Min use_clamp_mintoggleoffApply the lower clamp.
Clamp Maximum clamp_maxfloat1Upper limit used when Use Clamp Max is on.
Use Clamp Max use_clamp_maxtoggleoffApply the upper clamp.
ParameterTypeDefaultDescription
Device devicemenuAutoCompute backend. Auto uses the GPU when CUDA is available and the image has at least 256x256 pixels. GPU results are float32 and differ from the CPU float64 path by rounding (about 1e-6); Exact keeps float64 on the CPU for bit-identical agreement with the geometry side. Options: Auto (auto), CPU (cpu), CUDA (cuda), NumPy (numpy), Exact (float64) (exact).

Compared with Houdini

Covers Houdini's Fractal Noise and Fractal Noise 3D. Tile U / Tile V and Torus are implemented by wrapping the noise coordinates onto circles in a higher dimension, so the Lacunarity does not have to be rounded to an integer as in Houdini.


COP Noise Extra (PCG)#

PCG_COPNoiseExtra · category PCG/cop · Houdini: Bubble Noise (COP), Cloud Noise 3D (COP), Crystal Noise (COP), Crystal Noise 3D (COP), Curl Noise (COP), Curl Noise 3D (COP), Phasor Noise (COP)

Generates Bubble, Crystal, Phasor, Curl, Curl 3D and Cloud noise.

A collection of additional noise types. Coordinates are normalized by the image width and keep the aspect ratio, so bubbles stay round. The 3D types slice the volume at the third Offset value (z); moving it animates the noise. If cop is connected, layers are added to it and its resolution is used; otherwise a new image is created with Resolution.

The main layer is the Output Layer; auxiliary layers are named <Output Layer>_xxx:

  • Bubble: one sphere per cell with probability Density and radius Radius times 0.5-1 cell; the value is the cross-section height of the sphere at the slice. Overlaps take the maximum. Auxiliary: _id.
  • Crystal: 3D Voronoi where every cell has a random tilted plane, producing facets with creases between cells. Auxiliary: _id, _edge (F2-F1, zero at creases).
  • Phasor: Gabor-like noise with the phase of the complex sum of kernels only, so stripe contrast is uniform. Auxiliary: _phase, _amplitude.
  • Curl: a divergence-free 2-channel velocity field derived from a simplex fractal potential (unit is per noise unit; multiply by Frequency / image width for per-pixel). Auxiliary: _potential.
  • Curl 3D: 3-channel curl of three potentials, evaluated on the z slice. Note that (vx, vy) on a single slice are not divergence-free.
  • Cloud 3D: simplex fractal turned into a 0-1 density by Coverage and Softness. Auxiliary: _raw.

Amplitude, Center and the post-processing block only affect the main layer, not the auxiliary ones.

Inputs

InputTypeDescription
cop (optional)COPIMAGEOptional image to add the noise to. Its resolution is used. Not connected: a new image of the given Resolution is created.

Outputs

OutputTypeDescription
copCOPIMAGEImage with the noise in the output layer and the auxiliary layers listed above.

Parameters

ParameterTypeDefaultDescription
Noise Type kindmenuBubbleNoise type to generate. Options: Bubble (bubble), Crystal (crystal), Phasor (phasor), Curl (curl), Curl 3D (curl_3d), Cloud 3D (cloud).

Range

ParameterTypeDefaultDescription
Amplitude amplitudefloat1Multiplier applied to the main layer.
Center centerfloat0Constant added to the main layer after the amplitude.
ParameterTypeDefaultDescription
Frequency frequencyfloat [0.001..10000.0]8Number of noise features across the image width. Reciprocal of Houdini's Element Size.
Offset offsetstring0 0 0Offset of the noise space as three numbers. The third is the z slice for 3D types.
Octaves octavesint [1..12]3Number of octaves for Curl, Curl 3D and Cloud 3D. Hidden when kind = bubble } { kind = crystal } { kind = phasor.
Seed rand_seedint [0..]0Seed of the noise.

Bubble

ParameterTypeDefaultDescription
Radius radiusfloat [0..1]0.8Bubble: maximum sphere radius in cells (0-1). Hidden when kind ≠ bubble.
Density densityfloat [0..1]0.7Bubble: probability that a cell contains a sphere. Hidden when kind ≠ bubble.

Crystal

ParameterTypeDefaultDescription
Sharpness sharpnessfloat [0..100]1Crystal: slope of the facet planes. Higher values give stronger facets. Hidden when kind ≠ crystal.
Primary Metric metricmenuEuclideanCrystal: distance metric used to pick the cell. Options: Euclidean (euclidean), Manhattan (manhattan), Chebyshev (chebyshev). Hidden when kind ≠ crystal.
Jitter jitterfloat [0.0..2.0]1Crystal: how far feature points move inside their cells. Hidden when kind ≠ crystal.

Phasor

ParameterTypeDefaultDescription
Type phasor_typemenuPhasor WavePhasor: what is shown in the main layer. Phasor Wave is a periodic function of the phase; Gabor Noise is the real part of the kernel sum; Intensity Field is the magnitude behind both. Options: Phasor Wave (phasor_wave), Gabor Noise (gabor_noise), Intensity Field (intensity_field). Hidden when kind ≠ phasor.
Periodic Function periodic_functionmenuSinePhasor Wave only: wave shape of the periodic function. Options: Sine (sine), Rectangle (rectangle), Saw (saw). Hidden when kind ≠ phasor } { phasor_type ≠ phasor_wave.
Stripe Frequency stripe_freqfloat [0..64]2Phasor: number of stripes per cell. Hidden when kind ≠ phasor.
Angle anglefloat [-360..360]0Phasor: stripe direction in degrees. Hidden when kind ≠ phasor.
Angle Spread spreadfloat [0..360]30Phasor: random deviation from the stripe direction, in degrees (plus or minus half of it). Hidden when kind ≠ phasor.
Kernels per Cell kernelsint [1..16]2Phasor: number of kernels per cell. More kernels give a more uniform pattern and cost more time. Hidden when kind ≠ phasor.
Direction Layer direction_layerstring(empty)Phasor: optional 2-channel vector layer of the connected image; stripes follow it instead of Angle. Hidden when kind ≠ phasor.

Cloud

ParameterTypeDefaultDescription
Coverage coveragefloat [0..1]0.5Cloud: fraction of space filled with cloud (0 empty, 1 full). Hidden when kind ≠ cloud.
Softness softnessfloat [0.001..1]0.2Cloud: width of the transition between empty and full density. Hidden when kind ≠ cloud.
Billow billowtoggleoffCloud: use the absolute value of the noise for puffier clumps. Hidden when kind ≠ cloud.

Post Processing

ParameterTypeDefaultDescription
Fold foldtoggleoffPost processing: take the absolute value.
Complement complementtoggleoffPost processing: replace x with 1 - x.
Bias pp_biasfloat [0.0..1.0]0.5Post processing: Perlin bias. 0.5 leaves the values unchanged; below 0.5 pulls toward 0, above 0.5 toward 1.
Gain gainfloat [0.0..1.0]0.5Post processing: Perlin gain. 0.5 leaves the values unchanged.
Gamma gammafloat [0.001..100.0]1Post processing: x^gamma. Above 1 darkens.
Contrast contrastfloat [-100.0..100.0]1Post processing: scales values around 0.5.
Clamp Minimum clamp_minfloat0Lower limit used when Use Clamp Min is on.
Use Clamp Min use_clamp_mintoggleoffApply the lower clamp.
Clamp Maximum clamp_maxfloat1Upper limit used when Use Clamp Max is on.
Use Clamp Max use_clamp_maxtoggleoffApply the upper clamp.
ParameterTypeDefaultDescription
Output Layer out_layerstringnoiseName of the main output layer.
Resolution resolution_x resolution_yint [1..16384]512, 512Output width and height. Used only when cop is not connected.
Compute computemenuAutoBackend. Auto uses the GPU when available and the image is large enough. Options: Auto (auto), CPU (cpu), CUDA (cuda).

Compared with Houdini

Covers Houdini's Bubble, Crystal (and 3D), Phasor, Curl (and 3D) and Cloud 3D noise COPs in one node. The core algorithms of Bubble, Cloud and Crystal are the plugin's own, because Houdini does not document their formulas; Crystal's Secondary metric group and Phasor's Wave Bias are not implemented.


COP Pattern (PCG)#

PCG_COPPattern · category PCG/cop · Houdini: Cell Pattern (COP), Checkerboard (COP), Chladni Cymatic Patterns (COP), Julia Fractal (COP), Knit (COP), Labs UV Grid Texture (COP), Tile Pattern (COP), Weave (COP)

Generates procedural patterns: checkerboard, tiles, cells, UV grid, Julia/Mandelbrot, Chladni, knit and weave.

COP Pattern (PCG): input and result

One node for eight pattern types. The main layer is the Output Layer; helper layers are named <Output Layer>_xxx and are what you use for per-element coloring and bevelled normals. If cop is connected, layers are added to it and its resolution is used; otherwise a new image of the given Resolution is created. When the counts are whole numbers the patterns tile seamlessly.

Pattern types and their layers:

  • Checkerboard: analytically antialiased 0/1; _id.
  • Tile Pattern: bricks or tiles with a Gap and Bevel given as fractions of a tile's short side. Layers: main mask (gaps are 0), _id, _height (bevel), _edge (pixel distance to the gap), _rand (per tile), _uv (0-1 within the tile). Bond sets the brick layout; seamless tiling needs an even row count (American: a common multiple of Header Interval and 2) and a column count that is a whole multiple of the bond's row period.
  • Cell Pattern: periodic Voronoi cells. Layers: main mask, _id, _edge (true pixel distance to the cell border, measured in pixel space), _dist (distance to the feature point, normalized by the short cell side), _rand.
  • UV Grid: a UV checking image; cells are named from A1 at the bottom-left of UV space (v up), so a glance at the textured model shows mirroring or rotation. Layers: RGB main, _id, _uv.
  • Julia Fractal: Julia or Mandelbrot with smooth iteration count; view width is 3/Zoom complex units. Layers: main (smooth iterations divided by Max Iterations), _inside, _trap (orbit trap).
  • Chladni Cymatics: the standing-wave pattern of a square plate, f = A*[cos(n*pi*x)cos(m*pi*y) +/- k*cos(m*pi*x)cos(n*pi*y)], where A is Amplitude and k is Amplitude Ratio. Sand collects on the nodal lines (f = 0). Layers: main, _value (signed shape).
  • Knit: stockinette V-shaped loops. Layers: height, _mask, _id, _leg (0 left, 1 right), _rand.
  • Weave: warp (vertical) and weft (horizontal) threads with half-round cross-section that undulate over and under at crossings. Layers: height, _mask, _warp (where the warp is on top), _id, _rand.

Inputs

InputTypeDescription
cop (optional)COPIMAGEOptional image to add the pattern layers to. Its resolution is used. Needed as well for the Weave Custom pattern layer.

Outputs

OutputTypeDescription
copCOPIMAGEImage with the pattern in the output layer and the helper layers described above.

Parameters

ParameterTypeDefaultDescription
Pattern Type kindmenuCheckerboardPattern type. Options: Checkerboard (checker), Tile Pattern (tile), Cell Pattern (cell), UV Grid (uv_grid), Julia Fractal (julia), Chladni Cymatics (chladni), Knit (knit), Weave (weave).
Tile Count countsstring8 8Number of columns and rows as two numbers (Checkerboard, Tile, Cell, UV Grid, Knit, Weave). Use whole numbers for seamless tiling. Hidden when kind = julia } { kind = chladni.
Gap gapfloat [0..1]0.05Tile and Cell: gap between elements as a fraction of the short side of a tile or cell. Hidden when kind ≠ tile kind ≠ cell.
Seed rand_seedint [0..]0Seed for random values (tile and cell random values, knit, weave). Hidden when kind = checker } { kind = uv_grid } { kind = julia } { kind = chladni.

Tile

ParameterTypeDefaultDescription
Bond bondmenuRow Offset (Custom)Tile: brick layout. Row Offset shifts each row by the Row Offset value; the others are named brick bonds (header bricks show their short end and are half a stretcher long). Options: Row Offset (Custom) (offset), Stack Bond (stack), Stretcher Bond (stretcher), Header Bond (header), Flemish Bond (flemish), English Bond (english), American Bond (american). Hidden when kind ≠ tile.
Header Interval header_intervalint [1..1000]6American bond: one header row for every this many rows. Hidden when kind ≠ tile } { bond ≠ american.
Row Offset offsetfloat [-4..4]0.5Tile with Row Offset bond: how far each row is shifted, in tiles (0.5 is a running bond). Hidden when kind ≠ tile. Disabled when bond ≠ offset.
Bevel bevelfloat [0..1]0.1Tile: bevel width as a fraction of the tile's short side, producing the _height layer. Hidden when kind ≠ tile.

Cell

ParameterTypeDefaultDescription
Jitter jitterfloat [0..1]1Cell: how far feature points move inside their cells. 0 is a regular grid. Hidden when kind ≠ cell.
Lattice Type latticemenuGridCell: Grid places points in a square lattice; Hexagonal shifts every odd row by half a cell, giving hexagons (regular at a cell aspect of 2:sqrt(3)). Seamless tiling needs an even row count. Options: Grid (grid), Hexagonal (hexagonal). Hidden when kind ≠ cell.
Metric cell_metricmenuEuclideanCell: distance metric. For Manhattan and Chebyshev the edge distance is approximated by (F2-F1)/2. Options: Euclidean (euclidean), Manhattan (manhattan), Chebyshev (chebyshev). Hidden when kind ≠ cell.
Density densityfloat [0.0..1.0]1Cell: fraction of cells kept. Cells whose random value is at or above it are removed from the main mask only. Hidden when kind ≠ cell.
Density Seed density_seedint [0..]0Cell: seed for the density test, independent of Seed. Hidden when kind ≠ cell. Disabled when density >= 1.

Weave

ParameterTypeDefaultDescription
Weave Type weavemenuPlain (Checkerboard)Weave: thread over-under pattern. Custom reads the up/down table from Pattern Layer. Options: Plain (Checkerboard) (plain), Twill 2/2 (twill), Satin (5-Harness) (satin), Custom (Pattern Layer) (custom). Hidden when kind ≠ weave.
Pattern Layer weave_layerstring(empty)Weave Custom: layer of the input image sampled at each crossing centre; a value above 0.5 means the warp (vertical) thread is on top. Hidden when kind ≠ weave. Disabled when weave ≠ custom.
Thread Width thread_widthfloat [0.05..1]0.8Weave: thread width as a fraction of the pitch; 1 minus the width is the gap. With Separate Row / Column Widths on, this controls only the warp threads (vertical). Hidden when kind ≠ weave.
Separate Row / Column Widths separate_widthstoggleoffWeave: set the weft (horizontal) thread width separately. Hidden when kind ≠ weave.
Weft (Row) Width weft_widthfloat [0.05..1]0.8Weave: weft thread width, used when Separate Row / Column Widths is on. Hidden when kind ≠ weave. Disabled when separate_widths is off.

Julia

ParameterTypeDefaultDescription
Fractal Type fractalmenuJuliaJulia Fractal: render the Julia set or the Mandelbrot set. Options: Julia (julia), Mandelbrot (mandelbrot). Hidden when kind ≠ julia.
Julia Constant cstring-0.8 0.156Julia: the complex constant as two numbers (real, imaginary). Hidden when kind ≠ julia } { fractal = mandelbrot.
Center centerstring0 0Julia: centre of the view in the complex plane, as two numbers. Hidden when kind ≠ julia.
Zoom zoomfloat [1e-06..]1Julia: zoom factor. The view is 3/Zoom wide. Hidden when kind ≠ julia.
Max Iterations iterationsint [1..5000]100Julia: maximum number of iterations. Hidden when kind ≠ julia.

Chladni

ParameterTypeDefaultDescription
Modes (n m) modesstring3 5Chladni: the mode numbers n and m as two numbers. Higher values give finer patterns. Hidden when kind ≠ chladni.
Sign signmenuMinus (−)Chladni: sign of the second term, which changes the symmetry of the pattern. Options: Minus (−) (-), Plus (+) (+). Hidden when kind ≠ chladni.
Output Mode chladni_outputmenuNodal Lines (Pixel Width)Chladni: Nodal Lines (Pixel Width) draws lines of constant pixel width; Nodal Lines (Threshold) is white below the threshold and black above, with a soft edge; Absolute Value and Signed Value output the wave function itself. Options: Nodal Lines (Pixel Width) (pixel_lines), Nodal Lines (Threshold) (nodal_lines), Absolute Value (absolute), Signed Value (signed). Hidden when kind ≠ chladni.
Line Width line_widthfloat [0.1..64]1.5Chladni with Nodal Lines (Pixel Width): line width in pixels. Hidden when kind ≠ chladni. Disabled when chladni_output ≠ pixel_lines.
Threshold thresholdfloat [0.0..10000.0]0.1Chladni with Nodal Lines (Threshold): value of |f| above which the output is black. Hidden when kind ≠ chladni. Disabled when chladni_output ≠ nodal_lines.
Smoothing Width smoothing_widthfloat [0.0..10000.0]0.05Chladni with Nodal Lines (Threshold): width of the soft transition below the threshold. 0 gives a hard edge. Hidden when kind ≠ chladni. Disabled when chladni_output ≠ nodal_lines.
Amplitude amplitudefloat [-10000.0..10000.0]1Chladni: scales the first wave and therefore the whole output. Hidden when kind ≠ chladni.
Amplitude Ratio amplitude_ratiofloat [-10000.0..10000.0]1Chladni: weight of the second wave relative to the first. 1 is the plain formula. Hidden when kind ≠ chladni.

UV Grid

ParameterTypeDefaultDescription
Tile Coloring Mode tile_coloringmenuHue (Columns) + Value CheckerUV Grid: how tile backgrounds are colored. Hue colors columns by hue with a value checker; Gradient runs from Tile Color 1 to 2 in cell order. Options: Hue (Columns) + Value Checker (hue), Uniform (uniform), Checker (checker), Gradient (gradient). Hidden when kind ≠ uv_grid.
Tile Color 1 tile_color1string0.85 0.85 0.85UV Grid: first tile color (RGB, three numbers). Hidden when kind ≠ uv_grid. Disabled when tile_coloring = hue.
Tile Color 2 tile_color2string0.6 0.6 0.6UV Grid: second tile color (RGB, three numbers). Hidden when kind ≠ uv_grid. Disabled when tile_coloring = hue } { tile_coloring = uniform.
Add Tile Outlines outlinestoggleonUV Grid: draw outlines between tiles. Hidden when kind ≠ uv_grid.
Outline Width outline_widthfloat [0.0..1000.0]1UV Grid: outline width in pixels. Hidden when kind ≠ uv_grid. Disabled when outlines is off.
Outline Color outline_colorstring0.08 0.08 0.08UV Grid: outline color (RGB, three numbers). Hidden when kind ≠ uv_grid. Disabled when outlines is off.
Draw Markers labelstoggleonUV Grid: draw markers in the tiles. Hidden when kind ≠ uv_grid.
Marker Type marker_typemenuTextUV Grid: Text writes the cell name, Cross draws a cross, Arrow draws an arrow pointing to +v (shows rotation of the UVs). Options: Text (text), Cross (cross), Arrow (arrow). Hidden when kind ≠ uv_grid. Disabled when labels is off.
Text Mode text_modemenuLetters & NumbersUV Grid Text markers: Letters & Numbers gives A1, B1 and so on; Coordinates gives i,j starting at 0,0 in the bottom-left. Options: Letters & Numbers (letters), Coordinates (coordinates). Hidden when kind ≠ uv_grid. Disabled when labels is off } { marker_type ≠ text.
Font fontstring(empty)UV Grid text: font name or path. Empty uses the default font of Pillow. Hidden when kind ≠ uv_grid. Disabled when labels is off } { marker_type ≠ text.
Marker Size marker_sizefloat [0.0..10.0]0.32UV Grid: marker size relative to the short side of a tile. Hidden when kind ≠ uv_grid. Disabled when labels is off.
Marker Coloring Mode marker_coloringmenuUniformUV Grid: how marker colors are chosen (uniform, checker, or gradient in cell order). Options: Uniform (uniform), Checker (checker), Gradient (gradient). Hidden when kind ≠ uv_grid. Disabled when labels is off.
Marker Color 1 marker_colorstring0.05 0.05 0.05UV Grid: first marker color (RGB, three numbers). Hidden when kind ≠ uv_grid. Disabled when labels is off.
Marker Color 2 marker_color2string1 1 1UV Grid: second marker color (RGB, three numbers). Hidden when kind ≠ uv_grid. Disabled when labels is off } { marker_coloring = uniform.
ParameterTypeDefaultDescription
Output Layer out_layerstringpatternName of the main output layer; helper layers use it as a prefix.
Resolution resolution_x resolution_yint [1..16384]512, 512Output width and height in pixels. Used only when cop is not connected.

Compared with Houdini

Covers Houdini's Checkerboard, Tile Pattern, Cell Pattern, Labs UV Grid Texture, Julia Fractal, Chladni Cymatic Patterns, Knit and Weave. Knit's geometry is the plugin's own construction.


COP Position Map (PCG)#

PCG_COPPositionMap · category PCG/cop · Houdini: Position Map (COP)

Generates a layer storing a 3D position per pixel, for use as the reference position of 3D noise.

Each axis is computed as (P + Shift) * Cycles and then folded back into the [-1, 1] range according to that axis' Border mode.

There is no camera: Position is (image x, image y, 0) and View Direction is (0, 0, -1). Without a connected reference image the Resolution parameter sets the size.

Inputs

InputTypeDescription
size_ref (optional)COPIMAGEOptional image whose resolution is used.

Outputs

OutputTypeDescription
copCOPIMAGEImage with the position layer.

Parameters

ParameterTypeDefaultDescription
Source Position source_positionmenuPositionWhether to store the pixel position or the view direction. Options: Position (position), View Direction (view_direction).

X

ParameterTypeDefaultDescription
X Border x_bordermenuExtendHow X values outside [-1, 1] are folded back into range. Options: Clamp (clamp), Mirror (mirror), Wrap (wrap), Extend (extend).
ParameterTypeDefaultDescription
X Shift x_shiftfloat0Offset added to X before scaling by Cycles.
X Cycles x_cyclesfloat1Multiplier applied to X after the shift.

Y

ParameterTypeDefaultDescription
Y Border y_bordermenuExtendHow Y values outside [-1, 1] are folded back into range. Options: Clamp (clamp), Mirror (mirror), Wrap (wrap), Extend (extend).
ParameterTypeDefaultDescription
Y Shift y_shiftfloat0Offset added to Y before scaling by Cycles.
Y Cycles y_cyclesfloat1Multiplier applied to Y after the shift.

Z

ParameterTypeDefaultDescription
Z Border z_bordermenuExtendHow Z values outside [-1, 1] are folded back into range. Options: Clamp (clamp), Mirror (mirror), Wrap (wrap), Extend (extend).
ParameterTypeDefaultDescription
Z Shift z_shiftfloat0Offset added to Z before scaling by Cycles.
Z Cycles z_cyclesfloat1Multiplier applied to Z after the shift.
Output Layer out_layerstringposName of the layer that receives the result.
Resolution resolution_x resolution_yint [1..16384]512, 512Image size, used only when no reference image is connected.

Compared with Houdini

There is no camera, so Camera Origin is not implemented.


COP Random (PCG)#

PCG_COPRandom · category PCG/cop · Houdini: Random Mono (COP), Random RGB (COP)

Generates hash-based random values per pixel or per ID.

Per pixel gives white noise; per ID gives the same value to every pixel sharing an ID, which colours each region of a segmentation image randomly. The hash makes results reproducible bit for bit. Without a connected image a new one is created at the Resolution (per-pixel only).

Shared Min/Max uses one range for all channels. Min/Max, Color Ramp and Specific Values are the three modes of Houdini's Random RGB and always output RGB (with Channels 4 the alpha is constantly 1).

Inputs

InputTypeDescription
cop (optional)COPIMAGEOptional image providing resolution and, in ID mode, the ID layer.

Outputs

OutputTypeDescription
copCOPIMAGEImage with the random layer.

Parameters

Range

ParameterTypeDefaultDescription
Range Values range_valuesmenuMin/Max (All Channels, PCG)How the random value is mapped to output. Shared uses a single min/max for all channels; Min/Max sets per-component ranges; Color Ramp samples a ramp; Specific Values picks one of a list of colours. Options: Min/Max (All Channels, PCG) (shared), Min/Max (min_max), Color Ramp (color_ramp), Specific Values (specific_values).
ParameterTypeDefaultDescription
Color Model color_modelmenuRGBWhether Min and Max are RGB or HSV values. Options: RGB (rgb), HSV (hsv). Hidden when range_values ≠ min_max.
Value Range min maxfloat0, 1Minimum and maximum of the random range, shared by all channels. Hidden when range_values ≠ shared.
Min range_minstring0 0 0Lower bound. For RGB the three components; for HSV hue (degrees), saturation, value. Hidden when range_values ≠ min_max.
Max range_maxstring1 1 1Upper bound, same layout as Min. For HSV the hue must be entered up to 360 explicitly. Hidden when range_values ≠ min_max.
Color Ramp color_rampstring0:0,0,0 1:1,1,1Colour ramp as position:r,g,b stops. Hidden when range_values ≠ color_ramp.
Color Ramp Mode color_ramp_modemenuLinearInterpolation between ramp stops. Options: Linear (linear), Smooth (smooth), Constant (constant).
Colors colorsstring1 0 0; 0 1 0; 0 0 1List of r g b [weight] colours separated by semicolons. Colours with a lower weight are picked less often. Hidden when range_values ≠ specific_values.
Channels channelsmenu1 (Mono)Number of output channels. Outside Shared mode the output is RGB; 4 adds an alpha of constant 1. Options: 1 (Mono) (1), 3 (RGB) (3), 4 (RGBA) (4).

Random

ParameterTypeDefaultDescription
Random Per modemenuPixelPixel gives each pixel its own value; ID gives equal values to equal IDs and requires an input image with an ID layer. Options: Pixel (pixel), ID (id).
ParameterTypeDefaultDescription
ID Layer id_layerstringidLayer holding the integer IDs. Hidden when mode ≠ id.
Seed rand_seedint [0..]0Seed of the hash.
Zero Negative IDs zero_negative_idstoggleoffOutputs 0 for pixels with a negative ID. Hidden when mode ≠ id.
Output Layer out_layerstringrandomName of the layer that receives the result.
Resolution resolution_x resolution_yint [1..16384]512, 512Image size, used only when no image is connected.

COP Shape (PCG)#

PCG_COPShape · category PCG/cop · Houdini: SDF Shape (COP)

Draws a shape as a signed distance field plus an anti-aliased mask.

COP Shape (PCG): input and result

The primary output is an SDF (negative inside, positive outside), not a black and white image; the mask is derived from it with a smoothstep. This matters: an SDF directly supports outlines (|d| < w), growing and shrinking (d - r) and bevels; anti-aliasing is analytic, with the edge width given in pixels so softness looks the same at any resolution; and min / max of two SDFs gives union / intersection while staying a valid distance field.

Coordinates are centred and normalized by the short edge: the short side spans [-0.5, 0.5] and the long side extends by the aspect ratio. A circle of radius 0.5 is therefore inscribed in the short side at any aspect, and never squashed into an ellipse.

Rectangles use the standard exact SDF. The star is not an exact SDF (a polar fold gives an approximation), which is fine for outlines and masks but visible with large offsets.

The layers are only produced if their names are not empty. If Color Layer is set, a 3-channel copy of the mask is written to it.

Outputs

OutputTypeDescription
copCOPIMAGEImage with the SDF layer, the mask layer and optionally a colour layer.

Parameters

ParameterTypeDefaultDescription
Resolution resolution_x resolution_yint [1..16384]512, 512Image size in pixels.
Shape Type shapemenuCircleShape type. Options: Circle (circle), Rectangle (box), Rounded Rectangle (rounded_box), Line (Capsule) (line), Star (star), Polygon (polygon), Squircle (squircle), Trapezoid (trapezoid), Triangle (triangle), Diamond (diamond), Egg (egg), Moon (moon), Vesica (vesica), Cross (cross), Arch (arch), Arrow (arrow).
Center center_x center_yfloat [-10000.0..10000.0]0, 0Centre of the shape in normalized coordinates.
Rotate anglefloat [-3600.0..3600.0]0Rotation in degrees.
Shear shearfloat [-10000.0..10000.0]0Horizontal shear in local coordinates, x' = x + Shear * y.
Uniform Scale uniform_scalefloat [-10000.0..10000.0]1Scales the whole shape.
Radius radiusfloat [-10000.0..10000.0]0.35Main radius. For Line it is the half width of the line; for Moon, the outer circle radius; for Cross, the distance from centre to the arm ends. Hidden when shape = box } { shape = rounded_box } { shape = trapezoid } { shape = triangle } { shape = diamond } { shape = arch } { shape = arrow. Disabled when shape = line separate_thickness is on.

Circle

ParameterTypeDefaultDescription
Arc arcfloat [0.0..1.0]11 is a full circle; smaller values keep only a section of Arc x 360 degrees, with the opening facing down. Hidden when shape ≠ circle.
Thickness thicknessfloat [0.0..1.0]11 is solid; smaller values cut the circle into a ring whose width is Radius x Thickness. Hidden when shape ≠ circle.
Round Ends round_endstoggleoffRounds the ends of an open arc or ring. Hidden when shape ≠ circle. Disabled when arc >= 1 } { thickness >= 1.

Box

ParameterTypeDefaultDescription
Size size_x size_yfloat [0.0..10000.0]0.35, 0.25Half width and half height. For Trapezoid: half length of the base and half height; for Arch: half width and half height of the rectangular part. Hidden when shape ≠ box shape ≠ rounded_box shape ≠ trapezoid shape ≠ triangle shape ≠ diamond shape ≠ arch. Disabled when shape = triangle use_points is on.
Corner Radius cornerfloat [0.0..10000.0]0.05Corner radius of the rounded rectangle. Hidden when shape ≠ rounded_box. Disabled when separate_corners is on.
Separate Controls separate_cornerstoggleoffEnables an individual radius for each corner. Hidden when shape ≠ box shape ≠ rounded_box.
Top Left corner_tlfloat [0.0..1.0]0Top-left corner rounding, 0 to 1 as a fraction of the shorter half side. Hidden when shape ≠ box shape ≠ rounded_box. Disabled when separate_corners is off.
Top Right corner_trfloat [0.0..1.0]0Top-right corner rounding, 0 to 1 as a fraction of the shorter half side. Hidden when shape ≠ box shape ≠ rounded_box. Disabled when separate_corners is off.
Bottom Left corner_blfloat [0.0..1.0]0Bottom-left corner rounding, 0 to 1 as a fraction of the shorter half side. Hidden when shape ≠ box shape ≠ rounded_box. Disabled when separate_corners is off.
Bottom Right corner_brfloat [0.0..1.0]0Bottom-right corner rounding, 0 to 1 as a fraction of the shorter half side. Hidden when shape ≠ box shape ≠ rounded_box. Disabled when separate_corners is off.

Star

ParameterTypeDefaultDescription
Number of Sides pointsint [3..64]5Number of points of the star or sides of the polygon. Hidden when shape ≠ star shape ≠ polygon.
Inner Radius innerfloat [0.0..1.0]0.5Star inner radius as a fraction of the outer radius. Hidden when shape ≠ star.

Shape

ParameterTypeDefaultDescription
Blend squircle_blendfloat [0.25..1000.0]4Shape exponent: 2 is a circle, 1 a diamond, larger values approach a square. Hidden when shape ≠ squircle.
Top Length trap_topfloat [0.0..10000.0]0.15Half length of the top edge of the trapezoid. Hidden when shape ≠ trapezoid.
Use Points use_pointstoggleoffDefines the triangle by three explicit points instead of Size. Hidden when shape ≠ triangle.
Point 0 tri_p0string-0.3 -0.25First triangle vertex as x y. Hidden when shape ≠ triangle. Disabled when use_points is off.
Point 1 tri_p1string0 0.3Second triangle vertex as x y. Hidden when shape ≠ triangle. Disabled when use_points is off.
Point 2 tri_p2string0.3 -0.25Third triangle vertex as x y. Hidden when shape ≠ triangle. Disabled when use_points is off.
Roundness roundnessfloat [0.0..1.0]0.5Egg: 0 gives a pointed top, 1 a circle. Vesica: 1 is a circle, smaller values flatten it. Hidden when shape ≠ egg shape ≠ vesica.
Inner Radius moon_innerfloat [0.0..10000.0]0.3Radius of the circle cut out of the moon. Hidden when shape ≠ moon.
Inner Offset moon_offsetfloat [-10000.0..10000.0]0.15Offset of the cut-out circle from the outer circle. Hidden when shape ≠ moon.
Cross Inset cross_insetfloat [0.0..10000.0]0.15Arm inset of the cross; 0 gives a square. Hidden when shape ≠ cross.
Cross Bevel cross_bevelfloat [0.0..10000.0]0Radius that rounds the inner corners of the cross. Hidden when shape ≠ cross.

Line

ParameterTypeDefaultDescription
Start line_ax line_ayfloat [-10000.0..10000.0]-0.3, 0Start point of the line or arrow. Hidden when shape ≠ line shape ≠ arrow.
End line_bx line_byfloat [-10000.0..10000.0]0.3, 0End point of the line or arrow. Hidden when shape ≠ line shape ≠ arrow.
Add Thickness separate_thicknesstoggleoffGives the line different thicknesses at its two ends instead of using Radius. Hidden when shape ≠ line.
Start Thickness start_thicknessfloat [0.0..10000.0]0.1Full width of the line at its start. Hidden when shape ≠ line. Disabled when separate_thickness is off.
End Thickness end_thicknessfloat [0.0..10000.0]0.02Full width of the line at its end. Hidden when shape ≠ line. Disabled when separate_thickness is off.
ParameterTypeDefaultDescription
Shaft Thickness arrow_shaftfloat [0.0..10000.0]0.06Thickness of the arrow shaft. Hidden when shape ≠ arrow.
Head Thickness arrow_headfloat [0.0..10000.0]0.2Thickness of the arrow head. Hidden when shape ≠ arrow.
Head Ratio arrow_head_ratiofloat [0.0..1.0]0.3Arrow head length as a fraction of the total length. Hidden when shape ≠ arrow.
Edge Softness (Pixels) softness_pixelsfloat [0.0..10000.0]1.5Width of the mask's anti-aliased edge in pixels. Disabled when mask_layer = "".
Invert inverttoggleoffFlips the inside and outside of the SDF (and therefore the mask).
SDF Layer sdf_layerstringsdfName of the SDF layer. Empty skips it.
Mask Layer mask_layerstringmaskName of the mask layer. Empty skips the mask (and the colour layer).
Color Layer color_layerstring(empty)Name of a 3-channel layer receiving a copy of the mask. Empty skips it. Disabled when mask_layer = "".
Device devicemenuAutoCompute backend. Exact computes in float64. Options: Auto (auto), CPU (cpu), CUDA (cuda), NumPy (numpy), Exact (float64) (exact).

Compared with Houdini

Based on Houdini's SDF Shape, with the Shape Class level removed: all shapes are in one menu. Spiral, Wave, Fishscale, Octagon-dot, Horseshoe, Quadratic Circle and the Marker shapes are not implemented.


COP Stereogram (PCG)#

PCG_COPStereogram · category PCG/cop · Houdini: Auto Stereogram (COP)

Creates a single-image autostereogram from a depth layer.

Turns depth (0 far, 1 near) into a stereogram made of random dots or of a repeated pattern layer tiled at the strip width. The default is for parallel viewing; Cross-Eyed reverses it. Hidden surface removal is not done, so ghosting can appear at abrupt depth edges. A per-pixel separation layer in pixels is also written as <Output Layer>_sep.

Inputs

InputTypeDescription
copCOPIMAGEImage containing the depth layer (and optional pattern layer).

Outputs

OutputTypeDescription
copCOPIMAGEImage with the stereogram layer and its separation layer.

Parameters

ParameterTypeDefaultDescription
Depth Layer depth_layerstringdepthDepth layer, 0 far to 1 near.
Pattern Layer pattern_layerstring(empty)Layer tiled across the image as the repeating pattern. Empty uses random dots.
Strip Width (Pixels) stripint [0..4096]0Width of the repeating strip in pixels. 0 uses image width / 8.
Depth Scale depth_scalefloat [0..0.9]0.33How strongly depth changes the pixel separation.
Cross-Eyed cross_eyedtoggleoffProduces a stereogram for cross-eyed viewing instead of parallel viewing.
Color Dots colortoggleonUses coloured random dots instead of grey. Disabled when pattern_layer ≠ "".
Seed rand_seedint [0..]0Seed of the random dots. Disabled when pattern_layer ≠ "".
Output Layer out_layerstringstereogramName of the stereogram layer; separation goes to <Output Layer>_sep.

COP Text (PCG)#

PCG_COPText · category PCG/cop · Houdini: Font (COP)

Renders text into an anti-aliased coverage mask, optionally composited over a layer.

COP Text (PCG): input and result

Draws Text with FreeType anti-aliasing into Output Layer as a 0-1 coverage mask. Position is a UV point (V pointing up) and Align / VAlign choose which point of the text block is placed on it. Multi-line text is supported, with line distance set by Line Spacing.

If Composite Layer is set, Color is laid over that layer through the mask (a black layer is created if it does not exist yet). The font size is in pixels, so it does not follow resolution changes automatically.

The empty font uses the bundled Pillow font, which only has Latin characters; for other scripts give the file name of a system font that covers them.

Inputs

InputTypeDescription
cop (optional)COPIMAGEOptional image to draw into. Without it a new image of the given resolution is created.

Outputs

OutputTypeDescription
copCOPIMAGEThe image with the text mask (and the composited layer, if requested).

Parameters

ParameterTypeDefaultDescription
Text textstringTextThe text to render.
Font fontstring(empty)Font file name or path, for example a system font. Empty uses the bundled Latin-only font.
Font Size (Pixels) sizeint [1..4096]64Font size in pixels.
Line Spacing spacingfloat [0.1..10]1.2Line spacing multiplier for multi-line text.
Position (UV) positionstring0.5 0.5Anchor point of the text block in UV (U and V, 0-1, V up).
Horizontal Align alignmenuLeftHorizontal alignment of the text block relative to the position, and of lines within it. Options: Left (left), Center (center), Right (right).
Vertical Align valignmenuCenterWhich vertical point of the text block is placed on the position. Options: Center (center), Top (top), Bottom (bottom).
Composite Layer composite_layerstring(empty)Layer to draw Color onto through the mask. Empty only writes the mask.
Text Color colorstring1 1 1RGB color used when compositing. Disabled when composite_layer = "".
Output Layer out_layerstringtextLayer that receives the coverage mask.
Resolution resolution_x resolution_yint [1..16384]512, 512Output resolution (width, height) used when nothing is connected to the input. With an input, its resolution is used.

COP Worley Noise (PCG)#

PCG_COPWorleyNoise · category PCG/cop · Houdini: Worley Noise (COP), Worley Noise 3D (COP)

Generates Worley (cellular) noise and its feature-point, cell-border, center and ID layers.

COP Worley Noise (PCG): input and result

One feature point is placed in each cell of a lattice (jittered by Jitter) and every pixel measures distances to the nearest points. Five layers are written, named with Prefix plus:

  • dist1: distance to the nearest feature point.
  • dist2: distance to the second nearest point.
  • border: distance to the nearest cell border, positive inside the cell. Exact for the Euclidean metric; for Manhattan and Chebyshev it is the estimate (dist2 - dist1) / 2.
  • center: coordinates of the nearest feature point.
  • id: hash of the cell holding the nearest point, as a signed integer.

Coordinates are normalised by image width (x = u, y = v x height/width). If an input is connected and Pos Layer is set, its values are used as coordinates: 2 channels give the 2D version, 3 channels the 3D version (Worley Noise 3D), for example world positions. The post-processing section (fold, complement, bias, gain, gamma, contrast, clamp) is applied only to dist1 and dist2.

Distances are in image coordinates (times Element Size); with an anisotropic Element Scale they are measured before the stretch. The search covers a 5x5 (2D) or 5x5x5 (3D) neighbourhood of cells, which is sufficient for Jitter up to 1; larger jitter can give artefacts, as in Houdini.

Inputs

InputTypeDescription
cop (optional)COPIMAGEOptional image. Provides the resolution and, with Pos Layer, the coordinates to evaluate the noise at.

Outputs

OutputTypeDescription
copCOPIMAGEThe input image (or a new one) plus the dist1, dist2, border, center and id layers.

Parameters

Pattern

ParameterTypeDefaultDescription
Element Size element_sizefloat [1e-06..10000.0]0.1Size of one lattice cell in image units (image width = 1). Smaller values give more, smaller cells.
ParameterTypeDefaultDescription
Element Scale element_scalestring1 1 1Per-axis scale (X, Y, Z) of the cells, for anisotropic cells.
Jitter jitterfloat [0.0..2.0]1How far feature points move from the cell centre. 0 gives a regular grid; values above 1 move points out of the searched range and can create artefacts.
Jitter Scale jitter_scalestring1 1 1Per-axis multiplier (X, Y, Z) on the jitter.
Lattice Type latticemenuRectangularRectangular cells, or a simplicial (triangular) lattice whose Voronoi cells are hexagons at zero jitter. Hexagonal is 2D only and cannot be combined with Tile. Options: Rectangular (rectangular), Simplical (Hexagonal) (hexagonal).
Metric metricmenuEuclideanDistance metric: Euclidean, Manhattan or Chebyshev. Options: Euclidean (euclidean), Manhattan (manhattan), Chebyshev (chebyshev).
Round Border round_borderfloat [0.0..10.0]0Rounds the cell borders by taking a smooth minimum over neighbouring cells with this smoothing amount (in cell units). 0 gives sharp borders. Hidden when metric ≠ euclidean.
Offset offsetstring0 0 0Offset (X, Y, Z) of the noise pattern in image units.
Tile tiletoggleoffMake the noise tile seamlessly. The number of cells per axis becomes round(Tile Size / Element Size) (at least 1) and the Element Size is adjusted to fit.
Tile Size tile_sizestring1 1 1Size of the repeat (X, Y, Z) in image units. For non-square images give it in width-normalised units (width = 1). Disabled when tile is off.
Pos Layer pos_layerstring(empty)Optional layer in the input providing the coordinates: 2 channels for 2D, 3 channels for the 3D version. Empty uses the pixel coordinates.
Seed rand_seedint [0..]0Seed of the feature point positions and IDs.

Post Processing

ParameterTypeDefaultDescription
Fold foldtoggleoffPost-processing: take the absolute value.
Complement complementtoggleoffPost-processing: invert the value (1 - x).
Bias pp_biasfloat [0.0..1.0]0.5Post-processing: Perlin bias. 0.5 has no effect; below 0.5 pulls values towards 0, above 0.5 towards 1.
Gain gainfloat [0.0..1.0]0.5Post-processing: Perlin gain. 0.5 has no effect; above 0.5 steepens the mid-range and pushes values apart, below 0.5 flattens it.
Gamma gammafloat [0.001..100.0]1Post-processing: raises the value to this power. Above 1 darkens.
Contrast contrastfloat [-100.0..100.0]1Post-processing: scales the value around 0.5.
Clamp Minimum clamp_minfloat0Lower limit used when Use Clamp Min is on.
Use Clamp Min use_clamp_mintoggleoffClamp the post-processed value from below.
Clamp Maximum clamp_maxfloat1Upper limit used when Use Clamp Max is on.
Use Clamp Max use_clamp_maxtoggleoffClamp the post-processed value from above.
ParameterTypeDefaultDescription
Layer Prefix prefixstring(empty)Text prepended to the output layer names (dist1, dist2, border, center, id).
Resolution resolution_x resolution_yint [1..16384]512, 512Output resolution (width, height) used when nothing is connected. With an input, its resolution is used.

Compared with Houdini

Covers Worley Noise and Worley Noise 3D. Image coordinates are normalised by the image width. Houdini states that border is exact for all metrics; here it is exact only for Euclidean.

Tips

  • Use border as a mask for cracks, or id to give every cell a random value (hash it in a Wrangle).