Klimaspirale Teil 1: Von einem Video zu eigenen Daten
In einem Subreddit lief eines Morgens ein Video hoch: die Klimaspirale. Aufsteigende Ringe aus Monatswerten, von blau nach rot. Am Ende kippt die flache Scheibe in die Perspektive und wird ein Trichter. Das Video hatte schon über tausend Upvotes. Es war ein Reupload, woher genau ließ sich nicht mehr feststellen.
Eine Umdrehung ist ein Jahr. Januar oben, dann im Uhrzeigersinn durch die Monate, und beim nächsten Januar schließt sich der Ring, nur etwas weiter draußen als beim letzten Mal.
Man liest eigentlich keine Zahlen, man sieht nur eine Bewegung. Hundert Jahre lang zittert die Linie um dieselbe Stelle, dann fängt sie an zu wandern, und in den letzten Umdrehungen wandert sie schnell.
Ich wollte wissen, wo der Clip herkommt und ob es eine aktuelle Fassung gibt. Die Suche führte auf eine Videodatei bei Wikimedia Commons, deren Daten 2021 enden. Im Wikipedia-Artikel stand als Leitbild ein Standbild, das noch älter aussah. Egal wie ich suchte, es kam halt immer derselbe bekannte Clip zurück.
Ich schickte den Wikimedia-Link in einen Chat mit Claude, mit einem Satz dazu:
„Das Video geht nur bis 2021 oder so… können wir das nachbauen, vielleicht mit HyperFrames?“
HyperFrames hatte ich kurz vorher entdeckt, ein Framework, das HTML in Videodateien rendert. Die Klimaspirale sah für mich nach genau der Sorte Sache aus, die man in HTML bauen und als Video exportieren kann.
Claudes Missverständnis
Die Antwort begann mit einer Abfuhr:
„Klartext vorweg: Hyperframes oder irgendein AI-Videogenerator ist hier der falsche Weg. Die Klimaspirale ist keine ‚generierbare’ Animation, sondern eine exakte datengetriebene Visualisierung — jeder Punkt ist ein realer Monatswert. Ein AI-Modell würde dir eine hübsche, aber faktisch falsche Spirale halluzinieren.“
Der zweite Teil stimmt ja auch. Ein Bildgenerator hätte etwas gemalt, das aussieht wie Klimadaten, ohne einen einzigen echten Monatswert darin. Nur war die Prämisse eben falsch: HyperFrames ist gar kein Videogenerator. Claude hatte den Namen für einen KI-Dienst gehalten und geurteilt, bevor es überhaupt nachsah.
Meine Antwort unterbrach Claude mitten im Satz:
„Natürlich will ich es rendern, bin ja nicht blöd. Recherchier mal nach HyperFrames…“
Danach kam die Recherche und dann die Rücknahme. Zuerst knapp: „Fair, da bin ich vorschnell von ‚AI-Videogenerator’ ausgegangen.“ Und etwas später: „Ich lag falsch. HyperFrames ist gar kein generativer AI-Videogenerator.“
Es ist ein quelloffenes Framework von HeyGen unter Apache-2.0-Lizenz, das HTML, CSS und Animationen Bild für Bild abgreift und zu einer MP4-Datei zusammensetzt. HyperFrames stellt die virtuelle Uhr des Browsers selbst, statt in Echtzeit mitzulaufen. Gleiche Eingabe, gleiche Bilder, gleiche Ausgabe, egal wie beschäftigt die Maschine gerade ist.
Für eine Visualisierung, in der jeder Bildpunkt aus einer Tabellenzeile folgt, ist das halt genau die Eigenschaft, die man braucht. Claudes Warnung stimmte in der Sache und zielte auf das falsche Werkzeug.
Claude hatte in derselben Antwort nebenbei auch schon die Datenlage geprüft: die NASA-Reihe reichte zu diesem Zeitpunkt bis Februar 2026. Der Nachbau würde also zeigen, wie sich die Spirale seit dem Ende des Videos weitergedreht hat.
Die Daten
Zuerst kamen die Zahlen. Eine Spirale ohne belastbare Daten ist ja nur eine hübsche Grafik.
Die Quelle ist GISTEMP, die globale Temperaturreihe des Goddard Institute for Space Studies der NASA. Die Datei liegt öffentlich, aber der automatisierte Abruf lief erst mal ins Leere: für ein Skript lieferte der Server einfach nichts aus.
Claude suchte daraufhin einen laufend gepflegten Mirror auf GitHub, zog die Monatsreihe von dort und extrahierte 1752 Monatswerte, Januar 1880 bis Dezember 2025. Die ersten Monate von 2026 waren zwar schon da, blieben aber draußen, damit die Reihe auf einem vollen Jahr endet.
Die Reihe war damit im Haus, aber halt aus zweiter Hand. Bei einem Datensatz, den man anschließend als „NASA-Daten“ bezeichnet, ist das eben ein Unterschied, der zählt.
Also Stichproben gegen die Originaltabelle bei der NASA: September 2023 mit +1,48 °C, September 2024 mit +1,23 °C, beide identisch. Der Mirror war ein Transportweg, keine zweite Wahrheit. Wochen später antwortete der NASA-Server übrigens wieder ganz normal, und der Umweg war dann auch überflüssig geworden.
Die Reihe selbst ist unspektakulär: pro Zeile ein Jahr, eine Monatsnummer, ein Wert in Grad Celsius. Der niedrigste Wert liegt bei −0,82 °C, der höchste bei +1,48 °C. Zwischen diesen beiden Zahlen liegen 146 Jahre, und die Spirale ist im Grunde nur diese Spanne, einmal aufgewickelt.
Ein Wert wie +1,48 °C für den September 2023 ist dabei nicht die Temperatur dieses Monats.
Die zweite Frage stellte sich beim Blick auf den ersten Datenpunkt. Die Reihe fängt im Januar 1880 an, und das liegt nicht daran, dass vorher niemand ein Thermometer gelesen hätte.
Noch in derselben Sitzung baute Claude eine schnelle Fassung in matplotlib: ein Polardiagramm, 1080 × 1080, 30 Bilder pro Sekunde, knapp eine Minute lang, 4,2 Megabyte.
Gedacht eigentlich nur als Beweis, dass die Zahlen stimmen und sich zu einer Spirale fügen. Am letzten Bild konnte man aber schon sehen, wie die jüngsten Schleifen gegen die 1,5-°C-Linie drücken.
Zwei Dinge fehlten. Das Kippen am Ende, der Übergang von der flachen Scheibe in den Trichter, war nicht drin.
Und die Skalenringe wollte ich bei 1, 1,5 und 2 °C haben. Am nächsten Morgen bat ich um ein Übergabedokument für Claude Code, damit die Animation dort weiterwachsen konnte, wo die Werkzeuge und die Dateien liegen.
Claude schrieb das Dokument und stellte darin selbst fest, dass der eigene matplotlib-Entwurf eine Sackgasse ist: Polar-matplotlib kann das Kippen einfach nicht sauber, und 3D in matplotlib ist Gefrickel.
Die Empfehlung war ein Neubau in Three.js, gerendert über HyperFrames, weil sich der Übergang von der Draufsicht in den Trichter dort über einen einzigen Parameter lösen lässt.
Dazu eine Beat-Timeline (ein Ablaufplan, der festlegt, was in welcher Sekunde des Videos passiert) und Akzeptanzkriterien. Sechs Entscheidungen überließ Claude mir: Farblogik, Auflösung, Bildrate, Nulllinie, Endrotation und ob die Skalenringe als Zylinder durch die ganze Höhe laufen oder nur am Boden liegen.
Der Bautag
Claude Code las das Dokument und fing an. Der erste Draft-Render lief nach etwa einer Stunde durch.
Was dabei entsteht, ist im Kern nur eine Umrechnung von Tabellenzeilen in Koordinaten. Die Monatsnummer bestimmt den Winkel: Januar oben, dann im Uhrzeigersinn, sodass eine Umdrehung ein Jahr ergibt. Die Anomalie bestimmt den Abstand vom Zentrum, kalte Werte innen, warme außen. Und die laufende Nummer des Monats bestimmt die Höhe: 1880 unten, die Gegenwart oben.
Aus derselben Rechnung entstehen so beide Ansichten: schaut die Kamera von oben, liegt da eine flache Spirale. Kippt sie zur Seite, wird daraus der Trichter. Genau dafür hatte Three.js gegenüber matplotlib gewonnen, weil der Übergang dort nur eine Kamerabewegung in derselben Szene ist und keine zweite Grafik.
Die Optik stand ja noch nicht im Dokument. Ich schrieb meine Änderungswünsche in eine Nachricht:
„Wir sollten einen Ring mit dem Durchschnittswert, also 0 Grad Abweichung, hinzufügen. Diese eine ist weiß, Temperaturen darunter bläulich, Werte darüber orangerot. […] Dann wäre es gut, wenn wir die Geschwindigkeit am Ende, ab ca. 2000, etwas reduzieren könnten, damit es besser wirken kann. […] Und ich hätte gerne die Möglichkeit, es auch auf Englisch zu erzeugen. Und: Gibt es schon Datenpunkte für 2026?“
Alle vier Wünsche stecken heute in der Spirale. Der weiße Nullring ist die optische Mitte, an der man ohne Zahlenlesen erkennt, wo das langjährige Mittel liegt: blau darunter, orangerot darüber.
Die Verlangsamung am Ende wurde eine Ease-out-Kurve, damit die jüngsten Jahre stehen bleiben, statt vorbeizuhuschen. Die Zweisprachigkeit wurde ein Attribut am HTML-Wurzelelement, aus dem Claude Code später zwei Videofassungen und eine zweisprachige Web-App baute.
Kurz darauf fiel mir auf:
„Die Überschrift ‚bis 2025’ stimmt jetzt ja nicht mehr.“
Die Zahlen wachsen ja weiter, also muss die Beschriftung mitwachsen.
Jede Änderung kostete einen neuen Durchlauf, und ein Durchlauf über 1800 Bilder dauert. Ein guter Teil des Tages bestand schlicht aus Warten.
Dazwischen gab es unter anderem durchscheinende Zylinder an den Skalenringen, die auf schwarzem Grund einfach unsichtbar waren, weil Farbe mal Deckkraft bei niedrigen Werten Schwarz ergibt.
Oder eine Werteanzeige, die bei jedem Frame hin und her wackelte: „Ah, da es nicht Monospace ist, wackelt die ganze Zeile hin und her… Monospace-Font?“ In einer Proportionalschrift ist eine 1 halt schmaler als eine 8.
Mitten im Bau lief die Session voll. Claude Code arbeitete ab da aus einer Zusammenfassung des eigenen Verlaufs weiter, kannte die Entscheidungen also nur noch als Notiz. An dem, was danach entstand, habe ich es jedenfalls nicht gemerkt.
Die Zwischenfrage
Ein Render dauert. In der Wartezeit habe ich weitergefragt:
„Könnten wir diese Animation inkl. 3D-Darstellung mit Maussteuerung (drehen, kippen usw.) auch als Webseite erstellen?“
Der Reiz lag in dem, was die Szene ohnehin schon hergab. Die Kamerafahrt am Ende des Videos ist eigentlich nur eine feste Bahn durch einen Raum, in dem man sich auch frei bewegen könnte.
Wenn dieselbe Szene im Browser läuft, entscheidet der Zuschauer selbst, von wo er hinschaut, wie schnell die Reihe aufbaut und wo sie anhält.
Am Ende ist das auch die eigentliche Veröffentlichung geworden, und die Videos sind eher der Nebenschauplatz. Die Frage stand, bevor irgendjemand im Projekt wusste, ob es aktuellere Spiralen gibt.
Aus derselben Wartezeit kam auch die Entscheidung, welche Skalenringe als durchscheinende Zylinder durch die ganze Höhe laufen:
„Lass uns den transluzenten Zylinder nur bei 1,5 Grad machen (weil das mal das Klimaziel war).“
Der Zylinder steht auch heute noch dort. Über den Halbsatz in der Klammer habe ich damals gar nicht weiter nachgedacht.
Der Befund
Einen Tag später stand der Entschluss zu veröffentlichen: eine Subdomain auf aeternalabs.io einrichten und die Videos zum Teilen bereitstellen. Vorher wollte ich aber noch zwei Dinge geprüft haben:
„Mach vorher noch zwei Dinge: 1. Plausibilitätscheck: nicht dass unsere Darstellung der Daten einen Fehler hat. Das wäre peinlich. 2. Gibt es die Spirale wirklich nicht in einer aktuelleren Version als 2021/2022? Das wäre auch peinlich.“
Claude Code schickte für jede Frage einen Recherche-Subagenten los. Der Datencheck bestätigte die Zahlen und stieß dabei auf ein Problem mit der Skala.
Es gibt doch eine aktuelle Klimaspirale, und zwar von der NASA selbst. Das Scientific Visualization Studio führt eine Fassung „1880 bis heute“, die monatlich nachgezogen wird, etwa zwei Wochen nach Monatsende. Zum Zeitpunkt dieses Textes reicht sie bis Juni 2026. Ed Hawkins, von dem die Darstellungsform stammt, pflegt seine Version ebenfalls, jährlich.
Der Anlass des Projekts stand damit auf einem Irrtum. Ich hatte vorher selbst gesucht und außer der Wikimedia-Datei nichts gefunden. Dass es eine gepflegte Seite gibt, auf der tatsächlich jeden Monat eine neue Fassung erscheint, stand in keinem Suchergebnis, das ich gesehen hatte.
Was von der Annahme übrig bleibt, ist ein kleinerer und eigentlich interessanterer Satz: die kursierende Fassung hängt einfach hinterher.
Der Clip, der überall geteilt wird, endet bei 2021. Die Videodatei auf Wikimedia endet dort ebenfalls. Das Leitbild im Wikipedia-Artikel ist ein Standbild von 2017, gerechnet auf einer älteren Datenreihe.
Was als „die Klimaspirale“ durch die Feeds geht, ist damit fünf bis neun Jahre alt, während die gepflegte Fassung jeden Monat aktualisiert wird.
Gebaut wurde trotzdem. Die Frage nach der interaktiven Fassung stand ja schon vor dieser Prüfung, und sie hing nie an der Aktualität.
Was die NASA veröffentlicht, ist ein Video: sechzig Sekunden, eine feste Kamerafahrt, ein Blickwinkel, den jemand anderes ausgesucht hat.
Die eigene Fassung läuft dafür im Browser. Man kann die Spirale selbst drehen, hinein- und hinauszoomen, anhalten und zurückspulen, einzelne Monate anklicken und die Skala auf eine andere Bezugsgröße umstellen. Das macht die Daten erlebbar, statt sie nur zu zeigen, und das halte ich für den eigentlichen Wert.
Teil 1 von 4 der Klimaspirale-Serie.
Klimaspirale Teil 2: Die Baseline-Falle →
Die Spirale aus dieser Serie gibt es als Projekt: Klimaspirale.