1 Punkte von GN⁺ 2024-07-30 | 1 Kommentare | Auf WhatsApp teilen
  • Ohne vorgerenderte Texturen erzeugt allein ein GLSL-Fragment-Shader prozedural die gesamte Geschichte eines erdähnlichen Planeten in wenigen Minuten, und die endgültige Simulation wird mit 60 fps aktualisiert
  • Das anfängliche Terrain entsteht, indem Breiten- und Längengrade in 3D-Koordinaten umgerechnet und Krater in fünf Detailstufen mit Fractional-Brownian-Motion-Rauschen überlagert werden, um eine primitive Planetenoberfläche zu formen
  • Die Plattentektonik bewegt Platten in diskreten Zeitschritten auf Pixelebene; Hebungen an Kollisionspunkten werden durch thermische Erosion in die Umgebung verteilt, um Gebirge und Kontinente näherungsweise zu bilden
  • Die hydrologische Erosion leitet Wasser von jedem Pixel in die steilste Abstiegsrichtung unter acht Nachbarn und kann mit dem stream power law selbst bei niedriger Auflösung Flüsse mit einer Breite von einem Pixel erzeugen
  • Bis hin zu Klima-, Lebens- und Menschheitsphasen verbindet die Simulation mittleren Luftdruck auf Meereshöhe, Wind, Niederschlag, ein Lotka–Volterra-Diffusionsmodell und die Verbrennung fossiler Energieträger zu einer langfristigen Veränderung der Planetenoberfläche in einer einzigen GPU-Simulation

Prozedurale Planetensimulation mit GPU-Shadern

  • Die prozedurale Erdsimulation wurde ausschließlich mit einem GLSL-Fragment-Shader umgesetzt
  • Sie simuliert die gesamte Geschichte eines erdähnlichen Planeten in wenigen Minuten, während der Bildschirm mit 60 fps aktualisiert wird
  • Es gibt auch eine Videoaufzeichnung des finalen Shaders

Erzeugung des Geländes eines primitiven Planeten

  • Die frühe Erde wird als heißer primitiver Planet mit vielen Kratern durch Asteroideneinschläge behandelt
  • Da es keine vorgerenderten Texturen gibt, besteht der erste Schritt darin, die Geländehöhe an einem bestimmten Breiten- und Längengrad zu berechnen
  • Breiten- und Längengrade werden zunächst in 3D-kartesische Koordinaten umgewandelt
  • Da Asteroiden unterschiedlich groß sind, überlagern sich auch Krater in verschiedenen Größen
    • Der Shader wiederholt fünf Detailstufen
    • Von großen bis zu kleinen Kratern werden Schichten übereinandergelegt
    • Fractional-Brownian-Motion-Rauschen wird beigemischt, damit das Terrain rauer wirkt
    • Die Skalierung sorgt dafür, dass die größten Krater den stärksten Einfluss auf das Gelände haben
  • Krater werden in einem 3D-Gitter erzeugt, aus dem dann die Kugeloberfläche als Terrain ausgeschnitten wird
    • Um regelmäßige Muster zu vermeiden, erhalten die Kraterzentren an Gitterpunkten pseudorandomisierte Offsets durch eine hash function
    • Der Einfluss von Kratern benachbarter Gitterpunkte wird mit einer distanzbasierten exponentiellen Gewichtung gemittelt
    • Die Kraterränder werden mit einer einfachen Sinuskurve erzeugt
  • Füllt man tieferliegende Regionen mit Wasser, ähnelt das prozedural erzeugte Terrain dem Bild, das Wissenschaftler von der frühen Erde haben
  • Mit der Zeit kühlen die Gesteine ab, Wasserdampf kondensiert zu Ozeanen, und flüssiges Wasser auf der Oberfläche formt Täler und lagert Sedimente ab

Plattentektonik und Kontinentalbildung

  • Um Gebirge, Tiefseegräben und vertraute kontinentale Landschaftsformen zu erzeugen, wird ein Modell der Plattentektonik benötigt
  • Platten starten an zufälligen Seed-Positionen und erhalten anfängliche Geschwindigkeiten
  • Das Wachstum der Platten wird mit einem einfachen Mengenmodell behandelt
    • Benachbarte Punkte werden zufällig ausgewählt
    • Wenn ein Punkt noch keiner anderen Platte zugewiesen ist, wird er dieser Platte hinzugefügt
    • Jedes Pixel innerhalb einer Platte speichert die Bewegungsrichtung der Platte
    • Dieses Verfahren ähnelt diffusion-limited aggregation ohne Diffusion
  • Kontinuierliche Plattenbewegungen sind schwer umzusetzen, weil dabei behandelt werden müsste, dass sich Grenzen nur um Bruchteile eines Pixels verschieben
  • Stattdessen bewegen sich Platten in diskreten Zeitschritten horizontal oder vertikal um genau ein Pixel
    • Die Bewegungszeiten werden für jede Platte randomisiert
    • Die mittlere Geschwindigkeit der eingestellten Geschwindigkeit und Richtung bleibt erhalten
    • Die Wahrscheinlichkeit, dass benachbarte Platten sich gleichzeitig bewegen, sinkt
  • Eine Plattenkollision tritt auf, wenn sich ein Grenzpixel einer Platte an eine Position bewegt, die zuvor von einem Pixel einer anderen Platte belegt war
  • Kollisionen werden als Subduktion behandelt und modelliert, indem die Höhe am Kollisionspunkt leicht angehoben wird
  • Der Kollisionseffekt entsteht nur an Grenzpixeln, wird aber durch ein Modell der thermischen Erosion schrittweise auf benachbarte Pixel verteilt
    • Thermische Erosion verschiebt die Höhe eines Pixels in Richtung des Nachbarschaftsmittels
  • Diese Kombination ermöglicht eine grobe Simulation der Bildung von Kontinenten mit Gebirgen

Hydrologische Erosion und Flussbecken

  • Das raue Erscheinungsbild natürlicher Landschaften entsteht zu einem großen Teil durch die Bildung von Flussbecken, die die Landschaft in vertrauten verzweigten Mustern erodieren
  • Da die Geländekarte des gesamten Planeten nur eine geringe Auflösung hat, muss das Modell auch Flüsse mit einer Breite von einem Pixel simulieren können
  • Das einfache Modell von Barnes (2018) erfüllt diese Anforderung
  • Jedes Pixel untersucht acht Nachbarn, um die Richtung mit dem größten Höhenabfall zu finden
    • Diagonale Nachbarn sind weiter entfernt und werden deshalb korrigiert
    • Die steilste Abstiegsrichtung wird zur Richtung, in die Wasser aus diesem Pixel abfließt
  • Wasser wird anfangs durch Niederschlag auf die Zellen verteilt und bewegt sich in jedem Zeitschritt zwischen benachbarten Pixeln
  • Die Erosion wird nach dem stream power law behandelt
    • Verwendet werden elevation, water und die slope in die Richtung, in die sich das Wasser bewegt
    • Die Absenkung der Höhe wird so begrenzt, dass sie nicht unter die Höhe der Stelle sinkt, zu der das Wasser fließt
  • Durch das Zusammenspiel von Wasserfluss und Erosion bilden sich auf natürliche Weise Flussbecken im Terrain
  • Werden verbundene Wasserläufe nach der Position ihrer Flussmündungen eingefärbt, entsteht eine Visualisierung, die an echte Flussbeckenkarten erinnert
  • Auch der original shader des simulierten Flussbeckens wird bereitgestellt

Globales Klimamodell

  • Das Klimasystem des gesamten Planeten ist komplex, wird in dieser Simulation aber relativ einfach angenähert
  • Der zentrale Antrieb der Klimasimulation ist eine prozedural erzeugte Karte des mittleren Luftdrucks auf Meereshöhe (MSLP)
  • Laut dem Climate Cookbook sind die wichtigsten Faktoren für die Erzeugung einer MSLP-Karte die Verteilung von Land und Meer sowie der Einfluss des Breitengrads
  • Trägt man reale MSLP-Daten der Erde getrennt nach Land und Meer über dem Breitengrad auf, ergeben sich zwei leicht unterschiedliche Sinuskurven
  • Das Modell des jährlichen mittleren Luftdrucks wird getrennt für Land und Meer mit breitengradbasierten Formeln berechnet
    • Land: 1012.5 - 6. * cos(lat*PI/45.)
    • Meer: 1014.5 - 20. * cos(lat*PI/30.)
  • Berechnet man Land und Meer getrennt, entstehen an den Grenzen scharfe Unstetigkeiten
  • In der Realität ändern sich MSLP-Werte an Übergängen zwischen Meer und Land wegen lokaler Druckdiffusion weich
  • Dieser Diffusionsprozess wird angenähert, indem auf die MSLP-Karte ein Gaussian Blur angewendet wird
    • Die Standardabweichung liegt im Bereich von 10–15 Grad
  • Saisonale Veränderungen werden umgesetzt, indem zusätzlich die MSLP-Differenz zwischen Januar und Juli modelliert wird
    • Auch diese Differenz folgt in Erddaten einem sinusförmigen Muster
    • Nach dem Anpassen der Parameter und Anwendung eines Gaussian Blur wird sie mit dem jährlichen MSLP-Mittel kombiniert
  • Auf Basis des MSLP werden Wind und Temperatur erzeugt
    • In der Realität erzeugt Temperatur den Luftdruck, hier wird jedoch die Korrelation genutzt
    • season oszilliert im Verlauf eines Jahres zwischen -1 und 1
  • Wind tendiert dazu, sich von Hochdruck- zu Tiefdruckgebieten zu bewegen, auf globaler Skala muss jedoch auch die Corioliskraft berücksichtigt werden
    • Die Corioliskraft lässt Winde um Druckgebiete zirkulieren
    • Der Geschwindigkeitsvektor wird aus Coriolis-Term und Druckgradient kombiniert berechnet
  • Diese vergleichsweise grobe Simulation erzeugt realistische Muster der Windzirkulation
  • Auch die Umkehr der Winde während der Monsunzeit in Indien wird reproduziert
  • Niederschlag wird simuliert, indem Wasserdampf aus dem Meer entlang des Windvektorfelds auf das Land advehiert wird
  • Die Advektion ist ähnlich wie in einer Fluidsimulation umgesetzt

Verteilung des Lebens und Räuber-Beute-Dynamik

  • Das Klima beeinflusst die Verteilung des Lebens auf dem Planeten
  • Niederschlagsmuster und Temperaturschwankungen bestimmen die Wachstumsrate von Pflanzen
  • Mit dem Wechsel der Jahreszeiten wandern Pflanzenfresser in Gebiete mit genügend Vegetation, um sich zu erhalten
  • Räuber folgen den Pflanzenfressern, die der Vegetation folgen
  • Diese Dynamik wird mit einem Lotka–Volterra-Diffusionsmodell erfasst
  • Die xyz-Komponenten der Variablen c stehen jeweils für Vegetation, Pflanzenfresser- und Räuberpopulation
  • Die Populationsdynamik von Tieren im großen Maßstab erzeugt interessante Muster
  • In der Realität sind solche Muster am leichtesten bei Mikrobenpopulationen in Petrischalen zu beobachten, doch dieselben Gesetze gelten auch für Populationen großer Tiere auf der ganzen Welt

Menschheit und CO2-Emissionen

  • Nach der frühen Erdphase verlangsamt sich die Simulation auf einen Tag-Nacht-Zyklus, die Plattentektonik wird kaum noch wahrnehmbar und das Terrain bleibt fixiert
  • Nachts erscheinen mit der Besiedlung der Planetenoberfläche durch die Menschheit beispiellose Lichtmuster
  • Die schnelle Ausbreitung der Menschheit geht mit der Verbrennung fossiler Energieträger einher
  • Über mehrere Jahrhunderte verbrennt die Menschheit alle verfügbaren fossilen Ressourcen und emittiert 5 Billionen Tonnen Kohlenstoff in die Atmosphäre
  • Diese Emissionen verstärken den Treibhauseffekt und erhöhen die globale Durchschnittstemperatur um fast 10 Grad Celsius
  • Aufgrund der extremen Temperaturen werden große Landgebiete rund um den Äquator unbewohnbar
  • Infolgedessen verschwindet die Menschheit aus einem erheblichen Teil des Planeten

1 Kommentare

 
GN⁺ 2024-07-30
Hacker-News-Meinungen
  • Cool ist es schon, aber der Teil am Ende, in dem eine Zivilisation mit Nachtbeleuchtung zwangsläufig alle fossilen Brennstoffe verbrennt und den Planeten in eine Wüste verwandelt, wirkt wie eine Annahme, die sich nur auf einen möglichen Pfad unserer Zivilisation stützt.
    Es gibt keinen Grund zu glauben, dass es plausibler ist, an Erwärmung und Wüstenbildung zugrunde zu gehen, als durch Atomkrieg, die Entwicklung sauberer Kernfusion, eine Pandemie oder die Invasion eines nahegelegenen, prozedural generierten erdähnlichen Planeten.
    Wenn man simuliert, was tatsächlich passiert ist, ist das großartig, aber nur bis zu dem Punkt, an dem Meinungen einfließen.
    Außerdem scheint Hitze mit Trockenheit gleichgesetzt zu werden, und der Effekt von zusätzlichem CO2 auf Pflanzen wird offenbar ebenfalls nicht berücksichtigt. Selbst wenn die Äquatorzone so heiß würde, dass Menschen dort nicht leben könnten, könnte sie durchaus nicht von Wüste, sondern von Dschungel bedeckt sein.

    • Bei manchen Sätzen habe ich Zweifel, aber insgesamt stimme ich zu. Leider leben wir in einer Excel-Welt, und es dominiert die Denkweise, komplexe Welten in Tabellenkalkulationen zu modellieren und dann auf Basis der Ergebnisse Entscheidungen zu treffen.
      Dieser Ansatz ignoriert die oben genannten Sekundäreffekte weitgehend.
    • Zur Einordnung: Die Simulation bildet, wenn auch grob, den Effekt ab, dass Wärme zu einer stärkeren Aufnahme von Wasserdampf durch die Meere und zu schnellerem Pflanzenwachstum führt, wodurch wiederum die Geschwindigkeit der Kohlenstoffbindung steigt.
      Ich gebe zu, dass die Wüstenbildung am Ende ein Stück künstlerische Freiheit ist, um die Geschichte visuell leichter zu erzählen. Die Realität wäre viel komplexer.
      Es ist einfach nur die Geschichte eines bestimmten möglichen Szenarios, und anderswo wurde es auch so formuliert: „Der letzte Teil soll eine mögliche, aber wahrscheinlich eher unwahrscheinliche Zukunft zeigen. Ich wollte es dramatisch machen und habe deshalb das extreme Ergebnis dargestellt, dass buchstäblich alle fossilen Brennstoffe verbrannt werden; die übrigen Effekte habe ich aber, nachdem ich wissenschaftliche Arbeiten zu solchen Annahmen gelesen hatte, so realistisch wie möglich zu halten versucht.“
      https://www.vice.com/en/article/xgx7nq/watch-four-billion-ye...
  • 1996/1997 habe ich an einem CD-ROM-Spiel gearbeitet, das Plattentektonik, Temperatur, Höhe und Niederschlag über Millionen von Jahren simulierte.
    Es ist erstaunlich zu sehen, wie weit sich Computerhardware und Software in 28 Jahren entwickelt haben: https://www.kmoser.com/evolution/

    • Ich sehe zum ersten Mal jemanden, der dieses Spiel kennt, und dann warst du sogar tatsächlich Entwickler daran – schön. Ich habe es mit etwa 13 gespielt und mochte es wirklich sehr.
      Allein die Idee, einen Planeten und die Tiere darauf zu simulieren, war damals völlig überwältigend, und ist es im Grunde immer noch. Ich hätte das beiliegende Poster aufbewahren sollen; die verschiedenen Evolutionszweige der Sapiens waren wirklich faszinierend.
    • Cool. Ich habe kürzlich John McPhees Assembling California gelesen und kann es sehr empfehlen.
      Ich dachte, es wäre schön, wenn man auf einem 3D-Globus mit Zeitschieberegler die erwarteten Plattenbewegungen manipulieren und visualisieren könnte, wie daraus die heutige Topografie entsteht. Kennst du zufällig so etwas?
      [1] https://www.goodreads.com/book/show/19898.Assembling_Califor...
      [2] Auszug: https://www.newyorker.com/magazine/1992/09/07/assembling-cal...
  • Ein großartiges Hard-SF-Buch, das sehr stark mit diesem Thema zusammenhängt, ist Permutation City. Als ich den Titel dieses Beitrags sah, fühlte es sich an, als wäre ich in einem Traum.

    • Permutation City habe ich noch nicht gelesen, aber Diaspora ist einer meiner liebsten SF-Romane. Ich sollte mir Zeit dafür nehmen.
    • Permutation City ist großartig. Greg Egan veröffentlicht auf seiner Website auch viele kostenlose Kurzgeschichten, die Physik erkunden: https://www.gregegan.net/
    • Ich habe das Buch gestern zu Ende gelesen und hatte exakt dieselbe Reaktion.
  • Ein kleiner Abstecher, aber die kurze und großartige Kurzgeschichte „I don't know, Timmy, being God is a big responsibility“ behandelt in gewissem Sinn Weltsimulationen und ist wirklich gut:
    https://qntm.org/responsibility

    • Ich würde gern die alternativen Enden dieser Kurzgeschichte lesen.
      Ich wollte seit Jahren eine Geschichte mit einer sehr ähnlichen Handlung schreiben, hatte aber ein großes Plot Hole beim Rechen-Overhead zwischen den Universen, und auf die Lösung mit Quantencomputern bin ich nicht gekommen.
      Ein weiterer Unterschied in der Geschichte, die ich im Kopf hatte, war, dass die Figuren diese Geschichte schreiben, sie dadurch zu „meiner“ Geschichte wird und eine Variable erzeugen, deren Wert in jedem Universum um 1 steigt, sodass der Leser am Ende weiß, auf welcher Tiefe er sich befindet.
      Wer das hier auf HN liest, befindet sich auf Tiefe 8474771628371839.
    • Wenn wir diesen Abstecher noch weiter verfolgen, empfehle ich Philip K. Dicks The Trouble With Bubbles. Darin geht es um die Vorstellung, dass Gäste auf Cocktailpartys der 60er mit ihren Terrarien im Maßstab kleiner Miniaturplaneten angeben.
    • Ich bin mir nicht ganz sicher, wie ich das lesen soll. Soll man die neueste Version lesen, die oben auf der Seite verlinkt ist, oder ist die hier angebotene Version eher so etwas wie der Kanon?
      Ich glaube, außerhalb von Lehrbüchern bin ich bei Belletristik noch nie auf mehrere Versionen gestoßen. Solche Gedankenexperiment-Texte mag ich wirklich sehr, solange sie nicht in Lücken der Logik oder Physik herumstochern.
      Mir gefällt die Idee eines Multiversums, in dem alle Universen praktisch identisch sind und das Ganze dadurch größtenteils bedeutungslos wird.
    • Ich liebe den Punkt, dass ein weltweit führender Quantencomputer-Wissenschaftler, der eine Entdeckung gemacht hat, die alles auf den Kopf stellt, was die Menschheit zu wissen glaubt, bis zum Schluss besorgt ist, den Bus zu verpassen.
    • Beim Anschauen einer großartigen TV-Serie aus den letzten Jahrzehnten kam mir eine Szene wie eine eindeutige Hommage an diese Kurzgeschichte vor.
      Drama, Physik und Ende wurden anders behandelt, aber sie hinterließ einen ähnlich angenehm nachdenklichen Zustand. Ich war kurz davor, den Titel oder den Namen des Regisseurs zu schreiben, habe dann aber gemerkt, dass schon dieser Kontext ein großer Spoiler sein könnte, und aufgehört.
      Vielleicht habe ich den Namen in diesem Kommentar verschlüsselt. Ehrlich gesagt habe ich es versucht, und es ist jetzt spät in der Nacht; mit heutigen Suchmaschinen könnte man es vielleicht herausfinden.
  • Einer meiner Lieblingskurse an der Uni war Analyse der Energiepolitik, und wir haben mit dem am MIT entwickelten EPPA-Modell experimentiert.
    Wir haben bestimmte Parameter verändert, etwa was passieren würde, wenn die Kosten für Energiespeicherung auf ein Zehntel sinken. Das war sehr spannend, aber leider habe ich im Job nie eine Gelegenheit gefunden, etwas Ähnliches auszuprobieren.
    [0]: https://globalchange.mit.edu/research/research-tools/eppa

  • Um ehrlich zu sein: Die Simulation lässt offensichtlich einige Details aus :)

  • Aus irgendeinem Grund laufen alle auf der Seite eingebetteten Shadertoy-Beispiele bei mir nur mit etwa 0,6 FPS.
    Wenn ich den verlinkten „final shader“ auf der Shadertoy-Website öffne, läuft er problemlos mit 60 fps.

    • Falls es bei dir wie in meinem Browser aussieht: Unter dem Zurückspul-Button gibt es einen abgeschnittenen Play-Button; wenn man den drückt, ist das Problem behoben.
  • Manchmal frage ich mich, wie es sich wohl anfühlen würde, in einem simulierten Universum zu leben.

    • In gewisser Weise kann man sagen, dass wir das bereits tun. Was ist eine Simulation? Letztlich nur etwas, das einem Satz einfacherer Regeln folgt als die komplexere Umgebung, in der es ausgeführt wird.
      Wenn wir das „Außerhalb“ des „Universums“ „sehen“ könnten, würden wir vielleicht verstehen, dass unsere Realität im Vergleich zur äußeren „Realität“ sehr einfach und begrenzt ist. Diese Struktur könnte sich unendlich fortsetzen, oder die äußere Realität könnte sehr viel logischer sein als unsere, sodass wir ihre Endlichkeit akzeptieren müssten.
      Aber da wir einen Anfang und einen Zeitverlauf haben, gibt es vielleicht auch eine Geburt, eine Mutter, vielleicht sogar einen Zweck. Natürlich ist das eine sehr menschliche Denkweise, und es könnte auch alles nur eine zufällige Suppe sein.
      Stell dir vor, in einer von uns geschaffenen Simulation gäbe es selbstbewusste Akteure, die anfangen, dasselbe zu denken. Alle würden lachen und sagen: „Wir sind einfach zufällig, es gibt keinen Gott und keinen Entwurf; warum sollte jemand so viel Energie in so einen nutzlosen, riesigen Haufen leeren Raums stecken?“ Er müsste dem in gewissem Maße zustimmen, läge aber zugleich in gewissem Maße falsch.
      Uns zu entdecken, wäre kein Trost. Denn auch wir könnten nichts über unseren eigenen Designer sagen. Aus demselben Grund wäre es auch kein Trost, wenn wir sie entdecken würden. Deshalb ist das Konzept von Gott unsinnig. Wenn Gott ebenfalls einen Gott hat, was soll man dann tun? Seine Existenz zu akzeptieren, löst kein einziges Problem.
    • Immer wenn ich darüber nachdenke, frage ich mich, ob das wirklich wichtig ist. Wenn ich sowohl das „Ja“- als auch das „Nein“-Szenario durchspiele, bringt mir das keine besondere Erkenntnis.
      Vielleicht ist das bis zu einem gewissen Grad Nihilismus, aber gerade deshalb werde ich davon nicht überwältigt.
    • „I don't know, Timmy, being God is a big responsibility“ https://qntm.org/responsibility
    • Die Energie und Materie des Universums sind in Wahrheit ein riesiger analoger Quantencomputer, der die Ergebnisse einer Menge von Gleichungen simuliert.
      Niemand hat je gesagt, dass eine Simulation zwingend auf Halbleitern laufen muss.
    • Es wäre genau wie dieses Universum, genau jetzt.
  • Ich weiß nicht, warum nur Fragment-Shader verwendet werden. Mit einem Vertex-Shader für die Heightmap könnte man doch bis zur Oberfläche hineinzoomen.

  • Da steht „written entirely in GLSL fragment shaders“ – was ist das für eine Sprache?
    Die Musik ist ziemlich abgedroschen. Vielleicht wurde sie von einer KI gemacht.