Transcript: Python in der Visual Effects Branche

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, hallo liebe Hörerinnen und Hörer, herzlich willkommen beim Python-Podcast, heute ist die 31. Episode, wir machen heute Visual Effects und Python, also ein bisschen aus der Filmindustrie und wir haben natürlich neben dem Jochen, hallo Jochen, und mir den Dominik, einen wunderbaren Gast dabei, den Fabian, und ich finde, er kann sich selber vorstellen, er macht nämlich tolle Sachen, du musst erstmal erklären, was ist dein Job und wer bist du und was machst du denn?

Fabian

Ja, hallo, also ich bin Fabian, ich arbeite als Pipeline-Developer oder Pipeline-TD in der Visual-Effects-Branche und genau, ich programmiere quasi Arbeitsabläufe im Hintergrund, weil die Datenmengen und das, was da passiert auf dem Bildschirm, da muss halt eine ganze Menge im Hintergrund auch geregelt werden.

Fabian

Also alles in Python?

Fabian

Größtenteils schon.

Dominik

Und das, was du da machst, das ist irgendwie, man guckt einen Film und dann explodiert irgendwas und die Art und Weise, wie das explodiert, das baust du, oder?

Fabian

Das macht quasi der Artist, der hat ein spezielles Programm, dass das kann. Ich bin aber quasi noch eine Stufe davor. Ich regele quasi, dass dieser Artist sich nicht mehr darum kümmern muss, wo er Sachen abspeichern muss, sondern quasi einfach nur sagen muss, okay, ich möchte an Haus XY arbeiten und das in die Luft jagen.

Fabian

mach mir mal eine Datei auf.

Fabian

Und das ist quasi mein Job, den ich da im Hintergrund mache,

Fabian

dass die das alles nicht mehr nachdenken müssen,

Fabian

wo sie Sachen abspeichern, wo sie Dateien hinkommen.

Dominik

Also diese ganze Geschichte in der Filmindustrie,

Dominik

die kann man tatsächlich also auch mit Python machen.

Dominik

Und darüber werden wir heute euch ein bisschen erzählen.

Dominik

Schön, dass du da bist, Fabian.

Dominik

Ja, danke.

Dominik

Vielleicht fangen wir doch mal mit ein bisschen Struktur an.

Dominik

Ihr wisst, wir vermissen das immer ein bisschen selber.

Dominik

Es gibt ein bisschen News, glaube ich.

Dominik

Ja, was haben wir denn da so?

Dominik

Wir haben wirklich viele

Jochen

Neuigkeiten, aber

Jochen

also ein Ding, was mich so ein bisschen

Jochen

freut, oder ach nee, das hebe ich mir auf.

Jochen

Das hebe ich mir auf für was anderes. Für die

Jochen

Pigs später. Genau.

Dominik

Komm, jetzt musst du spoilern, weil es gibt Leute, die hören

Dominik

halt lustig. Das hat was mit der Fischshelle zu tun.

Dominik

Das reicht. Mit was hat das zu tun?

Jochen

Mit der Fischshelle, die kennst du auch. Oh ja,

Dominik

natürlich kenne ich die lustigste gerne. Ja, und

Jochen

ansonsten ist halt

Jochen

noch irgendwie

Jochen

Django 3.2 ist released worden.

Jochen

Oh ja.

Jochen

Habt ihr schon alle in Produktion?

Dominik

Relativ einfach ging der Umstieg

Jochen

ohne Probleme. Ja, also bei mir war das

Jochen

mittler, ich glaube, das war echt das

Jochen

problemloseste Django-Upgrade,

Jochen

das ich bisher so hatte. Man kann sich jetzt

Jochen

ein neues Setting gewöhnen, die da

Dominik

die Standard-Key

Dominik

oder Primary-Key-Variante

Dominik

ist, die man gerne für seine ganzen Projekte hätte.

Dominik

Ja, das muss man jetzt halt

Jochen

konfigurieren, sozusagen.

Jochen

Sonst kriegt man Warnungen.

Dominik

Genau, das war alles und dann

Dominik

funktioniert alles wie vorher auch und er nimmt sogar die alten

Dominik

Keys und behält die, macht sie also nicht weg

Dominik

und nimmt also nur die neuen Tabellen, die man einbaut.

Dominik

Also es passiert nichts Schlimmes, wenn man

Jochen

jetzt irgendwie upgradet, nicht, dass

Jochen

dann plötzlich alle Primary Keys

Jochen

doppelt so groß sind. Wir sind mittlerweile bei 3.9,

Dominik

4 oder so und ich warte immer noch auf 3.10.

Dominik

Ihr wisst warum. Hier kommt ja jetzt

Dominik

demnächst auch bald. Ja, genau.

Fabian

Ich hätte auch noch ein paar News. Einfach mal

Fabian

aus meiner Branche. Autodesk

Fabian

Maya ist jetzt auf

Fabian

Version 2022

Fabian

hochgestuft worden.

Fabian

Das Besondere daran ist,

Fabian

wir sind endlich auf Python 3.

Fabian

Oh, wow.

Fabian

Ja.

Fabian

Blast from the past.

Fabian

Ihr hört,

Dominik

die Visual Effects-Industrie ist anscheinend

Dominik

sehr weit vorne, was Software

Dominik

angeht. Woran das wohl liegt,

Dominik

ich habe gehört, viele arbeiten dort tatsächlich mit

Dominik

Windows und die Interpreter sind alle

Dominik

eingebaut in die Programme.

Dominik

Ja, die sind

Fabian

fast durchgängig allen Programmen

Fabian

eingebaut, was natürlich

Fabian

das Upgraden zwischen den Python-Versionen

Fabian

relativ schwierig macht, weil

Fabian

naja, die Programme sind eher

Fabian

konservativ eingestellt und sagen, okay,

Fabian

bevor wir den Artists da ihre

Fabian

Skripte kaputt machen, fassen

Fabian

wir das mal lieber nicht an.

Fabian

Und naja, zwölf Jahre

Fabian

später

Fabian

wird es jetzt so langsam auch security-technisch

Fabian

und so kritisch,

Fabian

dass man Python 2 eigentlich nicht mehr so richtig

Fabian

benutzen sollte.

Fabian

Und ja,

Fabian

jetzt ziehen wir langsam nach.

Fabian

Ich würde sagen,

Fabian

gut drei Viertel aller

Fabian

Programme, die so gängig sind in der Industrie,

Fabian

haben es inzwischen

Fabian

einigermaßen geschafft auf den Sprung.

Fabian

Aber es gibt immer noch so ein paar

Fabian

Nachzügler. Vielleicht für alle ganz

Dominik

unbedeckt. Und was ist denn Maya?

Fabian

Maya ist ein

Fabian

sehr geläufiges

Fabian

3D-Programm aus

Dominik

der Branche. Also man heißt, man kann

Dominik

Modelle, Objekte

Dominik

rendern, generieren, darstellen,

Dominik

bauen. Genau.

Fabian

All das im Grunde genommen.

Fabian

Sprich, du willst

Fabian

einen Charakter oder ein Haus

Fabian

irgendwo in eine Szene stellen,

Fabian

dann kannst du es da bauen, hübsch

Fabian

ausrendern und

Fabian

ja,

Fabian

auch durchprogrammieren mit Python,

Dominik

wenn du möchtest. Das heißt, ich kann

Dominik

dann Achsen skalieren, drehen und

Dominik

Bewegungsabläufe skripten

Dominik

oder was macht man da mit Python?

Fabian

Genau, die Python-API in Maya ist eigentlich sehr, sehr mächtig.

Fabian

Du kannst im Grunde genommen wirklich alles durchskripten,

Fabian

wenn du möchtest.

Fabian

Alles, was du per Keyboard und Maus eingeben kannst,

Fabian

kannst du genauso gut in Python einskripten.

Fabian

Also wenn du wild genug bist,

Fabian

kannst du wirklich ein Python-Programm schreiben von A bis Z

Fabian

und am Ende hast du einen Baum.

Fabian

Kein Problem.

Fabian

Das wäre nett.

Fabian

also da hätte man verschiedene Objekte

Dominik

und könnte dann eine kleine Bibliothek bauen mit

Dominik

verschiedenen Bäumen, hat man einen ganzen Wald und dann

Dominik

in dem Wald, da muss natürlich noch ein Schloss und dann noch

Dominik

ein Schloss mit einem Drachen.

Dominik

Ja, aber

Dominik

schick, weißt du, warum,

Jochen

eigentlich sind wir da schon fast im Thema, wir können eigentlich

Jochen

auch, können wir auch

Jochen

ein paar, weißt du

Jochen

oder das kannst du wahrscheinlich

Jochen

ja sagen,

Jochen

woran das liegt, warum hat man sich denn da

Jochen

so auf Python

Jochen

quasi

Jochen

standardisiert, weil

Jochen

ich kenne das jetzt aus anderen Bereichen,

Jochen

da es wird häufig zum, damit man halt

Jochen

irgendwie

Jochen

so Applikationen skripten kann, also ich kenne das

Jochen

zum Beispiel hier von der digitalen

Jochen

Digital Audio Workstation,

Jochen

die ich hier verwende, das ist Reaper,

Jochen

da ist das Lua oder halt auch von

Jochen

diversen anderen, so Money Money,

Jochen

Online Banking ist auch Lua, also ganz oft ist es Lua,

Jochen

wenn man das halt super einfach integrieren kann in C,

Jochen

aber Python ist eigentlich gar nicht so super

Jochen

einfach zu integrieren.

Jochen

Warum wird da Python genommen?

Jochen

Ich glaube,

Fabian

das ist auch so ein bisschen historisch bedingt.

Fabian

Die ersten Programme und

Fabian

Anbindungen haben einfach mit Python

Fabian

angefangen und nach und nach hat sich das quasi

Fabian

etabliert. Es gibt auch genug

Fabian

Beispiele von, also Lua gibt es

Fabian

zum Teil, habe ich auch schon gesehen.

Fabian

Aber

Fabian

viele Programme, unter anderem Maya, haben

Fabian

zum Beispiel auch einfach ihre Skriptsprache

Fabian

selbst erfunden. In Maya

Fabian

gibt es Mail, die Maya Embedded

Fabian

Language.

Fabian

Erinnert sehr

Fabian

stark an Bash.

Fabian

Oh.

Fabian

Okay.

Fabian

Also wer Bash mag, hat da

Fabian

wahrscheinlich seine helle Freude dran.

Fabian

Und

Fabian

das Schöne an Python ist aber, dass

Fabian

man sehr

Fabian

gut eigentlich dynamisch Sachen

Fabian

rappen kann mit Python.

Fabian

Im Grunde genommen in Maya ist Python

Fabian

nichts anderes als ein großer Wrapper

Fabian

um Mel.

Fabian

Sprich.

Dominik

Okay, das heißt, du sprichst eigentlich direkt

Dominik

per Kommandoteile mit

Dominik

den verschiedenen Endpunkten dieses Programms

Dominik

und

Fabian

Kommandoteile ist hier übertrieben.

Fabian

Also du befindest dich im Programm selbst,

Fabian

aber Mel

Fabian

ist Bash ähnlich, ja. Also du

Fabian

arbeitest aber jetzt nicht auf der Kommandoteile.

Dominik

Das heißt, die API, das Interface des Programms, ist das irgendwie

Dominik

so, dass es halt Befehle entgegennimmt.

Dominik

Genau. Die man dann aber

Dominik

nicht eingeben möchte, sondern

Dominik

die man automatisiert über Python-Skripte.

Dominik

Also ich stelle mir das so vor,

Dominik

Menschen, die ganz viel so 3D-Sachen machen,

Dominik

die programmieren ellenlange

Dominik

Skripte, ganz viel Code untereinander,

Dominik

um Dinge zu automatisieren und

Dominik

schöne Figuren zu rendern

Dominik

oder Bäume, wo wir diese Welt

Dominik

eben drüber gesprochen hatten. Entspricht das

Dominik

der Realität oder wie sieht denn dein Arbeitstag

Dominik

dann damit aus?

Dominik

Das

Fabian

die Artists an sich

Fabian

die machen da eigentlich

Fabian

alle Arbeit

Fabian

nur über das User Interface

Fabian

relativ wenige Skripten, es gibt ein paar

Fabian

spezielle Jobs, da muss man ein bisschen

Fabian

mehr skripten, weil es dann schon aufwendiger wird

Fabian

aber mein

Fabian

Arbeitsablauf ist eigentlich

Fabian

eher im Hintergrund, sprich

Fabian

ich überlege mir, okay

Fabian

an meinem Projekt arbeiten 40 Leute

Fabian

die alle auf den gleichen

Fabian

Folder zugreifen

Fabian

auf meinem Server.

Fabian

Wie kriege ich es denn gebacken,

Fabian

dass die sich nicht gegenseitig

Fabian

in die Quere kommen oder sich

Fabian

Files überschreiben oder

Fabian

Sachen verloren gehen?

Dominik

Auf so einem Videoprojekt müssen ja ganz schön viele Daten

Dominik

aus dem Server liegen, oder?

Fabian

Genau, um so ein paar

Fabian

Eckdaten zu haben. Also für ein Projekt,

Fabian

was wir neulich erst abgeschlossen haben,

Fabian

was ihr auch auf Netflix gucken könnt übrigens,

Fabian

nennt sich

Fabian

Outside the Wire.

Fabian

Ist wirklich, also

Fabian

Visual Effects top,

Fabian

Story, naja.

Fabian

Aber da

Fabian

hatten wir im Endeffekt

Fabian

12 Millionen Dateien auf dem Server

Fabian

und

Fabian

das waren insgesamt

Fabian

220 Terabyte, glaube ich.

Fabian

Und naja,

Fabian

es ist halt eine Menge Holz.

Dominik

Ein bisschen größer als mein Heimcomputer.

Fabian

Das will man erstmal durchs Netzwerk schleifen und dann natürlich auch noch die Übersicht behalten, dass du weißt, okay, ja, diese Version fand ich schön, die nächste ist vielleicht nicht so toll oder, ja, dann muss man auch noch bedenken, okay, diese Artists, die arbeiten natürlich auch noch miteinander.

Fabian

Also der eine baut das Haus, der andere malt es an, der nächste lässt es explodieren. Dann musst du natürlich auch noch zusehen, okay, wie bekommst du denn die Daten von A nach B, dass jetzt nicht jeder erstmal Windows Explorer aufmacht, einen tippt, okay, wo ist denn mein Haus und wo finde ich denn das?

Fabian

sondern auch das ist alles durchgeskriptet

Fabian

und gestreamlined, dass du einfach

Fabian

nur sagst, okay, ich möchte von

Fabian

Haus, von meinem Haus

Fabian

ja, diese Außenwand

Fabian

in Version 6

Fabian

zack, reingeladen

Fabian

fertig

Dominik

Guckt man da irgendwie über so

Dominik

ein Editor drauf oder sowas oder ist da dann

Dominik

Maya-Interface oder habe ich so

Dominik

eine Sicht wie so ein CAD-Programm

Dominik

auf das ich dann schauen kann oder ist das so

Dominik

