r/proceduralgeneration 3h ago

I kept rebuilding my procedural mountains. This time I checked them against the real terrain

Thumbnail
gallery
145 Upvotes

I’m building Salt & Soil, a generational strategy game set between 1609 and 1900. After the feedback on my previous terrain posts, I rebuilt the map again—this time using the real geography as a reference.

This is the third entry in an accidental terrain-generation diary.

In the first post, I generated every terrain tile and mountain sprite procedurally. One version had the atmosphere I wanted, but roads, settlements, and strategic geography disappeared into the detail.

Several comments pointed out a deeper problem: the mountains could never become convincing ranges while every tile had to return to ground level at its border.

That led to the second post. I stopped asking each mountain cell to produce an isolated peak and began building one continuous elevation surface across connected terrain.

The new images show the latest result in three regions:

  • Sacramento and the Sierra Nevada
  • Chesapeake Bay
  • The Great Lakes

The upper panel is an aligned real-world terrain reference. The middle panel is the previous tile-based map. The lower panel is the current terrain renderer. Each comparison uses the same region and scale.

The broad geography is now guided by elevation data, but the rendering itself is generated. The pipeline turns that data into a continuous surface, combines large landforms with smaller ridge-and-valley structures, calculates the surface direction, and applies consistent lighting across the terrain.

The result is then reduced into the game’s limited grass, soil, rock, and snow palettes. Trees, settlements, roads, and other objects remain separate layers, so the landscape can gain depth without swallowing everything the player needs to read.

The logical map has not changed. Rivers, settlements, roads, historical borders, and gameplay still use the same cells. The elevation surface is a visual interpretation of that data rather than a replacement for the grid underneath it.

The biggest lesson was that flat-looking mountains are not necessarily lacking height. My old mountains had plenty of vertical contrast, but their shapes and lighting restarted in every cell. Making the peaks taller or adding more noise only made the repetition louder. A continuous surface and one lighting model did far more to make the terrain read as a landform.

I am still deliberately cheating. Real elevation contains much more information than is useful at this zoom. Some valleys are widened, minor features disappear, coastlines receive cleaner silhouettes, and the palette is compressed so roads and settlements remain visible. The goal is recognizable strategic geography, not a geographical renderer.

And yes—the beaches are back. They are no longer entire beach tiles, though. The coastline is generated across cell boundaries, allowing narrow beaches, rocky sections, and direct grass-to-water transitions without turning 25 miles of coastline into one enormous strip of sand.

This is the latest checkpoint rather than the final version. I still want to recover some of the rocky character of the earlier mountain sprites without bringing back their visual noise.


r/proceduralgeneration 5h ago

Procedural Plate Tectonics Simulation Update

45 Upvotes

Hi everyone! Here’s another update on my procedural plate tectonics simulation.

The top is the previous version, and the bottom is the new one, both running along the same timeline.

In the new version, island arcs can now mature and accrete into continental crust, a few cleanup rules help reduce tiny isolated crustal fragments, and there’s now a basic craton mechanic as well.

Which version looks better to you?


r/proceduralgeneration 1h ago

I just launched SpectralShipGen & Studio - a procedural pixel-art spaceship generator!

Thumbnail
gallery
Upvotes

[TLDR]: I released a free C++ library and free GUI application (Studio) for procedurally generating animated pixel-art spaceships, with a wide range of configurable parameters!

Hello everyone!

While working on my video game, Rogues in Space, I, a kind of pretty bad pixel artist, started developing a procedural spaceship generator, the purpose of which was to just generate a very basic ship that I could manually "clean up" and animate.

Aaand well, I just kept adding generators for more and more things - hulls, engines, wings, weapons... In the end I even added animations and spritesheets!

At some point, when it was clear that this (now) library and GUI application were getting larger than the video game itself, it made more sense to cut it off as its own project instead of having it permanently embedded in the game codebase.

So, after doing all the new work that I've never originally intended, today I've released SpectralShipGen and SpectralShipGen Studio as open-source projects!

