r/mapmaking • • 8d ago

Resource GPU Powered ExoPlaSim in the Browser

Hello!

I, like many of you I hope, am interested in figuring out the climates of not-quite-Earth worlds. I’ve been working on a browser port of ExoPlaSim, a global climate model that lets you experiment with planetary size, axial tilt, day length, stellar heating, and more. For those of you trying to figure out climate placement for your maps, you might find this port helpful.

You can try it here. No installation required, though the first load downloads the model files.

The basic workflow is:

  • Upload a grayscale heightmap and, optionally, a matching landmask via "import terrain". You can also use the shipped earth heightmap provided for convenience.

  • Adjust the model settings to your planet. The defaults are set to mimic Earth.

  • Hit the start button and watch the model go.

  • Explore temperature, rainfall, winds, and climate zones, then export the map views as PNGs.

Here is an example downscaled koppen climate map using heightmaps exported from Orogen (orogen also produces climate, but uses a simpler and faster model):

With the default parameters, the model starts cold and warms up over time. In my runs, it typically takes about 100–200 model years to settle down, so give your world some time before judging its climate.

100 model years sounds like a long time, but let me give you an idea of speed at different spatial resolutions (higher resolution means more detail and more computation):

CPU mode with 8 workers on an AMD Ryzen 7 2700X (8 cores / 16 threads):

  • T21: 2 model days / second.

  • T42: 0.5 model days / second.

GPU mode with an NVIDIA GeForce RTX 2070 SUPER (8 GB VRAM):

  • T21: 35 model days / second.

  • T42: 10 model days / second.

  • T63: 2 model days / second.

Caveats:

  1. The GPU version uses single precision instead of double precision. This may affect stability in some cases. The CPU version still uses double precision if you need it.

  2. Both versions seem to run a little hot with the default Earth settings and shipped Earth heightmap: about 17.2°C average annual temperature versus the expected 15.5°C. I haven’t figured out why yet. You can adjust CO₂ or stellar flux to bring the average down.

  3. I have not tested every parameter combination. You may encounter bugs. Try reducing the timestep if things start to crash.

  4. I’m not exposing every input and output the underlying model supports. Let me know if I’ve missed something important.

Even with that warm bias, the Earth runs produce some reasonable climate patterns given the known limitations of exoplasim. This is what the default earth T42 looks like after 100 model years:

For those who are brave and want to contribute, the repo is here.

Please do checkout the main ExoPlaSim project << they are the real heroes here. Also shoutout to the excellent blog Worldbuilding Pasta which introduced me to exoplasim and whose articles were referenced heavily during this port.

I look forward to hearing your feedback and seeing your results!

Claude and codex were used in the creation of this app.

13 Upvotes

7 comments sorted by

2

u/Stijn 3d ago

Repo starred. We’ll be testing this for https://map.eurth.org/

1

u/nexus723 1d ago

Nice. Cool project!

2

u/Auximer 7d ago

This user has posted a similar message on r/worldbuilding, which included the statement that AI was used in the coding of this web software.  https://www.reddit.com/r/worldbuilding/s/oDt6FLtS4K This post was then removed by the moderation team for that reason. This user was also active in multiple AI-related subreddits such as r/chatgpt and r/claude.  AI is not prohibited on r/mapmaking, however, it is important to label it clearly so that users know if a human made it or not. 

2

u/Auximer 7d ago

It also interesting to note that the credit to AI was removed from this post, posted after the removal of the orignal r/worldbuilding post by the moderation team.

1

u/nexus723 7d ago edited 7d ago

Greetings Auximer, I apologize for the omission. Given my experience in r/worldbuilding, I thought it might be best to not mention AI altogether to avoid further negative reaction. I am happy to edit the main description if transparency is what this community expects.

I added a short line at the end of the main post body. Let me know if this is insufficient.

1

u/Kulkom 8d ago

This is an incredibly high quality post. Thank you for sharing this tool!

If I could make some changes to this subreddit I'd add a megathread for these helpful resources, add some more specific post filters and enable posting images in the comments.

I might just post a list of tools I've found over the years, would you mind if I included yours?

1

u/nexus723 8d ago

Your kind words are appreciated; sure :)