Back to project page

ParaView Plugin (Minimal Set) — User Guide

Two custom representations (main workflow) plus four filters under Filters → ParaView to prepare and enrich data for them. Load VESPAPlugin.dll under Tools → Manage Plugins if it is not loaded automatically.

ParaView version: this build targets ParaView 6.0.x only. Use a 6.0 release (e.g. 6.0.0–6.0.1); other major or minor versions are not supported and may fail to load or run correctly.

Download ParaView plugin (VESPAPlugin.dll, 508 KB) Windows DLL for ParaView 6.0.x (install under that version’s plugin path).
  • Compatibility: ParaView 6.0.x required (this plugin is built against the 6.0 API; do not mix with 5.x, 6.1+, or unrelated builds).
  • Representations (primary): In the Pipeline Browser, select your dataset, then set Representation to Animated Streamline or Pulse Glyphs in the Properties panel. This guide lists Animated Streamline first, then Pulse Glyphs (labels may match your ParaView locale).
  • Filters (supporting): Filters → ParaView — four filters to prepare polylines, seeds, derived fields, and mapped arrays that feed into those representations.

1. Animated Streamline

What it does
For ribbon- or tube-like streamline surfaces, animates opacity (and related shading) over time so the surface appears to flow along the streamline. Suited to banded output from Stream Tracer and similar filters.

How to enable

  1. Select the streamline surface PolyData.
  2. Set Representation to Animated Streamline.
  3. Adjust parameters in the Animated Streamline group.

Parameters

ParameterEffect
AnimateUpdates every frame when on; off holds the current look.
Integration ScaleMultiplies the first animation coordinate; controls how fast the phase advances along the streamline (e.g. along IntegrationTime).
Time ScaleMultiplies the time / frame term; overall speed of the temporal oscillation layered on top of the spatial phase.
Opacity ScaleOverall opacity strength in [0, 1] after the pulse envelope is applied; higher looks more solid. If the pattern is visible but faint, raise this before chasing other knobs.
TruncCompresses or truncates the effective range of the normalized phase before the envelope is applied. Lower values tend to narrow the bright “window” along the line (more contrast between lit and dim regions); higher values let more of the cycle contribute (softer, more gradual brightening). Treat it as a width / sharpness control for where the pulse is active along the phase.
PowExponent applied in the envelope shaping: values > 1 push the response toward the peaks (snappier, more peaked flicker); values < 1 flatten and broaden the response (gentler, more even motion). It does not change how fast the phase runs — use Integration Scale / Time Scale for speed.
Animation coordinate XPrimary driver: scalar as-is; 3-component vectors → 3D norm; 2-component → planar norm. Default is often IntegrationTime; pick another point scalar if needed.
Animation coordinate YOptional. None or (Uniform) means divisor 1; another point array can act as a per-point divisor for richer variation along the line.

How the pieces fit together. Roughly: a phase is built from your Animation coordinate X (and optionally Y), scaled by Integration Scale, plus a time part scaled by Time Scale. That phase is turned into a smooth envelope; Trunc and Pow reshape that envelope (where it is “on” and how peaked it is). The result modulates opacity, then Opacity Scale sets overall strength.

If the effect is too fast or slow, adjust Integration Scale and Time Scale together. If almost nothing moves, raise Opacity Scale or verify that Animation coordinate X actually varies on your data. If the band looks mushy or too strobe-like, tune Trunc and Pow before changing speeds.

2. Pulse Glyphs

What it does
Extends normal 3D Glyphs with a time-varying pulse on scale and optionally rotation — useful for integration time, pulsatile fields, etc. Glyph shape, orientation, and most standard Glyph options still apply.

How to enable

  1. Select data suitable for glyphs (e.g. oriented points or seeds).
  2. Set Representation to Pulse Glyphs.
  3. Use the Pulse Glyphs property group (alongside regular Glyph 3D options).

Shared timing and envelope
The same controls as in §1 apply here: Animate, Integration Scale, Time Scale, Trunc, Pow, and the Animation coordinate array (scalar as-is, vector → length; default often IntegrationTime). Read §1 for how phase, Trunc, and Pow build the envelope; only the target differs — here the envelope drives glyph scale and optionally rotation, not surface opacity.

Glyph-only parameters

ParameterEffect
Overall scaleGlobal multiplier on glyph size after pulse logic.
Extra scale by arrayPoint array whose magnitude adds to the scale term.
Array affects scale / Array affect scale ratioTurn on to use the extra array; ratio scales that contribution.
Pulse affects scaleWhen on, the time-varying envelope modulates size; when off, envelope does not (unless array-based scaling still applies).
Pulse affects rotation / Rotation sweep XYZ (deg)When on, the pulse maps to Euler rotations; sweep sets max degrees per axis.
ShuffleWhen on, the render frame feeds the phase (jitterier); when off, smoother motion tied to time/data.

Glyph Type and advanced options (glyph table, LOD, …) behave like the standard 3D Glyphs representation; defaults are usually enough.

Supporting filters

The four filters below live under Filters → ParaView. Use them to prepare or enrich geometry and point data for Animated Streamline and Pulse Glyphs — for example merged streamlines with consistent IntegrationTime, thinned seed clouds, vortex-derived scalars for mapping, or remapped arrays for animation coordinates.

Array Probability Point Cull

What it does
Randomly subsamples points using a point-data scalar as a keep probability per point. Values are clamped to [0, 1] and used as literal probabilities; there is no rescaling by the global min/max of the array (e.g. if values lie in [0.1, 0.5], keep rates are roughly 10%–50%).

When to use it
Any dataset with points and point data. Output is a point cloud (vertices only, no line connectivity); point attributes are copied for surviving points.

How to use

  1. Select the dataset, then Filters → ParaView → Array Probability Point Cull.
  2. Weight Array: Pick a point-data scalar. Leave empty or choose (Uniform) to keep all points (no random culling).
  3. Random Seed: Same seed reproduces the same subsample; change the seed for a different random subset.

Bidirectional Streamline Merge

What it does
Merges bidirectional streamlines (e.g. from Stream Tracer: one segment forward, one backward for the same seed) into a single polyline: the second segment is reversed and appended; the shared seed vertex is merged when point ids match or endpoints coincide. Seeds with only one segment are passed through unchanged.

When to use it
Input must be polyline geometry (line cells). You need a SeedIds array (or your own name) to group segments that belong to the same seed.

How to use

  1. Prepare polyline PolyData with a seed id array (often named SeedIds).
  2. Filters → ParaView → Bidirectional Streamline Merge.
  3. SeedIds Array: Name of the grouping array; default SeedIds.
  4. SeedIds on cells: If on, read SeedIds from each line cell; if off, use point data at the first point of each polyline.
  5. Generate point ids: Turn on to assign consecutive indices to output points; Point ids array name sets the new array name (default PointIds).
  6. Along-line integral: Cumulative sum along merged vertex order using \(\frac{1}{2}(f_i+f_{i+1})\) per step, not multiplied by geometric edge length; for vector arrays, magnitude is used. Set Integral integrand (point array) and Integral output name (output scalar name).
  7. Along-line integrand delta: Backward difference on the same integrand array along the polyline; first vertex is invalid. Set Delta output name.
  8. Per-streamline random offset: Each merged line draws one uniform value in \([0, n]\) and adds it to every component of Random offset array (must already exist on input). Set Random range max (n) and Random offset seed.

Vortex Criteria

What it does
From a velocity field, computes vorticity, velocity gradient, strain/rotation tensors, and optional vortex identifiers (Q, Lambda2, swirling strength, Liutex, Omega, helicity, etc.). Toggle only the outputs you need to save time and memory.

How to use

  1. Select the dataset, Filters → ParaView → Vortex Criteria.
  2. Velocity Array: Choose the velocity vector array.
  3. Enable the desired Output … flags (velocity, vorticity, gradient, Q, Lambda2, …). Defaults often include vorticity and Q; add others as required.
  4. Epsilon: Small constant used in the Omega method; the default is usually fine.

Array Curve Mapper

What it does
Maps a point array (scalar or vector — vectors use magnitude) through an editable piecewise-linear curve into a new scalar point array. Input values are normalized from Input Range to the curve domain [0, 1]; curve output [0, 1] is mapped to Output Range.

How to use

  1. Filters → ParaView → Array Curve Mapper.
  2. Input Array: Point array to map.
  3. Output Array Name: Name of the new scalar (e.g. default MappedArray).
  4. Input Range Min / Max: Physical range treated as full-scale input; values outside are clamped before curve evaluation.
  5. Output Range Min / Max: Numeric range of the mapped result.
  6. In the Curve Mapping section, edit Transfer Curve control points: horizontal axis is normalized input, vertical is normalized output, then scaled to Output Range. Adjust ranges first, then refine the curve shape.

Quick reference

ItemWhere in ParaView
Animated StreamlineRepresentation → Animated Streamline
Pulse GlyphsRepresentation → Pulse Glyphs
Supporting filters (four)Filters → ParaView

If any label differs slightly from this document, trust the ParaView Properties panel.

Download ParaView plugin (VESPAPlugin.dll, 508 KB)