📱 Erkannter Endgerättyp ⛱️ Tag und Nacht. Verbraucht keinen oder einen 🍪.
🧬 0 Ihre DNS in den Krei.se-DNS-Servern, führt zum Bio-Labor 🍪 0 Anzahl Ihrer gespeicherten Kekse, führt zur Keksdose       
 

Tennisball-Kurve stabil & Beginn des Journals

Heute habe ich endlich die Tennisball-Kurve stabil bekommen - was das genau heisst und warum ich seither wieder Journaleinträge schreibe.

Die 4D-Tennisballkurve

Die 4D-Tenniskurve beschreibt eine 4-dimensionale Kurve um einen beliebigen 4D-Körper. Wie bei einem ganz normalen Tennisball ist so in einer vertretbar kurzen Pfadlänge eine möglichst optimale Abfolge von Bildern möglich wenn man von der Kurve aus auf den Mittelpunkt schaut.

Die Kurve selbst ist nicht besonders schwer, für 4 Koordinaten ist die Formel:

x = cos(theta)
y = sin(theta) * cos(phi)
z = sin(theta) * sin(phi) * cos(psi)
w = sin(theta) * sin(phi) * sin(psi)

Das sind also 3 Winkel und die werden einfach in 3 Frequenzen über einen Zeitraum t gewählt:

theta = t * 1
phi = t * 2
psi = t * 4

t läuft nun von 0 -> 1 über einen Zeitraum den man für einen kompletten Durchgang möchte (ich nehme i.d.R. eine Minute oder 10 Sekunden).

Ein normaler Tennisball ist von oben ein Kreis (theta = 1t) und von der Seite sind es 2 Kreise (phi = 2t) - eigentlich ganz einfach. Für 4D könnte man nun meinen das sind bestimmt 3 Kreise in psi - falsch wäre das nicht, aber ich habe 4 genommen.

Hier mal die ersten Gehversuche:

Tja, warum wechselt das die Richtung und zwischendurch wirkt es so verzerrt? Ich hatte (Juni) keinerlei Ahnung was ich da eigentlich mache, aber das Problem war nicht der Ansichtswinkel.

Problem: 3 statt 1 möglichen Kamera-Drehung

Sondern dass man die Kamera auch noch in der Drehung festlegen muss, denn nachdem man auf den Mittelpunkt ausrichtet hat man ja immernoch eine Achse Freiheit - man kann die Kamera noch nach links und rechts drehen. Bei einem normalen Tennisball ist es recht einfach, geht man die Kurve entlang kann man die Kamera entweder nach global oben ausrichten oder dreht einfach etwas nach links und rechts je nachdem wo die Kurve gerade als nächstes hinzeigt.

Das geht mit einer Ableitung, aber ich nehme einfach einen Punkt minimal in der Zukunft auf der Kurve.

Denn in 4D habe ich nicht nur 1, sondern 3 weitere Möglichkeiten die Kamera-Ausrichtung festzulegen. Dafür benutzt man wohl Frenet-Serret, doch selbst hier sind für die letzte Dimension 2 valide Möglichkeiten machbar.

Ich geh da jetzt nicht ins Detail, der Code ist ja offen, Clou ist prinzipiell einmal die letzte Ausrichtung auszurechnen und dann dieses Vorzeichen beizubehalten.

Klingt einfach, hat mich aber locker 2 Monate Nerven gekostet. Das Schöne an solchen Bugs ist aber das man merkt - ein bisschen abseits der Norm gibt auch schöne Ergebnisse. Gerade für die dynamische Darstellung später macht es schon Sinn die Kamera auch mal schräg zu halten. Denn obwohl das Ergebnis hier schon nahe perfekt ist - ein bisschen langweiliger als die ersten Gehversuche ist es schon:

Hier sieht man auch schön die Schatten der 4D-Kurve in 3D, wer mag, das Debug-Beispiel ist als Hintergrundszene verfügbar.

Strenggenommen ist der Schwenk alle 90° noch etwas hastig, man sicht das besonders gut an der 2. und 3. Kurve - vielleicht fällt mir da noch was ein.

Tja und was hat das jetzt mit dem Journal zu tun?

Also erstmal ist das alles super buggy. Ich versuche wirklich den Code lauffähig zu halten, aber hier ist alles so stark miteinander vernetzt, oft löscht eine Änderung einfach mal einen ganzen Teil der Seite aus und ich hab einfach nicht immer die Zeit und Nerven alte Experimente wieder lauffähig zu machen.

Die Lösung ist daher diese als Journal zu dokumentieren - denn ein Markdown-Text und ein Video ... das bekomm ich immer lauffähig ;)

Dann steht man auch oft dumm da wenn am Handy irgendwas nicht steuerbar ist - auch hier ist ein Video einfacher zu handhaben.

Das 2. Problem was ein Journal für mich löst ist selbst zu wissen, was ich eigentlich den ganzen Tag gemacht habe - denn oft gibt es über Wochen keine wirklichen Fortschritte oder man sitzt mal 2 Tage rum und merkt gar nicht, was man alles geschafft hat.

Ausserdem will ich noch OAuth und atproto einbinden, auch dafür ist eine Kommentarfunktion hier, etc. als Testwiese praktisch.

So, das war's für den ersten Eintrag - Viel Spaß noch auf Krei.se!

Wer mag, hier noch ein altes Debug-Video bei dem die Ansicht noch kippte:

Werkzeugleiste: