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

Having fun with Hofstadter's Q-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