CH NEO-ZÜRICH AUSGABE
WETTER · GRAU 22°C
BLEND DES TAGES · 07/ROGUE
EST. 2027
DIE AEC CYBER MORGENZEITUNG

PAZ Kaffi

DESIGN · ABBRUCH · KOFFEIN · DEPESCHE
AUSGABE 0905 · 5 September 2026
SENDUNG 04:42 MEZ
2'400 BOGEN GEDRUCKT
LESEZEIT · 47 MIN
NURBS in 30 Minuten: Vier Zahlen, jede Kurve
Akademie
FRAME · 07:00
16-08-2026 ▣ 10 GELESEN

NURBS in 30 Minuten: Vier Zahlen, jede Kurve

Grad, Kontrollpunkte, Knoten, Gewichtung — die Mathematik jeder Rhino-Kurve, erlernt mit der Open-Source-Bibliothek rhino3dm. Klone sie und lese die Zahlen selbst.

Öffne die Rhino-Entwicklerdokumentation zur NURBS-Geometrie und das ganze Konstrukt fällt in einen ehrlichen Satz zusammen: eine NURBS-Kurve wird von vier Dingen definiert — Grad, Kontrollpunkte, Knoten und Auswertungsregel. Das ist es. Alles, was du in Rhino machst — das freiformige Dach, die geloftete Fassade, die Verrundung, über die du fluchst — sind diese vier Zahlen, die von einer Black Box gelesen werden. Du musst die Box nicht ableiten. Aber wenn du nicht benennen kannst, was darin eingeht, bedienst du eine Kurve, die du in einer Überprüfung nicht verteidigen kannst.

Das Signal. Die openNURBS-Übersicht von McNeel erklärt die Grammatik klar. Grad ist eine positive ganze Zahl — normalerweise 1, 2, 3 oder 5 (linear, quadratisch, kubisch, quintisch). Eine Polylinie ist Grad 1; ein NURBS-Kreis ist Grad 2; die meisten freiformigen Kurven sind Grad 3 oder 5. Kontrollpunkte sind eine Liste von mindestens Grad+1 Punkten, jeder mit einer Gewichtung. Und die Knoten sind eine Liste von genau Grad+N−1 Zahlen, wobei N die Anzahl der Kontrollpunkte ist. Vier Eingaben, eine Regel, unendliche Formen.

←HEUTE: Rhino 8.34 wertet noch immer jede Kurve durch dieselben B-Spline-Basisfunktionen aus, die De Boor 1978 aufgeschrieben hat. →3012: das Dateiformat stirbt; die vier Zahlen überleben, und ein 25-Jähriger baut deine Fassade vom Prinzip auf, nicht vom .3dm. Angelpunkt: Eine Form, die du aus Grad + Punkten + Knoten rekonstruieren kannst, ist eine Form, die du besitzt — alles andere ist eine schöne Vermutung.

Das System. Das B und S in NURBS stehen für „Basis-Spline”, und hier lebt die Mathematik wirklich. Die Auswertungsregel verbindet die Kontrollpunkte mit B-Spline-Basisfunktionen — kleine Hutfunktionen, die jeweils über ein durch den Knotenvektor definiertes Fenster wirken. Die Knoten sind nicht eins-zu-eins mit Kontrollpunkten gepaart (ein häufiges Missverständnis, das die Dokumentation explizit aufklärt — diese Paarung gilt nur für Grad-1-Polylinien). Bei höherem Grad steuern Gruppen von 2×Grad Knoten Gruppen von Grad+1 Kontrollpunkten. Schiebe einen Kontrollpunkt und nur die Kurve innerhalb seines Knotenfensters bewegt sich; der Rest bleibt. Diese Lokalität — ein jahrzehntealtes Ergebnis, das Böhm, Farin und Kahman im allerersten Band von Computer Aided Geometric Design (1984) aufgezeigt haben — ist der ganze Grund, warum sich NURBS-Bearbeitung vorhersehbar statt chaotisch anfühlt.

Zwei visuelle Anker machen die vier Zahlen lehrbar. Gewichtung ist Magnetkraft: Wenn jeder Kontrollpunkt dieselbe Gewichtung trägt (normalerweise 1), ist die Kurve nicht-rational; gib einem Punkt eine höhere Gewichtung und die Kurve wird zu ihm hingezogen. Das R in NURBS ist diese Erlaubnis, rational zu sein — und es ist der Grund, warum Kreise und Ellipsen, die kein Polynom exakt zeichnen kann, immer rational sind. Knotenmultiplizität ist der Schärferegler: wiederhole einen Knotenwert bis Grad-mal und du verwandelst eine glatte Kurve in einen Knick. Das eigene Beispiel der Dokumentation — eine Grad-3-Kurve mit 11 Kontrollpunkten und Knoten 0,0,0,1,2,2,2,3,7,7,9,9,9 — ist genau deshalb zulässig, weil kein Wert mehr als dreimal wiederholt wird. Füge eine vierte 2 hinzu und Rhino lehnt es ab.

