Strands

Procedural wavy strands with layered animation

Props

PropTypeDefaultDescription
speedrange0.5Overall animation speed
amplituderange2How far the strands wave away from their resting line
frequencyrange0.3How many waves run along each strand
lineCountrange8Number of strands
lineWidthrange0.05Thickness of each strand’s solid core
softnessrange0.05Softness of each strand’s edge (0 is crisp, higher is feathered)
spreadrange0.2How far the strands fan out across the field
pinEdgescheckboxfalsePin the strands so they converge to the start and end points
stopsgradient-stops[{"color":"#00e5ff","position":0},{"color":"#5b8cff","position":0.34},{"color":"#b06bff","position":0.67},{"color":"#ff5fa2","position":1}]Multi-stop gradient colors (overrides Color A / Color B when set)
colorSpace"linear" | "oklch" | "oklab" | "hsl" | "hsv" | "lch"oklabColor space used to blend the gradient
colorScalerange1How many times the gradient repeats along the strands
colorVariancerange1At 0 every strand shares the same color; at 1 the strands spread across the full gradient
colorSpeedrange1Speed at which the colors flow along the strands (loops)
startposition{"x":0,"y":0.5}Starting point of the strands
endposition{"x":1,"y":0.5}Ending point of the strands

Usage

vue
<Shader>
  <Strands />
</Shader>