I've always been fascinated with color.
In my high school Java course I would rush through the in-class assignment so I could spend more time tinkering.
One of my first programming experiments was a graph that used the X and Y coordinates to calculate the color of each pixel.
red = f1(x,y);
green = f2(x,y);
blue = f3(x,y);
I had a lot of fun trying out different formulas to see how they would look.
Arithmatic operations usually produced a smooth gradient.
Trigonometric functions usually made waves or curves.
Once I had exhausted the operations I knew, I started putting in jibberish just to see what would happen.
Then one day I entered this:
red = x^y;
green = x^y;
blue = x^y;
The resulting pattern blew me away.
A fractal! Somehow I had found a Java operator that generated fractals!
In many languages, including Java, the carot operator (^) is used for xorBitwise conditional OR.
I soon adopted this icon as a point of pride. I felt like I had discovered something new.
Even after all these years I still love how the fractal icon graphically illustrates bitwise operations, binary, and how self-similarity is baked into those concepts.
Many years later, after I had started using the xor fractal as my profile pic on every platform, trends started to change.
The sharp corners of the square avatars were gradually filed down. Circular avatars soon became the norm.
And my poor xor fractal just didn't look good in a circle.
So after some tinkering I found a way to make it circular.
I re-implemented my old Java applet in JavaScript and played around with some projections.
Polarizing looked best. Instead of the X and Y axis I used radius and angle. x=128 changed to a=180.
To top it off I added a color tint and even some manual antialiasing so it could be scaled up or down.
The code isn't pretty, but the result sure is.
The new xor icon can be displayed as a square or a circle and look just as good.
The fractal appearence is preserved and the binary roots are still clear to see.
And something feels right about helping my icon change as I myself have changed over the years.