Das Werkzeug: rhino3dm, McNeels Open-Source-Geometrie-Bibliothek — derselbe openNURBS-Kern, den Rhino ausliefert, jetzt als pip-installierbares Python-Modul verfügbar (auch JavaScript und .NET). Keine Rhino-Lizenz, keine GUI. Es lohnt sich für jeden Computational Designer, einen Nachmittag darauf zu verwenden, weil es dir ermöglicht, die vier Zahlen direkt zu lesen — Order, Kontrollpunkt-Anzahl, Gewichtungen, Knotenvektor — an jeder Kurve und zuzuschauen, wie sie sich beim Bearbeiten ändern. PAZ hat Rhinoceros schon vorher als NURBS-basierte Modellierung in unserem Artikel „Universal glue” dargestellt; rhino3dm ist, wie du unter die Haube kommst, ohne die ganze Anwendung.

Einrichtung:

python -m pip install rhino3dm

# Prove it works: a NURBS circle should report itself as
# degree 2 (order 3), rational, with weighted control points.
python -c "import rhino3dm; c = rhino3dm.NurbsCurve.CreateFromCircle(rhino3dm.Circle(5.0)); print('order', c.Order, '| points', len(c.Points), '| rational', c.IsRational)"

Erste Schritte:

  1. Führe die One-Liner oben aus. Du wirst order 3 (Grad 2) und rational True sehen — genau was die Dokumentation für einen Kreis verspricht.
  2. Gib den Knotenvektor aus: print(list(c.Knots)). Zähle sie und überprüfe die Identität — für einen Grad-2-rationalen Kreis in rhino3dm wirst du wiederholte innere Knoten sehen, die die Bogensegmente zusammenhalten.
  3. Erstelle nun eine freiformige Grad-3-Kurve aus vier Punkten und gib c.Order und die Knotenliste aus. Ändere die Punktkoordinaten, führe erneut aus und beobachte, welche Knoten fest bleiben — der Vektor ist Struktur, nicht Form.
  4. Erhöhe die Gewichtung eines Kontrollpunkts (nächster Block) und werte erneut aus. Das R in NURBS wird zum Regler, den du spüren kannst.

Atelier: Für ein Schweizer Büro ist der Gewinn die Nachvollziehbarkeit. Wenn ein Wettbewerbs-Freiformdach zur Bauleitung-Überprüfung zurückkommt und man sagt „Wir haben es in Grasshopper generiert”, ist das keine Antwort — „Es ist eine Grad-3-Kurve, einheitliche Knoten, alle Gewichtungen 1, also nicht-rational und reproduzierbar aus diesen vierzehn Kontrollpunkten” ist eine. Der Montagsschritt: Füge einen zwei-Zeilen-rhino3dm-Check zu deiner Exportroutine hinzu, der für jede Kurve, die das Büro verlässt, Grad, Kontrollpunkt-Anzahl und ob die Geometrie rational ist, ausgibt — damit keine Form das Büro verlässt, die du nicht aus ihren vier Zahlen allein rekonstruieren kannst.

Hack: Erhöhe die Gewichtung eines einzelnen Kontrollpunkts und beobachte, wie sich die Kurve zu ihm hin neigt — die Geometrie von „rational” in vier Zeilen.

import rhino3dm
pts = [rhino3dm.Point3d(0,0,0), rhino3dm.Point3d(1,2,0), rhino3dm.Point3d(3,2,0), rhino3dm.Point3d(4,0,0)]
crv = rhino3dm.NurbsCurve.Create(False, 3, pts)
crv.Points.SetWeight(1, 6.0)          # magnet #1 gets 6x pull -> now rational
print(crv.PointAt(0.5), crv.IsRational)

Setze die Gewichtung zurück auf 1.0 und der Punkt bei Parameter 0.5 verschiebt sich zurück; die Kurve ist wieder nicht-rational. Du hast gerade das R in NURBS von Hand bedient.

Der Zug. Die Mathematik unter Grasshopper — die visuelle Sprache, die David Rutten 2007 für Rhino entwickelte — ist nicht etwas, das du jeden Morgen neu ableiten musst. Aber die vier Zahlen sind der Unterschied zwischen einem Designer und einem Knopf-Drücker. Klone rhino3dm, lese den Grad und die Knoten einer Kurve, die du letzten Monat gebaut hast, und bestätige, dass du sagen kannst, warum sie hält. Behalte die Mathematik; das Dateiformat wird dich nicht überleben.

Zum Lernen:

GEMELDET AUS
MIT-UNTERZEICHNER
PAZ Academy
VERTRAUEN
HIGH
NACHDRUCKE
© PAZ - PARAMETRIC ACADEMY ZURICH · ALLE RECHTE VORBEHALTEN

QUELLE ·

PAZ Kaffi · interdisziplinäre Redaktionsarbeit, geleitet von der PAZ Academy

⚑ FEHLER MELDEN · KORREKTUR EINSENDEN
◂ ZURÜCK ZUR TITELSEITE · PAZ KAFFI

© 2026 PAZ Academy.