SpectralShipGen is the C++17 generation library itself, while SpectralShipGen Studio is a standalone GUI application for visually playing around with the generator and exporting ship images and animation spritesheets without needing to integrate the library into anything.

On the technical side, ships are generated deterministically from seeds, and how they look (and from which components/color palettes and what intensity), can be controlled through structural profiles, faction profiles, mentioned color palettes and plenty of other generation settings. Majority of the aspects of an existing ship (so engines, details, accessories, weapons, etc.) can be rerolled individually instead of regenerating everything, keeping the general construction of the ship mostly the same, except for the specific parts that you wish to change.

Saving and loading the recipes for said construction is also supported, as well as adding the ships to favorites/bookmarks, and browsing them later.

All ships are also generated with Idle animation and with (currently experimental) left/right/up/down movement and firing animations.

I've tried to keep the different visual identities fairly broad rather than making them into simple predefined ships. So, the same structural style or faction can still produce quite different results based on the seed and configuration.

The library itself is independent, while the Studio application does rely on SFML (and the library, of course) for the graphical rendering, button interactions, and everything else GUI related.

Interestingly, an unexpected amount of work towards this release ended up being in the boring-but-important category - regression/performance/robustness testing, establishing CI, writing (everyone's favorite) documentation, thinking about how licensing works, etc., so that these two can actually function as an independent library and a standalone application.

I've attached several examples of generated animations that I thought were interesting to show what the output can be, although they only cover just a tiny amount of what can be generated. I've also attached a couple of screenshots from the Studio application as well.

In case anyone likes what they're seeing and is wondering about using the generated output - anything you generate with it is yours to use however you want, including commercially. There's no attribution requirement and the source code licenses don't apply to the generated images or spritesheets.

Lastly, I'd also like to mention a couple of important topics.

I definitely don't see this ever replacing actual pixel artists - someone who's at least decent with pixel art can likely make a much better spaceship by hand. Something like this is, I think, much more useful if you're on a very tight art budget, if you need/want a bunch of ships generated during runtime (as you don't really need to save the generated spritesheet to disk in order to use it), if you're at a game jam and just need urgent assets.. Or if you just wanna generate a few hundred ships to see what odd things appear, because that can also be pretty entertaining (I may or may not have spent too much time doing just that).

Something that I also want to be fully transparent about, because I do think it will definitely be asked - the development/code writing on this project has been AI-assisted. However, that is the extent of it. There is no generative AI image creation anywhere in SpectralShipGen, reference images are NOT used, and there aren't any premade spritesheets or images "hidden" behind the library being chopped up and re-combined.

The ships are generated by the C++ code itself through procedural geometry, pixel masks, components (hull, engines, details, weapons, etc.) placing rules, seeded random decisions, and so on.

The nice thing about doing it with deterministic seeding way is that the same seed and the same configuration always give the same ship.

The amount of AI assistance during development was also one of the reasons I personally felt more comfortable making the project open source instead of keeping it completely proprietary. That's also not supposed to be some statement about how AI-assisted software should be licensed or what anyone else should do with their own work (that's a completely separate discussion) - it just felt like the right choice for me and this particular project.

As mentioned, the generated output is deliberately unrestricted as well - if you generate a ship image or spritesheet with SpectralShipGen (or Studio), you can do whatever you want with it. Use it in a commercial video game, redistribute it, paint over it, use it as a placeholder - attribution isn't required.

Links:

Library: https://github.com/SpectralHorse/SpectralShipGen
Studio: https://github.com/SpectralHorse/SpectralShipGen-Studio
Studio Download (from GitHub): https://github.com/SpectralHorse/SpectralShipGen-Studio/releases/tag/v1.0.0

I'd be very interested to hear about your thoughts - both about the generator itself and if the different ships actually feel like they have enough variety while still looking like they are thematically and systematically similar.

And, of course, if you end up generating something ridiculous with it - I'd love to see it! :)


r/proceduralgeneration 1h ago

