Hi Nikgohn! Thank you for sharing it, it's really nice to have it all in one place, it's almost like a timelapse of the progress we've made over the last 9 months ^-^
Calandiel
Creator of
Recent community posts
Thanks! (and sorry for not approving the post sooner, I missed it :<)
As for the feature request, in the long term, the plan is to provide a proper map editor so that people don't need to fiddle with limitations of guidance maps. I'm not sure when I'll work on it, but having much tighter control over the results is something I'm definitely interested in. I'd like Gleba to eventually have a "main world" for the game part of the project and I'd like to handcraft it with the help of Gleba's generative tools so it's in my best interest to give more options to control things like coastlines and mountains.
Sorry for not approving this one earlier, I missed it somehow.
Long story short, climate used to only have 2 samples per year so the resolution of the itcz was pretty low. Now we take 12, which helps, but we still need to rebalance model parameters for the higher resolution to capitalize on that increased capacity.
Generally, your diagnosis of whats going wrong is right on the money, though.
I'll be fixing it sometime soon-ish
I thought it'd be fun to share some of the updates outside of walled-in communities like Discord.
To get this thread started, here is the new item on the agenda: coral reefs

A long lasting issue with Gleba has been the lack of small islands in tropical regions, this will help us alleviate the issue.
They can only spawn in relatively shallow waters, where the temperature range allows for their growth.
They are meant to represent large coral reef bodies, for small subtile coastal reefs and minor barrier reefs we will rely on subtile features and world upscaling.


Hi! I disabled generation of anything other than climate for worlds with imported heightmaps in version 0.3. Sorry for the letdown :<
It's pending some decisions on how to handle missing data and backwards compatibility.
Long story short, to generate biomes, we dont need only need elevation and climate, we also need bedrocks, soil texture, soil depth, soil richness, and so on. Gleba currently doesnt support generating those in a way consistent with the heightmap due to how difficult the task would be. I have some plans for a proper world editor thatd make making this missing data feasible but it's not available yet.
So, the reason why plates didn't match when loading a heightmap is because a heightmap contains barely a fraction of information needed to reconstruct a detailed platemap. As such, Gleba doesn't even try to do that. When you import heightmaps, only climate data will be generated. Everything else will be populated with random placeholders.
There's basically three, mutually exclusive workflows here:
- don't import any maps, generate a fully random map, meant for people without a good idea of what world they want yet
- import a crustmap and/or platemap, itll generate a full world using those crust and plate layouts, best used when you have a general idea of what you want but you don't want to spend time creating all the detail by hand
- import a heightmap and get only climate data as a usable output, useful for people who have a finished world and just want to double check the climate zones
Since you mention trying to simulate Earth and projecting what it may look like in the far future - I thought it may be worth clarifying that Gleba isn't the right tool for it. We don't offer any tools for manually advecting plates either into the future or into the past.
That being said, forecasting Earth into the future isn't that uncommon so you may be able to use other people's work. Here's some wikipedia articles with different forecasts for the future of Earth (see sources for actual papers):
https://en.wikipedia.org/wiki/Pangaea_Proxima
https://en.wikipedia.org/wiki/Amasia_(supercontinent)
When importing heightmaps you can't use crustmaps and platemaps (and vice versa). Additionally, as per the heightmap import tooltip in Gleba: `Note that this feature can ONLY be used for climate generation.`
Why do you want to import crustmaps and platemaps when you already have a heightmap? You mentioned making it "work properly"? If the impression is that for heightmaps to work you need crustmaps and platemaps too, that's not the case. The workflows are either "no map imports" / "crustmap and/or platemap" / "heightmap". I may need to make some improvement to how these features are displayed and organized.
The models are highly tuned to a specific set of parameters - this is what makes them fast. Going outside of those parameters would make them misbehave and generate increasingly less realistic planets. We could probably allow planets slightly larger than Earth (if I had to *guess* maybe up to 1.25 or 1.5 of Earths radius) but I haven't done testing to verify whether it works.
Technically speaking this means we should also lock the radius more strictly from"below" - this will be done in the next version (probably down to Mars sized planets but I haven't decided yet)
Hi! I believe this heightmap should work: https://sbcode.net/topoearth/gebco-heightmap-5400x2700/
This post will collect some of the books I referenced, read, or used to develop Gleba.
It won't be exhaustive and a book being present here doesn't mean that the ideas from it were used directly or that I agree with the authors - they may be here due to being used for verifying citations in other books or offer competing views to the approaches I chose to use in Gleba.
The main purpose of it, though, is just to provide a list of cool "Gleba-adjacent" books for those who are interested in following the development more closely!
Special mentions
These books are the ones I return to most frequently, be it as a starting point for further research or as a direct reference
- The Lifeways of Hunter Gatherers, by Robert L. Kelly - Kelly's work is always a pleasure to read and this book is perhaps one of most comprehensive books on the subject, with copious references for further research
- Advanced economics, 5th edition, by David Romer - a pretty standard textbook for economics, very much recommended
- Atmospheric and Oceanic Fluid dynamics: Fundamentals and Large-Scale Circulation, by Geoffrey K. Vallis - another classic in its field, goes through both the theory and the practice of computational climate modelling
Demography
- An Essay Concerning Mankind's Demographic Evolution, by J. N. Biraben (1980)
- The Lifeways of Hunter Gatherers, by Robert L. Kelly
- Spatiotemporal distribution of the North American Indigenous population prior to European contact, by Robert L. Kelly et al
- The Nganasan: Wild Reindeer Hunters of the Taimyr Peninsula, by Chester S. Chard
- Serpent in Eden: Dispersal of Foreign Diseases Into Pre-Mission California, by William Preston (1996)
- Historic and bioarcheological evidence supports late onset of post-Columbian epidemics in Native California, by Terry L. Jones et al
- Earth system impacts of the European arrival and Great Dying in the Americas after 1492, by Alexander Koch et al
- Eastern North American Population at CA. A.D. 1500, by Georgie R. Milner and George Chaplin
- A global dynamic model for the neolithic transition, by Kai W. Wirtz and Carsten Lemmen
- Cultural and natural areas of native North America, by A. L. Kroeber (1939)
- The Human Crop, by Edward S. Deevey, Jr. (1956)
- Historical Estimates of World Population: An Evaluation, by John D. Durand (1977)
- Demographic Archeology, by Fekri A. Hassan
- Global hunter-gatherer population densities constrained by influence of seasonality on diet composition, by Dan Zhu et al
- Hunter-Gatherer Economic Complexity and "Population Pressure": A Cross-Cultural Analysis, by Lawrence H. Keeley (1988)
- Julian Huxley on Population and Human Destiny, by Julian Huxley
- A Concise History of World Population, by Massimo Livi-Bacci (2017)
- English medieval population: reconciling time series and cross sectional evidence, by S. Broadberry et al (2010)
- Portents of Plague from California's Protohistoric Period, by William L. Preston
- Size and Distribution of the Population in Late Bronze Age Messania Some Statistical Approaches, by Joan Carothers and William A. McDonald
- How Many Sumerians per Hectare? - Proving the Anatomy of an Early City, by Nicholas Postgate
- Their Number Become Thinned - Native American population dynamics in eastern North America, by Henry F. Dobyns
- The Names and Locations of Historic Chumash Villages, by Chester King and Thomas Blackburn
- Estimates of Upper Palaeolithic meta-population size in Europe from archaeological data, by Jean-Pierre Bocquet-Appel et al
- World Population Estimates Interpolated and Averaged, by Scott Manning
Economics
- Advanced economics, 5th edition, by David Romer
- Productivity of pre-modern agriculture in the Cucuteni-Trypillia area, by A. Shukurov et al
- The Great Divergence in European Wages and Prices from the Middle Ages to the First World War, by Robert C. Allen
- Are tariffs bad for growth? Yes, say five decades of data from 150 countries, by Davide Furceri et al
- The prehistoric and preiundustrial deforestation of Europe, by Jed O. Kaplan et al
- From Convergence to Divergence: Portuguese Economic Growth, 1527-1850, by Nuno Palma and Jaime Reis
- The Size of the Economy and the Distribution of Income in the Roman Empire, by Walter Scheidel and Steven J. Friesen
- The Columbian Exchange: A History of Diseases, Food, and Ideas, by Nathan Nunn and Nancy Qian
Geology
- Microplate tectonics: A new tectonic paradigm, by Sanzhong Li et al
- De Re Metallica, by Georgius Agricola (1556) - the oldest book on the list as of mid 2026, very insightful when it comes to the level of contemporary knowledge!
Climate
- Vertical Coordinate Formulations for Atmospheric Models, by Christoph Schar
- Vertical Differencing of the Primitive Equations in Sigma Coordinates, by Akio Arakawa and Max J. Suarez
- ExoPlaSim: Extending the Planet Simulator for Exoplanets, by Adiv Paradise et al (2022)
- The Planet Simulator: Towards a user friendly model, by Klaus Fraedrich et al
- qgs: A flexible Python framework of reduced-order multiscale climate models, by Jonathan Demaeyer et al
- Multi-decadal pacemaker simulations with an intermediate-complexity climate model, by Franco Molteni et al
- Atmospheric simulations using a GCM with simplified physical parametrizations. I: model climatology and variability in multi-decadal experiments, by Franco Molteni
- Atmospheric and Oceanic Fluid dynamics: Fundamentals and Large-Scale Circulation, by Geoffrey K. Vallis
A note about "grand histories"
Every few years, a new book comes out to promise simple answers to most complex questions of history and life. Are humans naturally inclined towards freedom or oppression? Why was England first to industrialize? What determines fertility rate or the speed of innovation? And so on and so forth.
I personally really dislike such books as they necessarily have to overtly simplify their subject matter and tend to draw conclusions that could generously be called disputed. That being said, since every few months there's someone on social media pinging me to tell me I should read "Germs, Guns, and Steel" or "Sapiens" or some other similar work, I thought it'd be a good idea to make a list of "grand history" books I find least problematic.
- The Dawn of Everything: A New History of Humanity, by David Graeber and David Wengrow - while at times it paints stories that can be too colorful, it's perhaps the most accessible "counter" to the very popular "Germs, Guns, and Steel" by Jared Diamond. Environmental possibilism (rather than environmental determinism) is a crucial part of Gleba's overall design and The Dawn of Everything is a good introduction for people who are short on time but still want to be exposed to the sheer variety of shapes and forms that human societies can take
Hi!
I have been experimenting with adding support for multiple planets in the last few weeks. Not sure if it's going to get delivered or if I'll cut the attempt short but it is something I am looking into ^^
That being said, keeping the physical scale 1:1 (which is what I assume you meant by "going from macro to micro scale" is something I'm deeply interested in. Gleba's long term goal (besides giving me a fun hobby after work!) is delivering something akin to a first person RPG. I've written a little about it here: https://calandiel.itch.io/gleba/devlog/1122695/devlog-1-the-start-of-a-new-adven...
Hi!
Currently the climate parameters are rather rudimentary - making a realistic climate simulation with the computational budget I've allowed myself for it is already difficult enough when you limit yourself just to Earth. I do plan to eventually let the user control properties of the star to some extent but at the moment it isn't possible as I want to make sure that what we already have is good enough ^-^
Gleba generates reasonable realistic planets by default, but if you want more control over the layout of landmasses and placement of mountains, you may want to use the crustmap and platemap imports.
This thread is a very short tutorial for beginners describing how to get started. Let us know if you run into any issues!
1. Make a black and white image (say, 1000 by 500) pixels where white pixels are continental crust and black ones are oceanic crust
Here's an example:
One important thing to keep in mind is that the map represents *continental crust*. Not coastlines, or landmasses. As such it shouldn't contain volcanic island arcs or hotspot island, but *should* include shallow parts of the continental shelf that would otherwise be underwater.
If you want the generated world's coastlines to adhere more closely to the crustmap, you can try lowering "sea level increase since LGM" (last glacial maximum).
2. Save the image as a png
3. Make an image of tectonic plates, with each plate represented by a single unique color. You can choose any colors you want, as long as you stick to the rule that a single plate gets a single (unique) color.
Here's an example:

It is *essential* that each plate gets *exactly* a single, unique color. You need to make sure that edges between plates have no aliasing, smoothing, or any other brush effects that some image editing software add automatically.
Here's an example of a correctly formed boundary between two plates:

If your map fails to load, it is very likely because you didn't ensure these crisp, sharp, pixel perfect plate boundaries. Each unique shade of color gets interpreted as a different plate so if your brush is smooth, each individual pixel on the boundary would get interpreted as a tiny 1 pixel large plate, which is almost certainly not what you want.
4. You can also (but dont need to) specify movement direction of plates by placing black (rgb of 0, 0, 0) and white (rgb of 255, 255, 255) dots on them. The plate will move in the direction from the black dot to the white dot.
Here's an example:

The size of the dot doesn't matter as long as they are fully surrounded by a single plate. To ensure correct behavior, place no more than a single pair of dots per plate. You should also prefer placing them closely, as to avoid possibly counterintuitive consequences of the curvature of Earth. The exact speed of the movement depends on the distance between dots *relative* to all other distances between dots. As such, there's no reason to place them very far apart.
5. Save the image as a png
6. Load the platemap and the crustmap in Gleba, using the buttons in the menu with world parameter sliders
And that's about it! Gleba will now generate a world roughly in the shape that the files prescribe.
Now, here's a list of common issues you may run into:
1. If you don't get orogenies or other plate boundary features, you need to make sure that the boundaries of the crust align with the boundaries of the plates. Gleba checks for boundary types (such as continental collisions) only within the immediate vicinity of the boundary. Do not try to manually move crust back to account for flexural forces of the collision. Place the crust along the boundary of the plate and let Gleba do it for you.
Sorry for the confusion, it's nothing that complicated ^-^
In this context, world topology is just the shape of the graph of tiles and their neighborhoods.
Basically, my algorithms work more or less the same regardless of whether tiles are hexagons with 6 neighbors each, squares with 4 neighbors, squares with 8 neighbors, an irregular voronoi graph, or something even more exotic.
Hi!
I started this project a year or so ago, but the vast majority of it was in various experiments and what I would call "engine work". Not going into technical details but this project is doing a lot of weird things that afaik not many other games do (like having most algorithms be world topology agnostic so that things like tile shape and neighborhoods can be easily swapped and compare with each other).
When it comes to "simulation" coding, I spent around a month and a half on it, after which I spent a month and a half working on 3d rendering. first person control, game physics, and UI.
The current goal is to get more feedback on world generation algorithms and incorporate it while I work on combat and spawning animals in the 3d world. In an ideal world there'll be a tiny open world rpg tech demo by the end of the year and after that I'll be working on procedural generation of societies, settlements, and dialogue.
Most of it has been open source for over a year: https://github.com/Calandiel/SongsOfFOSS
The parts that aren't are in the process of being ported to an open source license.
I think there's some misconception here. SotE 's funding ran out but the game is still under development by the community. We open sourced it under the GPL license ( https://github.com/Calandiel/SongsOfGPL )
It takes 1-3 minutes to generate a planet with your high performance computer precisely because the planet generation system isn't bad (in the sense of accuracy). SotE runs a tectonic simulation, calculates fluxes of magma heat, runs multiple climate simulations at different timescales, runs erosion simulations, figures out watersheds and lake placements by running a physical simulation of water movement and drainage, generates soils using a physically based bedrock erosion model while also coupling it to the water movement simulation, generates glaciers along with their movements, runs a plant growth simulation and so on.
And that's just a short summary, each of these steps is much more detailed than just doing the simplest thing possible (to give an example, if you pay close attention to oceanic plates youll see that as they get older they get denser, leading to deeper oceans on average at one edge of the plate)
Calculating all of that is a *ton* of work and that's why world gen takes a long time. 1-3 minutes sounds about right. On my laptop it used to take 5-7 minutes to run full world generation.
As for the game, assuming you're talking about the version from itchio, there isn't any. At that point in development it was only a world generator.
Source for all of the above: I coded around half of SotE if measured by lines of code.
What do you find "bad" about SotE? To my information it's the most accurate planet simulation you can run on a consumer device, provided you have 8 GB of RAM (which is more than normal, it was benchmarked against median computers as per Steams hardware survey: https://store.steampowered.com/hwsurvey )
Hello! ^^
I'm not sure what would be the best way to reach out as I don't use Twitter so I'll try my luck here.
I want to ask, do you take commissions? I've noticed you have a Patreon account but I'd be interested in having a bunch of old school textures made. I've been using your texture packs for prototyping and I've come to like them so much I'd actually prefer using them for the final product. Only problem being, they don't cover everything I'd need.
If you do take commissions, do you perhaps have an email address for business related queries? I'd like to know the rate and discuss some other details. For example, I would prefer if any textures I'd potentially ask for were made publicly available like your other texture packs. Not sure if that'd work with you.
Best regards,
Calandiel


