ParticleFlow

Thousands of drifting dust particles carried by a real incompressible fluid field the cursor stirs — drag to plow a wake and the particles ride the eddies and vortices it leaves behind, while a gentle ambient breeze keeps the whole scene breathing on its own

Props

  • colorA

    Color of particles drifting slowly with the flow

    Type
    string
    Default
    #8ec5ff
  • colorB

    Color particles flash toward as they speed up in the fast jets and wakes

    Type
    string
    Default
    #ffd98e
  • colorSpace

    Color space for the rest→excited color ramp

    Type
    "linear" | "oklch" | "oklab" | "hsl" | "hsv" | "lch"
    Default
    oklab
  • shape

    What each particle is drawn as — a streak or arrow that stretches along the flow, a plain dot, a square, or a soft glowing comet

    Type
    "arrow" | "streak" | "dot" | "square" | "glow"
    Default
    streak
  • count

    Number of drifting particles

    Type
    number
    Default
    6000
  • size

    Size of each particle

    Type
    number
    Default
    1.2
  • trails

    How long each particle's motion trail persists — 0 draws crisp dust, 1 leaves long flowing ribbons

    Type
    number
    Default
    0
  • speed

    How strongly the fluid carries the particles — higher makes the dust ride the flow faster

    Type
    number
    Default
    1
  • force

    How hard the cursor's motion pushes the fluid — higher plows faster, more violent wakes and jets

    Type
    number
    Default
    1
  • swirl

    Vorticity confinement — swirl energy that spins the flow into persistent eddies and vortices the dust orbits

    Type
    number
    Default
    25
  • momentum

    How long the fluid keeps flowing after you stop dragging — high momentum lets the eddies carry the dust on and on

    Type
    number
    Default
    0.6
  • ambient

    A gentle, ever-evolving breeze that keeps the dust drifting even without the cursor — set to 0 for a field that only moves when you stir it

    Type
    number
    Default
    0.15

Usage

<Shader>
  <ParticleFlow />
</Shader>