Your system asks for reduced motion, so VFX-JS draws nothing. Demos on this site show plain HTML.

Type

EffectDrawOpts

vfx-js/src/types.ts:755 ↗
import type { EffectDrawOpts } from "@vfx-js/core";

Properties

blend

blend?: EffectBlendMode

Blend mode override. Default: "premultiplied" when drawing to the canvas (target null/omitted), "none" when drawing to a user-allocated render target. Use "additive" for accumulating draws like sparkles or particle stamps.

frag

frag: string

geometry

geometry?: EffectQuad | EffectGeometry

Default: ctx.quad.

swap

swap?: boolean

Whether to advance the persistent RT's read/write buffers after this draw. Default: true.

Set to false when you need to write to the same physical buffer across multiple draws in one frame — e.g. a full-screen pass that fills every texel followed by a sparse pass that surgically overwrites a few. Without swap: false, the second draw would land in the other (stale) buffer of the ping-pong pair and the first draw's output would be lost.

No-op for non-persistent RTs and for canvas writes.

target

target?: EffectRenderTarget | null

Render target of the effect. It renders to the Canvas if omitted (or null).

uniforms

uniforms?: EffectUniforms

vert

vert?: string