Die Kopfform

Ein Kopf ist hier ein Ellipsoid, dem vier Dinge zustoßen. Mehr braucht es nicht – und mehr verträgt der Strich auch nicht.

Jeder Punkt der Kopfoberfläche hat zwei Koordinaten: u ist der Längengrad (0 an der Nasenwurzel, ±1.48 am Ohr), v der Breitengrad (+1.57 am Scheitel, −1.57 am Kinn). Aus diesen beiden macht kopfPunkt einen Punkt im Raum. Das ist die einzige Stelle, an der die Form des Kopfes entsteht; alles Weitere – Drehung, Projektion, Umriss, Frisur – rechnet nur noch mit dem, was hier herauskommt.

Weil Merkmale in Kugelkoordinaten sitzen und nicht in Pixeln, wandern sie beim Drehen von selbst korrekt mit – samt Verkürzung und Verdeckung. Niemand rechnet aus, wo das linke Auge bei 20 Grad Drehung hinkommt. Es sitzt bei u = −0.5, und der Rest ergibt sich.

Acht Zahlen, ein Kopf

Die drei Halbachsen rx, ry, rz geben die Grundgestalt: breit, hoch, tief. Die restlichen fünf verformen sie. Am schnellsten versteht man sie, indem man sie anfasst – darunter läuft derselbe Code wie im Blatt nebenan.

kegel und scheitelHoch

kegel verjüngt den Kopf nach unten, scheitelHoch weitet ihn nach oben. Beide greifen in denselben Faktor k, und zwar über ein einziges glattes Polynom statt über zwei Äste für oben und unten.

Der Grund steht in der zweiten Zeile des Kommentars: zwei getrennte Äste hätten am Äquator einen Knick in der Ableitung. Ein Knick in der Formfunktion ist eine Kante in der Silhouette – und eine Kante, die quer über beide Wangen läuft, sieht nicht nach Schädel aus, sondern nach Fehler. Das Polynom trifft dieselben drei Stützpunkte (k(−1) = 1 − kegel, k(0) = 1, k(1) = 1 + scheitelHoch) und ist überall stetig differenzierbar.

beule – die Beule

beule beult den Schädel aus, damit er nicht wie gedreht aussieht. Entscheidend ist der Faktor cos(u + …) in der Welle: ohne ihn hinge die Beule nur an der Höhe.

Die Quetschung

Eine nur höhenabhängige Welle multipliziert x und z gleichmäßig – das ist kein Buckel, das ist ein Wulst rund um den Schädel. In der Silhouette erscheint er auf beiden Seiten als dieselbe Kante auf derselben Höhe, und zwar in jeder Drehung. Mit dem cos(u)-Anteil sitzt die Beule an einer Stelle der Oberfläche: asymmetrisch, organisch, wie von Hand.

kastig – die Kastigkeit

kastig zieht das Ellipsoid Richtung Superellipse: flache Seiten, flacher Scheitel, gerundete Ecken. Der nächstliegende Weg dahin wäre ein Exponent auf sin und cos. Er ist falsch.

Der Exponent auf sin/cos

Ein Exponent hat am Äquator unendliche Steigung. Die Oberfläche wird dort so schnell abgetastet, dass zwischen zwei Abtastpunkten Lücken entstehen – und eine Lücke im Umriss ist ein leeres Winkelfach, das später als tiefe Delle in die Wange geglättet wird (siehe Punktwolke). Zusätzlich verzerrt der Exponent die Tangenten, an denen jeder Anker sein lokales Koordinatensystem aufhängt.

Stattdessen: eine glatte radiale Beule an den Diagonalen über sin(2v) und sin(2u). Sie nähert die Superellipse an, ohne irgendwo unendlich steil zu werden.

Benannte Formen

Die DNA würfelt stufenlos in den Bereichen aus macheDnarx zwischen 0.6 und 0.86, ry zwischen 0.8 und 1.08 und so fort. Der Katalog hält daneben sechs benannte Anker. Sie werden beim Zeichnen nicht benutzt; sie sind Vokabular, damit man über Formfamilien reden kann, statt über Zahlenbereiche.

Die Spanne ist bewusst enger als in der ersten Presse und weiter als im ersten Entwurf dieser: Kiefer, die breiter sind als die Stirn, kastige Schädel, lange Gesichter. Aber keine Birnen und keine Türme.

Ohne diese Spanne sind alle Köpfe Eier – und Eier sind Babys. Die Streuung der Kopfform ist der erste Ort, an dem ein Blatt entweder nach Menschen aussieht oder nach Sortiment.

Alles ist Einheitsmaß

Die Halbachsen sind keine Pixel. Gerechnet wird durchweg bei mass = 1: ein Kopf ist rund zwei Einheiten hoch, ein Strich von 0.024 ist gut zwei Prozent davon breit. Die Zielgröße kommt erst ganz am Schluss als ctx.scale dazu.

Das ist keine Bequemlichkeit, sondern die Voraussetzung für den Cache auf der nächsten Seite: weil die Projektion homothetisch ist, ist ein Umriss bei Größe 1, mal mass, exakt der Umriss bei mass. Deshalb trägt dieselbe gerechnete Punktwolke das kleine Raster und die Großansicht.