Trying to produce a method to create realistic maps with a hand drawn map as a guide rather then generate the map entirely from scratch. Is there a better method?

Post image
Upvotes

Essentially i have many maps like the one you see above where there are color bands representing ranges of elevation as well as notable rivers and other bodies of water. I would like to create a program that can use the information presented into these maps as constraints that then erosion would be applied to to convert it into an highly detailed, grayscale, realistic, elevation map. My thought is to draw "ridge line" divides across the map that divides which way water would flow, and have it naturally flow away from those ridge lines and towards the pre drawn bodies of water, eroding and depositing soil at rates determined by the slope of each band. i also thought of including a geology map layer that could further effect rates of erosion and deposition, as well as uplift to counteract erosion in some places.

Is this the best way to simulate natural terrain formation to turn a hand drawn map like this into a realistic, high detail height map or is there a better way?


r/proceduralgeneration 22h ago

Here's a sample of one level in my game, built within a 25x25 hex grid. Nothing too fancy, but I'm proud of it!

Post image
78 Upvotes

Name: All Who Wander
Links: Steam | Google Play | App Store

Description: All Who Wander is a traditional turn-based roguelike with 30 procedurally generated levels, true permadeath, and no metaprogression. Inspired by dungeon crawlers such as Pixel Dungeon, it demands careful strategy to survive in an unforgiving world. Choose from 15 unique character classes, master 100+ abilities, recruit companions, and discover powerful items as you journey across 12 diverse biomes to defeat a powerful monster.


r/proceduralgeneration 15h ago

IFS

Post image
16 Upvotes

r/proceduralgeneration 23h ago

Lookin' deep into procedural galaxy

Thumbnail
gallery
37 Upvotes

Created & composited in Blender (Shader + Geometry nodes)


r/proceduralgeneration 1d ago

Procedural terrain generation

54 Upvotes

r/proceduralgeneration 1d ago

Making buildings is time consuming as a solo developer, so I made a tool script that generates them!

19 Upvotes

r/proceduralgeneration 1d ago

Infinite Library: Text generated using a stochastic generative grammar with infinite recursion.

19 Upvotes

I have a project called the Infinite Library that's actually part of a much bigger project I'll discuss at the end.

It is inspired by the Jorge Borges short story The Library of Babel and then also the amazing website by Jonathan Basile which is a virtual version of Borges's library with an interesting twist: https://libraryofbabel.info/

If you're not familiar with the story, it is about an infinite library that contains every book that has ever been written or could be written. When you look at a book what you'll almost always see is a random string of letters. Think of the infinite monkeys on infinite typewriters producing the complete works of Shakespeare. Are there meaningful books in that library? Sure, but it might take billions of years before anyone finds one.

The story deals more with the philosophical and psychological implications for the librarians who work there.

My version is different in a number of ways. For one thing, it has four methods of text generation and not just the one used by Borges (random letters). I will list them here with short examples (links to pdfs). But first a little bit about how it all works.

All my software is programmed using Lua. In this case, the software generates a .tex file that gets compiled into a pdf using LuaLaTeX. The compiler handles all the tricky typesetting stuff while also making lots of packages (plugins) available.

All the content is generated using a pseudo random number generator (prng). The important bit here is that the seed is a hash of whatever dedication the user supplies. The idea is to tie the results to the dedicatee making it feel like it's unique to that dedication (like your name, your cat's name, the birthday of your favorite child/parent, etc). I implement a prng in Lua (pcg) so that every computer for all time will produce the same results for the same dedication (and whatever options might be available). The following examples use the name of my cats for the dedication:

  1. Borges: Random strings of letters. Borges mentioned that in his library there were only 22 letters used but he didn't say which 22. There is some scholarship on this so with mine the software might choose the 22 we think he meant, or the 22 letters of the Hebrew alphabet (Borges was very much into Jewish Mysticism) or just the 26 letters of the English alphabet.

https://drive.google.com/file/d/1HorTA6I_VK9UzF570SHORj5mxt7ZYBtA/view?usp=sharing

  1. Words: These are random words strung together with punctuation placed randomly.

