     position -= dimension;
   }
   // Draw the current situation.
-  for (byte i = 0; i < dimension; i++) {
+  for (uint16_t i = 0; i < dimension; i++) {
     float distance = min(
       abs(float(i) - position),
       (i < dimension / 2) ?


  CRGB color;
  // Render the spots.
  for (byte x = 0; x < WIDTH; x++) {
    for (byte y = 0; y < HEIGHT; y++) {
      if (isImaginary(x, y)) {
        continue;
      }

  } while (millis() < lastFrameTime + 1000 / MAX_FPS);
}

inline bool isImaginary(uint16_t x, uint16_t y) {
  return x >= WIDTH || y >= HEIGHT || (
    STAGGERED && (x % 2 != y % 2));
}
void setAt(uint16_t x, uint16_t y, CRGB color) {
  if (STAGGERED) {
    if (isImaginary(x, y)) {
      return;
    }
    uint16_t idx = x / 2 + (x % 2) * (BASE_WID + 1) + WIDTH * (y / 2);
    if (idx >= NUM_LEDS) {
      return;
    }
    leds[idx] = color;
  } else {
    uint16_t idx = ((ZIGZAG && y % 2) ? (WIDTH - 1 - x) : x) + y * WIDTH;
    if (idx < NUM_LEDS) {
      leds[idx] = color;
    }
  }
}
void fillRow(uint16_t row, CRGB color) {
  if (STAGGERED) {
    uint16_t start = row * WIDTH / 2;
    uint16_t num = WIDTH / 2;
    if (row % 2) {
      start += 1;
    } else {
