Intelligente Softwarekunst

Sergiy Rogalin

Schönheit
/ˈʃøːnhaɪ̯t/
Eine Kombination von Eigenschaften wie Gestalt, Form oder Farbe, die den Sinn für Ästhetik, insbesondere das Auge, erfreut.

Was passiert, wenn wir einer Maschine beibringen, Schönheit zu erzeugen? Wir erschaffen die nächste Iteration codegenerierter Kunst.

Bei JetBrains verwenden wir unsere codegenerierte Kunst, um Originalgrafiken für alle unsere Begrüßungsbildschirme, Banner und Releases zu erstellen. Jedes Produkt hat ein eigenes Design, um Ihrem Desktop eine ansprechende Ästhetik zu verleihen.

JetBrains Artwork Generator v4

Das ist neu

Diese Version des Grafikgenerators erstellt auf Basis eines neuronalen Netzes sowohl animierte als auch statische Grafiken.

Die von unserem Bildgenerator erzeugten Bilder sind im Wesentlichen Landschaften, die von Mapping-Funktionen für vorwärtsgerichtete neuronale Netze erzeugt werden! Zwar wenden wir hier und da einige Tricks an, um sie schöner zu machen, aber die meisten Bilder basieren auf den exakten Daten, mit denen wir unsere Netze füttern.

Der Mixer-Modus ist das wichtigste Werkzeug, um mit geringem Aufwand ansprechende Bilder zu erstellen. Er kombiniert die Bilder, die Ihnen gefallen haben, und verwendet sie zur Erzeugung neuer, optisch ähnlicher Bilder. Es handelt sich um eine einfache Implementierung eines genetischen Algorithmus. Die Parameter der ausgewählten Bilder werden vermischt, und daraus kann etwas völlig Neues entstehen. Anhand von Informationen darüber, welche Bilder die Benutzer gemischt haben – und welche Bilder folglich als schön gelten können – trainieren wir ein binäres Klassifizierungsmodell, das vorhersagt, welche Parametersätze zu einem schönes Bild führen können.

Neuronale Netze werden also gleich zweifach verwendet: einmal für den Bilderzeugungsprozess selbst und einmal für die Suche nach optimalen Ausgangsbedingungen für diesen Prozess, um ansprechende Ergebnisse zu erzielen.

Jetzt können Sie sich als Ihr eigener Designer betätigen und ein Hintergrundbild für Ihren Desktop erstellen, das definitiv einzigartig und Ihre eigene Kreation ist. Besuchen Sie einfach die Desktop-Art-Seite auf unserer Website oder gehen Sie direkt zu code2art.jetbrains.com. Wenn Sie neugierig darauf sind, wie das neuronale Netz funktioniert, sehen Sie sich unser Datalore-Notebook an.

Desktop-Art entdecken

Hier sind nur einige Beispiele für die Kunstwerke, die Sie mit unserem Generator erstellen können.

Ēage

Kubrik
Kubrik

Venus
Venus

Die Bedienoberfläche

Das Frontend dient als Benutzeroberfläche für den Mixer-Modus und für die Steuerelemente, die das Ergebnis des neuronalen Netzwerks im Solo-Modus bestimmen. Da für alle Versionen des Generators derselbe Frontend-Code verwendet wurde, konnte er mit jeder Version erheblich verbessert werden. Die Optimierung kam diesmal den Ebenen zugute. Diese kann man sich als separate, konfigurierbare Komponenten vorstellen, die einen unabhängigen Baustein mit statischer oder bewegter Kunst erzeugen. Außerdem ist die GUI-Logik jetzt modular und unabhängig von der visuellen Darstellung. Daher sollte es in Zukunft möglich sein, sie mit jeder visuellen Realisierung von Schiebe- und Drehreglern, Eingabefeldern und Schaltflächen zu verbinden.

Die neuen Funktionen

Nachdem Sie ein Produkt wie IntelliJ IDEA oder MPS in der Dropdown-Liste ausgewählt haben, klicken Sie einfach auf die Schaltfläche Prescribed, und sogleich sehen Sie den neu erzeugten Begrüßungsbildschirm für dieses Produkt in seiner ganzen animierten Pracht.

Interaktion mit dem Mixer-Modus

Auf dem Startbildschirm sehen Sie neun verschiedene Bilder, die vom neuronalen Netz individuell für Sie generiert wurden. Den Namen Mixer-Modus haben wir gewählt, da Sie hier zufällige Ideen mixen können. Wählen Sie aus, was Ihnen wirklich gefällt und erschaffen Sie Kunstwerke, die ein Ausdruck Ihres inneren Ichs sind.

Venus

Wenn Ihnen keines der vorgeschlagenen Bilder gefällt, drücken Sie Regenerate, um neun neue Bilder zu generieren, die sich alle in irgendeiner Weise von den vorherigen unterscheiden. Bevor Sie jedoch Regenerate drücken, denken Sie daran, dass Sie die bereits generierten Bilder auch optimieren können – auf diese Möglichkeit werden wir später näher eingehen. Wenn Ihnen wiederum einige der vorgeschlagenen Bilder gefallen, klicken Sie einfach nacheinander auf sie und drücken Sie dann die Schaltfläche Cross-breed. Die ausgewählten Bilder bleiben erhalten, und es werden einige neue Bilder generiert, die eine Mischung aus ihnen darstellen. Sie können dies beliebig oft wiederholen, bis Sie das perfekte Bild gefunden haben.

