Taos API Reference
    Preparing search index...

    Interface ParticleGraphConfig

    Full description of a particle system, consumed by the particle pass and shader builders.

    interface ParticleGraphConfig {
        emitter: EmitterNode;
        modifiers: ModifierNode[];
        renderer: RenderNode;
        events?: EventNode[];
        splits?: SplitNode[];
        sdf?: SdfVolume;
        patches?: PatchConfig;
        spatialHash?: SpatialHashConfig;
        links?: LinksConfig;
        scratch?: ScratchConfig;
        reproduction?: boolean;
        integrateVelocity?: boolean;
    }
    Index

    Properties

    emitter: EmitterNode
    modifiers: ModifierNode[]
    renderer: RenderNode
    events?: EventNode[]
    splits?: SplitNode[]

    Sub-emitters triggered by parent particles. Each becomes its own ParticlePass instance fed by a GPU spawn-request queue.

    sdf?: SdfVolume

    Baked SDF bound to the particle pass. Required when the graph uses sdf_attractor, sdf_collision, or an sdf_surface spawn shape; ignored otherwise. Exactly one SDF per system (multiple SDF modifiers share it).

    patches?: PatchConfig

    Patch (grid) layer for the agent-modeling use case. When set, the update compute binds a diffusing/evaporating grid that patchSample / patchDeposit nodes read and write. See PatchConfig.

    spatialHash?: SpatialHashConfig

    Spatial hash enabling neighbor queries (the boids modifier). Built each frame from live particle positions before the update runs. See SpatialHashConfig.

    links?: LinksConfig

    Per-agent link slots for the link_springs modifier. Host uploads the topology via ParticlePass.setLinks. See LinksConfig.

    scratch?: ScratchConfig

    Per-agent f32 scratch array — the scratchGet/scratchSet/loop IR nodes. Lets an agent hold a small working array (a tour, a history); enables parallel local search. Host seeds/reads via ParticlePass.setScratch / ParticlePass.readScratch. See ScratchConfig.

    reproduction?: boolean

    Enables the GPU reproduction free-list (a stack of dead slots) so modifiers can spawn/kill agents within the same population at runtime — repro_spawn / repro_kill, used by lotka_volterra. Seed the initial population with ParticlePass.seedAgents (the emitter is typically disabled, spawnRate 0).

    integrateVelocity?: boolean

    When false, the update skips the position += velocity * dt integration step. Position-movement agent models (which move via forward/setxy, not velocity) can set this to repurpose the velocity field as a free per-agent vec3 the step writes and the renderer reads — e.g. a terrain surface normal for renderer.tiltToSurface. Default true (normal particle integration).