Help guide

Textured Mesh Tile node

Updated June 21, 2026

Textured Mesh Tile node

Product media placeholder

Replace this area with a screenshot or short walkthrough video during the media sweep.

Subdivided WebGL plane that samples a bound `<img>` or `<video>` texture and accepts the same per-attractor vertex displacement as `meshAttractor`. Adds a wireable global `offset` port for velocity-driven shifts (drag-carousel stretch, scroll-velocity skew). Tint port allows `paletteLut.color` to recolour the tile while the texture provides the silhouette.

Type texturedMeshTileCategory effectsContext sharedDynamic ports noCompound no

Inputs

PortTypeDescription
mouseXfloatPrimary attractor X in viewport pixels.
mouseYfloatPrimary attractor Y in viewport pixels.
coeffloatPrimary attractor gain. 0 = no displacement (default), negative pulls vertices toward the cursor.
mouseX2floatSecondary attractor X. Active only when `coef2` is non-zero.
mouseY2floatSecondary attractor Y.
coef2floatSecondary attractor gain. 0 (default) disables the second attractor.
jumpfloatMaximum displacement per attractor in px.
distfloatFalloff sigma / radius in px.
offsetXfloatGlobal pixel offset added to every vertex AFTER the attractor displacement. Wire from `dragVelocity.dx` for drag-carousel-style stretch.
offsetYfloatGlobal pixel offset Y. Wire from `dragVelocity.dy`.
tintMixfloat0 = pure texture (default). 1 = pure tint (texture supplies alpha only). Lets a `paletteLut.color` recolour the tile while the texture provides the silhouette.
tintcolorTint colour (multiplied with `tintMix`). Wire from `paletteLut.color` for per-section colour drift.
opacityfloatOutput alpha [0..1]. Multiplied with the texture's own alpha and `tint.a`.

Outputs

PortTypeDescription
--No ports declared.

Parameters

ParameterTypeDefaultDescription
selectorelementSelector""CSS selector for the host element. The canvas mounts inside as a position:absolute child filling the host bounds.
textureSelectorelementSelector""CSS selector for an `<img>` or `<video>` element supplying the texture. The element is queried at bind time; videos re-upload the current frame every render.
subdivisionsint32Plane grid resolution. 32 = good default. Higher = smoother displacement at higher GPU cost. 1 = no subdivision (a single quad — vertex displacement does nothing). min 1; max 256
centreXfloat-1-1 = auto (host centre).
centreYfloat-1-1 = auto.
widthfloat-1-1 = auto (host width).
heightfloat-1-1 = auto (host height).
falloffEaseeasingCurve"easeOutCubic"Easing curve mapping cursor distance → falloff weight. Same vocabulary as `meshAttractor.falloffEase`.

Use cases

  • Drag-driven carousel tile — wire `dragVelocity.dx/.dy` into `offsetX/offsetY` for fluid-carousel-style velocity stretch.
  • Per-tile mouse attractor on a textured plane — same `mouseX/mouseY/coef` semantics as `meshAttractor`.
  • Theme drift — wire `paletteLut.color` into `tint` and increase `tintMix` to recolour the tile while the texture provides the alpha / silhouette.
  • Video tile with cursor distortion — bind a `<video autoplay loop muted>` via `textureSelector`; hover-driven attractor warps the playing video.

Related nodes

Envelope

Use texturedMeshTile as the node type inside a graph node envelope. Add id, optional params, optional connections, and optional activeWhen based on the guide context.

Generated source

Registry faster-motion-docs/node-registry.jsonCategory page /help/faster-motion/faster-motion-node-category-effects/

Was this guide helpful?

Sunny Arora

Written by

Sunny Arora

Get technical deep dives delivered to your inbox

Join creators and developers who get exclusive insights, tutorials, and behind-the-scenes content every week.

No spam. Unsubscribe anytime.

Continue Exploring

You might also enjoy