(This isn't entirely valid because C++ doesn't allow nested functions. See the code below.)

Having fun with Hofstadter's sequence! If we're using the radial distance from some point as the input and the output as the inverse colour, we get something which looks like coloured vinyl.

![enter image description here][1]

The sequence is very similar to the Fibonacci sequence, but instead of going 1 and 2 steps back in the sequence, you take the two previous values to *determine* how far to go back before taking the sum. It grows roughly linear, but every now and then there's a burst of chaos (at increasing intervals) which then settles down to an almost linear sequence again before the next burst:

![enter image description here][2]

You can see these ripples in the image after regions which look very "flat" in colour.

Of course, using only one colour is boring.

![enter image description here][3]

Now for the (not quite valid) code. I need the recursive function to compute the sequence, which I can't put inside the colour functions, unfortunately. However, if I *did* add the length of the preliminary code to each of the function bodies, they would be 139 bytes each:

    int h[1000];
    int f(int n){if(!h[n])h[n]=n<2?1:f(n-f(n-1))+f(n-f(n-2));return h[n];}
    char red_fn(int i,int j){
        return 256-f(sqrt((i-256)*(i-256)+(j-256)*(j-256))/2.9);
    }
    char green_fn(int i,int j){
        return 256-f(sqrt((i-512)*(i-512)+(j-768)*(j-768))/2.9);
    }
    char blue_fn(int i,int j){
        return 256-f(sqrt((i-768)*(i-768)+(j-256)*(j-256))/2.9);
    }

Of course, this is pretty much the simplest possible usage of the sequence. Feel free to borrow it and do other crazy things with it!

  [1]: https://i.sstatic.net/k5d8J.png
  [2]: https://i.sstatic.net/NqP82.png
  [3]: https://i.sstatic.net/uCS81.png