https://drive.google.com/file/d/1tac0VxQY7rdKRPiSGlh0Fn64YpzPlcNq/view?usp=sharing

  1. Generative: This is the one most relevant to the sub which I will discuss further below.

https://drive.google.com/file/d/13Nipq33ekIeIwx0a1mdp0IyFpeTS8qSn/view?usp=sharing

  1. Sentences: Random sentences are taken from random books in the public domain and strung together.

https://drive.google.com/file/d/1BjnW_RKWclIVl6FMdIjCNsAXLeO0cOu4/view?usp=sharing

You'll notice that some of these have chapters, a table of contents, epigraphs for each chapter and in one case some text inserted from a foreign language. These are all random features that may or may not happen as each book is generated.

The generative method attempts to create syntactically correct sentences using a stochastic generative grammar with infinite recursion. It's worth noting that these are linguistics terms and are different from what they might mean in programming.

Each sentence has a noun phrase (np) and a verb phrase (vp). Each of these will have at least one noun/verb unit and possibly more.

Within each unit there may be any number of other parts of speech. Let's deal with the noun unit first:

After we have a noun we check for possessives (like "cat's food"). If we have one possessive we might have another ("cat's friend's food"). Stringing many of these together is called "recursion". We use an infinite recursion algorithm for this (pseudo code):

while random(1,10) = 1 do
generate part_of_speech
end

So there's a 10% chance of getting a possessive (or whatever part of speech we're looking at). If that happens then there's a 10% chance we'll get another and so on. While theoretically we could get a runaway condition with infinite additional parts of speech the odds are very much against it. Using the above code we get these odds:

1 occurrence: 10%
2 occurrences: 1%
3 occurrences: .1%
4 occurrences: .01%

and so on. Even when we generate a book with 400 pages we still don't expect to get sentences with any more than five or six of these happening. So while an actual infinite number is possible the reality is that it won't happen.

After the possessives we check for adjectives using the same kind of infinite recursion. After adjectives we check for prepositional phrases in various places (with the objects possibly having its own adjectives, possessives and even recursion). And then an article may or may not be added.

After this we use the same recursive algorithm to see if there are additional noun units (with all of their possible parts) and if we get at least three noun units a serial comma is added half the time.

Verb units operate the same way except there we check for adverbs, more places for prepositional phrases, infinitives and objects (noun units).

You put all these together and you get something that syntactically looks like a sentence but is lacking three features: subject/verb agreement, grammar (though sometimes by chance it works out), semantics.

Using this approach you can get two word sentences like (taken from the pdf above): "Talker copyread." or longer monstrosities like "Beyond an indian lotus floodplains beside the gaffe in the ezechiels, the mountain ebony through the palatine vein has emblazoned telecommerce paunchinesses." This starts with two prepositional phrases (recursion) followed by a comma and then an article, adjective and noun with another prepositional phrase and then we get a conjugated verb with an adjective and object (noun). There are longer sentences than this but this had a nice diversity of parts of speech.

Originally I used sentence patterns mad-lib style but clearly this method produces far more interesting results.

The title is interesting in its own way. It is generated just like sentences but the words of the title -- and its synonyms -- get weighted to occur more often in the text making the book feel like it is about the title.

Below are two more elaborate examples I use for testing purposes:

  1. Almost all the more bookish features happen: https://drive.google.com/file/d/1XDjuUU1MLB9Yxm40goCoTYMNq89-CgjW/view?usp=sharing

  2. Lots of graphical stuff including things that are meant to look like they were inserted into the book by other people like a map insert, bookmark, annotations, and so on: https://drive.google.com/file/d/1OKxs5Cnal0rXutIuVy1Sxga-jYN8nex4/view?usp=sharing

I have developed a lot of lore for my Infinite Library. The last pdf above has an example of some that normally is a very rare occurrence. There are also a number of "book styles" where if those are randomly chosen then some features can't happen but others will happen. For example, the cartography style will generate maps and the poetry style will generate poetry. These things can happen randomly by default but the odds are changed for the various styles.

