The flow field is a grid under the scene. Each cell has a direction made from sine and cosine of position, which creates smooth curved paths.
Each triangle follows the local field direction, then adds flocking rules: alignment, cohesion, and separation. A small random nudge is added now and then so groups do not lock into perfect loops. Speed is damped each frame and capped to keep motion stable.
The triangles are extruded meshes with a faint glow shell, lit by ambient and directional light. They face their movement direction and roll into turns with smoothed banking, so motion feels softer.
When a triangle leaves one side of the field, it wraps to the opposite side. You may notice a quick jump at the border, but the overall flow stays continuous.