c't 26/2017
S. 172
Know-how
Pygame
Aufmacherbild

Lichtshow im Nebel

Mit Pygame programmierte Animationen erzeugen – Lasershows ohne Laser

Projiziert man mit einem Beamer die richtigen Formen in einen Disco-Nebel, sieht das aus wie eine professionelle Lasershow. Wir erklären, wie Sie mit dem Python-Spiele-Framework Pygame im Handumdrehen die nötigen Animationen erzeugen.

Schieben Sie die Möbel im Wohnzimmer zur Seite, drehen Sie den Beamer so, dass er statt auf die Leinwand in den Raum leuchtet, aktivieren Sie die Nebelmaschine und starten Sie das Pygame-Programm aus diesem Artikel. Mit diesem Setup erzeugen Sie beeindruckende Lasershows in den eigenen vier Wänden, ohne dass Sie dafür einen Laser besitzen müssten. Pygame, die Bibliothek auf der die Software für die Partybeleuchtung aufbaut, ist so leicht zu erlernen, dass Sie innerhalb von einer Stunde eigene Animationen programmieren und die Verwandtschaft damit zum Tanzen bringen können.

Animiert, bunt, blinkend – wer mit eigenen Programmen visuell reizen möchte, steht vor besonderen Herausforderungen. Die Elemente eines GUI-Toolkits wie Qt oder GTK braucht man eigentlich nicht, ein Fenster aber schon. Dafür soll sich dessen Inhalt ständig ändern, mindestens 25 Mal pro Sekunde. Mit einer von Haus aus lahmen Programmiersprache wie Python ist man dafür auf die Unterstützung einer Grafikbibliothek angewiesen, die schnell genug auf die Hardware zugreift. Bei Pygame ist das SDL, das Bildschirmausgabe, Ton und Eingaben verwaltet. Pygame geht auch nicht darüber hinaus und bietet anders als große Spiele-Engines wie Unity oder Unreal keine Physiksimulation, 3D oder Animationsbibliotheken. Dieser Minimalismus erleichtert die Einarbeitung, weil Sie die wenigen Funktionen schnell überblicken. Pygame bietet sich daher für kleine 2D-Spiele und visuelle Experimente an, bei denen Bildwiederholraten nicht egal und die komplexen Optimierungen großer Spiele-Engines nicht nötig sind.

Video: Beamer-Lasershow

Für unser Beispielprogramm versetzen Sie sich gedanklich ins abgedunkelte Wohnzimmer, das Sie gerade ordentlich eingenebelt haben. Ihnen gegenüber steht ein Beamer, der eine schmale weiße Linie anzeigt, die Ihnen gerade so nicht ins Auge leuchtet. Wenn nun die Schwaden aus der Nebelmaschine durch den durch diese Linie beleuchteten Bereich ziehen, ergeben sich turbulente Muster in einem hellen Dreieck, das sich vor Ihnen ausbreitet und spitz auf die Linse des Projektors zuläuft. Bewegt sich die Linie im Beamerbild, beleuchtet der Projektor einen durch den Raum wandernden Schnitt durch den Nebel. Zeigt der Beamer statt einer Linie einzelne Punkte, entstehen Strahlen statt Schnittflächen. Kreise erzeugen ornamentierte Kegel aus leuchtendem Rauch. Man kennt solche Effekte von Lasershows – mit einem Beamer spart man sich die Laser und umgeht das Risiko von Augenverletzungen. Lichttechniker kennen diesen Trick unter der Bezeichnung „Beamer as Light“.

Videos