ein Studio-Umgebungsding

Dominik

oder? Das ist

Fabian

alles integriert.

Fabian

Neben Python hat sich noch ein anderer

Fabian

Standard relativ gut in der Branche etabliert

Fabian

und das ist PySite, beziehungsweise

Fabian

PyQt.

Fabian

Sprich, viele

Fabian

Programme unterstützen das, dass man

Fabian

mit dieser Bildbibliothek

Fabian

quasi arbeiten kann.

Fabian

Und das Schöne an der

Fabian

Sache ist, man kann somit auch

Fabian

User-Interfaces komplett durchskripten.

Fabian

Sprich, du kannst

Fabian

direkt sagen,

Fabian

okay, ich habe jetzt hier meinen

Fabian

Datei lauter, wie auch

Fabian

immer, programmiere das User-Interface

Fabian

dafür einmal durch und wenn ich den

Fabian

aufrufe in Maya

Fabian

oder in

Fabian

The Foundry Nuke,

Fabian

sieht er halt gleich aus.

Fabian

Füllt die gleichen Zwecke und da

Fabian

nur im Hintergrund arbeitet

Fabian

man halt vielleicht an verschiedenen Codestücken,

Fabian

weil eine Datei

Fabian

zu laden in Maya ist was anderes

Fabian

als in Nuke.

Fabian

Also auch wir benutzen quasi relativ gängige Bibliotheken.

Dominik

Vielleicht musst du uns da noch so ein bisschen einführen und so ein bisschen diese ganze Infrastruktur und das ganze Ökosystem so näher bringen, dass wir so ein bisschen diese Bausteine, die es da gibt, zusammensetzen können, weil wenn ich jetzt so zugehören, ich habe keine Ahnung von diesem Videothema, dann verstehe ich jetzt noch nicht genau, wie du diese einzelnen Belästigungen liest und wie das funktioniert.

Fabian

Okay, ähm, fangen, wie fangen wir da am besten an? Ähm, vielleicht so ein paar allgemeine Sachen. Sprich, dadurch, dass ja die Interpreter in den einzelnen Programmen eingebettet sind, ähm, muss man oder sollte man zumindest danach streben, dass man alles relativ gut gestreamlined hat mit verschiedenen Bibliotheken, die man auch in verschiedenen Sachen laden kann.

Dominik

Das heißt, du kannst in jeder einzelnen Interpreterschicht dieselbe Interface nutzen? Oder was meinst du mit Streamline?

Fabian

Genau. Man will ja quasi nicht fünfmal das gleiche Skripten, obwohl du das gleiche willst, sondern sagst, okay, ich baue mir ein User-Interface in PySite, baue das aber so, dass ich es wiederverwenden kann in anderen Programmen auch.

Fabian

Hier geht es quasi nur noch darum, dass du die Business-Logic im Hintergrund austauschst, dass die Funktionalität für den Anwender aber überall gleich ist.

Fabian

Das hat auch den Vorteil für jemanden, der die Programme benutzt, der hat immer das gleiche User-Erlebnis.

Fabian

Sprich, ob du ein File lädst oder ein File öffnest, ist eigentlich ganz egal, ob du jetzt ein 3D- oder ein 2D-Programm aufmachst.

Fabian

ja, also diese ganze

Fabian

Hierarchie, wie das alles aufgebaut

Fabian

ist mit den Bibliotheken, ist natürlich

Fabian

wahnsinnig komplex.

Fabian

Aber

Dominik

Was für Jobs gibt es denn

Dominik

in dem Bereich? Also wenn ich mich da

Dominik

in der Industrie wiederfinden möchte,

Dominik

welche Jobs gibt es denn, die Python machen?

Fabian

Da es so offen ist, kann es im Grunde genommen jeder benutzen, der möchte, weshalb auch eine Menge Code quasi am Markt ist, der weniger gut ist, hätte ich mal so gesagt. Aber es gibt zum Beispiel den Job des Riggers.

Dominik

Oh, ein Rigger, das ist ein Shadow-Punk, das ist ein Mensch, der seine Drohnen nach oben schickt und sie steigen lässt.

Fabian

Genau, das ist jemand, der quasi virtuelle Marionetten in Charaktere baut.

Dominik

Ah, okay. Also von innen werden quasi diese Dinge bewegt.

Fabian

Genau, weil wenn du einen Charakter modulierst, dann steht er zwar erstmal schön im Raum,

Fabian

aber dass er zum Beispiel seine Knie beugen kann oder seine Arme beugen kann,

Fabian

Das muss man dem Rechner ja erstmal verklickern, weil für den ist das nur ein Datenhaufen. Da muss man ja erstmal sagen, okay, das ist die Hand, das sind die Finger, die lasst sich so und so bewegen und damit am Ende auch eine schöne Animation, also ein Animator dann das animieren kann, muss das natürlich erstmal gebaut werden.

Fabian

Da das ein relativ technischer Job ist, ist da sehr viel mit Skripting eigentlich nur zu machen, weil so eine Marionette aufzubauen dauert einfach ewig, ewig lange.

Dominik

Ja, du musst ja die ganzen einzelnen Gelenke wahrscheinlich...

Jochen

Marionette bedeutet, dass halt so die Dinge miteinander verbunden werden. Das heißt, wenn man jetzt irgendwo den Arm hochzieht, dass dann andere Dinge mit hochgezogen werden oder so, sozusagen.

Fabian

Genau. Oder zum Beispiel, dass du Muskeln hast. Du beugst den Arm, dann geht dein Bizeps eben hoch raus.

Dominik

Jeder Körperstruktur kann man sich nicht richtig bücken, weil dann muss der ganze Körper, ja, verstehe.

Fabian

Genau. Da hängt eine Menge dran. Kleidung ist auch nochmal ein eigenes Thema für sich. Haare ist auch nochmal ein eigenes Thema für sich.

Fabian

Also sehr große Studios wie Pixar zum Beispiel haben wirklich nur Leute, die beschäftigen sich 24-7 nur mit Haaren.

Fabian

Oder nur mit Kleidung.

Dominik

Das klingt aber relativ spannend, das kann man für coole Sachen benutzen.

Dominik

Das klingt so, als wenn man einmal diese Logik und als Modell und als Skript irgendwie kompletieren würde,

Dominik

könnte man auch die ganzen externen Effekte, also sowas wie Wind und Licht und was sich da noch alles gibt,

Dominik

als Umwelteinflüsse dann auf dieses Rig

Dominik

oder so übertragen, dass man

Dominik

halt so ein bisschen, ja, also

Dominik

nicht so statisch im Raum rumsteht und

Dominik

vielleicht ein oder zwei geskriptete Bewegungen

Dominik

macht, sondern tatsächlich mit der Bewegung

Dominik

interagiert oder in die Bewegung so eingebettet

Jochen

wird. Also sozusagen, ja,

Jochen

das heißt, der Job von dem ist sozusagen

Jochen

vorzubestimmen,

Jochen

was sich alles

Jochen

noch mitändert, wenn sich irgendwas, wenn

Jochen

irgendwas bewegt wird und der Animator, der

Jochen

gibt dann quasi vor,

Jochen

wie die Bewegung aussehen

Jochen

Genau, wie weich das wird, die Bewegung

Jochen

innerhalb der Umgebung.

Jochen

Aber der kümmert sich dann nicht mehr darum, dass

Jochen

sich quasi, keine Ahnung,

Jochen

der

Jochen

die Kleidung mitbewegt, wenn sich der Arm

Dominik

bewegt oder so. Genau, der fängt nur die eigentliche Bewegung ein

Dominik

und das, was dann da rum passiert in der

Dominik

Umgebung, das müsste dann mit durch die Skripte passieren,

Dominik

oder? Weil das ist ja fast Physik. Also das ist ja

Dominik

das, was man durch Algorithmen irgendwie vielleicht

Dominik

Also das ist eigentlich noch

Fabian

mehrstufig. Im Grunde genommen hast du erst

Fabian

das Rig, dann hast du den Animator, der

Fabian

da eine Animation drauf macht. Da ist

Fabian

aber meistens noch relativ wenig

Fabian

Physik dabei. Und erst

Fabian

im nächsten Schritt gibt es dann quasi Simulationsschritte,

Fabian

wo du dann sagen kannst, okay,

Fabian

über meine Animationen

Fabian

habe ich dann nochmal ein bisschen Wind,

Fabian

die dann die Klamotten noch wehen lässt

Fabian

oder die Haare

Fabian

oder

Fabian

keine Ahnung,

Fabian

Feuerexplosionen, was immer du willst, dass der Arm

Fabian

abfällt, geht alles.

Fabian

Genau, weil gerade

Fabian

Physik-Simulationen sind

Fabian

wahnsinnig ressourcenfressend.

Fabian

Das heißt, du kannst

Fabian

wenig interaktiv arbeiten

Fabian

als Animator, wenn du die ganze Zeit

Fabian

dann auf Physik-Simulationen arbeiten

Fabian

im Hintergrund laufen hast.

Dominik

Also das tatsächlich aus technischer Restriktion noch?

Dominik

Ja,

Fabian

durchaus, ja. Es ist

Fabian

immer noch eine hohe Kunst,

Fabian

performante Rigs zu bauen.

Fabian

Weil

Fabian

die Animatoren, die wollen natürlich immer

Fabian

Echtzeit haben.

Fabian

Also 24 Frames die Sekunde,

Fabian

sollte schon sein, aber

Fabian

dadurch, dass die Programme halt

Fabian

so komplex sind, ist es unheimlich

Fabian

einfach, sehr langsame Rigs

Fabian

zu bauen. Und wenn du dann,

Fabian

ich meine, du musst ja, weiß man ja

Fabian

selbst, man sitzt vor einem Rechner

Fabian

und wenn irgendwas so im

Fabian

Sekundentakt vor sich hin ruckelt,

Fabian

ist das irgendwie kein schönes Arbeiten.

Fabian

Aber wenn es flüssig ist und man sich das

Fabian

angucken kann im Ganzen, dann

Fabian

hat man halt

Fabian

am Ende auch mehr Spaß. Ich meine,

Fabian

ja.

Fabian

Ja, klar

Fabian

Also es gibt

Fabian

hundert tolle Wege, wie man das

Fabian

verschnellern kann und verbessern kann

Fabian

und die Industrie ist natürlich auch immer vorne mit dabei

Fabian

da die neuesten Technologien

Fabian

einzubauen

Fabian

Ja, aber wir

Fabian

schleppen halt auch eine Menge Legacy-Stuff

Fabian

mit uns rum, wo viele Leute

Fabian

sich sehr lange dran gewöhnt haben

Fabian

und es ist auch

Fabian

schwierig, das loszuwerden

Jochen

Aber ich kann mir auch vorstellen, dass es einfach

Jochen

an den Release-Zyklen hängt.

Jochen

Ich habe jetzt keine Ahnung, wie oft

Jochen

Maya oder

Jochen

Houdini oder was auch immer da released wird

Jochen

oder ein neuer Release hat, aber wenn die

Jochen

relativ lang sind,

Jochen

dann ist ja klar, dass die nicht so aktuell sein

Jochen

können wie andere

Jochen

Software, die man jetzt, weiß ich nicht,

Jochen

irgendwelche Web-Applikationen, die man ständig deployt.

Jochen

Wobei man sagen muss, Houdini

Jochen

ist eine sehr

Fabian

tolle Ausnahme, die bieten

Fabian

Knightly Builds an. Was ist denn

Fabian

Houdini? Houdini

Fabian

ist eine der größten

Fabian

Effektsoftwaren,

Fabian

die man im Moment so haben kann.

Fabian

Sprich, damit machst du

Fabian

Feuer,

Fabian

lässt Häuser zusammenfallen.

Fabian

Es ist

Fabian

unheimlich

Fabian

modular

Fabian

und dadurch auch

Fabian

wahnsinnig komplex zu bedienen.

Fabian

Also

Fabian

ich kenne einige Leute,

Fabian

an der Einstiegshürde einfach

Fabian

gescheitert sind.

Fabian

Also

Fabian

gefühlt musst du dich erstmal ein Jahr einarbeiten.

Dominik

Aber wenn das Ganze ein bisschen magiert, also

Dominik

ein Houdini, der dann tatsächlich

Dominik

die höhere Effektschiene hat, okay.

Dominik

Aber

Fabian

auch da ist Skripten wieder total

Fabian

angesagt. Die haben sogar interne

Fabian

Skripte, die sich glaube ich sogar

Fabian

zu C kompilieren, so halb.

Fabian

Damit das dann richtig fix wird.

Fabian

Genau.

Fabian

Haben aber auch wieder ihre eigene

Fabian

Skript-Sprache

Fabian

da wieder erfunden.

Dominik

Also es gibt ja quasi ein Level-Interface,

Dominik

was da drüber liegt.

Dominik

Also eine API, mit der man

Dominik

Houdini-Methoden

Dominik

ausführen kann.

Fabian

Ist auch recht interessant,

Fabian

weil gerade das Python, dadurch das Python

Fabian

so modular ist und auch so

Fabian

sich so in verschiedensten

Fabian

Arten umformen lässt, benutzt

Fabian

jeder Interface.

Fabian

jedes Programm Python auch

Fabian

in verschiedenen Arten und Weisen.

Fabian

Also

Fabian

Pythonic, würde ich sagen, ist da

Fabian

eigentlich nichts.

Fabian

Das ist

Fabian

alles

Fabian

schon sehr gewagtes Zeug, was man

Fabian

da macht zum Teil.

Fabian

Deswegen gibt es sogar schon

Fabian

Wrapper-Libraries, die das alles mehr

Fabian

in die Pythonic-Richtung

Fabian

drücken,

Fabian

weil irgendwann die Skripte

Fabian

sich halt auch gesagt haben, so, ey,

Fabian

so funktioniert das nicht.

Dominik

Ja, aber das ist ja auch das, was man so

Dominik

in der generellen Python-Welt hat, oder?

Dominik

Dass halt die mehr Leute sich das

Dominik

zur Brust nehmen und

Dominik

damit arbeiten, umso

Dominik

schneller entdeckt irgendjemand das

Dominik

wirklich tolle Higher-Level-Interface

Dominik

und man kann halt irgendwie mit der einfacheren

Dominik

API die gleichen oder schönere Dinge

Dominik

machen.

Fabian

Ich hatte neulich so ein schönes Beispiel.

Fabian

Ich hatte

Fabian

eine Funktion namens

Fabian

GetStringParameter

Fabian

oder irgendwas und

Fabian

der hat mir eine Liste zurückgegeben.

Fabian

Super.

Fabian

Tja.

Dominik

Vielleicht hätte ich mir eine TypeAnnotation geschrieben und dann war es mir klar,

Dominik

dass er es in der Liste zurückgibt.

Dominik

Er hat immer eine Liste zurück und

Fabian

das macht dann halt irgendwie keinen Spaß.

Fabian

Ja, okay.

Jochen

Ja, ne, witzig.

Dominik

Ja, also Datentypen und so, was das reinigt.

Jochen

