concentricRings

Cut the child into rings around center and spin each ring by its own amount.

concentricRings(slots: {
    center: ArgSpec
    intensity: ArgSpec
    rings: ArgSpec
    smoothness: ArgSpec
    seed: ArgSpec
    speedRandomness: ArgSpec
}): UvMapSource

Import warps from shaders/std and use warps.concentricRings.

rings is how many rings fit in one unit of distance. intensity is the largest still rotation a ring can have, in degrees. smoothness (0–1) blends neighbouring rings instead of cutting between them. seed reshuffles the per-ring amounts and speedRandomness (0–1) lets rings spin at different rates. Declare animatedTime: {speed: 'speed'}.

Parameters

NameTypeNotes
slots`{
center: ArgSpec
intensity: ArgSpec
rings: ArgSpec
smoothness: ArgSpec
seed: ArgSpec
speedRandomness: ArgSpec

}` | |

Example

map: warps.concentricRings({center: p('center'), intensity: p('intensity'), rings: p('rings'), smoothness: p('smoothness'), seed: p('seed'), speedRandomness: p('speedRandomness')})

See also

  • twirl — Twist the child around center, turning more the farther a pixel is from it.
  • barOffset — Cut the child into parallel bars and shift each one sideways by a random amount.

Used by

ConcentricSpin