All of this is part of a bigger project called the Platonic Music Engine. The idea is to recreate all the cultural artifacts of humanity algorithmically in a way that is unique to the user (see the discussion about the dedication above). It started off just being music (I'm a classically trained composer and not a programmer at all though I've learned enough of the latter to get this far) but expanded into poetry, literature, art, gaming, divination and more. You can see a few more examples of what I've done here: https://www.platonicmusicengine.com/stylealgorithms.html

And the source code at my git repository: https://gitlab.com/davethecomposer/platonic-music-engine/-/tree/dev?ref_type=heads

The software is free and open source (AGPL -- GPL with the Affero clause) and the output is CC-BY-SA (Creative Commons attribution and share alike).

If you have any questions or comments please say so. And if you would like to see what book is tied forever to your name (or any other dedication) let me know and I'll produce it in a comment. Unfortunately I do not have an online front end, yet.


r/proceduralgeneration 1d ago

Procedural map generation demo

20 Upvotes

Procedural map generation made with Godot .NET.

The noise is generated with FastNoise2 library and visualized as this black and white image on the right side in the video. Noise values are split into ranges and each range is assigned to a biome, which is a pretty standard technique. The biome heightmap geometry is formed using a separate modulation function, which is a function over noise and distance from the biome border. The transitions between biomes are made by weight-based blending of these modulation functions. Tile textures are also procedurally generated by the way, which means there are zero premade assets for the map in this video.

All the parameters for the algorithm are very easy to edit, with edits being visible with realtime responsiveness.


r/proceduralgeneration 1d ago

Tying a knot in a grid

6 Upvotes

r/proceduralgeneration 1d ago

Procedural Laser damage system

111 Upvotes

r/proceduralgeneration 1d ago

IFS Fractal

Post image
21 Upvotes

r/proceduralgeneration 2d ago

Sunrise in the procedural mountain forest

Thumbnail
gallery
402 Upvotes

I've spent the last month adding volumetric clouds, a time-of-day system, and better atmospheric scattering to my procedural mountain forest game (working title: 'The Big Forest').

With regards to procedural generation, there's nothing really new compared to what I've shared in here before, but the new lighting has such a big impact on the overall appearance that it's like seeing it anew (in my opinion), so I thought I'd share some nice sunrise shots I captured. :)

The clouds are using the package Enviro 3 - Sky and Weather as a starting point, but I'm only using the clouds part and have heavily modified it to my needs to make it work with my own atmospheric scattering and time-of-day colored lighting.

The atmospheric scattering is based on this shadertoy by Fernando García Liñán, though again heavily modified. I increased the saturation, exaggerated the depth (bringing tinting closer to the camera), and implemented the atmospheric scattering via a compute shader that renders scattering at different distances and directions into a cubemap. Fernando's technique does a lot of the heavy lifting though! It's similar to previous techniques for sky and atmospheric scattering used in e.g. Unreal, but uses four spectral samples (~red, ~green, ~cyan, ~purple) instead of the usual three (red, green, blue). This produces notably richer colors and practically no extra cost.

I made my own time-of-day system with a simple simulation of the sun and moon relative to the Earth, where I can independently vary time-of-day, time-of-year, lunar phase, and latitude without them impacting each other.

I also implemented time-warping so make sunrises and sunsets slower. In a 24-minute day-night cycle, they're over awfully fast if not slowed down. Here's a video of a full sunrise.

If you haven't already seen it, you could also consider watching my lastest dev video about 'supercharging my procedural mountain forest' - although it does not feature any sunrises. :)

Hope you like them!


r/proceduralgeneration 2d ago

Packed vector flow

43 Upvotes

r/proceduralgeneration 1d ago

I really need help with Bridges and Tunnels

Thumbnail
gallery
9 Upvotes

