@newkrok/three-particles - v2.16.1
    Preparing search index...

    Type Alias ParticleSystemInstance

    type ParticleSystemInstance = {
        activateParticle: (
            data: {
                activationTime: number;
                particleIndex: number;
                position: Required<Point3D>;
            },
        ) => void;
        computeDispatchReady?: boolean;
        computePipeline?: {
            buffers: Record<string, unknown>;
            computeNode: unknown;
            forceFieldInfo: { countUniform: unknown; offset: number } | null;
            uniforms: Record<string, unknown>;
        };
        creationTime: number;
        deactivateParticle: (particleIndex: number) => void;
        duration: number;
        elapsedUniform: { value: number };
        emission: Emission;
        freeList: number[];
        generalData: GeneralData;
        gravity: number;
        iterationCount: number;
        lastEmissionTime: number;
        looping: boolean;
        mappedAttributes: MappedAttributes;
        normalizedCollisionPlanes: NormalizedCollisionPlaneConfig[];
        normalizedConfig: NormalizedParticleSystemConfig;
        normalizedForceFields: NormalizedForceFieldConfig[];
        onComplete: (data: { particleSystem: THREE.Points | THREE.Mesh }) => void;
        onParticleBirth?: (
            particleIndex: number,
            positionArr: THREE.TypedArray,
            velocity: THREE.Vector3,
            now: number,
        ) => void;
        onParticleDeath?: (
            particleIndex: number,
            positionArr: THREE.TypedArray,
            velocity: THREE.Vector3,
            now: number,
        ) => void;
        onUpdate: (
            data: {
                delta: number;
                elapsed: number;
                iterationCount: number;
                lifetime: number;
                normalizedLifetime: number;
                particleSystem: THREE.Points | THREE.Mesh;
            },
        ) => void;
        particleSystem: THREE.Points
        | THREE.Mesh;
        scalarArray: Float32Array;
        scalarInterleavedBuffer: THREE.InterleavedBuffer;
        simulationSpace: SimulationSpace;
        trailAlphaAttr?: THREE.BufferAttribute;
        trailColorAttr?: THREE.BufferAttribute;
        trailColorOverTrailFns?: {
            b: CurveFunction;
            g: CurveFunction;
            r: CurveFunction;
        };
        trailConfig?: {
            length: number;
            maxTime: number;
            minVertexDistance: number;
            ribbonId?: number;
            smoothing: boolean;
            smoothingSubdivisions: number;
            twistPrevention: boolean;
            width: number;
        };
        trailHalfWidthAttr?: THREE.BufferAttribute;
        trailMesh?: THREE.Mesh;
        trailNextAttr?: THREE.BufferAttribute;
        trailOpacityCurveFn?: CurveFunction;
        trailPositionAttr?: THREE.BufferAttribute;
        trailUVAttr?: THREE.BufferAttribute;
        trailWidthCurveFn?: CurveFunction;
        useGPUCompute?: boolean;
        velocities: THREE.Vector3[];
    }
    Index

    Properties

    activateParticle: (
        data: {
            activationTime: number;
            particleIndex: number;
            position: Required<Point3D>;
        },
    ) => void
    computeDispatchReady?: boolean

    Flag set by update loop, consumed by onBeforeRender to dispatch compute.

    computePipeline?: {
        buffers: Record<string, unknown>;
        computeNode: unknown;
        forceFieldInfo: { countUniform: unknown; offset: number } | null;
        uniforms: Record<string, unknown>;
    }

    GPU compute pipeline for WebGPU simulation. Opaque type to avoid pulling TSL types into DTS.

    creationTime: number
    deactivateParticle: (particleIndex: number) => void
    duration: number
    elapsedUniform: { value: number }
    emission: Emission
    freeList: number[]
    generalData: GeneralData
    gravity: number
    iterationCount: number
    lastEmissionTime: number
    looping: boolean
    mappedAttributes: MappedAttributes
    normalizedCollisionPlanes: NormalizedCollisionPlaneConfig[]
    normalizedForceFields: NormalizedForceFieldConfig[]
    onComplete: (data: { particleSystem: THREE.Points | THREE.Mesh }) => void
    onParticleBirth?: (
        particleIndex: number,
        positionArr: THREE.TypedArray,
        velocity: THREE.Vector3,
        now: number,
    ) => void

    Called when a particle is born to trigger birth sub-emitters

    onParticleDeath?: (
        particleIndex: number,
        positionArr: THREE.TypedArray,
        velocity: THREE.Vector3,
        now: number,
    ) => void

    Called when a particle dies to trigger death sub-emitters

    onUpdate: (
        data: {
            delta: number;
            elapsed: number;
            iterationCount: number;
            lifetime: number;
            normalizedLifetime: number;
            particleSystem: THREE.Points | THREE.Mesh;
        },
    ) => void
    particleSystem: THREE.Points | THREE.Mesh
    scalarArray: Float32Array

    Shared interleaved Float32Array backing all scalar per-particle attributes.

    scalarInterleavedBuffer: THREE.InterleavedBuffer

    The InterleavedBuffer (or InstancedInterleavedBuffer) for scalar attributes.

    simulationSpace: SimulationSpace
    trailAlphaAttr?: THREE.BufferAttribute

    Trail geometry alpha attribute

    trailColorAttr?: THREE.BufferAttribute

    Trail geometry color attribute

    trailColorOverTrailFns?: {
        b: CurveFunction;
        g: CurveFunction;
        r: CurveFunction;
    }

    Trail color-over-trail curve functions (r, g, b multipliers)

    trailConfig?: {
        length: number;
        maxTime: number;
        minVertexDistance: number;
        ribbonId?: number;
        smoothing: boolean;
        smoothingSubdivisions: number;
        twistPrevention: boolean;
        width: number;
    }

    Trail config (length, width, and advanced features)

    trailHalfWidthAttr?: THREE.BufferAttribute

    Trail geometry half-width attribute (cached)

    trailMesh?: THREE.Mesh

    Trail mesh for RendererType.TRAIL

    trailNextAttr?: THREE.BufferAttribute

    Trail geometry next-position attribute (cached to avoid repeated getAttribute)

    trailOpacityCurveFn?: CurveFunction

    Trail opacity curve function

    trailPositionAttr?: THREE.BufferAttribute

    Trail geometry position attribute

    trailUVAttr?: THREE.BufferAttribute

    Trail geometry UV attribute (cached)

    trailWidthCurveFn?: CurveFunction

    Trail width curve function

    useGPUCompute?: boolean

    Whether this system uses GPU compute for simulation.

    velocities: THREE.Vector3[]