SmokeFill

Fill a shape with swirling fluid smoke that interacts with the shape boundary

Props

PropTypeDefaultDescription
colorAcolor#8cf3ffColor of fresh smoke
colorBcolor#04a0d6Color smoke transitions to as it ages
originorigincenterReference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.
centerposition{"x":0.5,"y":0.5}Center position of the shape
scalerange1Scale of the shape (1 = default size)
rotationrange0Rotation of the shape in degrees
emitFromposition{"x":0.5,"y":0.5}Emission source point within the shape
directionrange0Emission direction (0 = up, 90 = right, 180 = down, 270 = left)
speedrange10Emission velocity strength
spreadrange60Emission cone angle in degrees
emitRadiusrange0.03Size of the emission area
intensityrange1Smoke emission density
dissipationrange0.3How fast smoke fades over time
detailrange25Fine-scale swirling detail
gravityrange0.5Downward gravitational pull on smoke — 0 = weightless, negative values = smoke rises
colorDecayrange0.4How quickly smoke shifts from Color A to Color B
mouseInfluencerange0.1Strength of cursor influence
mouseRadiusrange0.1Radius of cursor influence area
colorSpace"linear" | "oklch" | "oklab" | "hsl" | "hsv" | "lch"linearColor space for color interpolation
shapeshape{"type":"sphere3D","radius":0.35}Serialized shape configuration (JSON)
shapeSdfUrlshape-uploadURL to a pre-generated SDF .bin file
shapeType-Active SDF shape type

Usage

vue
<Shader>
  <SmokeFill
    :intensity="1"
  />
</Shader>