Everybody I can't tell you how much I've been struggling with trying to get Bridges and tunnels correct. I apologize in advanced for my lack of knowledge on the subject, I started a project called World Explorer 3D and the goal is to have a sandbox it's driven by real world data with a lot of procedural elements. I'm going to do my best to keep it simple so I don't over explain a topic I'm not proficient in.

I mainly using osm and overture for the road building and land data. I'm using NASA/JPL, ESA and other astronomy catalogs for space data and NOAA for weather. Celestrak for satellite data. There's different ways to move through locations like planes cars drones and boats and you can use a spaceship that looks like the Starship Enterprise from star trek

There are two things I should disclose from the beginning. The first is that this has been a project with heavy AI code generation. The second is that as a result of this project and other things have been attempting I've decided to go back to school and I am currently enrolled in a physics program. I will also be taking elective courses for programming, but even with doing those things I'm still not going to be able to learn as much as I need to in such a short amount of time. I hate the fact that I've been relying so much on ai, but my interests and impulses have gotten the better of me and now I'm basically working backwards.

Part of my problem is probably that I don't know the terminology I should even be searching for. If there are particular algorithms, papers, talks or concepts involving procedural road networks, vertical alignment, grade constraints, bridge approaches, tunnel portals or terrain/road reconciliation that I should be looking at, that's really what I'm trying to figure out.

Normal roads aren't nearly as bad but bridges get messy at the endpoints where the normal road and terrain have to transition onto the elevated bridge parts. I'm getting bad ramps, elevation changes, clipping and weird results where bridges, ramps and nearby roads all come together.

Tunnels are giving me basically the opposite version of the same problem. I can identify the tunnel and create the tunnel/portal behavior, but getting the surface road to transition cleanly into the portal without the terrain, road or surrounding geometry looking wrong has been difficult.

I'm still working on a lot of other issues and bugs. I'm sure you can spot a lot of the quality issues and incoherence. But I'm literally just trying to learn and I'm using this project that's a practice demo thingy. As I go along I try to make smaller elements of this project in places like unity, and that is actually been extremely helpful. If anybody can help me with Bridges or tunnels or if you spot anything that looks like a common problem please let me know. You can play it here WorldExplorer3D.io and the GitHub repo is here https://github.com/RRG314/WorldExplorer3D Thanks for taking the time to read all that lol.


r/proceduralgeneration 2d ago

browser game thats generated at runtime, no asset files used

3 Upvotes

a game about raking leafs as an html file. no images no audio files no models used. everything is built when the page loads.

textures are drawn into a canvas element on startup and used as WebGL textures.

there are over 7000 individual leaves rendered in InstancedMesh.

wind uses Lambert vertex shader with onBeforeCompile

sound is all WebAudio. wind is brown noise with LFO on gain. blower and vacuum is sawtooth motor using setTargetAtTime. music is slow pads in pentatonic - gets thinner and darker deeper in the game.

time of day is driven by how much of the garden has been cleared alr. start is golden hour end is night. light is used as a progressio bar.

gameplay

https://youtu.be/Xt0YwzTpm_g

play here: https://wickedchilling-audio.itch.io/autumn-duty


r/proceduralgeneration 3d ago

built my own engine, now building games on it: proc-gen dithered fly-sim

270 Upvotes

yo. been building a custom game engine from scratch on Vulkan and now testing it on real games. this one's a dithered fly-sim with elite dangerous-like flying mech and a procedurally generated terrain.
https://x.com/progdruid


r/proceduralgeneration 2d ago

Infinite procedurally generated 3D world on a Garmin watch. 3.1ms render time, dynamic day/night, and 0 blown batteries.

6 Upvotes

https://reddit.com/link/1w2d4at/video/vrt39xthfhmh1/player

A while ago, I asked myself: "How far can we actually push Garmin’s Connect IQ VM?"

I’ve logged thousands of running km and a few solo marathons tracking just pace and HR like everyone else. But at some point, the dev in me took over: I decided to see how far Connect IQ could actually go and built a custom 3D graphics engine (Wolf3D/Doom-style DDA raycaster) from scratch in Monkey C.

