 #define FADE_TIME 1
 #define TUNING 8 // Tunes range-finding to cm distance between pixels
 #define FPS 50
+#define NUM_PIXELS 50
 
-Adafruit_NeoPixel strip = Adafruit_NeoPixel(100, PIN, NEO_GRB + NEO_KHZ800);
+Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_PIXELS, PIN, NEO_GRB + NEO_KHZ800);
+
+int reds[NUM_PIXELS];
+int greens[NUM_PIXELS];
+int blues[NUM_PIXELS];
 
 void setup() {
   Serial.begin(9600);

  if (F_CPU == 16000000)
    clock_prescale_set(clock_div_1);
#endif

  strip.begin();
  strip.show();

  }
}

void initColors() {
  for (int i = 0; i < strip.numPixels(); i++) {
    reds[i] = random(256);
    greens[i] = random(256);
    blues[i] = random(256);
  }
}

void simUpsideDownTouch(uint8_t pixel) {
  colorWipe();

  int red = reds[pixel];
  int green = greens[pixel];
  int blue = blues[pixel];
  
  for (uint8_t fade = 0; fade < FPS; fade++) {
    int brightness = fade;
    strip.setPixelColor(pixel - 1, red - brightness, green - brightness, blue - brightness);
    strip.setPixelColor(pixel, red - brightness, green - brightness, blue - brightness);
    strip.setPixelColor(pixel + 1, red - brightness, green - brightness, blue - brightness);
