Eigentlich handelt es sich um nur eine einzige Reihe Glühbirnen, welche mäandernd gefaltet angeordnet sind. Die Gesamtanzahl und Umbruchstelle pro Reihe ergibt sich aus der Pixelzahl der Ansicht und wird bei Änderung angepasst.
Die Blinkgeschwindigkeit ergibt sich folgendermaßen aus der Position p, wobei die linke obere p=0 hat. Wenn p>0 1 Frame lang an und dann p Frames lang aus.
Es wird ein transparentes PNG mit den beiden Zuständen als Hintergrund jedes Elements verwendet und abhängig vom darzustellenden Schaltzustand mit Javascript verschoben. Vor etwa zehn Jahren hatte ich etwas Ähnliches programmiert und verwendete für jede Blinkdauer eine eigene animierte GIF mit entsprechenden Zeiten.
Neustart erfolgt beim erneuten Laden der Seite.