Flow Field Art
Generating varied patterns using flow fields
C#VisualizationNurose

I wanted to generate some flow field art for my spotify playlists, so I wrote a small program that can generate these varried patterns:

These were all directly generated in the tool by setting different generator settings.

Example

It is quite easy to generate nice images using the code. Here is an example:

new GeneratorSettings
{
    ParticleAmount = 10000,
    BackgroundColor = new Color(0,.1f,.2f),
    StartColor = (a) => new Color(0,.1f,.9f,.02f),
    StartPosition = (a) => Utils.RandomVector2(Vector2.Zero,NuroseMain.Window.Size),
    Color = (a) => Utils.Lerp(a.Particle.Color, new Color(1f, .6f, .9f, .02f), .001f),
    Velocity = (a) =>
    {
        var p = a.Particle.Position;
        float t = a.TotalTimeElapsed*.0001f;
        var n = Noise.Generate(p, t, (int)((p.X * p.Y)/50f) % 2 / 2f);
        var n2 =  Utils.RandomPointInUnitCircle() * 1.9f;
        return Utils.Lerp(a.Particle.Velocity, n + n2 , .9f);
    },
}
'Noisy purple lines' example generating with its generator code.

Some softer patterns: