Skip to content

Tile

Repeats an image in a grid at its original size, with offset and wrap mode controls.

Category: Composite Menu path: Composite > Tile

Ports

PortTypeDirectionDescription
inimageRgba16finputInput image to tile
outimageRgba16foutputTiled result

Parameters

ParamTypeDefaultDescription
tilesvec2(1, 1)Number of tiles in X and Y. (1, 1) = identity (no tiling). (2, 2) = 2x2 grid. Keyframeable.
offsetvec2(0, 0)Shifts the tile pattern in pixels. Keyframeable.
wrapModeenumRepeatHow tiles fill the grid. Options: Repeat, Mirror, Clamp.
boundsModeenumAutoContent bounds detection. Auto walks upstream to find image dimensions. Manual uses explicit center/size params.
boundsCentervec2(0, 0)Center of the tileable region in comp pixels (origin-centered). Only visible when boundsMode = Manual.
boundsSizevec2(200, 200)Width and height of the tileable region in pixels. Only visible when boundsMode = Manual.

Expose Channels

When enabled (E button on node header), adds input ports that override params via edge connections:

PortTypeOverrides
tiles_invec2tiles
offset_invec2offset

How It Works

The shader computes the UV bounds of the upstream content, then tiles that content region according to the tiles parameter. Each tile is a full-size copy of the source content -- not a scaled-down version. A tiles value of (2, 2) means the output contains a 2x2 grid of the original image at original pixel size, centered in the composition.

In Auto bounds mode, the engine walks upstream to find an ImageSource or VideoSource and uses its pixel dimensions. Full-canvas generators (Noise, Gradient, DrawField, etc.) are treated as filling the entire comp. In Manual mode, you specify the tileable region explicitly with boundsCenter and boundsSize — useful when tiling procedural content or masked regions where auto-detection can't determine the intended tile area.

When tiles is (1, 1), the engine skips the GPU pass entirely and passes the input through unchanged.

The tile grid is centered in the composition. Areas outside the tiled region are transparent. The offset parameter shifts the entire tile pattern, and wrapMode controls how tiles at the edges behave: Repeat wraps normally, Mirror flips alternating tiles, and Clamp extends edge pixels.

Usage Examples

Basic: Simple grid repetition

  1. Add a Tile node after your image source (before Transform2D)
  2. Set tiles to (3, 3) for a 3x3 grid
  3. Each cell contains the full original image

Creative: Animated kaleidoscope

  1. Set tiles to (4, 4) with Mirror wrap mode
  2. Animate offset to scroll the pattern
  3. The mirrored tiles create a kaleidoscope effect as they shift

Advanced: Scrolling texture

  1. Set tiles to (2, 1) for horizontal repetition
  2. Keyframe offset X from 0 to the image width over the comp duration
  3. Connect a Time node to the offset_in expose channel through a Math multiply for speed control

Tips

  • Place Tile before Transform2D in the node chain for seamless tiling. If Transform2D is upstream of Tile, the content bounds include the transform, which can break tile seams.
  • tiles = (1, 1) is a free passthrough -- no GPU cost.
  • Fractional tile values are supported: (1.5, 1) shows one and a half tiles horizontally.
  • Tile expands the content bounds in the overscan computation, so tiled content won't be clipped even when it extends beyond the composition frame.
  • Animate offset for scrolling backgrounds or looping texture patterns.
  • Use Manual bounds mode when tiling procedural content (Noise, DrawField, etc.) or masked regions where auto-detection returns the full comp.
  • UVRemap -- more flexible UV-space distortion
  • Transform2D -- position and scale the tiled result
  • Noise -- procedural patterns (alternative to tiling an image)

Caddis — professional motion design.