Explanation:
millis() gets bigger all the time. Endlessly.
millis() % 6000 loops between 0 and 5999:
Once it reaches 5999, it jumps back to 0 and starts all over again (because it’s the remainder)
When we check this remaining value against > 3000 the result oscillates between true and false
Chrisir