Noisefieldp5.js, Processing, TouchDesigner, shaders and plotter art, published as

Shaders and Visuals

Perlin, Simplex and Value Noise: Building a Three-Noise Composition in TouchDesigner

By the Noisefield editors / / 5 min read

Short answer. Perlin, Simplex and value noise produce different spatial structures, even when they share the same input coordinates and frequency. In TouchDesigner, placing all three in one composition makes their differences visible and gives artists a practical way to choose noise according to the movement, texture and density an image requires.

Key points

  • Perlin noise is useful for smooth, continuous variations and organic motion.
  • Simplex noise offers a different spatial structure and can be useful for multidimensional fields.
  • Value noise interpolates between discrete random values, making its grid structure an important artistic consideration.
  • Frequency, amplitude and coordinate scaling affect the appearance as much as the noise algorithm.
  • A shared input and output scale make comparisons easier to interpret.

Three algorithms, three visual behaviors

Noise is a source of controlled irregularity. In generative art, it can describe a changing surface, bend a particle trajectory, distort a coordinate or determine the brightness of a pixel. The word noise, however, covers several algorithms with different interpolation methods and spatial characteristics. Treating them as interchangeable can make a composition difficult to control.

Perlin noise creates smoothly varying values across a continuous coordinate space. Neighboring samples tend to have related values, which makes the function useful for cloud-like forms, flowing fields and gradual deformation. Simplex noise uses a different spatial construction and can provide efficient sampling in multiple dimensions. Value noise begins with discrete random values arranged on a grid and interpolates between them. Its underlying lattice can influence the resulting texture.

These differences become especially useful when the algorithms occupy different visual roles. One can describe a broad background, another can control local displacement, and a third can introduce a more structured secondary pattern.

  • Perlin: continuous organic variation.
  • Simplex: multidimensional spatial variation.
  • Value: interpolated random grid values.
  • All three: useful building blocks for procedural imagery.

Constructing a shared TouchDesigner setup

A useful TouchDesigner tutorial begins with a common coordinate system. Create three parallel branches that receive the same normalized coordinates. Each branch should produce a grayscale noise field, with its output mapped into the same numerical range. This shared structure keeps differences in the underlying functions visible.

For a texture-based network, a TOP-based approach provides a direct route to image comparison. Use the appropriate noise-generating operators or a GLSL TOP implementation for the algorithm required. Available operators, parameters and naming can vary between TouchDesigner releases, so confirm the installed documentation before building a network around a specific operator.

Keep the branches separate until their individual outputs are available. A Composite TOP or a layout operation can place the resulting images beside one another. A three-panel arrangement is particularly readable because the viewer can compare similar structures without switching between separate projects.

  • Use identical input dimensions.
  • Keep coordinate scaling consistent.
  • Normalize output ranges before compositing.
  • Label each branch with its algorithm.

Frequency and amplitude define the visual scale

Frequency determines how quickly a noise field changes across space. At low frequency, broad regions share similar values. Increasing frequency produces smaller features and more rapid transitions. Amplitude controls the strength of the resulting variation when the field is used to modify another value. These parameters should remain separate in the network so their effects can be adjusted independently.

For example, consider a 1024 by 1024 composition with frequency values of 2, 6 and 12 across three successive visual layers. The first can establish broad tonal regions, the second can introduce medium-scale structure, and the third can supply fine detail. These numbers are illustrative starting points, not universal settings; coordinate conventions and the noise implementation determine their actual appearance.

A common mistake is to increase frequency and amplitude together. This changes both the size and strength of the features, making it difficult to understand which parameter produced a particular result. Change one variable at a time when developing the visual language of a composition.

  • Low frequency establishes large visual masses.
  • Medium frequency creates recognizable internal structure.
  • High frequency introduces smaller details.
  • Amplitude controls how strongly the field affects the image.

Combining noise fields without flattening their differences

Three noise fields can share a composition without being blended into a single undifferentiated texture. A useful arrangement assigns each algorithm a distinct responsibility. Perlin can control the broad displacement of a shape, Simplex can influence a secondary moving field, and value noise can define a patterned mask. The functions then contribute different kinds of information.

A weighted combination is one possible technique. For example, define a final field as 0.5 times Perlin, 0.3 times Simplex and 0.2 times value noise. The coefficients establish relative influence, although the fields should first be placed on compatible ranges. If one algorithm produces a different distribution of values, normalization may be needed before blending.

In TouchDesigner, Math CHOPs can be useful when the fields are represented as channels, while TOP-level operations suit image-based combinations. GLSL provides more direct control when custom coordinate transformations or sampling behavior are required. The appropriate approach depends on whether the composition is primarily channel-driven or image-driven.

Real-time movement and temporal coherence

Static noise becomes animation when time enters the sampling coordinates or influences a parameter. A moving coordinate offset can make a field appear to travel, while a changing amplitude can make its contrast breathe. For fluid-looking motion, small changes over time are generally easier to control than large jumps between unrelated random values.

For example, an animated coordinate can use a time-dependent offset such as x plus time multiplied by 0.05. The resulting movement is continuous when the underlying function is continuous and the time value advances smoothly. The same principle applies to displacement maps, particle systems and animated masks.

Real-time visuals also require attention to resolution and network cost. A 2048 by 2048 texture contains four times as many pixels as a 1024 by 1024 texture. Increasing resolution can reveal fine detail, but it also increases the work required by downstream operations. Keep preview resolution lower while adjusting the network, then select the output resolution according to the final display or export.

A practical selection method

Choose a noise function according to the visual task, not its reputation. Perlin is a natural starting point for smooth spatial variation. Simplex is worth considering when the composition needs multidimensional sampling or a different distribution of structures. Value noise is useful when a lattice-derived appearance is desirable or when its simple interpolation model suits the intended effect.

Build a small reference composition with three labeled branches, one shared coordinate input and identical display ranges. Save a few frequency and amplitude presets for each branch. Then test the functions in the actual role they will occupy: a noise field that looks attractive as a grayscale image may behave very differently when converted into displacement or velocity.

The next step is to choose one visual role, such as background deformation, and connect each branch to the same downstream operation. Compare the resulting geometry at one fixed resolution and keep the algorithm whose spatial behavior supports the intended composition.

Questions readers ask

Which noise function is easiest to begin with in TouchDesigner?

Perlin noise is a practical starting point because its smooth variation is easy to interpret in displacement and texture experiments. The best starting operator still depends on the installed TouchDesigner version and the desired output.

Why does value noise sometimes look blockier?

Its values originate from discrete grid points. Interpolation smooths the transitions, but the lattice can remain visible when the sampling frequency is high or the interpolation method is insufficiently smooth.

How can multiple noise functions control one particle system?

Assign different functions to separate particle attributes. One field might influence direction, another speed, and a third opacity. This preserves control over each contribution.

When is GLSL preferable to a standard TouchDesigner network?

GLSL is useful when custom sampling, coordinate transformations or specialized mathematical operations are central to the effect. A conventional TOP network is often easier to inspect and maintain for simpler image operations.

Related reading