pub fn curl2(x: f32, y: f32, frequency: f32) -> Vec2
2-D curl noise. Returns a velocity vector tangent to the gradient of the underlying Perlin field — zero divergence means no sources/sinks.