Skip to content
/ qbist Public

Algorithmische Kunstwerke mit JavaScript Web Workers, Chrome Native Client (NaCl) und WebGL-Shadern

Notifications You must be signed in to change notification settings

607011/qbist

Repository files navigation

qbist

Algorithmische Kunstwerke mit JavaScript Web Workers, Chrome Native Client (NaCl) und WebGL-Shadern

Qbist-Beispielbild

Der Ex-c't-Kollege Jörn Loviscach, der mittlerweile als Mathe-Professor tätig ist, hat 1995 einen hübschen Algorithmus ausgetüftelt, der durch Farbraumtransformationen Grafiken berechnet, die an moderne Kunst à la Kandinsky, Macke oder Malewitsch erinnern. Die meisten damit generierten Bilder haben kubistische Züge, und deshalb hat er das Programm Qbist genannt.

Ausgehend von einem rechteckigen Bild beliebigen Ausmaßes mit einem Farbverlauf, bei dem der Rotanteil nach rechts von Schwarz bis zur Vollfarbe und der Grünanteil analog dazu nach unten wächst, wendet der Qbist-Algorithmus auf jedes Pixel eine Reihe von Farbraumtransformationen an. Zu Beginn einer Transformationssequenz lädt er sechs Register mit dem jeweiligen R- und G-Wert des Pixels, der B-Wert wächst proportional mit der Registernummer. Eine einzelne Transformation wählt den RGB-Wert von ein oder zwei Registern aus, verknüpft sie miteinander und schreibt sie in ein drittes Register. Es gibt acht verschiedene Verknüpfungen, etwa die Multiplikation, das zirkuläre Vertauschen der RGB-Komponenten oder Addition/Subtraktion. Nach 36 Transformationen bestimmt der RGB-Wert im Register 0 die Farbe des resultierenden Pixels.

Der Parametersatz für eine Transformationssequenz besteht demnach aus vier Arrays (Transformation, Zielregister, zwei Quellregister) mit je 36 Elementen. Zum Start werden die Arrays mit Zufallswerten befüllt.

Literatur

About

Algorithmische Kunstwerke mit JavaScript Web Workers, Chrome Native Client (NaCl) und WebGL-Shadern

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published