Computing Library › Visualization & Interfaces
Visualization & Interfaces

Line Integral Convolution

Line integral convolution smears a noise texture along a vector field, producing a dense image where every pixel shows flow direction.

Dense flow without seeds

Streamlines and glyphs sample a vector field at chosen locations, leaving gaps and inviting seeding bias. Line integral convolution (LIC) instead produces a dense representation: it starts from a white-noise texture and, at each pixel, averages the noise along the streamline passing through it. The result is a texture whose grain aligns with the field everywhere.

How it works

Kronos motion — burner power flow

Reading LIC images

The eye follows the streaks to perceive flow orientation continuously, without the clutter of arrows or the arbitrariness of seed points. Speed can be added as an overlaid color, since LIC alone shows direction (and by streak contrast, some structure) but not magnitude.

Variants and limits

Oriented and animated LIC show flow sense (which way along the line), which basic LIC omits. LIC is best in two dimensions or on surfaces; in a 3D volume it occludes itself and needs slicing or transparency. It excels at revealing critical points such as sources, sinks, and saddles.

python
# per pixel: average noise along the local streamline
# out[p] = mean( noise[trace(p, +L)] + noise[trace(p, -L)] )

Kronos use

LIC renders simulated 2D field slices where a continuous, seed-free view of structure is clearer than discrete streamlines or glyphs.