interface BuildVolumeStreamlinesOptions {
    bidirectional?: boolean;
    colormap?: ColormapStops;
    colorMode?: "uniform" | "speed";
    id?: string;
    lineWidth?: number;
    maxSteps?: number;
    minSpeed?: number;
    range?: [number, number];
    seedDensity?: number;
    stepSize?: number;
    uniformColor?: [number, number, number];
}

Properties

bidirectional?: boolean

Integrate forward AND backward from each seed (the seed sits roughly mid-streamline). Default true — gives more uniform coverage of upstream / downstream sides.

colormap?: ColormapStops

Colormap used when colouring by speed. Default viridis.

colorMode?: "uniform" | "speed"

Colour mode for the lines:

  • "speed" — per-vertex colour from colormap at the normalised local speed. The classic CFD streamline look.
  • "uniform" — all lines a single solid colour (passed via uniformColor). Faster, more legible in dense fields.

Default "speed".

id?: string

SceneModel id. Default "volumeStreamlines".

lineWidth?: number

Pixel thickness of the streamline polylines. Forwarded to the renderer's thick-line draw technique via a per-mesh SceneMaterial.lineWidth override. Default 2 — visible but not so chunky it occludes adjacent streamlines.

Set to 0 to fall back to the View's default linesMaterial.lineWidth.

maxSteps?: number

Max integration steps per streamline. Caps both compute and resulting mesh size — a few hundred steps usually covers the volume in either direction. Default 200.

minSpeed?: number

Speed below which the integrator gives up — flows below this magnitude are too slow to read as motion. Default 1e-4 (in whatever units the field carries).

range?: [number, number]

Magnitude range mapped to the colormap. Default grid.magnitudeRange or the data-driven min/max.

seedDensity?: number

Seeds are laid out in a seedDensity³-ish regular lattice inside the volume bbox. Default 6 → about 216 streamlines, which fits comfortably inside the WebGL line-batch limit at typical step counts. Crank up for finer coverage at the cost of mesh size.

stepSize?: number

Per-streamline integration step in world units. Default = half of the smallest voxel spacing — keeps streamlines smooth through tight features without aliasing. Smaller is finer + costlier.

uniformColor?: [number, number, number]

Solid colour used when colorMode === "uniform". Default [0.10, 0.50, 0.90].