{"id":82295,"date":"2020-10-06T10:57:19","date_gmt":"2020-10-06T10:57:19","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=blog&#038;p=82295"},"modified":"2020-10-09T08:56:50","modified_gmt":"2020-10-09T08:56:50","slug":"intelligente-softwarekunst","status":"publish","type":"blog","link":"https:\/\/blog.jetbrains.com\/de\/blog\/2020\/10\/06\/intelligente-softwarekunst\/","title":{"rendered":"Intelligente Softwarekunst"},"content":{"rendered":"<p><span><em><strong>Sch\u00f6nheit<\/strong><\/em><br \/>\/\u02c8\u0283\u00f8\u02d0nha\u026a\u032ft\/<br \/><em>Eine Kombination von Eigenschaften wie Gestalt, Form oder Farbe, die den Sinn f\u00fcr \u00c4sthetik, insbesondere das Auge, erfreut.<\/em><\/span><\/p>\n<p>Was passiert, wenn wir einer Maschine beibringen, <strong>Sch\u00f6nheit<\/strong> zu erzeugen? Wir erschaffen <strong>die n\u00e4chste Iteration codegenerierter Kunst<\/strong>.<\/p>\n<p>Bei JetBrains verwenden wir unsere codegenerierte Kunst, um Originalgrafiken f\u00fcr alle unsere Begr\u00fc\u00dfungsbildschirme, Banner und Releases zu erstellen. Jedes Produkt hat ein eigenes Design, um Ihrem Desktop eine ansprechende \u00c4sthetik zu verleihen.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-10034\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/cai2020_blog_featured-1.png\" alt=\"JetBrains Artwork Generator v4\" width=\"1200\" height=\"800\"><\/p>\n<h2>Das ist neu<\/h2>\n<p>Diese Version des Grafikgenerators erstellt auf Basis eines neuronalen Netzes sowohl animierte als auch statische Grafiken.<\/p>\n<p>Die von unserem Bildgenerator erzeugten Bilder sind im Wesentlichen Landschaften, die von Mapping-Funktionen f\u00fcr vorw\u00e4rtsgerichtete neuronale Netze erzeugt werden! Zwar wenden wir hier und da einige Tricks an, um sie sch\u00f6ner zu machen, aber die meisten Bilder basieren auf den exakten Daten, mit denen wir unsere Netze f\u00fcttern.<\/p>\n<div style=\"width: 1200px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]--><br \/>\n<video class=\"wp-video-shortcode\" id=\"video-82295-1\" width=\"1200\" height=\"100\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/resources.jetbrains.com\/storage\/products\/blog\/wp-content\/uploads\/cai2020_blog_video.mp4?_=1\" \/><a href=\"https:\/\/resources.jetbrains.com\/storage\/products\/blog\/wp-content\/uploads\/cai2020_blog_video.mp4\" target=\"_blank\" rel=\"noopener\">https:\/\/resources.jetbrains.com\/storage\/products\/blog\/wp-content\/uploads\/cai2020_blog_video.mp4<\/a><\/video><\/div>\n<p><span id=\"more-78653\"><\/span><\/p>\n<p>Der <em>Mixer-Modus<\/em> 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 \u00e4hnlicher Bilder. Es handelt sich um eine einfache Implementierung eines genetischen Algorithmus. Die Parameter der ausgew\u00e4hlten Bilder werden vermischt, und daraus kann etwas v\u00f6llig Neues entstehen. Anhand von Informationen dar\u00fcber, welche Bilder die Benutzer gemischt haben \u2013 und welche Bilder folglich als sch\u00f6n gelten k\u00f6nnen \u2013 trainieren wir ein bin\u00e4res Klassifizierungsmodell, das vorhersagt, welche Parameters\u00e4tze zu einem sch\u00f6nes Bild f\u00fchren k\u00f6nnen.<\/p>\n<p>Neuronale Netze werden also gleich zweifach verwendet: einmal f\u00fcr den Bilderzeugungsprozess selbst und einmal f\u00fcr die Suche nach optimalen Ausgangsbedingungen f\u00fcr diesen Prozess, um ansprechende Ergebnisse zu erzielen.<\/p>\n<p>Jetzt k\u00f6nnen Sie sich als Ihr eigener Designer bet\u00e4tigen und ein Hintergrundbild f\u00fcr Ihren Desktop erstellen, das definitiv <em>einzigartig und Ihre eigene Kreation ist<\/em>. Besuchen Sie einfach die <strong><a href=\"https:\/\/www.jetbrains.com\/company\/brand\/desktop-art\/\" target=\"_blank\" rel=\"noopener noreferrer\">Desktop-Art-Seite<\/a><\/strong><span style=\"font-weight: 400;\"> auf unserer Website oder gehen Sie direkt zu <\/span><strong><a href=\"http:\/\/code2art.jetbrains.com\" target=\"_blank\" rel=\"noopener noreferrer\">code2art.jetbrains.com<\/a><\/strong><span style=\"font-weight: 400;\">. Wenn Sie neugierig darauf sind, wie das neuronale Netz funktioniert, sehen Sie sich unser <\/span><strong><a href=\"https:\/\/view.datalore.jetbrains.com\/notebook\/uBqHpBMM4DDSTVln3bofXT\" target=\"_blank\" rel=\"noopener noreferrer\">Datalore-Notebook<\/a><\/strong><span style=\"font-weight: 400;\"> an.<\/span><\/p>\n<p style=\"text-align: center;\"><a class=\"jb-download-button\" title=\"Den Artwork Generator ausprobieren\" href=\"https:\/\/www.jetbrains.com\/company\/brand\/desktop-art\/\" target=\"_blank\" rel=\"noopener noreferrer\">Desktop-Art entdecken<\/a><\/p>\n<p><span style=\"font-weight: 400;\">Hier sind nur einige Beispiele f\u00fcr die Kunstwerke, die Sie mit unserem Generator erstellen k\u00f6nnen.<\/span><\/p>\n<\/p>\n<p><em><span style=\"font-weight: 400;\">\u0112age<\/span><\/em><br \/><a href=\"https:\/\/code2art.jetbrains.com\/#scene:59d9-b945\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-10039\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/img1-1.png\" width=\"1200\" height=\"800\"><\/a><\/p>\n<\/p>\n<p><em><span style=\"font-weight: 400;\">Kubrik<\/span><\/em><br \/><a href=\"https:\/\/code2art.jetbrains.com\/#scene:542b-cb32\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-10039\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/img2-1.png\" alt=\"Kubrik\" width=\"1200\" height=\"800\"><\/a><\/p>\n<\/p>\n<p><em><span style=\"font-weight: 400;\">Venus<\/span><\/em><br \/><a href=\"https:\/\/code2art.jetbrains.com\/#scene:8859-566e\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-10039\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/img3-1.png\" alt=\"Venus\" width=\"1200\" height=\"800\"><\/a><\/p>\n<h2>Die Bedienoberfl\u00e4che<\/h2>\n<p>Das Frontend dient als Benutzeroberfl\u00e4che f\u00fcr den <em>Mixer-Modus<\/em> und f\u00fcr die Steuerelemente, die das Ergebnis des neuronalen Netzwerks im <em>Solo-Modus<\/em> bestimmen. Da f\u00fcr 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\u00e4ngigen Baustein mit statischer oder bewegter Kunst erzeugen. Au\u00dferdem ist die GUI-Logik jetzt modular und unabh\u00e4ngig von der visuellen Darstellung. Daher sollte es in Zukunft m\u00f6glich sein, sie mit jeder visuellen Realisierung von Schiebe- und Drehreglern, Eingabefeldern und Schaltfl\u00e4chen zu verbinden.<\/p>\n<h2>Die neuen Funktionen<\/h2>\n<p>Nachdem Sie ein Produkt wie <strong>IntelliJ IDEA<\/strong> oder <strong>MPS<\/strong> in der Dropdown-Liste ausgew\u00e4hlt haben, klicken Sie einfach auf die Schaltfl\u00e4che <strong>Prescribed<\/strong>, und sogleich sehen Sie den neu erzeugten Begr\u00fc\u00dfungsbildschirm f\u00fcr dieses Produkt in seiner ganzen animierten Pracht.<\/p>\n<h3>Interaktion mit dem Mixer-Modus<\/h3>\n<p>Auf dem Startbildschirm sehen Sie neun verschiedene Bilder, die vom neuronalen Netz individuell f\u00fcr Sie generiert wurden. Den Namen <em>Mixer-Modus<\/em> haben wir gew\u00e4hlt, da Sie hier zuf\u00e4llige Ideen mixen k\u00f6nnen. W\u00e4hlen Sie aus, was Ihnen wirklich gef\u00e4llt und erschaffen Sie Kunstwerke, die ein Ausdruck Ihres inneren Ichs sind.<\/p>\n<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-10039\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/img4-1.png\" alt=\"Venus\" width=\"1200\" height=\"800\"><\/p>\n<p>Wenn Ihnen keines der vorgeschlagenen Bilder gef\u00e4llt, dr\u00fccken Sie <strong>Regenerate<\/strong>, um neun neue Bilder zu generieren, die sich alle in irgendeiner Weise von den vorherigen unterscheiden. Bevor Sie jedoch <strong>Regenerate<\/strong> dr\u00fccken, denken Sie daran, dass Sie die bereits generierten Bilder auch optimieren k\u00f6nnen \u2013 auf diese M\u00f6glichkeit werden wir sp\u00e4ter n\u00e4her eingehen. Wenn Ihnen wiederum einige der vorgeschlagenen Bilder gefallen, klicken Sie einfach nacheinander auf sie und dr\u00fccken Sie dann die Schaltfl\u00e4che <strong>Cross-breed<\/strong>. Die ausgew\u00e4hlten Bilder bleiben erhalten, und es werden einige neue Bilder generiert, die eine Mischung aus ihnen darstellen. Sie k\u00f6nnen dies beliebig oft wiederholen, bis Sie das perfekte Bild gefunden haben.<\/p>\n<p>Dar\u00fcber hinaus lernt das neuronale Netz aus Ihren Entscheidungen \u2013 eine Art <em>\u201eCrowdsourcing\u201c<\/em>. Die Menschen auf der Welt wissen, was wirklich sch\u00f6n ist. Durch das Sammeln und Kombinieren dieses kollektiven Wissens entwickelt auch das neuronale Netz eine Vorstellung von Sch\u00f6nheit. Der <em>Mixer-Modus<\/em> enth\u00e4lt bereits ein neuronales Netz, das durch die Pr\u00e4ferenzen der JetBrains-Mitarbeiter*innen trainiert wurde. Sie k\u00f6nnen diese Ergebnisse mit Ihren eigenen vergleichen oder das vortrainierte Netz deaktivieren, indem Sie von \u201eTrained by\u201c zu \u201eWild\u201c wechseln.<\/p>\n<h3>Feinabstimmung im Solo-Modus<\/h3>\n<p>Doppelklicken Sie im <em>Mixer-Modus<\/em> auf ein Bild, um in den <em>Solo-Modus<\/em> zu wechseln, wo Sie alle Aspekte dieses einzelnen Bildes beeinflussen k\u00f6nnen. Unter dem Ordner <strong>Neuro<\/strong> auf der rechten Seite finden Sie verschiedene Schieberegler und Kontrollk\u00e4stchen. Spielen Sie mit ihnen und geben Sie sich dem Experimentieren hin.<\/p>\n<p>Sie k\u00f6nnen jederzeit auf das Bild doppelklicken, um zum <em>Mixer-Modus<\/em> zur\u00fcckzukehren.<\/p>\n<h3>Szene speichern<\/h3>\n<p>Wenn Sie bereit sind, eine perfekte Kombination von Bildern zu teilen, oder wenn Sie sp\u00e4ter zu Ihren Ergebnissen zur\u00fcckkehren m\u00f6chten, um weiter an ihnen zu feilen, dr\u00fccken Sie einfach die Schaltfl\u00e4che <strong>Get URL<\/strong>. Dadurch wird in der Adressleiste Ihres Browsers eine eindeutige URL generiert, die Sie verwenden k\u00f6nnen, um Ihre Kunst mit anderen zu teilen oder sp\u00e4ter zu ihr zur\u00fcckzukehren.<\/p>\n<h3>Solo-Bild animieren<\/h3>\n<p>Dr\u00fccken Sie im <em>Solo-Modus<\/em> auf die Schaltfl\u00e4che <strong>Animate<\/strong> und warten Sie kurz. Oder vielleicht auch ein bisschen l\u00e4nger. Es kann sein, dass Sie sich in einer Warteschlange gedulden m\u00fcssen. Wir sagen Ihnen, welchen Platz Sie in der Warteschlange haben. Wenn Sie die Szene gespeichert haben, k\u00f6nnen Sie das Fenster schlie\u00dfen und sp\u00e4ter wiederkommen. Dr\u00fccken Sie einfach erneut auf <strong>Animate<\/strong>, 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 \u2013 wie ein M\u00f6biusband. Dr\u00fccken Sie <strong>Back to static<\/strong>, um zur statischen Version Ihres Bildes zur\u00fcckzukehren.<br \/>\nSie k\u00f6nnen eine URL f\u00fcr die animierte Szene generieren und sie mit der Welt teilen.<\/p>\n<h3>Video exportieren<\/h3>\n<p>Sie m\u00f6chten stattdessen lieber eine .mp4-Datei haben? Das geht auch! Der Prozess ist ein bisschen knifflig, aber die M\u00fche lohnt sich auf jeden Fall. Kleiner Scherz \u2013 ein einziger Klick auf <strong>Export Video<\/strong> gen\u00fcgt! <\/p>\n<p>Wie bei der Animation gilt auch hier: Es gibt eine Warteschlange und einen Fortschrittsbalken. Sie k\u00f6nnen jedoch w\u00e4hrend des Rendervorgangs eine URL generieren, um die Szene zu speichern und sp\u00e4ter nachzuschauen, ob das Rendern abgeschlossen ist (zwischenzeitlich k\u00f6nnen Sie das Browserfenster auch schlie\u00dfen).<\/p>\n<h3>Ist heute Ihr Gl\u00fcckstag?<\/h3>\n<p>Um Ihr Gl\u00fcck zu versuchen, dr\u00fccken Sie auf <strong>I feel lucky<\/strong>. Das Programm schl\u00e4gt Ihnen eine absolut zuf\u00e4llige, ohne k\u00fcnstliche Intelligenz erzeugte Kombination von Einstellungen vor. Auch ein solches Zufallsbild kann sch\u00f6n sein. Hin und wieder kommt auch mal etwas H\u00e4ssliches heraus\u00a0\u2026 aber das Sch\u00f6ne \u00fcberwiegt.<\/p>\n<h2>Die technischen Details<\/h2>\n<p>Technisch betrachtet ist die Serverseite in mehrere Teile gegliedert:<\/p>\n<ul>\n<li>Die auf einem neuronalen Netz basierende* Bilderzeugungs-Engine, gebaut mit TensorFlow.<\/li>\n<li>Die Videorendering-Engine, die aus den Bildern Videos erzeugt.<\/li>\n<li>Die Szenenspeicherung.<\/li>\n<li>Die Aufgabenwarteschlange zum Aufteilen der CPU- und GPU-intensiven Aufgaben auf mehrere Serverkomponenten.<\/li>\n<li><em>Mixer-Modus<\/em> \u2013 das Tool zur Weiterentwicklung der erzeugten Bilder mittels genetischer Algorithmen.\n<ul>\n<li>Ein weiteres neuronales Netz baut auf dem <em>Mixer-Modus<\/em> und unserer Bilderzeugungs-Engine auf, um die Pr\u00e4ferenzen der Benutzer zu aggregieren und dadurch vorherzusagen, welche Bilder mit gr\u00f6\u00dferer Wahrscheinlichkeit als sch\u00f6n empfunden werden.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>*Das eigentliche neuronale Netz wurde in <strong><a href=\"http:\/\/datalore.jetbrains.com\" target=\"_blank\" rel=\"noopener noreferrer\">Datalore by JetBrains<\/a><\/strong><span style=\"font-weight: 400;\"> erstellt \u2013 einem Online-Notebook f\u00fcr Datenwissenschaftler. Details zur Netzwerkarchitektur finden Sie <\/span><strong><a href=\"https:\/\/view.datalore.jetbrains.com\/notebook\/uBqHpBMM4DDSTVln3bofXT\" target=\"_blank\" rel=\"noopener noreferrer\">hier<\/a><\/strong>. Sie k\u00f6nnen Ihre eigene Kopie des Notebooks erstellen und frei mit den Modellparametern experimentieren.<\/p>\n<p>Genie\u00dfen Sie das Spielen mit dem Generator und <strong>teilen Sie Ihre Ergebnisse in den sozialen Medien unter #code2art und taggen Sie dabei @JetBrains<\/strong>. Wir freuen uns darauf, Ihre Kunstwerke zu sehen!<\/p>\n<p>JetBrains<br \/>\nThe Drive to Develop<\/p>\n","protected":false},"author":1132,"featured_media":78923,"comment_status":"open","ping_status":"open","template":"","categories":[1585,6316,89],"tags":[3679,575],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/blog\/82295"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/users\/1132"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/comments?post=82295"}],"version-history":[{"count":2,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/blog\/82295\/revisions"}],"predecessor-version":[{"id":84205,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/blog\/82295\/revisions\/84205"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/media\/78923"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/media?parent=82295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/categories?post=82295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/tags?post=82295"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/cross-post-tag?post=82295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}