Ja, was wollte ich eigentlich? Ich wollte irgendwas fragen, jetzt habe ich vergessen, was ich fragen wollte. Ist das denn nur für jetzt, also ich meine diese ganzen, also Maya und, also nee, Houdini ist doch eher so auch Realfilm-Geschichte, also quasi, wenn man irgendwie tatsächlich gefilmtes Material hat und da einen Effekt machen möchte. Oder, ich habe ehrlich gesagt keine Ahnung, wie das alles zusammenhängt.

Dominik

Also für mich klingt das doch alles so, als könnte man total die tollen Computerspiele damit machen.

Fabian

Äh, es geht eigentlich in alle Richtungen, die du möchtest. Du kannst damit abstrakt bleiben, du kannst es in Realfilm einbetten, du kannst auch Full-CG-Sachen machen à la Toy Story. Ist, ähm, kein Problem, du musst halt nur wissen, wie du es anfasst.

Fabian

Eine große Rolle dabei spielt auch immer der Renderer, sprich das Programm, was dir am Ende die schönen Bilder auf die Leinwand zaubert.

Fabian

Wir benutzen zum Beispiel in der Produktion Arnold. Der ist schon sehr auf Realismus ausgelegt, was auch für unsere Firma Sinn macht, weil wir benutzen halt sehr viel Echtzeit-Footage, also Real-Footage, wo wir Sachen einbauen möchten.

Fabian

Aber man kann auch sehr viel offener gehen.

Fabian

Ich glaube, RenderMan zum Beispiel kann man noch sehr viel mehr mit einstellen.

Fabian

Hat natürlich auch alles immer seinen Preis.

Fabian

Also je offener du bist, desto langsamer wirst du im Endeffekt.

Fabian

Meistens.

Fabian

Dadurch, dass man, wenn man sich quasi vorschreibt,

Fabian

okay, ich möchte so realistisch und physisch akkurat bleiben,

Fabian

wie es nur irgendwie geht,

Fabian

dann heißt das auch, okay, ich kann halt Performance an gewissen Stellen halt einfach einbauen,

Fabian

weil ich weiß, okay, ich werde niemals so einen Cartoon-Character-Look brauchen.

Fabian

Kann man weglassen.

Dominik

Also kannst du vielleicht nochmal kurz erläutern, was du mit Performance meinst?

Dominik

Also jetzt die Geschwindigkeit, die das Ganze zum Rendern braucht.

Dominik

Aber ich denke mir jetzt gerade, du hast ja eh vorgefertigte Szenen,

Dominik

Also du willst das ja jetzt nicht live

Dominik

irgendwie augmentieren,

Dominik

sondern du möchtest ja quasi

Dominik

einen Videoschnipsel, den du irgendwo liegen hast,

Dominik

ergänzen

Dominik

und da filtern oder Sachen

Dominik

drauf

Dominik

spiegeln oder

Dominik

also neue Dinge erschaffen mit einem Schnipsel,

Dominik

den du schon hast. Und da ist auch quasi die

Dominik

Zeit, die das braucht, um zu

Dominik

rendern und Dinge dazu zu erfinden,

Dominik

relativ

Dominik

dehnbar.

Fabian

Ja, aber die Ressourcen sind ja nicht endlos dehnbar.

Fabian

Sprich, wir haben zum Beispiel so eine Faustregel,

Fabian

dass für uns ein Frame nicht länger als eine Stunde rendern sollte.

Dominik

Also ein Frame ist sowas wie ...

Dominik

Wie viele Frames hat man sowas beim normalen Fernsehfilm?

Dominik

Irgendwie 30 oder 60 oder sowas?

Fabian

Normalerweise so 24, 25.

Fabian

Natürlich gibt es da ganz tolle neue Technologien

Fabian

mit 48 Frames die Sekunde.

Fabian

Ich glaube, Herr der Ringe hat das

Dominik

eigentlich. Aber für jede Sekunde

Dominik

von diesem Film musst du halt zwei Tage

Dominik

einplanen.

Dominik

Ja, beziehungsweise

Fabian

wir haben eine Renderfarm. Das heißt, drei Minuten

Fabian

pro Jahr schaffst du dann.

Fabian

Ja, es gibt da so tolle Statistiken.

Fabian

Ich glaube,

Fabian

ich habe mal gehört, bei den Transformer-Filmen,

Fabian

da hatten sie Frames, die haben

Fabian

72 Stunden gerendert.

Fabian

Wow. Also

Fabian

Und dann stellst du fest, ja, nee, ist kaputt.

Dominik

Ja, da muss man halt dann tatsächlich an anderen Stellen skalieren.

Dominik

Da muss man mehrere Parallel-Render-Inzansen haben,

Dominik

weil ansonsten wirst du tatsächlich...

Dominik

Du hast ja schon eine Render-Farm.

Jochen

Musst du deine Render-Farm paralysieren.

Jochen

Irgendwann wird es ein bisschen schwierig, klar.

Jochen

Und wahrscheinlich ist es ja auch so, dass je...

Jochen

Also ich meine, gut, das ist ein völlig anderer Bereich,

Jochen

aber das ist halt auch beim...

Jochen

Wenn man jetzt so Data-Science-Maschinen-Learning-Geschichten macht,

Jochen

Da hat man auch so rechenintensive Jobs.

Jochen

Also wenn man jetzt Modelle trainiert,

Jochen

und zwar auch Tricks, das zu beschleunigen,

Jochen

aber dann muss man halt abwarten.

Jochen

Und abwarten ist auch mal ganz schlecht.

Jochen

Also wenn man auf irgendwas ein paar Stunden warten muss,

Jochen

dann reduziert das die Gesamtperformance enorm,

Jochen

weil oft nach ein paar Stunden man sieht, das war alles Unsinn.

Jochen

Man muss es halt nochmal machen.

Jochen

Und die paar Stunden sind dann einfach weg.

Jochen

Und wenn man lange braucht, um irgendwas zu rendern,

Jochen

dann sieht man, oh Mist, meine Figur hatte die ganze Zeit die Augen zu

Jochen

oder das Grinsen ist einfach schief,

Jochen

dann muss man nochmal von vorn anfangen.

Jochen

Ich habe keine Ahnung, ich stelle mir das so vor,

Jochen

dann ist das blöd, wenn die Iterationen

Jochen

zu lange sind.

Fabian

Genau, also natürlich gibt es da auch wieder

Fabian

Tricks und Kniffe, dass man sich so,

Fabian

es gibt zum Beispiel progressives Rendering,

Fabian

da

Fabian

fängt der Renderer an sich schon

Fabian

sehr, sehr grob an und wird dann einfach mit der Zeit

Fabian

immer feiner, aber

Fabian

dem Menschen ist das quasi

Fabian

schon gegeben, dass du siehst, okay, ja,

Fabian

wird, wird, wird, okay,

Fabian

einigermaßen okay und danach, nee, hier ist das Licht

Fabian

aus, alles klar, ich mach dir mal die Lampe wieder an.

Fabian

Und dadurch

Fabian

lassen sich Fehler auch von vornherein relativ

Fabian

schnell beheben.

Fabian

Das Problem ist halt nur, wenn du,

Fabian

keine Ahnung, du hast deine drei, vier Sekunden,

Fabian

die du da füllen musst, dann, du kannst

Fabian

ja nicht jeden Frame jetzt einzeln abwarten und gucken,

Fabian

ob das überall okay ist. Also

Fabian

schickst es auf die Renderfarm und

Fabian

musst dann halt warten

Fabian

und gucken danach, ob da alles okay ist.

Fabian

Das Qualitätsmanagement

Fabian

ist da

Fabian

auch jedem selbst überlassen.

Dominik

Die Renderfarm, vielleicht kannst du noch kurz

Dominik

was sagen, was eine Renderfarm ist?

Dominik

Wir

Fabian

haben quasi

Fabian

einen Satz Rechner in unserem

Fabian

Serverraum, ich glaube

Fabian

sind wahrscheinlich jetzt um die 60,

Fabian

die für nichts

Fabian

anderes da sind, als

Fabian

die schönen Bilder zu berechnen.

Fabian

Sprich, wir senden denen Jobs hin

Fabian

und sagen, okay, hier guck mal, hast

Fabian

meine Szene.

Fabian

Rechne einfach mal aus.

Fabian

Und dann

Fabian

gibt es so eine Renderfarm-Manager, die im

Fabian

Übrigen auch alle wunderbar in Python geschrieben sind.

Fabian

Gibt ein Thinkbox-Deadline.

Fabian

Komplett

Fabian

in Python geschrieben. Ich glaube,

Fabian

nur unten an der Basis so ein paar

Fabian

C-Sachen und einzelne

Fabian

Programme.

Fabian

Aber damit

Fabian

lassen sich dann auch die Sachen komplett steuern.

Fabian

Dass du sagen kannst, okay,

Fabian

ich habe hier meinen Job

Fabian

von 100

Fabian

Frames. Bitte verteile mir

Fabian

die auf meine 30 Blades

Fabian

und jeder Blade bekommt

Fabian

5 Frames.

Fabian

Also die

Fabian

einzelnen Rechner heißen Blades bei uns.

Fabian

Okay, ich wollte gerade fragen, ja.

Fabian

Genau. Und dann

Fabian

siehst du halt dann im kleinen User-Interface

Fabian

okay, mein Job muss

Fabian

leider noch ein bisschen warten. Da sind noch 5 andere,

Fabian

die erstmal hier meine Sachen zurecht

Fabian

drücken müssen.

Fabian

Und danach bin ich aber dran und dann wird das

Fabian

durchgerechnet.

Fabian

Das bekommt

Fabian

dann nochmal so ein extra

Fabian

Layer von Komplexität drauf,

Fabian

wenn es dann Richtung Software-Light-Sensing geht,

Fabian

weil

Fabian

natürlich werden noch

Fabian

Lizenzen verkauft für

Fabian

die Headless-Programme,

Fabian

sprich, wenn du Maya,

Fabian

nee, Maya nicht, aber Houdini

Fabian

im Headless-Modus rendern lassen

Fabian

möchtest, dann musst du dafür aber eine

Fabian

bestimmte Lizenz haben.

Fabian

Davon musst du deine Render-Farm wissen und

Fabian

das Rendering am Ende auch.

Fabian

Es gehört aber quasi auch

Fabian

zu meinem Job, das alles zu organisieren,

Fabian

dass das am Ende passt.

Fabian

Die IT, die kümmert sich dann im Grunde

Fabian

nur noch darum, dass die Lizenzserver

Fabian

aufgesetzt werden und ich bastel

Fabian

dann die Programme so zusammen, dass dann am Ende

Fabian

die Lizenzen auch da landen, wo sie sein sollen.

Fabian

Ja, ist quasi auch Teil meines Arbeitsberufs oder Alltagslebens.

Fabian

Ja, ja, ja, ne, interessant.

Jochen

Und wo, also die Daten, wie werden die Daten eigentlich gespeichert?

Jochen

Die landen auf einem zentralen File-Server oder habt ihr da so eine Art verteiltes Dateisystem?

Jochen

Irgendwie sowas wie bei Hadoop, HDFS oder keine Ahnung?

Fabian

Ne, es gibt einen zentralen Server, auf dem landen alle Daten, auf den haben eben auch alle Zugriff.

Fabian

Und genau, von dem wird alles gezogen und alles hingespeichert.

Fabian

Genau, ist eigentlich mit der einfachste Weg

Fabian

vielleicht nicht unbedingt der sicherste,

Fabian

wenn man mal Sachen verschiebt oder aus Versehen löscht oder so.

Fabian

Aber das hat sich eigentlich schon sehr lange bewährt in der Industrie.

Fabian

Jochen hat gerade kurz mit den Schultern gezuckt.

Dominik

Also nach dem Motto, ja, passiert halt.

Dominik

Nö, man kann es ja auch back-up,

Jochen

wenn man es wirklich nicht verlieren will.

Jochen

Es gibt auch Methoden, wie man das irgendwie sicherstellen kann.

Jochen

Nee, ich überlege nur gerade,

Jochen

weil ich hier zu Hause auch mal überlege,

Jochen

was ich für ein Netz verlege.

Jochen

Und ich bin jetzt so bei 10 Gigabit-Kabeln.

Jochen

Aber tatsächlich kann ich das noch nicht wirklich nutzen,

Jochen

weil die Switches sind halt irgendwie,

Jochen

die haben halt Lüfter drin, die das können.

Jochen

Und das ist einfach zu laut und da habe ich keine Lust drauf.

Jochen

Aber das muss ja dann wirklich schnelles Netz sein.

Jochen

Weißt du, womit ihr das hinbekommt?

Jochen

Weil man muss ja dann, wenn man so große Datenmengen

Jochen

übers Netz immer schiebt.

Fabian

Das Netz ist weitestgehend mit Glasfaser überall ausgestattet.

Fabian

Ich kann dir keine genauen Details nennen,

Fabian

weil ich bin quasi nicht unbedingt für IT zuständig.

Fabian

Ach so, nee, aber ich meine jetzt anders.

Fabian

Wenn man an einem Rechner arbeitet,

Jochen

dann muss da ja auch irgendwie Netz reinkommen.

Jochen

das ist aber wahrscheinlich kein, also wenn man

Jochen

jetzt irgendwo an einem Rechner dran sitzt, oder ist das auch,

Jochen

haben die Karten mit Glasfaser hinten dran?

Jochen

Ja. Achso, okay.

Jochen

Gut. Ja, das geht natürlich auch.

Jochen

Ich hätte jetzt eher gedacht, dass das irgendwie

Jochen

Thunderbolt ist oder weiß ich nicht, irgendwie

Jochen

10 Gigabit Ethernet

Jochen

oder sowas, aber ja, okay. Genau, also

Fabian

es ist ein Mix. Wir haben

Fabian

glaube ich auch noch ein paar 10 Gigabit-Leitungen.

Fabian

Das geht auch,

Fabian

wenn man jetzt nicht total

Fabian

alles hochfährt, aber wir hatten

Fabian

schon Zeiten, wo wirklich die Renderfarm

Fabian

randvoll war,

Fabian

keine Ahnung, 20, 30 Leute

Fabian

gleichzeitig aufs Netzwerk zu greifen

Fabian

und dann beschweren sich natürlich

Fabian

alle, warum ist denn alles so langsam?

Fabian

Kann man im Endeffekt auch nicht so viel

Fabian

machen? Es gibt natürlich noch ein paar Tricks und

Fabian

Kniffe, dass die Programme zum Beispiel

Fabian

die cachen sich die Dateien

Fabian

einfach runter lokal

Fabian

und wenn du es einmal lokal

Fabian

hast, dann belastest

Fabian

du natürlich das Netzwerk nicht und hast auch wesentlich

Dominik

mehr Speed. So ein bisschen Peer-to-Peer

Dominik

denke ich, ne?

Dominik

Genau.

Dominik

Das

Fabian

ist eine gängige Methode. Meistens hat man

Fabian

dann einfach so eine Scratch-Disk noch, die man

Fabian

mit einer schnellen SSD,

Fabian

die musst du natürlich alle jedes Jahr wahrscheinlich

Fabian

einmal austauschen.

Fabian

Aber dafür hast du eben ordentlich

Fabian

Performance hintendran.

Fabian

Das

Fabian

ist schon sehr sinnvoll, im Endeffekt.

Fabian

Ah ja, okay.

Fabian

Aber dann sozusagen immer einen

Jochen

File-Server, zentralen File-Server als so

Jochen

Quelle der Wahrheit, was da liegt, ist dann eigentlich

Jochen

das, was

Jochen

sozusagen

Jochen

rausgekommen ist.

Jochen

Das ist schon interessant,

Dominik

wie man so mit Merch-Konflikten umgeht dann an der

Dominik

Stelle. Ich überlege auch

Jochen

gerade, ob es da irgendwie sowas wie Git oder so

Jochen

geben könnte, keine Ahnung.

Fabian

Hatte ich auch alles schon mal angedacht.

Fabian

Git und Git LFS

Fabian

hört sich ja

Fabian

das gut an, ist aber relativ

Fabian

schwierig und die

Fabian

Lernkurve dafür finde ich auch ziemlich hart

Fabian

für jedermann.

Fabian

Es gibt

Fabian

aber

Fabian

Unreal Engine.

Dominik

Das ist auch aus der Gaming-Szene

Fabian

tatsächlich. Das ist aus der Gaming-Szene,

Fabian

genau. Die haben zum Beispiel eine

Fabian

Git LFS-Anbindung, dass man rein theoretisch

Fabian

sein Projekt komplett über Git LFS machen kann.

Fabian

Macht, glaube ich, keiner.

Fabian

aus genannten Gründen.

Fabian

Beziehungsweise

Fabian

ich kenne niemanden. Was ist denn das Problem

Dominik

in dieser Learning-Kurve bei GitLFS?

Dominik

Na,

Fabian

man kann relativ viel

Fabian

immer noch kaputt machen,

Fabian

bis man quasi so in diese Arbeitsweise

Fabian

reingekommen ist von, okay,

Fabian

ich stage meine Sachen, dann committe ich sie,

Fabian

dann pushe ich sie, okay, ich muss die aber

Fabian

auch wieder runterpullen und dabei dann

Fabian

eben auch aufpassen, dass

Fabian

ja, meine Pre- und Post-Commit-Hooks

Fabian

da alle mit Git-LFS

Fabian

alles das machen, was sie sollen.

Dominik

Ich glaube, schwierig wird es halt tatsächlich bei so Merch-Konflikten, weil du halt nicht

Dominik

einfach den Code

Dominik

nicht zusammenfügen, einfach

Dominik

so und sagen, hey, die Stelle ist jetzt okay, die nicht,

Dominik

sondern du kannst dich halt wahrscheinlich nur für sein Entweder-

Dominik

oder unterscheiden, also entweder das Bild

Dominik

vom Server oder halt mein Bild

Dominik

irgendwie und das ist halt bestimmt schwierig.

Dominik

Ja, ganz

Dominik

genau, das

Fabian

ist zusätzlich noch so.

Fabian

Auch da haben aber die 3D-Programme zum Teil noch ganz gute Kniffe,

Fabian

weil deren File-Formate sind meistens auf ASCII ausgelegt.

Fabian

Sprich, wenn man ein bisschen findig ist, kann man die einfach selbst aufmachen

Fabian

und da ein bisschen drin rumfuhrwerken und am Ende sogar seine Szene retten.

Fabian

Also funktioniert manchmal, manchmal funktioniert es nicht.

Fabian

Aber auch da sehr clever.

Dominik

Ich überlege gerade, was halt passiert.

Dominik

Also, ob

Dominik

so eine Videoproduktion aus

Dominik

mehreren Schichten besteht, wo es halt quasi

Dominik

ein Urbild gibt, also quasi das, was eine normale

Dominik

Kamera aufgenommen hat und dann die einzelnen

Dominik

Effekte drübergelegt werden, einer

Dominik

nach dem anderen oder ob die alle

Dominik

irgendwie gemirsch werden und dann alle gleichzeitig irgendwie

Dominik

ablaufen und welcher halt

Dominik

dann der Layer ist,

Dominik

der am nächsten an diesem Realbild dann dran ist

Dominik

oder so.

Fabian

Okay, gehen wir von einer normalen Produktion aus, wie wir sie gerade haben, mit echtem Footage. Sprich, du hast, keine Ahnung, Superman und hast ihn vor einem Greenscreen gedreht. Sprich, schöne grüne Leinwand und der soll jetzt erstmal schön durch den Himmel fliegen.

Fabian

dann wird es wahrscheinlich der Job von dem 3D-Artist sein, dass der dir erstmal einen schönen 3D-Himmel baut.

Fabian

Kann er. Noch ein paar Wolken mit rein, dass er alles schön mitmacht.

Fabian

Und dann gibt es, wenn diese Layer quasi fertig sind, noch den Job des Compositors, der diese Layer zusammenfügt.

Fabian

Sprich, der sieht dann zu, okay, den grünen Hintergrund, den machen wir mal weg.

Fabian

Dann sehen wir noch zu, dass wir hier noch, keine Ahnung, das Cape flattert noch ein bisschen, da war noch ein Kabel dran, das geht auch noch mit da weg und ja, damit jetzt die Wolken hier auch noch so schön aussehen, muss ja eine Wolke davor und eine Wolke dahinter, dass der da schön durchfliegt.

Fabian

Das ist dann eher eben dessen Job.

Fabian

Und zusätzlich kommt noch dazu,

Fabian

dass man dann meistens auch so farblich ein paar Sachen anpasst,

Fabian

weil das, was du in 3D renderst,

Fabian

ist dadurch, dass es artifiziell ist,

Fabian

eigentlich sehr schwer mit Echtzeit abzugleichen.

Fabian

Also was in der echten Kamera gefilmt wurde.

Fabian

Ich meine, man muss sich ja nur vorstellen,

Fabian

okay, ich filme das echte Leben draußen,

Fabian

Und da sind ja wahnsinnig viele physikalische Sachen am Werk. Lichtbrechung, Reflektionen, Licht schimmert durch Bäume und wird absorbiert und wieder zurückgeworfen hundertmal. Und wenn wir das alles wirklich physikalisch durchrechnen würden, ja, dann würden wir auch in einem 3D-Programm auf das exakt gleiche Bild kommen, würden aber auch Ewigkeiten warten.

Fabian

Sprich, man nimmt

Fabian

eine Menge ab.

Fabian

Absolut.

Fabian

Jeder Simulationsartist,

Fabian

der in den Himmel guckt und ein paar Wolken sieht,

Fabian

denkt sich so, ach, ja.

Fabian

Kleine Cumulus Cloud, ach,

Fabian

Nächtszeit.

Fabian

Genau, deswegen nimmt man eine Menge Abkürzungen

Fabian

und der Compositor zieht das

Fabian

dann quasi wieder zusammen und

Fabian

blendet quasi die Tricks,

Fabian

die da so sind, wieder zusammen.

Dominik

Aber wenn ich das richtig verstehe, ist halt quasi das Einzige,

Dominik

was uns daran hindert, so wirklich

Dominik

so live richtig tolle Echtbilder

Dominik

zu machen, so die Rechenpower, die dahinter

Dominik

steckt.

Fabian

Ja, im Grunde genommen schon, ja.

Fabian

Ich meine, gute Software

Fabian

wäre auch ganz nett dazu,

Fabian

aber ja, es

Fabian

ist einfach die absolute

Fabian

Rechenpower, die dahinter steckt,

Fabian

die man da eben braucht.

Fabian

Ich meine, es gibt ja bestimmte

Fabian

Programme, Unreal Engine schreibt sich

Fabian

ja auch auf die Fahne, dass die da wunderbar realistisch

Fabian

sind und du die tollsten Games mitmachen

Fabian

kannst. Aber auch die benutzen halt

Fabian

ihre eigenen Tricks und Kniffe,

Fabian

dass sie halt sehr viel vorberechnen und dann

Dominik

wieder benutzen. Auch die haben sich natürlich im Laufe

Dominik

der Jahrzehnte jetzt schon entwickelt.

Dominik

Früher war das natürlich bestimmt noch viel

Dominik

aufwendiger. Gibt es da irgendwie so einen Faktor,

Dominik

den man sagen kann, so ja, wenn es jetzt noch so

Dominik

zehnmal schneller wäre, dann wäre es halt

Dominik

irgendwie total cool oder so.

Dominik

Oder wenn es jetzt noch hundertmal schneller wäre,

Dominik

dann wäre es so wie in echt. Oder würdest du sagen,

Dominik

ja, okay, da ist noch wirklich richtig viel zu tun?

Fabian

Es entwickelt sich in sehr vielen Enden, in sehr viele verschiedene Richtungen.

Fabian

Also ja, es gibt schon Möglichkeiten, wie du Sachen in Echtzeit dir anzeigen lassen kannst und so.

Fabian

Es ist quasi mehr eine Art und Weise, wie du selbst arbeitest.

Fabian

Kannst du damit leben, dass du gerade nur eine graue Kugel siehst?

Fabian

Oder möchtest du den Fußball wirklich voll ausgeleuchtet mit allen Lichtern an und schön austexturiert?

Fabian

Und genau, im Endeffekt ist es da so ein bisschen,

Fabian

auf was es einen selbst darauf ankommt.

Fabian

Das, was am Ende auf der Leinwand passiert,

Fabian

ich meine, das ist ja dann eh fertig berechnet,

Fabian

das ist ja dann eh immer flüssig und schick.

Fabian

Bei Game Engines müssen natürlich noch entsprechende Leute ran,

Fabian

dass das alles flüssig läuft.

Fabian

Aber für die Film- und Fernsehbranche ist es ja fast irrelevant,

Fabian

weil das Endprodukt wird immer gut aussehen oder sollte immer gut aussehen.

Dominik

Das heißt, es geht tatsächlich darum, wie du in deinem Zwischenschritt

Dominik

was für eine Visualisierung du von deiner akuten Arbeit hast,

Dominik

also wie du quasi direkt eingreifen kannst

Dominik

und wie gut das visualisiert ist, was du da machen willst.

Dominik

Genau.

Dominik

Theoretisch könntest du also immer die Pauseknopf drücken

Dominik

und dann 72 Stunden rennen lassen

Dominik

und dann hättest du das quasi jetzt Bild in super toll

Dominik

und dann machst du halt dann da weiter.

Dominik

Und dann ist es natürlich für den Zwischenschritt wieder nur,

Dominik

wie du sagtest, in grauen Kugeln oder so.

Fabian

Genau. Das könnte

Fabian

man so machen, wie man denn willte.

Fabian

Genau, und deswegen gibt es auch immer

Fabian

wieder so Zwischenschritte, wo man das

Fabian

macht. Animatoren zum Beispiel

Fabian

machen gerne Playblasts.

Fabian

Das sind wirklich nur

Fabian

sehr simpel gerenderte Szenen,

Fabian

wo sie quasi ihre Animationen

Fabian

einmal flüssig abspielen können.

Fabian

Oder einmal flüssig sehen. Nur als

Fabian

Bildmaterial. Das ist dann

Fabian

als, okay, du hast deinen Charakter vielleicht

Fabian

als grauen Menschen,

Fabian

aber es ist ja eigentlich egal,

Fabian

wenn er sich an die,

Fabian

keine Ahnung, ans Kinn greift,

Fabian

dann, ob er nun blau oder

Fabian

grün ist, ist ja nun wirklich wurscht eigentlich.

Fabian

Ähm, genau.

Dominik

Weil es dann die Bewegung an sich ankommt dann, ja, und die kann man

Dominik

halt dann anders darstellen, da braucht man halt

Dominik

den Rest nicht dazu.

Dominik

Das heißt, man reduziert quasi verschiedene Dimensionen,

Dominik

um sich auf das zu konzentrieren,

Dominik

was man gerade modellieren möchte.

Dominik

Genau.

Fabian

Im Grunde genommen ist es das.

Fabian

Ich meine, vielleicht

Fabian

landen wir irgendwann mal in einer Welt,

Fabian

wo alles sofort immer

Fabian

echtzeitphysikalisch machbar ist

Fabian

in allen Programmen, aber noch

Fabian

sind wir nicht da. Aber ich meine,

Fabian

die Rechenpower und so, die wird

Fabian

doch immer besser.

Jochen

Ja, klar. Ich meine, kann man sich da

Jochen

nicht vielleicht auch einem der

Jochen

Tricks bedienen, den

Jochen

die Spiele besser aussehen lassen? Ich meine, da wird

Jochen

ja jetzt inzwischen fast alles in

Jochen

GPUs gerechnet. Gibt's

Jochen

da eigentlich irgendwie

Jochen

wird das jetzt auch beim

Jochen

Rendern gemacht oder ist das alles

Jochen

noch CPU oder

Fabian

Es gibt schon

Fabian

Hybrid-Render, die sogar beides

Fabian

benutzen können, GPU und CPU.

Fabian

Das

Fabian

großer Ding

Fabian

als immer

Fabian

der Speicherplatz auf deiner Grafikkarte.

Fabian

Ah, ja, ja.

Fabian

Also wir haben zum Teil

Fabian

Texturen, sprich,

Fabian

das so wie,

Fabian

keine Ahnung, wenn du eine Jacke an hast,

Fabian

dann ist da eben der Jeansstoff

Fabian

drauf, so wie er eben aussehen soll.

Fabian

Und das sind halt auch nur Bilder.

Fabian

Und die sind im Durchschnitt bei uns

Fabian

4K groß, sprich

Fabian

4096

Fabian

mal 4096.

Fabian

das

Fabian

frisst dann gerne mal so

Fabian

300-400 Megabyte auf deiner Grafikkarte

Fabian

dann hast du von den Dingern

Fabian

10 und dann ist die voll

Fabian

und dann war's das

Fabian

dann war's das auch wieder mit

Fabian

Echtzeit

Fabian

Ja, also

Dominik

Neukarten, die können relativ viel von sowas machen

Dominik

glaube ich

Fabian

Wird auch immer besser, also ist auch wirklich

Fabian

toll, was sie inzwischen damit können, aber

Fabian

ja, wir haben auch massenhaft

Fabian

Daten, die wir da versuchen

Fabian

raufzupressen und irgendwann gibt es halt

Fabian

den Cut. Okay, Grafikkarte voll.

Fabian

Ich benutze wieder

Fabian

die Festplatte und

Fabian

trittst da erstmal

Fabian

wieder schön auf die Bremse.

Fabian

Ja.

Fabian

Das Interessante ist auch,

Fabian

irgendwer hat das mal gesagt,

Fabian

die 3D-Branche

Fabian

ist schon

Fabian

peinlich

Fabian

parallelisierbar.

Fabian

Sprich, wenn man so eine 3D-Szene

Fabian

hat, die ist so in sich abgeschlossen,

Fabian

dass man die unheimlich gut

Fabian

multithreaten und parallelisieren kann.

Fabian

Weil

Fabian

es ist ja quasi alles bekannt, es ist

Fabian

alles da, es ist alles eingestellt, also

Fabian

du kannst

Fabian

