I’ve been getting more into manipulating bitmap data, and it’s a ton of fun! This app animates a strange attractor based on values set in the control panel. The values will bounce around inside the range that is set.
There are four algorithms to pick from; two are by famous dead mathematicians, and two are mine.
Peter De Jong
x’ = sin(a * y) – cos(b * x)
y’ = sin(c * x) – cos(d * y)
x’ = sin(a * y) + c * cos(a * x)
y’ = sin(b * x) + d * cos(b * y)
Josh 1 (I think these are called Lissajous curves)
x’ = cos(a * y * x) – c * sin(a * x * y)
y’ = cos(b * x * y) + d * sin(b * y * x)
Josh2 (not a strange attractor, but still cool looking)
x’ = Math.sin(a * x) – c * Math.cos(a * y) / x;
y’ = Math.sin(b * y) + d * Math.cos(b * x) / y;
If you want to experiment with a wider range of strange attractors, there are a couple of programs to grab: Chaoscope and Apophysis. They’re both a lot of fun, and can render out some pretty large images (say, for printing).
Thanks to SubBlue for his open-source simple attractor renderer!