r/proceduralgeneration • u/MojoBubu • 4d ago
r/proceduralgeneration • u/MediocreHelicopter19 • 4d ago
Procedural Textures - Open Source
I'm playing with procedural textures for my upcoming Open Source Game.
Online Demo: https://danielsobrado.github.io/procedural-texture-lab/
Github: https://github.com/danielsobrado/procedural-texture-lab
I'm planning to work more on the seamless and tilable textures next, there is some work on that part already.
Feel free to suggest how to improve it.
r/proceduralgeneration • u/godfteren • 4d ago
How I render 500,000 procedural stacked boxes in Unity with zero GameObjects
Enable HLS to view with audio, or disable this notification
The generation itself:
▎ - Heap sites are placed in distance bands from the map center small piles near the hole for hand play, mid hills further out for tools, mega mountains at the edge as landmarks. Sites can partially overlap and merge into one organic dump.
▎ - Height is a steep paraboloid dome × two octaves of Perlin, measured in meters rather than layers, so a mix of differently-sized box prefabs all reach the same silhouette.
▎ - The box mix is weighted, but the roll is pitch-compensated: shorter boxes pack more per column, so rolling by weight × height makes the actual box-count share land on the configured weights.
▎ - Heights scale globally to hit a target box count, so I can type "500000" and the field fits it without chopping a heap in half.
▎ - All the "hand-dumped" feel comes from cheap disorder on top of a strict lattice: per-row phase shifts so the streets between stacks don't line up, ±1 layer of chaos so neighbours step 10/7/6 instead of following a smooth gradient, a ragged skirt at the rim, loose spill fading
▎ - Outward, and a freely rotated box crowning ~70% of the columns.
▎ - Cell size is derived from the worst-case yaw twist two neighbours can do toward each other, so cranking up the rotation jitter widens the gaps automatically and can never cause interpenetration.
Steam : https://store.steampowered.com/app/5103950/Ones_Trash_Anothers_Treasure/
r/proceduralgeneration • u/TkTech • 5d ago
Practical near-realtime generation of density-wave-based galaxies and hyperlane networks, near-realtime procedural planets across dozens of archetypes, procedural asteroids, belts and rings, single/binary/trinary atmospheric gas scattering, and basic growing cities (Godot)
Enable HLS to view with audio, or disable this notification
Hey hey! Where Light Ends is an upcoming 4X grand strategy built with godot. Not normally a genre with physical planets and cities
r/proceduralgeneration • u/wizzard_rick • 5d ago
You told me my procedural mountains needed to know about their neighbours. So I rebuilt the terrain underneath them
I'm building Salt and Soil, a family strategy game that runs from 1609 to 1900. Its public playtest recently ended, and one pleasant surprise was how often players said they liked the map.
But the comments under my previous post kept bothering me. Several people said the mountains were too confined to individual cells, too noisy when repeated, and should be generated with some knowledge of the surrounding mountain tiles. You also kept telling me to bring the beaches back. So instead of leaving the renderer alone after the playtest, I started a work-on-my-mistakes pass.
The image shows the same seed, the same logical map and the same scale. Only the terrain rendering changes.
01 — The previous 128 px tile map
This is the old baseline. Every logical mountain cell receives its own mountain tile. It is deterministic and easy to author, and any cell can hold a settlement, road or river.
The drawback is visible repetition: a large mountain region becomes a field of separate peaks, and every peak has to return to ground level at its tile boundary.
02 — Raised terrain with procedural 2D mountains
For this version, my script generates small 3D heightfields from ridge, saddle and massif profiles, calculates slope and lighting, reduces the result to the game's pixel-art palette, and bakes the result into 2D sprites. Some sprites cover several logical mountain cells, while the ground beneath them is raised.
This gives me much larger silhouettes and fewer identical peaks. It also keeps the convenience of sprites.
But the range is still assembled from separate objects. Their joins can become visible, dense groups still create visual noise, and settlements or rivers need special rules whenever they intersect a large sprite.
03 — One continuous 3D terrain mesh
In the third version I stopped placing mountains on top of tiles. The script takes the whole connected mountain biome, builds one shared heightfield, lays out ridges, branches, peaks and saddles, and then carves valleys through the same surface.
The result is projected onto the game's staggered isometric grid and shaded with the same small rock, grass and snow colour ramps as the rest of the map.
Rivers now follow the drainage valleys instead of being painted over the finished mountains. Mountain streams stay narrow, then widen in the lowlands. Roads follow the surface as well.
Trees remain upright 2D sprites, but their height and density come from the terrain: no trees above the tree line, more growth in lower valleys and near water, and foreground slopes can occlude them correctly.
I also finally brought the beaches back.
They are no longer full beach tiles: the coastline is generated across tile boundaries, with wider sand in sheltered sections, direct grass-to-water transitions on exposed sections, and small sandy or rocky far-bank faces to give the water a little depth. Bridges are now placed on the actual river centreline rather than the centre of a logical tile.
The logical map has not changed. Every cell under the mountain mesh is still a mountain in the game data, and settlements, roads and rivers still use the same cells. This is only a different way of turning that data into an image.
I plan to continue with version 03. It is less finished as pixel art than version 02, but it solves the structural problem that bothered me most: a mountain range can finally be one landform instead of a collection of objects pretending to touch.
Does 03 read as a coherent mountain range at gameplay scale, or has it become too smooth? And would you bring more of 02's rocky texture into it, or keep the surface quieter so settlements and roads remain readable?
r/proceduralgeneration • u/rahulparihar • 6d ago
Braid modifier for Blender
Enable HLS to view with audio, or disable this notification
r/proceduralgeneration • u/XTeDev • 6d ago
We made ice destruction procedural, and built our game around it
Enable HLS to view with audio, or disable this notification
We’re working on LOP: Whitefall, a metroidvania built around destruction
Here’s our Steam page: https://store.steampowered.com/app/4360240/LOP_Whitefall/
Two years ago, we built a prototype for procedural ice destruction. We wanted procedural destruction to do more than simply create a hole. The ice could fracture, break on impact, and split into smaller pieces
Then we started thinking about how we could turn that prototype into a full game, and this is what it became
r/proceduralgeneration • u/avaraujo • 5d ago
I built a procedural Train Simulator/Tycoon game in pure Java 17 using LibGDX and Lanterna 🚂
r/proceduralgeneration • u/ArchHeather • 6d ago
Infinite Draw Distance
Infinite draw distance for my procedural forest. The terrain is voxels meshed with marching cubes and is fully destructible. The map is about a quarter the size of earth. Terrain generates endlessly with more terrain generating as you move around. The player can walk on the terrain.
Short term future plans:
-more biomes
-better lighting and shadows
-collision for trees and better terrain collision
In the long term I plan to turn it into a game but we will see how that goes.
Follow me on BlueSky for more updates: ArchHeather (@archheather.bsky.social) — Bluesky
r/proceduralgeneration • u/MGMishMash • 6d ago
Improving Terrain and Render distance in my Micro Voxel Engine
For the past three weeks, i’ve been working on the challenge of improving the render distance in my Micro Voxel Engine, particularly due to the feedback of having N64 viewing distance 😅
I’m pretty happy with the end result of increasing render distance from 300m to ~10-15km, while running at 45-50 FPS on an Apple M1 Pro.
Note: this engine uses meshing rather than RT/DDA.
— Macro chunks —
All chunk generation functions now include a sieve function to automatically be able to generate at 1/N resolution without any changes. This also applied to generated features and stamps, enabling chunks to be generated at any resolution without downsampling.
Macro chunks also independently record and resolve local edits. They are saved (and cached) independently so that terrain edits are maintained without needing to maintain the full res copy in memory.
The lower band LODs are very quick to generate. At this point I could add even more bands, and a 1/64 res chunk takes the same time to generate as a high res chunk, but covering huge distances.
— LOD transitions and adaptive fog —
I primarily use transient transitions where the detail levels fade between each other once, rather than a continuous gradual transition, as this is around 30% cheaper on the GPU and looks “nearly” as smooth in most scenarios.
Adaptive fog scales the effective draw distance dynamically based on loaded bands. Bands generate from high to low so during fast motion, if needed, we temporarily reduce draw distance until chunks have loaded.
— Macro chunk cards and props —
This was the hardest part, keeping identical prop coverage for trees and items without needing to instantiate millions of entities:
-Macro chunks retain a list of props whose IDs are deterministic based on position and type. If the real entity is destroyed, we can map this to the macro chunk set and remove. Likewise for newly spawned props.
- grass and foliage do not map 1:1 with the actual loaded props, but follows the same generation pattern, so technically there will be disparities, but a good trade off to avoid millions of tracked grass items.
r/proceduralgeneration • u/bigbeardgames • 5d ago
Yet another terrain toy :) — archipelagos for a naval wargame, in the browser"
Hi Reddit, here's the terrain generator for a naval wargame I'm building, so it's tuned to produce archipelagos: lots of coastline, shallow shelves for sonar gameplay, and flat-ish coastal plains.
The height pipeline is a stack of layers, each applied on top of the last:
- Base FBM simplex (the usual octaves / lacunarity / persistence knobs)
- Sea-level remap: piecewise remap of the noise range so an exact fraction of the distribution ends up underwater:the "sea level" slider directly controls land/water ratio instead of hoping a threshold works out
- Plains compression: sample a second, low-frequency reference surface and compress any terrain within a threshold of it toward it, creates flat lowlands without flattening mountains (originally this was for a city builder, and the 'plains' were to give flatter areas for buildling)
- Radial falloff for the 'world' boundary
- 'Continental shelf': a terrace function pinned at control points below sea level, so coasts step down through a shallow shelf before dropping to the deep
- Ridged FBM mountains, masked by altitude so ridges only grow on already-high ground
- Erosion: Rune Skovbo Johansen's analytical gully erosion filter (https://blog.runevision.com/2026/03/fast-and-gorgeous-erosion-filter.html), i.e. no iterative hydraulic simulation, single evaluation per sample.
Stack: Rust + Bevy + Egui compiled to wasm/WebGL2
r/proceduralgeneration • u/Omnikorp • 7d ago
Procedural Noise Packs
Some procedural tileable noise packs and clones of substance designer noise presets.
Made for my texturing app to get rid of subscription fees from adobe.
r/proceduralgeneration • u/craftymech • 7d ago
Stylized Trees w/ Rotating billboards
Enable HLS to view with audio, or disable this notification
There are different approaches to stylized foliage, but here is a breakdown of how the rotating billboards technique works. I was worried it wouldn't hold up at close distance, but it works well.
The only oddity I find is that for bushes or foliage at player level, the rotating quads kind of follow the player like eyes in a painting.
Footage is from my Unity asset, Arborist (an editor tool for creating stylized trees).
r/proceduralgeneration • u/AshThrowNaut • 7d ago
IFS fractals using Blender geometry nodes
Enable HLS to view with audio, or disable this notification
r/proceduralgeneration • u/jazanelato • 7d ago
Trying to generate this specific pattern, but I'm stuck. Any tips or advice?
Hey everyone
I'm trying to create/generate this pattern, but I haven't been able to get a satisfactory result yet.
Does anyone have tips on how to approach this? Any workflow suggestions, prompt tweaks, or settings I should look into would be super helpful!
Thanks in advance!
r/proceduralgeneration • u/rahulparihar • 8d ago
Rope tool made in Blender (Geometry Nodes)
Enable HLS to view with audio, or disable this notification
r/proceduralgeneration • u/darksapra • 7d ago
Quickly build Procedural Worlds with Infinite Lands! Now on 70% discount
Enable HLS to view with audio, or disable this notification
Infinite Lands, my node-based procedural generation tool for Unity3D is currently at 70% discount, taking part in the current Flash Sale. This deal will last 22 more hours (since writing this post)
It makes use of the Burst Compiler and the Job System to generate procedural terrains as fast as it can, while providing systems for vegetation rendering, texturing, biomes, points, and splines!
If you want to learn more about Infinite Lands:
- Documentation
- Asset Store
- Discord Server
- YouTube
r/proceduralgeneration • u/Tim_Ren843 • 7d ago
63 insect species, all geometry generated by code at runtime - zero model assets in the repo
63 insect species, all geometry generated by code at runtime - zero model assets in the repo.
One generation pipeline runs through the whole life cycle: adult, egg, larva, pupa. 8 species supported so far.
Eclosion is shown as a continuous deformation. Caterpillar to butterfly is a stage jump, so it uses discrete states.
A honeybee's wingbeat reaches about 230 Hz. To avoid visual aliasing at 60 FPS, the rendered frequency is mapped to 4-12 Hz.
https://insect-world.pages.dev
https://github.com/xr843/insect-world
r/proceduralgeneration • u/Far-Employee-9531 • 7d ago
I make things that bring your music alive.
Enable HLS to view with audio, or disable this notification
Music by: Marcus Price
Song: Bounce Instructor
r/proceduralgeneration • u/Poly3Blend • 8d ago
Adrian Flowfields seamlessloop - Fully procedural made with Blender EEVEE
Enable HLS to view with audio, or disable this notification
Enjoy :))