 }
 
 void activateGestureModeSelect() {
-    int hueCounter = 1;
-    for (int i = 0; i < NUM_LEDS; i++) {
-        if (i < round(NUM_LEDS / 5 * currentPatternNumber)) {
-            if (i % round(NUM_LEDS / 5) == 0) {
-                hueCounter += 50;
-            }
-            rightLense[i] = CHSV(hueCounter, 255, 100);
-            leftLense[i] = CHSV(hueCounter, 255, 100);
-        }
-        else {
-            rightLense[i] = CRGB(0, 0, 0);
-            leftLense[i] = CRGB(0, 0, 0);
-        }
-    }
-    FastLED.show();
+    uint8_t hueCounter = 1;
+    clearStrip();
+    FastLED.show();
+    int ledsPerSection = round(NUM_LEDS / ARRAY_SIZE(patterns));
+    for (int i = 0; i < currentPatternNumber + 1; i++) {
+        int sectionStartPixel = i * ledsPerSection;
+        turnSectionOn(CHSV(hueCounter, 200, 100), ledsPerSection, sectionStartPixel);
+        FastLED.show();
+        hueCounter += round(255 / ARRAY_SIZE(patterns));
+        delay(250);
+    }
     for (int i = 0; i < 100; i++) {
-        delay(20);
+        delay(25);
         lsm.getEvent(&accel, &mag, &gyro, &temp);
         if (accel.acceleration.z > 0.70) {
+            turnSectionOff(ledsPerSection, ledsPerSection * (currentPatternNumber));
+            if (currentPatternNumber - 1 == 255) {
+                clearStrip();
+            }
+            blinkSection(CHSV(hueCounter - 2 * round(255 / ARRAY_SIZE(patterns)), 200, 100), ledsPerSection,
+                         ledsPerSection * (currentPatternNumber - 1), 5, 150);
             previousPattern();
             break;
         }
         if (accel.acceleration.z < -0.70) {
+            if (currentPatternNumber + 1 == ARRAY_SIZE(patterns)) {
+                clearStrip();
+            }
+            blinkSection(CHSV(hueCounter + round(255 / ARRAY_SIZE(patterns)), 200, 100), ledsPerSection,
+                         ledsPerSection * (currentPatternNumber + 1), 5, 150);
             nextPattern();
             break;
         }

    if (accel.acceleration.x < gestureThreshold) {
        if (millis() - gestureStart > gestureHoldTime) {
            gestureStart = millis(); // reset timer
            spinDown();
            activateGestureModeSelect();
        }
    }

const float pupilRadius = 2; // half-width of pupil (in pixels)

long gestureStart = 0;
long gestureHoldTime = 1500;

uint8_t hue = 0;
uint8_t currentPatternNumber = 0; // Index number of which pattern is current
