Das Strömungsfeld: Wenn Rauschen sich als Kraft ausgibt
Strömungsfeld = Vektorfeld, Stromline = Integralkurve. Perlin-Rauschen sieht wie Lastpfade aus, minimiert aber nichts — ein p5.js-Hack zeigt warum.
Beginne mit dem Objekt, nicht mit dem Bild. Ein Strömungsfeld ist ein Vektorfeld: eine Regel, die jedem Punkt der Ebene eine Richtung gibt. Eine Stromline ist das, was du bekommst, wenn du aufhörst, Richtungen zu lesen und anfängst, ihnen zu gehorchen — du setzt ein Partikel ab, liest den Pfeil darunter, machst einen Schritt und wiederholst das. Die Kurve, die es zeichnet, ist eine Integralkurve des Feldes. Dieses einzelne Primitiv — Feld rein, Trajektorie raus — ist der ganze Motor hinter Tyler Hobbs’ Fidenza (Art Blocks, 2021), jedem „Coding Train”-Demo, das Daniel Shiffman je gefilmt hat, und, mit einem anderen Feld darunter, jedem Hauptspannungsdiagramm, das ein Ingenieur seit Culmann gezeichnet hat.
←HEUTE: Im 2026 macht ein Zehn-Zeilen-p5.js-Sketch aus Gradientenrauschen tausend Stromlinien, die ein Junior-Architekt vor dem Mittagessen forken kann. →3012: Die Felder, die überleben, sind die, deren Quelle du benennen kannst — ein Spannungstensor, eine Windlösung — nicht die, deren Quelle ein Zufallswert war, den keiner aufschrieb. Angelpunkt: Rausch-Stromlinien und Last-Pfad-Stromlinien sind geometrisch identisch; nur die Zielfunktion unterscheidet sie.
Die Mathematik ist ehrlich und klein. Perlin-Rauschen — erfunden 1983 von Ken Perlin, präsentiert als „An Image Synthesizer” auf der SIGGRAPH 1985 und belohnt mit einem Academy Award für Technical Achievement 1997 — ist ein bandbegrenztes Gradientenrauschen: glatt, stetig und deterministisch für einen gegebenen Seed. Taste es bei (x·scale, y·scale) ab, multipliziere das Ergebnis mit 2π, und du hast bei jedem Punkt einen Winkel. Das ist der Kunstgriff, den man klar sehen sollte: Rauschen ist ein skalares Feld, und wir lesen es als Richtungsfeld. Nichts in der Physik der Ebene zwingt diese Pfeile, so zu zeigen, wie sie zeigen. Sie sind glatt, weil Perlin sie glatt machte, nicht weil eine physikalische Kraft dahintersteht.
Diese Unterscheidung ist der intellektuelle Kern dieses Stückes. Das von Perlin später entwickelte Simplex-Rauschen (2001, Patent inzwischen erloschen) reduziert Richtungsartefakte und skaliert besser in 3D — füge eine dritte z-Achse hinzu und das Feld animiert, die Stromlinien atmen. Aber günstigeres, glatteres Rauschen macht das Feld nicht bedeutsam. Ein Strömungsfeld minimiert keine Energie. Es folgt keinem Gradienten eines Potenzials. Es ist, wie ein Strukturgutachter sagen würde, eine schöne Vermutung.
Vergleiche es mit seinem lasttragenden Gegenstück. Eine Hauptspannungstrajektorie — die ETH-Tradition der Graphischen Statik von Culmann und Maxwell, bereits in PAZ’s Corpus — ist auch eine Stromline, aber ihr Feld ist das Eigenvektorfeld eines aus echten Randbedingungen gelösten Spannungstensors. Eine CFD-Windstromline über einem Zürcher Hof ist die Integralkurve einer Navier–Stokes-Lösung. Dieselbe Geometrie, dieselbe „den-Pfeilen-folgen”-Integration. Völlig unterschiedliche Herkunft. Eine kannst du in einer statischen Überprüfung verteidigen; die andere nicht.
Atelier: Nutze das Rauschfeld genau dort, wo es hingehört — als Intuitionspumpe. Gestalte eine Fassadenstriation, eine Lamellen-Orientierungsstudie oder ein Laufweg-Layout aus einem bearbeitbaren Feld, richte Auge und Team auf die Geste aus, dann ersetze die Feldquelle durch einen Solver, bevor irgendjemand Beton giesst. Der ehrliche Schritt ist, denselben Stromlinien-Integrator zu behalten und nur das, was ihn antreibt, zu ändern: Rauschen für die Skizze, Hauptspannungen für das Rippenmuster, das echte Dachlasten trägt.
Hack: Dieser Hack lehrt dich, ein skalares Rauschfeld in ein Richtungsfeld zu verwandeln und eine Stromline zu integrieren — das geometrische Herz des gesamten Effekts. Das Medium ist ausführbarer Code; die Domäne ist Geometrie. Füge diesen Code in jeden p5.js-Sketch ein:
let p = createVector(width/2, height/2);
for (let i = 0; i < 400; i++) {
let a = noise(p.x*0.005, p.y*0.005) * TWO_PI; // Skalar → Winkel
let step = p5.Vector.fromAngle(a).mult(2); // Richtung → Bewegung
line(p.x, p.y, p.x+step.x, p.y+step.y);
p.add(step); // integrieren
}
Ändere den 0.005-Zoom und beobachte, wie die Krümmung skaliert; füge noiseDetail(4, 0.5) hinzu für fraktale Brownsche Oktaven. Der Seed macht es reproduzierbar — genau deshalb kannst du es mit ‚remix und download’ weitergeben.
Wenn du die tiefere Version möchtest, lies Hobbs’ Essay „Flow Fields” und Shiffmans The Nature of Code für den Integrator, dann nimm das gleiche Feld-Denken in McNeel Europas Grasshopper Level 3 Form-Finding-Sitzungen, wo das Feld aufhört, Rauschen zu sein, und anfängt, Kraft zu sein. Heute: führe den Code-Snippet aus, dann schreibe in einem Satz auf, welches Feld du dir unter diesen Pfeilen wünschst.
PAZ Kaffi · interdisziplinäre Redaktionsarbeit, geleitet von der PAZ Academy