The initial concept behind this program was to find a way to iterate through irrational numbers in binary to see whether any hitherto unrecognized patterms could be found.
Obviously, the way numbers that follow a decimal (or binary) point work, is that each sequential digit is a factor of the base smaller than the previous one. In decimal the digits after the point are 10ths, then 100ths, then 1000ths and so forth, while in binary they are halfs, quarters, eighths, and so on.
Therefore, to examine these sequences of numbers for patterns in any meaningful way, the relationships of scale between each binary digit (bit) to the ones before and after it needed to be taken into account.
But with fractional numbers scaling down in size so quickly, any visualization would rapidly dwindle down in size, so I needed to find another way of giving a relationship to the numbers, and decided to construct a model in which each bit is linked to the next by a line, and I would use different movement values to represent scale.
However, because all lines would otherwise be the same length, there would be little indication of bit values themselves (or at the most, lines of only two different lengths for the digits 0 and 1). So I chose to make the lines longer whenever strings of two or more of a bit appeared in sequence - the longer the sequence, the longer the line.
Then, to indicate how the lines relate to each other, I chose to rotate each subsequent line by a small amount relative to the previous one.
And to avoid the resulting model overly wrapping around on itself, I made every alternate rotation go in the reverse direction. And that is essentially what you see here.
If you examine it closely, you'll see that the model comprises a long chain of lines connected at 'hinges', each rotated a little bit more than the previous one, and with each subsequent line alternating between using a clockwise or counter-
clockwise direction for rotation.
To make things even more interesting, I chose to animate the result by placing the model in a loop, in which the rotation amount slowly changes over time.
The reason for this is that one particular degree of rotation might show more of a pattern than another. Plus, to test my theory that there may be patterns yet undiscovered, it would be necessary to test all the possible angles of rotation anyway.
A few additional tweaks later, such as adding in a camera viewpoint that tracks the model, zooming in and out to keep as much of the animation in full frame view as possible (with a moving and zooming background too), line thickness and alpha transparency depth cues, and finally some keyboard controls, and the program was complete.
Sadly, though, it seems that the four irrational numbers I have so-far tested (π, e, the golden ratio, and the square root of 2) have not yet yielded any discernible patterns (up to 512 bits), other than amazingly complex and beautiful examples of 'chaos' in action.
Anyway, to see what would happen if a pattern were found, I performed a final tweak to the program that made it able to create strings of binary from repeated random substrings. The results blew my mind with the symmetry that emerged, in what I can only describe as an ever-changing 'dance' (as you can see), that even displays 3D effects (with no 3D algorithms).
So now it looks as if, by using this technique, if there are any patterns in irrational numbers, they could well be detectable via this process, although not the first 512 bits of the ones I have tested so far.
However, by adding more and more bits, patterns may emerge further down these numbers, and I have versions of the program that go up to 250,000 bits. They run quite slowly, and I haven't seen anything noteworthy as yet. But who knows whether even further along, the numbers may exhibit interesting effects.
Or maybe a pattern might be discovered if every other bit were tested, or every third, or bits were selected via a logarithmic progression, and so on. If there is a pattern anywhere, I believe this process may be the type of program that could detect it.
But in the meantime, I present BitDancer, some fun (and quite interesting) mathematics turned into a mesmerising, animated model, and if you have any thoughts or comments I would be delighted to hear them.
Please visit my website for other programming projects that may interest you, and feel free to email me if you like.