"""3D vector field: a lattice of arrows in a box, particles streaming through.
The field is a swirl about the vertical axis that drifts inward and rises or
sinks with a slow sine across the box, so the flow lines are spirals and the
arrows vary in both length and tilt. Arrow length and colour both follow the
magnitude, cool where the flow is slack and warm where it runs fast, so the
fast ring round the outside reads before any particle moves.
The particles are integrated once, in plain Python, and played back. Each
one lives for LIFE seconds from its seed and then starts over, fading in and
out so the restart is never a jump. The loop is seamless because LIFE
divides the loop's eight seconds: every particle is back at the same age
when the loop comes round.
The catalog's `density` toggle swaps the lattice for a finer or coarser one,
which is a different body rather than a layer, so it ships no PNG.
The full Manim source and the rendered video come with a plan.