jedem Core quasi sagen, okay, du fängst

Fabian

da an, du fängst da an.

Fabian

Ja, von der Zeit her

Jochen

kann ich mir vorstellen, dass das sehr gut möglich ist.

Jochen

In ein Bild zerlegen stelle ich mir

Jochen

schwer vor, wenn irgendwo eine Lampe über das ganze

Jochen

Bild leuchtet, dann

Jochen

muss, dann hängen

Jochen

die ja die Sachen voneinander ab, ne? Aber

Jochen

ja, man kann

Jochen

natürlich in der Zeit super, kann man

Jochen

splitten, ja.

Fabian

Sprich, die Renderer gehen natürlich auch

Fabian

voll auf Chors ab, also

Fabian

wenn du da einen Threadripper drin hast,

Fabian

das merkst du definitiv.

Fabian

Ah.

Fabian

Ja.

Fabian

Auch sehr spannend, ja.

Jochen

Ja, ja, und wenn man dann halt eben beliebig viele

Jochen

Rechner hat, dann ist das auch im Grunde

Jochen

ja nicht so schlimm, wenn das

Jochen

TPU, muss man halt einfach nur mehr Rechner nehmen.

Jochen

Das ist horizontal skaliert.

Fabian

Ich finde es auch spannend an der Stelle, dass

Fabian

Python da auch wieder reinkommt, weil Python an sich ist ja

Fabian

verschrien langsam als Skriptsprache.

Fabian

Aber das ist unheimlich egal an dieser Stelle.

Fabian

Weil was ich an der Sache mache, ist quasi

Fabian

einfach, okay, die Leute kriegen ihre Daten an der richtigen Stelle und ob das jetzt

Fabian

hundertmal schneller oder tausendmal

Fabian

schneller funktioniert, ist vollkommen

Fabian

egal.

Fabian

Das ist

Fabian

so ein wunderbarer Use Case

Fabian

von, okay,

Fabian

du musst die richtige Sprache benutzen

Fabian

für den richtigen

Fabian

Anwendungsfall.

Fabian

Ich kann das alle, ich kann nicht, aber

Fabian

man könnte das alles in C ausprogrammieren,

Fabian

wer so wahnsinnig ist,

Fabian

dann wäre es auch wahnsinnig schnell, aber es macht keinen

Fabian

Unterschied.

Jochen

Ne, klar. Also manchmal ist die

Jochen

Geschwindigkeit, mit der man irgendetwas hinschreiben kann,

Jochen

halt die viel wichtigere.

Jochen

Ja, wenn Dinge halt nicht so oft

Jochen

ausgeführt werden.

Jochen

Ja, aber ich meine,

Jochen

spielt das eigentlich bei euch irgendeine Rolle?

Jochen

Man könnte ja auch Dinge dann in Python schnell machen.

Jochen

Also eben im Bereich

Jochen

Machine Learning und so, da wird ja auch

Jochen

tatsächlich viel selbst in Python gemacht.

Jochen

Und ich weiß jetzt nicht, wie es mit Bilddaten aussieht

Jochen

und so, aber man könnte da ja auch,

Jochen

indem man das Ganze zum Beispiel

Jochen

die Bilder irgendwie in NumPy Arrays

Jochen

hat oder so und dann darauf

Jochen

irgendwelche Transformationen machen oder so, es müsste

Jochen

dann eigentlich auch schnell sein. Oder

Jochen

dass man halt irgendwie, keine Ahnung,

Jochen

per

Jochen

Seiten halt irgendwie

Jochen

Python-Code in

Jochen

oder zumindest die heißen inneren

Jochen

Schleifen

Jochen

und Funktionen halt sozusagen in

Jochen

C zuerst übersetzt

Jochen

und dann wieder als C-Modul wieder einbindet.

Jochen

Denn damit könnte man es ja auch sehr schnell machen.

Jochen

Wird das irgendwie verwendet oder ist das

Jochen

da, wenn, ich meine, solange Python halt

Jochen

zum Steuern verwendet wird, ist es ja egal

Jochen

im Grunde, da brauchst du das alles nicht.

Fabian

Es wird jetzt immer interessanter

Fabian

mit dem Machine Learning, weil

Fabian

es gibt so gewisse Schritte

Fabian

in der 2D und 3D Bearbeitung,

Fabian

die halt unheimlich nervig und

Fabian

langweilig sind. So das beste

Fabian

Beispiel ist Sachen ausschneiden.

Fabian

Sprich, okay, Mann geht von A nach B,

Fabian

schneid den mal aus.

Fabian

Und das lässt

Fabian

sich unheimlich, was halt,

Fabian

Also unheimlich gut noch nicht, aber es lässt sich langsam machen mit Machine Learning.

Fabian

Wir hatten da auch schon erste Ansätze, allerdings muss man da auch schon noch durch ganz schön viele Hoops springen,

Fabian

bis man da ankommt, wo man hin will.

Fabian

Aber so automatisiert Sachen ausschneiden, das wird echt unsere Branche nochmal ganz gut aufmischen.

Fabian

Genau, im Moment hapert es noch an so der Größe der Bilder zum Beispiel.

Fabian

Die meisten gehen da so auf 512x512 Pixel, verständlicherweise.

Fabian

Ja gut, wenn du jetzt so ein 4K-Bild hast, dann musst du das erstmal zerlegen in, keine Ahnung, 8-12 Bilder oder so,

Fabian

die du dann einzeln da durchjagst, dann hast du im Endeffekt auch nicht mehr so viel gewonnen,

Fabian

weil das, was am Ende rauskommt, ist auch

Fabian

naja, sagen wir mal

Fabian

80% da, wo es eigentlich sein sollte.

Fabian

Und man kommt dann noch an so andere Probleme,

Fabian

wie zum Beispiel

Fabian

ein Mann geht durchs Bild.

Fabian

Ja, okay, den Mann kannst du ausschneiden.

Fabian

Okay, jetzt hat der Mann aber auf einmal einen Hut auf.

Fabian

Dafür ist jetzt das Machine Learning

Fabian

Modell aber nicht trainiert.

Jochen

Das ist nur auf Menschen ohne Hüte.

Jochen

Gibt es nur in den Trainingsarten,

Jochen

in den Trainingsarten waren keine Hüte drin.

Jochen

Tja, das ist doof.

Fabian

Okay, jetzt darfst du es erst noch

Fabian

trainieren auf Hüte.

Fabian

Das ist ja jetzt auch irgendwie schwierig.

Fabian

Ja.

Fabian

Aber ja, da gibt's auch

Fabian

jetzt erste Fortschritte.

Fabian

Es wird

Fabian

auch noch sehr interessant

Fabian

für zum Beispiel

Fabian

so, keine Ahnung,

Fabian

wenn du Sachen verschönern willst,

Fabian

keine Ahnung, der

Fabian

Tom Cruise hat einen Pickel auf der Stirn oder so

Fabian

und bewegt sich durchs Bild.

Jochen

Oh, und jetzt muss das aus jedem Bild raus

Jochen

retuschiert werden.

Jochen

Genau.

Fabian

Da ist Machine Learning aber auch schon

Fabian

ganz gut am Start und die

Fabian

Ergebnisse sind

Fabian

eigentlich sehr, sehr gut, muss man

Fabian

sagen. Da

Fabian

hätte vorher dann halt ein Artist

Fabian

irgendwie eine Woche dran gesessen

Fabian

und wenn das ein Rechner in einer Stunde

Fabian

kann, dann ist das definitiv

Fabian

cool.

Jochen

Ja, witzig. Ja, klar.

Jochen

da gibt es natürlich auch jede Menge Anwendungen dafür.

Jochen

Ja.

Jochen

Ja, oder da gibt es etwas, was ich

Jochen

ab und zu sehe ich mal so Demos,

Jochen

ich habe aber keine Ahnung, inwiefern das schon

Jochen

soweit ist, dass man das benutzen

Jochen

kann, dass man halt sagt, okay,

Jochen

also alles, was so in die Richtung Style

Jochen

kann, also diese

Jochen

Generative Adversarial Networks

Jochen

geht, dass man sagt, okay, man hat jetzt hier ein Bild

Jochen

von, weiß ich nicht, irgendeiner Kirche oder so und das hätte

Jochen

man jetzt gerne in einem anderen Stil und dann

Jochen

muddelt es das Ding halt irgendwie um oder man hätte

Jochen

jetzt gerne irgendwie da einen Baum

Jochen

davor oder solche Sachen.

Jochen

Ja, das wird dann auch sehr spannend.

Jochen

Aber ist wahrscheinlich jetzt noch nicht wirklich verwendbar.

Dominik

Ich stelle mir solche Dinge vor, du beschreibst eine Szene in

Dominik

Worten. Ja, das gibt es auch.

Dominik

Und es generiert dir dann tatsächlich

Dominik

daraus dein Gedankenuniversum

Dominik

oder sowas. Du könntest zum Beispiel

Dominik

schreiben, ich hätte gerne eine Kirche mit so und so

Dominik

vielen Fenstern und einem langen Gang und 15

Dominik

reinen Bänken. Ja?

Fabian

Ja, genau, das gab es schon.

Fabian

So à la Holodeck,

Fabian

dass du eben dann wirklich nur,

Fabian

ich weiß ja nicht mehr, wie das Programm hieß,

Fabian

Aber es war wirklich so, okay, ich habe einen Tisch, da sind vier Stühle dran, da sind noch eine Serialenschlüssel obendrauf.

Dominik

Das wird dir dann mega, mega, mega krass interessant.

Dominik

Also wenn du das dann hinbekommst mit sowas wie der Unreal Engine und dann halt das augmentiert, eine virtuelle Realität auf irgendeine Brille projizieren kannst,

Dominik

die das in, weiß ich nicht, pro Auge 8K darstellt und in, bitte nicht 24, sondern in 60 FPS oder sowas dann in live.

Dominik

Und dann kannst du dir deine eigene Realität

Dominik

zusammenreden, weil die KI, mit der du

Dominik

redest, das in mehr oder weniger

Dominik

Echtzeit dann als Darstellung

Dominik

bauen kann. Wow.

Jochen

Ja gut, die baut das dann halt so, wie sie das

Jochen

von ihren Trainingssorten her kennen, so wie du dir das

Dominik

vorstellst. Ja, aber das kann man ja

Dominik

dann anklären. Das ist ja dann der Trick,

Dominik

dass man halt dann irgendwie selber

Dominik

ein bisschen modifiziert und dann Streams baut.

Dominik

Ich habe gerade noch mal geguckt, wo das herkommt.

Dominik

Es gibt es von OpenAI,

Jochen

gibt es so ein Ding, das nennt sich

Jochen

Dolly

Jochen

oder Doll-E.

Jochen

Das ist auch von dem Namen her

Jochen

angelehnt an Wall-E.

Jochen

An diesen

Jochen

Pixar-Film.

Jochen

Und das macht halt eben Text zu Bildern

Jochen

und so. Und das ist auch sehr, also

Jochen

die Demos hier sehen super aus, aber das Problem

Jochen

ist natürlich, die sind auch dann so ausgewählt,

Jochen

dass das halt natürlich nicht gut funktioniert.

Dominik

Genau, das Ding halt dann zu bauen, diese Komplexität

Dominik

in diesen 3D-Modellen, die halt mehr sind

Dominik

als irgendwie nur zwei Bilder, sondern die halt dann

Dominik

tatsächlich eine ganze Szenerie mit den ganzen physikalischen

Dominik

Eigenheiten dieser Rigs und

Dominik

die da drin stecken und ich weiß nicht,

Dominik

was da noch, also du hast jetzt gesagt, also okay, ich habe

Dominik

jetzt ein 3D-Modell, das ist ja so das erste,

Dominik

dann ist das mit einem Rig gefüllt und dann

Dominik

wird das irgendwie texturiert

Dominik

und beleuchtet irgendwie,

Dominik

ja, und dann

Dominik

irgendwie platziert in anderen,

Dominik

mit anderen Objekten in Interaktion gesetzt

Dominik

und sowas, also das sind ja schon irgendwie so

Dominik

mehrere

Dominik

Komplexitätsschichten übereinander, die alle für sich

Dominik

schon schwierig

Dominik

genug sind, ja, also um darüber nachzudenken

Dominik

und also in der Realität zu platzieren, wenn ich jetzt

Dominik

irgendwie die Realität mir anschaue und isolieren

Dominik

möchte, dann bin ich da ja alleine

Dominik

schon sehr gut beschäftigt, glaube ich.

Dominik

Ja, genau.

Dominik

Es nimmt halt

Fabian

sehr stark, starke

Fabian

Komplexität an. Je mehr du

Fabian

dahin zufügst, desto

Fabian

ja, mehr muss man

Fabian

halt hinterher sein, das alles ordentlich aufzusplitten

Dominik

und... Aber wenn das halt geht und das alles mit

Dominik

Python ist, finde ich natürlich sehr cool.

Dominik

Dass das wirklich möglich ist,

Dominik

also sowas mit... Also es

Dominik

weiß ich gar nicht, ist diese

Dominik

Renderer, den es da gibt, von der

Dominik

Engine ist der auch, also

Dominik

von der Unreal Engine auch Python

Dominik

getrieben?

Fabian

Ne, also dieser Renderer

Fabian

von Unreal Engine, das ist wirklich

Fabian

interner C-Code, der

Fabian

das da betreibt.

Fabian

Unreal Engine lässt sich aber auch inzwischen

Fabian

mit Python auch steuern. Also es gibt

Dominik

halt tatsächlich so einen Rapper oder sowas, der halt sagt,

Fabian

okay. Genau. Ich glaube auch mit Lua übrigens.

Fabian

Also falls

Fabian

da Ambitionen sind.

Fabian

Aber Game-Engines

Fabian

müssen einfach auf C-Code eigentlich

Fabian

gehen, weil

Fabian

das ist einfach viel zu langsam,

Fabian

was du mit Python da erreichen könntest.

Fabian

Das würde niemals

Fabian

60 FPS

Fabian

erreichen.

Fabian

Also kann ich mir nicht vorstellen.

Fabian

Ich meine, es gibt natürlich so Sachen wie

Fabian

PyGame zum Beispiel,

Fabian

mit dem man sich so sein eigenes kleines Python-Game

Fabian

zusammenschreiben kann.

Fabian

Ich weiß aber nicht, wie

Fabian

Finder-3D-Grafik

Fabian

mit drin ist.

Fabian

Na, nee, das ist...

Dominik

Da müsste man jetzt den Herrn Spielmann fragen, der

Dominik

da ein bisschen tiefer drin ist mit seinem Steam.

Dominik

Aber, ja,

Dominik

es ist aber trotzdem sehr spannend, also was man damit

Dominik

halt machen kann, wenn du sagst, halt, das Unreal Engine

Dominik

dafür, dass man C braucht.

Dominik

Was ist denn das, was die Geschwindigkeit dann

Dominik

gibt? Ist das das Rechnen mit irrationalen Zahlen?

Dominik

Nee, nee, nee, also

Jochen

das, was Python... Also ich kann zum Beispiel

Jochen

sagen, was Python langsam macht. Also Dinge, die