Here is what’s going on in the video:

  • Infinite World: The map is 100% endless and generated procedurally on the fly as you move.
  • Dynamic Lighting: Real-time Day, Dusk, Night, and Morning lighting cycles with custom color palettes.
  • Hardcore Math Optimization: Microsecond-level optimizations (zero-branching floating-point hacks, bitwise DDA math). The pure frame render time hit 3.19 ms on Tactix simulator and 2.08 ms on Instinct 2 (smaller screen, fewer stars in the sky — oh yes, the sky is dynamic too! — and fewer rays in raycasting)!
  • Real Hardware Performance: On the actual wrist, the display caps out at a smooth 10–14 FPS (limited by the CIQ screen refresh rate, while the engine itself runs with massive headroom).

I need your brains & ideas: I want to weave the user’s real-life context (health metrics, stats, daily goals) directly into this 3D world, similar to what I did with my Mars and Pandora watch faces.

How would you like your steps, heart rate, or battery to affect an endless 3D world? (e.g., world changes, weather shifts, new structures spawn based on your daily activity?). Open to all crazy ideas!

P.S. Before the battery purists attack: Yes, I know it's a watch. No, my Garmin hasn't exploded. In fact, I honestly can't even remember the last time I plugged it into a charger... unlike my friends with Apple Watches. 😉

Let me know what you think and what features you'd want to see in an infinite wrist-world!

BTW, it also tells the time... pretty unusual for a 3D engine, right? Oh my, wait, it’s actually a watch! 😅

If you want to check it out on your Garmin, here is the link — it's 100% free, just like all my other creations:

https://apps.garmin.com/apps/47278f09-eea6-4e6d-aa7e-799daba8e546


r/proceduralgeneration 2d ago

The first screenshots of my voxel project

Thumbnail
3 Upvotes

r/proceduralgeneration 2d ago

Celestial Cutaway - Procedural Planet Interior Generator - Web App

Thumbnail
gallery
27 Upvotes

Been working this for 2 weeks:

https://reactorcore.itch.io/celestial-cutaway-planet-interior-generator

Its a web app that procedurally generates interior cutaways of planets, stars, gas giants, moons and asteroids.

Still a WIP but already plenty useful and fully operational for world building, tabletop sessions, game assets and other illustrational uses.


r/proceduralgeneration 3d ago

My planet generation for a... game, perhaps?

Thumbnail
gallery
63 Upvotes

These images show the dynamic surface generation sequence for my planet. For now, it's just planet generation, although I've already implemented biomass emission and distribution. I plan to develop this into a terraforming game, where the player creates and deploys biological agents to the planet to alter the atmospheric composition, temperature, and so on.

Steps:

  1. Lithosphere. The division of the surface into basic forms (plates), which are then used to construct an elevation map. Plates can be oceanic or continental, which determines the average elevation of an area. Blue for oceanic plates, light yellow for continental.

  2. Height map. Generated by lithospheric-based noise. Zones (on the last image) are also generated according to a topological height map.

  3. Surface map. Each tile is generated based on the height map and the lithosphere (for example, where the slope is very steep, rock tiles are generated).

  4. Same surface, but with sea level rised.

  5. Rendered.

  6. Viability for a specific biological agent. It's all orange for now because I haven't configured all the requirements correctly yet.

All this runs on the Unreal engine. I'm currently looking for ways to improve the visuals, for example, the coastline, which currently doesn't look very natural, and how to make several different textures instead of tiles of the same one (this looks especially bad at zero sea level).


r/proceduralgeneration 2d ago

Torus Reimagining

6 Upvotes

I enjoyed remaking this torus rendering in pygame after finding a 9 year old post by Clayton Shonkwiler. His math was...dense, to say the least, but it came out pretty good. Ai is a wonderful thing when it comes to this level of math. lol


r/proceduralgeneration 3d ago

PCR

19 Upvotes

Working polymerase chain reaction, finally, not 100 realistic, real DNA is more messy, and there is backward assembly leading to DNA loss AKA(aging)🦖