         strip.show();
         delay(d);
     }
+}
+
+int animateBlocks(uint8_t r1, uint8_t g1, uint8_t b1, 
+    uint8_t r2, uint8_t g2, uint8_t b2, uint8_t blockSize, int d, bool inBlock)
+{
+    for(int j=0; j<blockSize; j++)
+    {
+        for(int i=0; i<strip.numPixels(); i++) {
+            if(i % blockSize == 0)
+            {
+                inBlock = !inBlock;
+            }
+            
+            int pix = 0;
+            if( (i + j) >= strip.numPixels())
+            {
+                pix = (i + j) - strip.numPixels();
+            }
+            else 
+            {
+                pix = i + j;
+            }
+            
+            if(inBlock)
+            {
+                strip.setPixelColor(pix, strip.Color(r1, g1, b1));
+            }
+            else
+            {
+                strip.setPixelColor(pix, strip.Color(r2, g2, b2));
+            }
+        }
+        strip.show();
+        delay(d);
+    }
+    
+    return 1;
 }
 
 int buildBlocks(uint8_t r1, uint8_t g1, uint8_t b1, 

        int d = stringToInt(loopArgs[6]);
        int blockSize = stringToInt(loopArgs[7]);
        
        buildBlocks(r1, g1, b1, r2, g2, b2, blockSize);
        delay(d);
        buildBlocks(r2, g2, b2, r1, g1, b1, blockSize);
        delay(d);
    }
    else if(loopRun.equals(FADECOLOR))
    {

//the pin your spark is using to control neopixels
#define PIXEL_PIN D2
//the number of pixels you are controlling
#define PIXEL_COUNT 467 //giggle
// #define PIXEL_COUNT 150 //colossus
//the neopixel chip type
#define PIXEL_TYPE WS2812B

