Journey through this project
fun class, the first thing I noticed that this takes a lot of computational power to run:D I started with some optimizations, so I can add more code to it and it still runs smooth.
anyway I started by making sure that the circles don't just turn for a random value, but make it look like they collide, that involved some tricky math using Math.atan2 and PI. so If they get too close they would push each other away, and they would slow down over time.
here Are 2 examples of that
here is one with a lot shorter "collision"
after this, I added an "attractor", something that doesn't push the particles away from each other, but pulled them in, if they are too far away from each other. made all the particles start around the centre of the screen, and put all starting positions in a circle around the centre, and added a sand painter effect. this took me like 1-2 days, just messing around with the parameters (which is like half the fun, let's be real here)
changed a lot of parameters again, and made the colour change with a noise function, also made this, and turned the alpha value to 0xff(255) again, for "stronger" lines.