Jochen

in Python sehr langsam sind, im Vergleich zum Beispiel

Jochen

Also C ist halt sowas wie ein Funktionsaufruf

Jochen

oder halt ein Methodenaufruf.

Dominik

Weil ich einfach Reference-Counting machen muss, oder warum?

Jochen

Nee, deswegen, weil das halt, das ist

Jochen

halt richtig langsam, weil das ist halt nicht

Jochen

einfach nur, irgendwie in

Jochen

C, wenn das dann halt kopiert ist, das ist halt

Dominik

irgendwie... Ein SM der Anweisung, springe nach.

Dominik

Ja, so, genau, und dann,

Jochen

ja, das ist halt in Python nicht so, da ist halt,

Jochen

da passiert halt ganz, ganz viel. Der ganze Overhead,

Jochen

der halt nicht steckt, also den ganzen Name spät mit

Jochen

fressen muss. Ungefähr halt tausendmal so langsam.

Jochen

Ja, also wenn du in C einen Funktionsaufruf

Jochen

machst und machst in Python ein, dann ist ja in Python

Jochen

halt so, als würdest du das in C tausendmal machen.

Jochen

Also weil ich tatsächlich irgendwie diesen ganzen

Dominik

Wraparound machen muss, weil ich die ganzen

Dominik

Namespaces mitfressen muss, weil ich die ganzen

Dominik

Variablen mitessen muss, weil ich die ganze Syntaktik

Dominik

Schoko mitessen muss, oder warum?

Jochen

Deswegen, weil das nicht ein Funktionsaufruf

Jochen

wie in C ist, sondern das ist halt

Jochen

was viel, viel komplizierteres in Python.

Jochen

Weil das halt auch was viel dynamischeres ist.

Jochen

Weil das halt

Jochen

eine interpretierte Sprache ist. Das ist halt

Jochen

nicht einfach nur das.

Jochen

Also das ist halt einfach was anderes.

Jochen

Und das wirst du auch nicht los.

Jochen

Aber die Frage ist halt, ob du das machen musst unbedingt.

Jochen

Du kannst natürlich auch einfach...

Dominik

Wenn ich tausendmal schnell einen Rechner hätte, wäre das zum Beispiel schon mal zu mich egal.

Dominik

Ja, gut.

Jochen

Aber den Unterschied wirst du immer merken.

Jochen

Aber wenn du jetzt irgendwas ausrechnest oder so,

Jochen

da ist es eigentlich im Grunde nicht mehr...

Jochen

Da hast du diesen Unterschied halt nicht.

Jochen

Also wenn ich in NumPy, weiß ich nicht,

Jochen

zum Beispiel eben zwei Matrizen multipliziere oder so,

Jochen

das wird schwer, das in C genauso schnell hinzukriegen.

Jochen

Und das ist in Python ja auch einfach hingeschrieben.

Jochen

Da schreibst du halt dann A at B oder sowas,

Jochen

wenn du A mit B multiplizierst.

Jochen

Es ist halt sehr schön, einfach das hinzuschreiben

Jochen

und es ist halt trotzdem schneller, als wenn du es in C machen würdest.

Jochen

Außer du machst es halt wirklich, ja, aber dann,

Jochen

also in C ist es halt deutlich schwerer hinzuschreiben,

Jochen

weil da musst du halt dann gucken,

Jochen

dass das halt...

Dominik

Ja, du musst die ganze Implementierung selber bauen, muss dann auch so gut sein,

Dominik

dass du halt die Implementierung so super

Dominik

selbst baust, wie das halt...

Jochen

Du musst halt dann auch dem Compiler sagen, jetzt hier bitte

Jochen

ich weiß, was ich tue, benutze

Jochen

die SIMD-Instructions und

Jochen

ja,

Jochen

wenn ich jetzt hier

Jochen

eine Vorschleife hinschreibe, dann meine ich nicht

Jochen

wirklich eine Vorschleife, das darf auch,

Jochen

die Reihenfolge darf sich auch ändern und

Jochen

keine Ahnung und wenn du das alles machst, dann

Jochen

ist es vielleicht genauso schnell.

Jochen

Aber

Jochen

insofern, also für manche Sachen

Jochen

ist es in Python überhaupt nicht schwer, genauso schnell

Jochen

zu sein. Für andere Sachen ist es

Jochen

halt, ja, ist es halt schwer.

Jochen

Wobei man

Jochen

da eigentlich dann auch mal

Jochen

insofern drum rumkommt, als man

Jochen

dann sagen kann, okay, entweder man nimmt halt so was

Jochen

wie so ein Just-in-Time-Compiler, so

Jochen

ein Number oder man nimmt halt

Jochen

ähm

Jochen

man nimmt halt

Jochen

ein Subset von Python, halt

Jochen

zum Beispiel so was wie Cytan, kompiliert das

Jochen

nach C und dann

Jochen

in ein C-Modul

Jochen

und dann kopiert man das C-Modul und importiert es

Jochen

wieder zurück. Und dann ist es halt

Jochen

auch schnell. Also es gibt da schon

Jochen

Möglichkeiten, das hinzukriegen. Die Frage ist,

Jochen

naja gut, wenn man jetzt so eine Engine hat,

Jochen

die irgendwie... Ja, du würdest eigentlich

Jochen

das machen wie Game Engine.

Jochen

Also ich glaube schon, dass man eine

Jochen

Game Engine in Python schracken könnte. Das geht schon.

Jochen

Die Frage ist...

Jochen

Ja...

Jochen

Hm, ich weiß nicht, ob das jemand schon mal

Dominik

gemacht hat. Ja, wahrscheinlich nicht. Also das ist

Dominik

halt immer auch der größte

Dominik

Flaw, den Python

Dominik

immer so hat, wenn man die Leute unterhält, dass das halt für 3D-Sachen

Dominik

bis jetzt nicht so gut geeignet

Dominik

gewesen ist. Weiß ich gar nicht.

Dominik

Oder was meinst du mit 3D-Sachen? Ja, weil es

Dominik

halt diese Bibliotheken dafür einfach nicht gibt.

Dominik

Also wenn ich jetzt in C oder C++ irgendwelche

Dominik

Frameworks habe, die ja vorher schon

Dominik

prädestiniert sind

Dominik

und dass es in Python einfach nicht den einfachen

Dominik

Rapper gibt, den man so gewohnt ist, wenn man das in der

Dominik

Hand hat, sondern dass es einfach viel, viel länger dauert,

Dominik

wenn man das anders macht.

Jochen

Also für mich wäre die Frage halt, was du genau meinst mit

Jochen

was da gemacht werden soll.

Jochen

Weil, wie gesagt...

Dominik

Vielleicht möchte ich tatsächlich sowas haben wie eine Figur, die animiert

Jochen

wird. Ja, wenn die jetzt im Raum drehen soll

Jochen

oder so. Live Bilder sehen.

Jochen

Genau. Ja, denke ich, kannst

Jochen

du in Python wahrscheinlich ganz genau so schnell

Jochen

machen wie... Oder ich würde sagen, wenn

Jochen

die Zeit, die du brauchst, um das

Jochen

hinzuschreiben, da bist du in Python wahrscheinlich

Jochen

deutlich schneller

Jochen

und bist halt wahrscheinlich auch

Jochen

vom Code her schneller. Ja, aber das ist doch eine

Jochen

Ne, ich glaube, ich weiß es nicht.

Fabian

Mein Eindruck ist immer, es ist irgendwie

Fabian

relativ schwierig, mit Python

Fabian

irgendwie zur Grafikkarte zu kommen.

Fabian

Das ist irgendwie so.

Fabian

Also, ja, es gibt

Fabian

Anbindungen so für PyOpenGL

Fabian

oder sowas.

Fabian

Geht bestimmt, aber

Fabian

ich weiß nicht, so direkt

Fabian

die Grafikkarte anzusprechen, fällt mir

Fabian

jetzt persönlich nichts ein, wo man

Fabian

sagen könnte, okay, das ist

Fabian

dass man

Fabian

sich da eine Bibliothek reinholt, wo man

Jochen

denkt, okay. Ja, ich kenne es halt nur aus dem

Jochen

Machine Learning Bereich, da gibt es halt

Jochen

CUDA, das ist halt diese Bibliothek

Jochen

oder die

Jochen

von Nvidia

Jochen

und damit geht das, aber ich meine,

Jochen

normalerweise gibt man damit halt keine Bilder aus, sondern man

Jochen

berechnet halt irgendwie

Jochen

keine Ahnung, eben sowas wie Matrizenmultiplikation

Jochen

oder so.

Jochen

Ja, aber da geht das,

Jochen

aber ja, es stimmt schon, es ist ätzend.

Jochen

Man muss halt diese ganzen Bibliotheken

Jochen

installieren. Vielleicht muss das jemand mal neu bauen.

Jochen

Das kannst du leider.

Jochen

Das ist leider nicht so einfach.

Jochen

Ja, das ist auch das Problem.

Jochen

Zum Beispiel auch für diese ganzen Machine Learning-Geschichten

Jochen

kann man nur NVIDIA-Chips verwenden,

Jochen

weil es gibt nur für NVIDIA diese Bibliotheken.

Jochen

Und ich glaube,

Jochen

die AMD-Chips sind halt auch ähnlich

Jochen

leistungsfähig im Grunde,

Jochen

aber kann man einfach nicht verwenden, weil es gibt diese Bibliotheken

Jochen

nicht dafür.

Jochen

Und das ist ja jetzt auch schon

Jochen

Jahre sind Leute dabei, das zu versuchen

Jochen

und es klappt halt nicht. Daher, ich

Jochen

fürchte, das ist nicht so ganz einfach.

Jochen

Es gibt dann so ein bisschen

Jochen

äh, es gibt

Jochen

von Intel, gibt es das irgendwie

Jochen

äh,

Jochen

PlateML

Jochen

oder so, womit man dann auch irgendwie

Jochen

das auf anderen, also

Jochen

ich weiß nicht genau, also es funktioniert aber eigentlich alles

Jochen

letztlich nicht wirklich. Da braucht man halt

Jochen

diese Unterstützung dafür

Jochen

und das gibt es halt nur für Nvidia eigentlich

Jochen

in richtig gut. Und es ist

Jochen

total hakelig, das zu installieren immer.

Jochen

Und wenn man halt nicht aufpasst, ist es halt langsam

Jochen

hinterher. Also es ist

Jochen

ziemlich fies.

Dominik

Also man hat da nicht wirklich Lust drauf?

Dominik

Aufgrund, warum man

Dominik

dann Sprachen wechselt?

Dominik

Naja,

Jochen

für Machine Learning gibt es ja auch keine Alternative.

Jochen

Welche Sprache willst du da wechseln?

Jochen

Da gibt es ja auch nichts anderes.

Jochen

Nee.

Jochen

Es gibt wirklich nichts anderes.

Jochen

Ja, du kannst halt

Jochen

C++ verwenden, aber

Jochen

Yay!

Jochen

Wie ist denn das?

Jochen

Ja, aber wenn es um die

Jochen

Ausgabe geht, ja, nee, keine Ahnung. Also ich habe

Jochen

ehrlich gesagt auch, also Pygame

Jochen

gibt es, ja.

Jochen

Nee, ich weiß nicht, ob es da irgendwas gibt.

Jochen

Aber ich denke mal,

Jochen

im Grunde müsste man das machen können. Kann man eine Grafikkarte

Jochen

nicht einfach irgendwas in den Hauptspeicher legen,

Jochen

in den Grafikkartenspeicher legen und dann sagen,

Jochen

zeig das mal an oder so, das müsste doch eigentlich gehen.

Jochen

Das müssen wir ausprobieren.

Jochen

Aha.

Jochen

Keine Ahnung.

Jochen

Viel Spaß.

Fabian

Mach mal deine Grafikkarte kaputt und erzähl uns davon.

Fabian

Ja.

Dominik

Kann man die Grafikkarte mit sowas kaputt kriegen?

Dominik

Also wenn man sie zu heiß kriegt oder sowas?

Dominik

Ja.

Dominik

Ja.

Dominik

Mach es probieren.

Dominik

Ja.

Jochen

Ja, ja, ja, ja. Interessant.

Jochen

Ja, aber was wäre das denn,

Jochen

wenn du dir was wünschen könntest,

Jochen

weiß ich nicht, was dein Leben irgendwie

Jochen

einfacher machen würde,

Jochen

jetzt sozusagen in

Jochen

diesem

Jochen

Anwendungsfall

Jochen

für Python. Was ist

Jochen

das, was dir da am meisten Schmerzen macht,

Jochen

oder wo man am einfachsten

Jochen

irgendwas verbessern könnte?

Jochen

Grundsätzlich

Jochen

Python 3.

Jochen

Okay, das ist ja fast schon traurig.

Jochen

Ja.

Jochen

Ja, also

Dominik

ich freue mich schon auf Pfeifen 3.10 und denke mir so,

Dominik

ey, alles, was danach oder davor war,

Dominik

das will ich nicht mehr benutzen. Und das ist halt erst

Dominik

irgendwann, dann kommt das raus im August.

Fabian

Ja, ihr glaubt gar nicht, wie sehr ich mich auf

Fabian

F-Strings freue.

Fabian

Ich glaube, mein Code hat immer noch nicht ein.

Fabian

Also das

Fabian

ist schon echt langsam haarig.

Fabian

Was noch?

Fabian

Was würde mich noch freuen?

Fabian

Es gibt schon Ansätze, dass die ganze Industrie sich quasi standardisiert auf gewisse Bibliotheken, die dann auch nach und nach geupdatet werden, sprich, dass man sich alle einigen auf eine bestimmte Compiler-Version, bestimmte Python-Version, bestimmte andere Bibliotheken.

Fabian

Und wenn sich da alle dran halten würden, das wäre super, dass man nicht so die ganze Zeit zwischen diesen Inkompatibilitäten hin und her joggen würde.

Dominik

Ja, du hast gesagt, man kann nicht einfach irgendwie ein Pie-Inf installieren

Dominik

und dann irgendwie seine Version pinnen,

Dominik

sondern muss halt irgendwie mit den Restriktionen

Dominik

jedes einzelnen Programms,

Dominik

der Compiler des jeden einzelnen Programms

Dominik

da arbeiten und

Dominik

dann seine Skripte quasi immer

Dominik

da

Dominik

downgraden oder sowas, wenn man dann irgendwie auf so ein

Dominik

altes Python stößt. Das hätte ich mir furchtbar vor.

Dominik

Ich weiß nicht, ob ich Lust hätte, in Python 2 irgendwas zu machen.

Dominik

Ja, also

Dominik

nur um noch mal

Dominik

so einen kleinen Ausflug zu machen.

Fabian

Es war eigentlich bis jetzt immer in Maya so,

Fabian

dass

Fabian

dadurch, dass Python eingebettet war,

Fabian

musste Python den Kompilierer benutzen,

Fabian

den Maya benutzt.

Fabian

Das ist aber nicht der Standard-C-Kompilierer,

Fabian

den Python normalerweise benutzt, sondern

Fabian

eine ältere Version.

