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.
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);
},
}
Some softer patterns: