- 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,waterund dieslopein 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
- Verwendet werden
- 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.)
- Land:
- 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
seasonoszilliert 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 Variablencstehen 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
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.
Dieser Ansatz ignoriert die oben genannten Sekundäreffekte weitgehend.
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/
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.
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.
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 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.
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.
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.
Manchmal frage ich mich, wie es sich wohl anfühlen würde, in einem simulierten Universum zu leben.
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.
Vielleicht ist das bis zu einem gewissen Grad Nihilismus, aber gerade deshalb werde ich davon nicht überwältigt.
Niemand hat je gesagt, dass eine Simulation zwingend auf Halbleitern laufen muss.
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.
Ursprünglich wurde es von John Murphy für den Film Sunshine von 2007 komponiert.
https://en.wikipedia.org/wiki/Sunshine:_Music_from_the_Motio...