Fabian

Sprich, alle PIP-Module, die eine DLL in sich hatten, wie NumPy oder so,

Fabian

haben erst mal auf Anhieb nicht funktioniert in Maya,

Fabian

weil die Compiler einfach nicht miteinander kompatibel waren.

Fabian

Das heißt, wenn du NumPy benutzen willst, musst du es dir erst mal mit dem anderen Compiler durchkompilieren,

Fabian

bevor du es dann in Maya benutzen kannst.

Fabian

Ja, okay, anstrengend.

Fabian

Absolut, ja.

Fabian

Und ich würde mir auch wünschen, dass die Branche mal so ein bisschen auf Python-Standards umsteigen würde, wie Pip und PyEnv und alles andere.

Fabian

Weil wir sind quasi noch sehr, dadurch, dass die Python-Interpreter eingebettet sind, sehr angewiesen auf die Programme selbst.

Fabian

Also wir machen sehr viel mit Environment-Variablen zum Beispiel.

Fabian

typischerweise so Python-Path.

Fabian

Habt ihr vielleicht schon mal gehört.

Fabian

Wenn man das vorher setzt, dann

Fabian

findet halt der Interpreter in den entsprechenden

Fabian

Pfaden dann die Module.

Fabian

Aber

Fabian

ja, wir müssen uns die halt selbst

Fabian

zusammenklauben und selbst dann so ein bisschen

Fabian

unsere

Dominik

Hard reinhacken, alles injecten und dann

Jochen

läuft es. Genau. Aber habt ihr das mal

Jochen

probiert? Ich meine,

Jochen

ich stelle mir dann vor, genau, das Problem ist sozusagen,

Jochen

dass

Jochen

deine, eben sowas

Jochen

wie NumPy oder so ein Paket installiert hast,

Jochen

das muss halt kompatibel sein zu dem

Jochen

Python-Interpreter,

Jochen

der in der Software drinsteckt,

Jochen

mit der du das verwenden willst.

Dominik

Du brauchst halt sozusagen

Jochen

dein Maya-NumPy

Jochen

für Maya und du brauchst

Jochen

dein, weiß ich nicht, Houdini-NumPy

Jochen

und musst das dann halt

Jochen

umbiegen. Habt ihr mal probiert, das mit

Jochen

Conda-Paketen zu machen, weil in Conda-Paketen

Jochen

kann man solche Sachen ja auch

Jochen

mit reinbauen.

Jochen

Das geht in PIP nicht, aber mit

Jochen

Conda müsste das eigentlich funktionieren.

Jochen

Ich hatte bis jetzt noch

Fabian

nicht viel Zeit, mich in Conda einzuarbeiten.

Fabian

Also ich habe es hier und da schon gehört,

Fabian

viel Gutes auch schon von gehört,

Fabian

aber vielleicht ist das mal ein guter Tipp.

Dominik

Also in Conda kann man sagen, welchen C-Compiler

Dominik

dahinter verwendet werden soll?

Dominik

Nee, du kannst Binärpakete installieren.

Jochen

Und du kannst vor allen Dingen auch

Jochen

Nicht-Python-Pakete installieren auch.

Jochen

Was auch sehr praktisch ist. Also PPX.

Jochen

Ja, du kannst sogar so weit

Jochen

gehen, deine eigene libc mit

Jochen

mitzubringen. Also du kannst halt quasi

Jochen

viel mehr mitbringen, als

Jochen

in einem PIP-Paket ginge.

Jochen

Und natürlich hast du dann

Jochen

immer noch das Problem, dass Conda auch überhaupt gar nicht

Jochen

dafür gedacht ist, sozusagen,

Jochen

dass man halt

Jochen

Ja, gab es

Jochen

oberflächlich eine Mithaltenwelt.

Jochen

Also dieser Use Case,

Jochen

dass du unterschiedliche

Jochen

Versionen von einem Paket hast

Jochen

für unterschiedliche

Jochen

Interpreter

Jochen

in, die eingebettet sind.

Jochen

Dafür ist es auch nicht so wirklich gedacht.

Jochen

Das ist schon ziemlich bizarr.

Dominik

Ich glaube, du kommst daran nicht vorbei, dass du halt einen

Dominik

Python nimmst pro Programm, das du da verwendest.

Dominik

Und die Frage ist halt nur, wie du quasi

Dominik

die geringste gemeinsame Basis findest.

Dominik

Irgendwie das, was halt dann auf allen

Dominik

diesen Programmen dann irgendwie läuft.

Dominik

Das ist halt so das Nervige, wenn dann halt irgendwelche

Dominik

Python 2 Sachen drunter stecken.

Jochen

Ich weiß nicht, kann das sein,

Jochen

dass ihr das dann tatsächlich neu kompilieren

Jochen

müsst, wenn ihr das

Jochen

verwenden wollt und dann halt

Jochen

wartet, wenn das...

Fabian

Also gerade von NumPy

Fabian

wäre das so, genau. Man müsste es

Fabian

neu kompilieren, ja.

Fabian

Genau, weil man könnte ja das auch irgendwie so

Jochen

in allen für die entsprechenden

Jochen

Interpreter kompilierten Versionen irgendwo hinlegen und dann

Jochen

Tricks machen mit den Umgebungsvariablen

Jochen

oder so, dass dann halt das richtige Ding

Jochen

genommen wird, wenn man das...

Fabian

Also wir würden es vorkompilieren

Fabian

und dann umliegen, ja. Genau.

Fabian

Also

Fabian

ein sehr großer Teil unserer Bibliothek

Fabian

liegt auch mit auf dem Server

Fabian

und wird auch quasi die ganze Zeit

Fabian

dynamisch einfach nur hinverlinkt, damit auch

Fabian

absolut sichergestellt ist, dass

Fabian

jeder den gleichen Code ausführt.

Fabian

Ah, ja, ja. Also

Fabian

es gibt

Fabian

also teilweise

Fabian

gibt es schon so Sachen, dass so

Fabian

ja, Code quasi runtergezogen

Fabian

wird auf die lokalen Maschinen und von

Fabian

da aus dann executed wird, aber

Fabian

ein sehr großer Teil unserer Pipeline

Fabian

liegt halt immer noch auf dem Server zentral,

Fabian

was

Fabian

gut und

Fabian

schlecht zugleich ist, weil

Fabian

einerseits kannst du

Fabian

wahnsinnig schnell Sachen verändern,

Fabian

was manchmal einfach notwendig ist,

Fabian

andererseits ist es irgendwie

Fabian

immer die Operation am offenen Herzen.

Jochen

Und es geht dann vor allem gleichzeitig kaputt, wenn es kaputt geht, ne?

Jochen

Ja.

Jochen

Ja.

Fabian

Also, ähm...

Fabian

Also patchst ihr dann wirklich auch die Module

Fabian

dann selber quasi?

Fabian

Genau. Also wir haben ja

Fabian

unsere eigenen Module,

Fabian

die quasi mit unserer Logik

Fabian

da funktionieren und die patchen wir natürlich

Fabian

komplett selbst.

Fabian

Für Third-Party-Sachen,

Fabian

die versuchen wir weitestgehend

Fabian

so gut es geht unangetastet zu lassen,

Fabian

nur manchmal hier und da vielleicht so ein bisschen

Fabian

zu biegen.

Fabian

So in der Art.

Fabian

Aber

Fabian

ja, wir wollen uns

Fabian

jetzt auch nicht ans Bein binden, da unsere

Fabian

keine Ahnung, eigene Version

Fabian

jedes Mal hochzuziehen,

Fabian

nur wenn ein Update kam.

Fabian

Aber

Fabian

ja, eigentlich

Fabian

ist mir das auch immer so ein kleiner Dorn

Fabian

im Auge, dass das da alles immer so live ist

Fabian

auf dem Server und wir

Fabian

immer so ein Git-Repository updaten

Fabian

und irgendwie

Fabian

naja, ich habe noch keinen

Fabian

wirklich guten Weg drum herum gefunden.

Fabian

Vielleicht gibt es ja ein paar größere Experten,

Fabian

die hier auch mal hinkommen möchten

Fabian

und sich erklären möchten, wie das funktioniert.

Jochen

Aber genau, also ja, diese Software-Installations-Story

Jochen

bei Python ist halt echt so ein Problem.

Jochen

Das ist irgendwie nicht gut gelöst.

Jochen

Das ist immer furchtbar.

Dominik

Also habt ihr mal versucht, jemandem, der kein Python kann,

Dominik

eine vernünftige, lauffähige Python-Version,

Dominik

die auch irgendwie selber ein bisschen was kann,

Dominik

ohne jetzt irgendwie per Web-Installer

Dominik

irgendwie auf der Software was zu installieren?

Dominik

also integriert gut.

Fabian

Also, dass er selbst programmieren kann

Fabian

oder dass er selbst ein kleines Programm bekommt?

Dominik

Nein, dass er selber programmieren kann, also dass er

Dominik

eine vernünftige Umgebung hat, dass er einen Interpreter hat,

Dominik

am besten noch mit einer vernünftigen Shell und integriert

Dominik

und mit vernünftigen Paketen und nicht jetzt

Dominik

irgendwie installiert in alle Pfade

Dominik

dieser jeweiligen Systeme, sondern

Dominik

nur die gute Version

Dominik

oder sowas. Also eigentlich sowas wie

Dominik

du hast ein PyInf installiert und

Dominik

du hast dann die Pfade

Dominik

vernünftig gesetzt und

Dominik

du hast dann ein PIP aktualisiert

Dominik

vielleicht noch die Shell dazu,

Dominik

aktualisiert mit einem Paketmanager, irgendwie so.

Dominik

Also ich habe mal angefangen,

Fabian

so ein Developer-Environment-Skript zusammenzubauen,

Fabian

einfach für Leute, wenn ein neuer Developer kommt,

Fabian

zum Onboarden.

Fabian

Ich habe irgendwann, das ist so 50% fertig,

Fabian

also 50% musst du immer noch selber machen an der Stelle.

Fabian

Aber grundsätzlich finde ich das eine interessante Idee,

Fabian

so Leute relativ schnell

Fabian

auch reinzubekommen, aber

Fabian

ja, wie du schon sagst, es ist halt

Fabian

nicht so ganz einfach. Du musst halt alles

Fabian

selbst zusammenziehen, alles an die richtigen Stellen

Dominik

tun und... Unheimlich aufwendig

Dominik

und das ändert sich halt alles so schnell. Das heißt, du musst halt

Dominik

fliegen, weil du kommst halt irgendwie nicht hinterher

Dominik

und dass

Dominik

das nicht gut funktioniert und auf unterschiedlichen

Dominik

Systemen mit unterschiedlichen Rechteverwaltungssystemen

Dominik

die dann irgendwie installiert sind, das ist alles

Dominik

furchtbar anstrengend

Dominik

und das ist nie so, dass es irgendwie

Dominik

also jetzt auf verschiedenen Systemen

Dominik

Python nicht so integriert, dass man einfach sagen kann,

Dominik

hey cool, es ist da und

Dominik

renn mal los. Das ist wahrscheinlich auch

Dominik

der Grund, weil ich glaube, die ganzen Programme, die du da

Dominik

verwendest, sind hauptsächlich auf Windows, ne?

Dominik

Ne, hauptsächlich auf Linux.

Dominik

Auf Linux, tatsächlich. Es gibt

Fabian

ein paar Ausnahmen,

Fabian

Photoshop

Fabian

zum Beispiel, aber

Dominik

Aber warum verwenden die denn alle einen

Dominik

so veralteten Python-Elektriker? Das verstehe ich dann wieder nicht.

Dominik

Also wir arbeiten

Fabian

firmenintern auch noch mit CentOS

Fabian

7. Auch da ist noch

Fabian

Python 2 Default installiert.

Fabian

Und wie gesagt,

Fabian

die Branche ist unheimlich konservativ,

Fabian

was ihre eigenen Applikationen

Fabian

angeht. Also mach um Gottes

Fabian

Willen nichts kaputt.

Fabian

Die meisten User sind sowieso

Fabian

schon angepisst

Fabian

genug von den ganzen Bugs, die sie immer mit reinbekommen

Fabian

in die neuen Versionen.

Fabian

Aber ja, jetzt sind

Fabian

die meisten halt mal ins kalte Wasser gesprungen.

Fabian

Oh ja,

Fabian

davon haben wir einige.

Fabian

Ja, es gibt ja

Fabian

diesen schönen Trend von

Fabian

jetzt einfach schon die nächste

Fabian

Jahreszahl immer an die Software-Version mit

Fabian

ranpacken. Also Maya

Fabian

2022 und so. Und naja,

Fabian

böse Zungen aus der Branche sagen dann

Fabian

immer, ja, das ist die Jahreszahl, wo du es verwenden kannst.

Fabian

Ja.

Fabian

Ja, also

Fabian

Also es gibt durchaus Hotfix-Patches, die sind 1,5 Gigabyte groß.

Fabian

Also mit sowas schlagen wir uns auch gerne mal rum.

Fabian

Re-Nerd.

Fabian

Tja.

Fabian

Ja, ja, ja.

Fabian

Ansonsten, um so kleine Programme an User oder Leute rauszubekommen,

Fabian

kann ich echt Pi-Installer

Fabian

nur empfehlen.

Fabian

Das ist wirklich, wirklich cool.

Fabian

Machst du aus einer

Fabian

kleinen Applikation einen einzigen

Fabian

Pfeil im Endeffekt

Fabian

und packst

Fabian

den irgendwo hin. Funktioniert.

Fabian

Derjenige braucht keinen Python

Fabian

installiert haben.

Fabian

Der packt alles zusammen, was er so

Fabian

braucht. Ich meine, klar gibt es da hier und da

Fabian

noch so ein paar kleine Kniffe.

Fabian

Der macht ein ganzes Boulder, oder?

Dominik

Der macht halt nicht so eine Excel mit external dependencies.

Dominik

da muss man so ein bisschen noch fummeln und

Dominik

so Specification-Dateien irgendwie

Dominik

konfigurieren und sowas, damit er es macht.

Dominik

Genau, aber

Fabian

was er so Default macht, ist eigentlich schon relativ

Fabian

easy peasy.

Fabian

Klar, je komplexer die

Fabian

Bibliotheken sind, die du benutzt,

Fabian

desto schwieriger wird das Ganze

Fabian

da zurecht zu fummeln.

Fabian

Aber im Endeffekt,

Fabian

ich habe

Fabian

sehr gute Erfahrungen damit gemacht.

Fabian

Wir haben auch so drei, vier, fünf

Fabian

kleine Applikationen in der

Fabian

in der Firma.

Fabian

Die funktionieren damit tadellos.

Fabian

je kleiner es ist, desto besser natürlich.

Fabian

Ich meine, du kannst natürlich da auch

Fabian

sonst was reinknallen.

Fabian

Dann dauert das natürlich auch

Fabian

fünf Minuten, bis das Programm offen ist, aber

Fabian

braucht ja keiner.

Fabian

Oh, das erinnere ich mich, denn ich habe

Dominik

ein kleines Programm, das ich auch mit

Dominik