Darüber hinaus lernt das neuronale Netz aus Ihren Entscheidungen – eine Art „Crowdsourcing“. Die Menschen auf der Welt wissen, was wirklich schön ist. Durch das Sammeln und Kombinieren dieses kollektiven Wissens entwickelt auch das neuronale Netz eine Vorstellung von Schönheit. Der Mixer-Modus enthält bereits ein neuronales Netz, das durch die Präferenzen der JetBrains-Mitarbeiter*innen trainiert wurde. Sie können diese Ergebnisse mit Ihren eigenen vergleichen oder das vortrainierte Netz deaktivieren, indem Sie von „Trained by“ zu „Wild“ wechseln.

Feinabstimmung im Solo-Modus

Doppelklicken Sie im Mixer-Modus auf ein Bild, um in den Solo-Modus zu wechseln, wo Sie alle Aspekte dieses einzelnen Bildes beeinflussen können. Unter dem Ordner Neuro auf der rechten Seite finden Sie verschiedene Schieberegler und Kontrollkästchen. Spielen Sie mit ihnen und geben Sie sich dem Experimentieren hin.

Sie können jederzeit auf das Bild doppelklicken, um zum Mixer-Modus zurückzukehren.

Szene speichern

Wenn Sie bereit sind, eine perfekte Kombination von Bildern zu teilen, oder wenn Sie später zu Ihren Ergebnissen zurückkehren möchten, um weiter an ihnen zu feilen, drücken Sie einfach die Schaltfläche Get URL. Dadurch wird in der Adressleiste Ihres Browsers eine eindeutige URL generiert, die Sie verwenden können, um Ihre Kunst mit anderen zu teilen oder später zu ihr zurückzukehren.

Solo-Bild animieren

Drücken Sie im Solo-Modus auf die Schaltfläche Animate und warten Sie kurz. Oder vielleicht auch ein bisschen länger. Es kann sein, dass Sie sich in einer Warteschlange gedulden müssen. Wir sagen Ihnen, welchen Platz Sie in der Warteschlange haben. Wenn Sie die Szene gespeichert haben, können Sie das Fenster schließen und später wiederkommen. Drücken Sie einfach erneut auf Animate, um den aktuellen Stand zu sehen. Nach Abschluss des Vorgangs erscheint ein animiertes Video Ihres Bildes auf der Ebene. Die Animation ist eine unendliche Schleife – wie ein Möbiusband. Drücken Sie Back to static, um zur statischen Version Ihres Bildes zurückzukehren.
Sie können eine URL für die animierte Szene generieren und sie mit der Welt teilen.

Video exportieren

Sie möchten stattdessen lieber eine .mp4-Datei haben? Das geht auch! Der Prozess ist ein bisschen knifflig, aber die Mühe lohnt sich auf jeden Fall. Kleiner Scherz – ein einziger Klick auf Export Video genügt!

Wie bei der Animation gilt auch hier: Es gibt eine Warteschlange und einen Fortschrittsbalken. Sie können jedoch während des Rendervorgangs eine URL generieren, um die Szene zu speichern und später nachzuschauen, ob das Rendern abgeschlossen ist (zwischenzeitlich können Sie das Browserfenster auch schließen).

Ist heute Ihr Glückstag?

Um Ihr Glück zu versuchen, drücken Sie auf I feel lucky. Das Programm schlägt Ihnen eine absolut zufällige, ohne künstliche Intelligenz erzeugte Kombination von Einstellungen vor. Auch ein solches Zufallsbild kann schön sein. Hin und wieder kommt auch mal etwas Hässliches heraus … aber das Schöne überwiegt.

Die technischen Details

Technisch betrachtet ist die Serverseite in mehrere Teile gegliedert:

  • Die auf einem neuronalen Netz basierende* Bilderzeugungs-Engine, gebaut mit TensorFlow.
  • Die Videorendering-Engine, die aus den Bildern Videos erzeugt.
  • Die Szenenspeicherung.
  • Die Aufgabenwarteschlange zum Aufteilen der CPU- und GPU-intensiven Aufgaben auf mehrere Serverkomponenten.
  • Mixer-Modus – das Tool zur Weiterentwicklung der erzeugten Bilder mittels genetischer Algorithmen.
    • Ein weiteres neuronales Netz baut auf dem Mixer-Modus und unserer Bilderzeugungs-Engine auf, um die Präferenzen der Benutzer zu aggregieren und dadurch vorherzusagen, welche Bilder mit größerer Wahrscheinlichkeit als schön empfunden werden.

*Das eigentliche neuronale Netz wurde in Datalore by JetBrains erstellt – einem Online-Notebook für Datenwissenschaftler. Details zur Netzwerkarchitektur finden Sie hier. Sie können Ihre eigene Kopie des Notebooks erstellen und frei mit den Modellparametern experimentieren.

Genießen Sie das Spielen mit dem Generator und teilen Sie Ihre Ergebnisse in den sozialen Medien unter #code2art und taggen Sie dabei @JetBrains. Wir freuen uns darauf, Ihre Kunstwerke zu sehen!

JetBrains
The Drive to Develop