Voronoi & Delaunay: Ein Punktfeld, zwei Lesarten
Wie Voronoi-Zellen und ihr Delaunay-Dual ein Saatfeld in Paneelierung und Tragwerk umwandeln – mit d3-delaunay Browser-Hack.
Streue eine Hand voll Saatpunkte auf eine Ebene und stelle jeder anderen Stelle eine Frage: Welcher Saatpunkt ist am nächsten? Die Antwort teilt die Ebene in Zellen, eine pro Saatpunkt, jede mit dem ganzen Territorium, das näher bei ihrem Saatpunkt liegt als bei jedem rivalisierenden. Das ist ein Voronoi-Diagramm, und es ist die nützlichste Partition im Computational Design, weil sie die einzige Frage beantwortet, die Fertigung je stellt — wem gehört welches Oberflächenstück.
Die Struktur wurde von Descartes 1644 skizziert, 1850 von Dirichlet in der Ebene formalisiert (deutschsprachige Mathematik sagt immer noch Dirichlet-Zerlegung), und 1908 von Georgy Voronoi auf n Dimensionen verallgemeinert. Der Schachzug, der für einen Designer zählt, kam 1934, als Voronois Student Boris Delaunay das Dual bewies: Verbinde zwei Saatpunkte, wann immer ihre Zellen eine Kante teilen, und du erhältst eine Triangulation, die den minimalen Innenwinkel maximiert — sie lehnt Slivers ab. Wie unsere eigene Kaffipedia-Voronoi-Tafel es ausdrückt, die Zelle ist das Paneel, die Triangulation ist das Netz: eine Geometrie, zwei Lesarten.
←HEUTE: Ein Browser-Sketch mit d3-delaunay verwandelt einen Klick in einen baubaren Paneelsatz, bevor du Rhino öffnest. →3012: Das Saatfeld überlebt das Dateiformat — rekonstruiere die Form aus ihrem Prinzip, nicht aus ihrem Plugin. Fulcrum: Das Diagramm ist dasselbe, ob es den Water Cube kleidet oder eine Cholerakarte routet; lerne die Partition einmal und sie zahlt sich in jedem Handwerk aus, das Nähe entscheidet.
Warum die Dualität die ganze Lektion ist. Die meisten Leser verwechseln die beiden Diagramme; die Ingenieurskunst liegt darin, sie auseinanderzuhalten. Voronoi-Eckpunkte sind die Umkreismittelpunkte der Delaunay-Dreiecke, also wird eine Struktur aus der anderen kostenlos berechnet — kein zweiter Algorithmus. Deshalb gibt dir eine einzelne Punktwolke sowohl eine Paneelierungslogik (die Voronoi-Zellen: Verkleidung, akustische Diffusoren, PV-Module) als auch eine Tragwerkslogik (das Delaunay-Netz: eine wohlkonditionierte Schale, die nicht an einem schlanken Träger ausknickt). Wechsel die Lesarten ohne einen Saatpunkt zu verschieben.
Der kanonische gebaute Beweis ist das Beijing National Aquatics Center — der Water Cube, PTW Architects mit Arup und CSCEC, 2008 — dessen ETFE-Hülle auf dem Weaire–Phelan-Schaum sitzt, ein dreidimensionaler Cousin der Voronoi-Tessellation, entdeckt am Trinity College Dublin 1993. Rund 4.000 Kissen, zwei Zelltypen: eine mathematische Vermutung direkt in Struktur umgewandelt. Für PAZ-Leser ist die nähere Linie ETHs Form-Finding-Tradition — die Schalenkonstruktionen der Block Research Group beantworten dieselbe Frage wie Voronoi, nur mit Kraftpfaden statt Nächster-Nachbar-Distanz.
Atelier: Auf einer echten Fassade sieht die zufällige Streuung billig aus; die Lösung ist Lloyd-Relaxation — iteriere jeden Saatpunkt zu dem Zentroid seiner Zelle, bis sich die Zellen in eine zentroidale Voronoi-Tessellation ausgleichen. Gewichte diesen Zentroid mit einem Skalarfeld (Sonnenexposition, eine Spannungskarte) und Paneele schrumpfen genau dort, wo die Last oder die Sonne am höchsten ist, ohne manuelle Zonierung. Diese gewichtete CVT ist dieselbe Mathematik unter variable-dichter 3D-Druck-Füllung.
Hack: Dieser Hack lehrt dich, die Dualität auf einem Punktfeld im Browser zu lesen. Das Medium ist JavaScript; die Domäne ist Geometrie. Werfe d3-delaunay v6 in einen Sketch, baue die Triangulation einmal, und frage sie nach beiden Lesarten — die Voronoi-Zellen und die Delaunay-Dreiecke entstehen aus dem gleichen Objekt.
import {Delaunay} from "d3-delaunay";
const pts = Array.from({length: 200}, () => [Math.random()*30, Math.random()*20]);
const d = Delaunay.from(pts); // Delaunay triangulation
const vor = d.voronoi([0, 0, 30, 20]); // Voronoi cells, clipped to plot
const panels = [...pts.keys()].map(i => vor.cellPolygon(i)); // each cell = one panel
console.log(panels.length, "panels", d.triangles.length/3, "struts");Ein Delaunay.from-Aufruf; zwei Lesarten heraus. Starten Sie es, jittern Sie die Saatpunkte, beobachten Sie einen Strut, der jedes Mal auftritt, wenn eine Paneelkante erscheint — das ist die Dualität, live.
Move: Bevor du deine nächste Freiform-Oberfläche entwirfst, prototypisiere das Saatfeld im Browser, benenne den Skalar, mit dem du es gewichtest, und notiere diese Zielgrösse. Wenn ein Werkzeug die Zellen für dich erzeugt, lass es dir sagen, welche Energie es minimiert hat — eine Form, die du nicht neu ableiten kannst, ist eine, die du in einer Konstruktionsprüfung nicht verteidigen kannst.