When I saw this assignment, I thought about HSV color mode instead of RGB, especially this assignment requires fading. HSV represents hue, saturation and value respectively. The value can be associated with on and off switch. What left are hue and saturation, which is a 2D circle. Thus, I though we can have a dot on this circle which position is controlled by a joystick. Where it lands gives the hue in terms of degree, and saturation, in terms of its distance to the origin.
With the push button in the joystick, we are able to turn on and off the color picker. However, there was not a indicator of whether it is on or off. That was why I added a small red LED on the side.
While making the enclosure, I wanted to integrate the light with the controller: you play with the lamp but also you change the light, so I rounded the neopixels along with the joystick.
I used a HSV to RGB converter from http://www.kasperkamperman.com/blog/arduino/arduino-programming-hsb-to-rgb/