     return 0;
 }
 
+void spiralPath(uint8_t points[], uint8_t length)
+{
+    static uint8_t currentIndex = 0;
+    
+    dimAll(255);
+    
+    leds[points[currentIndex]] = ColorFromPalette(currentPalette, gHue, 255, BLEND);
+    
+    EVERY_N_MILLIS(20)
+    {
+        currentIndex++;
+        
+        if(currentIndex >= length)
+            currentIndex = 0;
+    };
+}
+
+uint8_t spiralPath1Arms[] = 
+{
+    11, 25, 38, 51, 64, 74, 83, 65, 40, 28, 2,
+    16, 29, 42, 55, 68, 85, 56, 44, 19, 32, 45,
+    58, 70, 87, 59, 47, 22, 9, 23, 36, 49, 62,
+    72, 91, 63, 38, 13, 26, 39, 52, 65, 75, 91,
+    66, 54, 29, 3, 17, 30, 43, 56, 77, 86, 69,
+    45, 20, 7, 21, 34, 47, 60, 71, 88, 61, 49,
+    24, 37, 50, 63, 73, 82, 64, 39, 14, 1, 15,
+    28, 41, 54, 67, 76, 55, 30, 18, 31, 44, 57,
+    69, 78, 93, 70, 46, 34, 8, 22, 35, 48, 61,
+    80, 89, 90, 73, 51, 26, 0, 14, 27, 40, 53,
+    66, 84, 97, 98, 77, 57, 32, 6, 20, 33, 46,
+    59, 79, 94, 95, 80, 62, 37
+};
+
+const uint8_t spiralPath1Length = ARRAY_SIZE(spiralPath1Arms);
+
+uint8_t spiralPath1() 
+{
+    spiralPath(spiralPath1Arms, spiralPath1Length);
+    return 0;
+}
+
 // Params for width and height
 const uint8_t kMatrixWidth = 10;
 const uint8_t kMatrixHeight = 10;

  { showSolidColor,         "Solid Color" }
};

uint8_t brightness = 32;

int patternCount = ARRAY_SIZE(patterns);
int patternIndex = 0;

unsigned long lastTimeSync = millis();

uint8_t gHue = 0; // rotating "base color" used by many of the patterns

CRGBPalette16 icePalette = CRGBPalette16(CRGB::Black, CRGB::Blue, CRGB::Aqua, CRGB::White);

uint8_t paletteIndex = 0;