Pineseller gepackt habe, als Binary geschrieben,

Dominik

das nichts anderes macht, als

Dominik

YouTube zu fragen, hey, gib mir mal diesen

Dominik

Link zu diesem Suchbegriff.

Dominik

Dafür muss man

Dominik

YouTube-API-Key bestellen und

Dominik

ich muss jetzt ein Video einreichen,

Dominik

der meinen Workflow

Dominik

beschreibt, damit ich diesen API-Key ein Kontingent

Dominik

bekomme.

Dominik

Ja, traurig.

Dominik

Ja, ein Screencast soll ich machen.

Dominik

Ja.

Dominik

Aber das nur so als Beispiel für Sachen, die

Dominik

mein Pineseller tun. Das war eine ziemliche

Dominik

Querverknüpfung.

Dominik

Tja, ja.

Dominik

Ja, ja, ich bin

Jochen

da habe ich

Jochen

dann auch nichts mehr von gehört. Es gab da noch andere

Jochen

Ansätze. Es gab zum Beispiel irgendwie den Ansatz

Dominik

Nuitka gibt es noch.

Jochen

Genau, das gibt es noch. Aber das war auch

Jochen

nicht das Hippe. Es gab irgendwie noch das Hippe.

Jochen

Wie hieß das denn noch?

Jochen

Das hat irgendwie das in Rust

Jochen

geschriebene...

Fabian

Ja, ich habe es auch

Fabian

gehört, aber ja.

Fabian

Rust installieren und so weiter.

Fabian

Ja, ich weiß nicht.

Fabian

Ich habe die vergessen.

Fabian

Und dann gab es auch noch das

Fabian

von... PyOxidizer?

Jochen

Ja, genau, das ist richtig, genau.

Jochen

Ja, ja, aber da habe ich

Jochen

auch lange nichts mehr von gehört.

Jochen

Es funktioniert alles immer so mittel,

Jochen

ehrlich gesagt.

Dominik

Dass irgendwie eins von den Dingen so unkompliziert mit jedem Paket

Dominik

funktionieren würde in jeder Größe und

Dominik

mir so eine Single-Binary-File

Dominik

baut, die auf einem System läuft, das kein Python

Dominik

konzentriert hätte, mit allem drin und

Dominik

ohne Probleme und alles direkt mit

Dominik

einpackt, was dazugehört mit den Dependencies,

Dominik

weil ich irgendwie nur auf, weiß ich nicht, eine PyProject

Dominik

oder eine Requirement zeige.

Dominik

Gibt es noch nicht.

Jochen

Ja, das ist wahrscheinlich einfach nicht so einfach.

Jochen

Ja, warum denn nicht?

Dominik

Sollen wir darüber noch eine Folge aufnehmen,

Dominik

warum das so einfach ist?

Dominik

Hört sich was an.

Dominik

Ja, ja, ja.

Dominik

Ich weiß gar nicht, wie das

Dominik

hier

Jochen

Marc-André Limburg hatte ja auch so

Jochen

ein Ding geschrieben.

Jochen

Das packt auch so Pakete.

Jochen

Ja, und der macht da ganz schön viele Tricks.

Jochen

der packt das Ganze dann in so ein ZIP-Archiv,

Jochen

benutzt dann die

Jochen

Import, dass man daraus halt

Jochen

Dinge importieren kann in Python.

Jochen

Dann strippt er dann auch irgendwie die ganzen Kramen raus,

Jochen

damit das halt deutlich kleiner wird.

Jochen

Dann wird das halt irgendwie, ist das nur noch ein paar Megabyte groß.

Jochen

Aber das ist, das sah auch

Jochen

schon, das sah auch schon nach

Jochen

fortgeschrittener Magie aus.

Dominik

Ja, das ist schon auch trotzdem, immerhin 20 MB

Jochen

oder so? Nee, nee, weniger.

Jochen

16? Nee, 4, 5.

Jochen

Und zwar komplette Standard-

Jochen

Bibliothek mit drin. Ja, okay.

Jochen

Also das ist schon

Jochen

sehr klein. Aber funktioniert, glaube ich,

Jochen

auch nur auf Linux.

Jochen

Tja, tja.

Dominik

Ich glaube, wir sind beim Pick der Woche angelangt.

Dominik

Ja, wollen wir. Können wir gerne.

Dominik

Ich habe mir was Grafisches überlegt.

Dominik

Ja. Da habe ich ja

Dominik

letzte Woche ein bisschen reingeschaut. Und zwar die Konsole grafisch.

Dominik

Rich. Fand ich sehr cool.

Dominik

Das habe ich mit euch tatsächlich aufgestanden,

Dominik

ein bisschen ausprobiert. Und das

Dominik

macht wunderbar die Konsole farbig

Dominik

und tolle Sachen.

Dominik

Inspection. Ich weiß nicht, ob ihr

Dominik

Ice Cream mitbekommen hattet.

Dominik

Man konnte

Dominik

irgendwie Ice Cream importieren.

Dominik

Und dann hast du ein...

Dominik

Ach, die Debugger-Geschichte.

Dominik

Ein Mini-Debugger, der quasi nichts anderes macht,

Dominik

als ein DeepExterne. Aber da habe ich mir gedacht,

Dominik

nee, also Don Dock Rich,

Dominik

das macht genau dasselbe. Auch so ein Inspect quasi,

Dominik

der einem in einer Tabellenform

Dominik

ausgibt, alle nutzbaren,

Dominik

coolen Methoden einer

Dominik

Klasse zum Beispiel oder einer Methode,

Dominik

alles aufrufbar.

Dominik

Das ist echt cool.

Dominik

und alles farbige Output in der Konsole

Dominik

einfach importieren und man kann quasi

Dominik

seinen eigenen Python

Dominik

Interpreter damit

Dominik

pimpen, indem man das einfach lädt und installiert

Dominik

quasi live und schon ist alles

Dominik

farbig und cool und sieht schön aus.

Dominik

Geht doch rein, dango rein.

Dominik

Ja, nice.

Dominik

Ja, ist wirklich

Dominik

ziemlich cool.

Dominik

Ich

Fabian

würde eins nehmen, das natürlich

Fabian

so ein bisschen in meine Branche fällt,

Fabian

nennt sich

Fabian

Invisible Watermark.

Fabian

Da kann man

Fabian

also Watermarken

Fabian

kann man ja Bilder eigentlich

Fabian

relativ easy, sprich du kannst einfach so

Fabian

ein großes, fettes Firmenlogo

Fabian

quasi so halbtransparent

Fabian

über Bilder legen und dann weiß jeder, okay

Fabian

nee, gehört dem oder dem.

Fabian

Was aber

Fabian

interessant ist, dass du quasi unsichtbar

Fabian

Bilder zu Watermarken

Fabian

dass du quasi einfach

Fabian

nur verschiedene Pixel, so die ganz leichten

Fabian

Nuancen hier anders machst, dass du am Ende

Fabian

da quasi deine

Fabian

Daten reinpackst.

Fabian

Das hat aber den Nachteil

Fabian

meistens, dass wenn du

Fabian

das Bild verkleinerst oder

Fabian

keine Ahnung, spiegelst oder sonst irgendwas,

Fabian

dass dann diese Daten verloren gehen.

Fabian

Aber diese eine Python-Bibliothek

Fabian

kann das

Fabian

so machen,

Fabian

dass du das Bild komplett noch

Fabian

vermuscheln kannst, Bilder, Sachen rausziehen

Fabian

kannst,

Fabian

wie auch immer

Fabian

und dein Watermark bleibt erhalten.

Dominik

Also man muss aktiv diese Peißmöglichkeit benutzen,

Dominik

damit das Watermark erhalten bleibt oder ist das

Dominik

auch für Dritte, die dann quasi

Dominik

das Bild bearbeiten, das Watermark noch drin?

Fabian

Ich bin mir noch nicht sicher. Ich habe es

Fabian

leider noch nicht ausprobiert. Ich fand es nur mega

Fabian

cool. Es ist glaube ich auch

Fabian

wieder

Fabian

Artificial Intelligence

Fabian

hier basierend.

Dominik

Okay, das hört sich aber so an, als müsste man das

Dominik

selber aktiv

Dominik

anschauen. Es gab sehr coole Bilder

Dominik

dazu.

Dominik

Das linken wir in den Shownotes.

Dominik

Kann man mal reingucken.

Dominik

Ja, ich habe immer das Problem

Jochen

mit diesen ganzen, also ich meine,

Jochen

Steganografie funktioniert ja auch in gewisser Weise so.

Jochen

Ich habe das aber auch lange nicht mehr verfolgt.

Jochen

Also das letzte Mal, dass ich da irgendwie drauf geguckt habe,

Jochen

was da so passiert, ist halt schon lange her

Jochen

und das, was der zentrale Punkt, der mich immer

Jochen

dabei gestört hat,

Jochen

ist, dass man,

Jochen

sagen wir mal so, wenn man jetzt Verschlüsselung hat,

Jochen

dann brauchst du halt einen Schlüssel, um rauszukriegen, was

Jochen

da drin steht. Und bei diesen

Jochen

Geschichten kriegst du es halt auch ohne,

Jochen

also was mich interessieren

Jochen

würde, ist, ob es sowas gibt.

Jochen

Du kannst erst sehen, ob eine Information

Jochen

oder ein Watermark

Jochen

in dem Bild oder in irgendeinem

Jochen

Audio oder Video oder sonst was

Jochen

drin ist, wenn du den Schlüssel kennst.

Jochen

Und sonst kannst du gar nicht rauskriegen,

Jochen

dass da irgendwas drin ist.

Jochen

Und das Problem ist halt

Jochen

immer, das ist halt

Jochen

normalerweise nicht so, vielleicht hat sich das auch

Jochen

geändert, und du kannst halt immer zumindest

Jochen

sehen, was da drin ist. Das heißt, du kannst da nicht

Jochen

irgendwelche Informationen drin verstecken.

Jochen

Steganografie.

Jochen

Ja.

Jochen

Und wenn du es halt sozusagen,

Jochen

aber immer wenn du halt tatsächlich einfach rauskriegen

Jochen

kannst, was da drin ist, ohne

Jochen

zuerst einen Schlüssel haben

Jochen

zu müssen, kannst du es auch eigentlich

Jochen

ja dann wieder entfernen.

Jochen

Einmal das, oder du kannst es halt

Jochen

auch irgendwie verändern oder du kannst halt auch

Jochen

sozusagen Dinge

Jochen

daraus lesen, die vielleicht eigentlich gar nicht

Jochen

also insofern, ja

Jochen

ich meine, um Sachen zu

Jochen

markieren, dass sie einem

Jochen

gehören oder so, ist wahrscheinlich alles

Jochen

ausreichend.

Jochen

Ja.

Jochen

Ja, ja.

Jochen

Ja, ist halt die Frage, wovon man es benutzen möchte.

Fabian

Und ich hatte noch eine andere kleine

Fabian

Entdeckung. Die ist zwar kein

Fabian

Python-Modul, aber ich finde sie

Fabian

trotzdem ziemlich cool. Nennt sich

Fabian

devdocs.io

Fabian

Oh.

Fabian

Und

Fabian

da...

Fabian

Das ist im Grunde genommen

Fabian

eine Sammlung

Fabian

von Dokumentationen,

Fabian

auch ganz verschiedenster Art.

Fabian

Also ist nicht nur Python

Fabian

drin, ist auch C, C++,

Fabian

Angular, you name it.

Fabian

Das ist sehr schön aufbereitet,

Fabian

ziemlich fix und es macht Spaß,

Fabian

da die Dokumentation drin zu lesen.

Fabian

Da...

Fabian

Hat mir meinen Arbeitsalltag

Fabian

ein bisschen versüßt.

Fabian

Kann ich empfehlen.

Fabian

Sehr schick.

Fabian

Mal kurz reingucken.

Jochen

Ja, wunderbar. Ne, das sieht gut aus, tatsächlich.

Jochen

Und da ist ja echt viel Zeug drin.

Jochen

Oh ja.

Jochen

Interessant

Jochen

Da kann man sich jetzt so ein bisschen

Fabian

Favorites machen

Fabian

und dann kann man da ratzbatz

Fabian

die Suche anschmeißen

Fabian

Funktioniert ziemlich cool

Fabian

Ja

Fabian

Ja, vielen Dank

Jochen

Moment, ich hätte hier auch noch einen

Jochen

Du hast auch noch einen?

Jochen

Ich hätte mich drauf schon mal bedanken

Jochen

Und zwar

Jochen

hatte ich immer so das Problem

Jochen

ich fand ja auch die Fischshell

Jochen

so nachdem ZSH

Jochen

ja jetzt auf macOS

Jochen

irgendwie vorinstalliert ist, ist mir das

Jochen

zu mainstreamig geworden. Da muss ich mal was

Jochen

Neues probieren. Oh, cool, das ist Fisch.

Jochen

Bin mir an der Fischschale gelandet.

Jochen

Oh, mein Fisch. Genau, aber da ist

Jochen

immer das Problem, dass wenn man jetzt

Jochen

die

Jochen

PyEnv-VirtualInfs verwendet, weil ich verwende

Jochen

normalerweise PyEnv, um halt unterschiedliche

Jochen

Python-Interpreter zu installieren,

Jochen

oder

Jochen

halt die von Poetry, dann funktioniert das

Jochen

mit dem Setzen des Prompts

Jochen

nicht immer richtig und das ist auch sonst

Jochen

irgendwie nicht so schön integriert mit FISH.

Jochen

Und man muss da irgendwie fiese Funktionen

Jochen

aufrufen und manchmal geht es kaputt und dann

Jochen

ist man auf einem anderen Rechner, da geht es auch nicht mehr.

Jochen

Alles nicht so schön.

Jochen

Da gibt es ein kleines Tool, was

Jochen

dem

Jochen

Abhilfe schafft und das ist

Jochen

Virtual FISH und das ist

Jochen

sozusagen genau

Jochen

Virtual Env

Jochen

Tool

Jochen

für FISH und das funktioniert ganz hervorragend.

Jochen

Das benutze ich jetzt immer und das ist echt toll.

Dominik

Ja, Whichifish mit quasi Search, das ist schon...

Dominik

Ja. Und ja,

Dominik

muss man benutzen eigentlich.

Dominik

Genau.

Dominik

Das nutze ich

Dominik

sogar auf den Windows-Rechnern.

Dominik

Ja.

Jochen

Ja, keine Ahnung.

Jochen

Doch.

Jochen

Also Whichifish ist

Jochen

hoch im Kurs.

Jochen

Fish hat einige

Jochen

coole Plugins, müsst ihr mal reingucken.

Jochen

Ja, nee, dann sind wir mit den Picks auch durch.

Jochen

Vielen Dank, Jochen.

Jochen

Ja, danke, danke.

Jochen

Schreibt uns alles, was ihr für uns haltet,

Jochen

was ihr doof fandet, was ihr gut fandet,

Dominik

an halloatpaisenpodcast.de

Dominik

Bis zum nächsten Mal.

Dominik

Gute Nacht, bleibt uns gewogen. Tschüss.