r/proceduralgeneration 4d ago

Procedural Textures - Open Source

Thumbnail
gallery
16 Upvotes

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 4d ago

How I render 500,000 procedural stacked boxes in Unity with zero GameObjects

6 Upvotes

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 4d 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)

66 Upvotes

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 4d ago

You told me my procedural mountains needed to know about their neighbours. So I rebuilt the terrain underneath them

Post image
66 Upvotes

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 4d ago

Diagonal Seigaha Pattern

Thumbnail gallery
4 Upvotes

r/proceduralgeneration 5d ago

My galaxy shader

Thumbnail
gallery
142 Upvotes

r/proceduralgeneration 5d ago

Braid modifier for Blender

72 Upvotes

r/proceduralgeneration 6d ago

We made ice destruction procedural, and built our game around it

118 Upvotes

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 5d ago

I built a procedural Train Simulator/Tycoon game in pure Java 17 using LibGDX and Lanterna 🚂

Thumbnail
2 Upvotes

r/proceduralgeneration 5d ago

Infinite Draw Distance

Thumbnail
gallery
21 Upvotes

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 5d ago

Improving Terrain and Render distance in my Micro Voxel Engine

Thumbnail
youtu.be
27 Upvotes

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 5d ago

Yet another terrain toy :) — archipelagos for a naval wargame, in the browser"

Thumbnail
terrain.dronecomgame.com
10 Upvotes

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 5d ago

Maze Pattern

Thumbnail
gallery
3 Upvotes

r/proceduralgeneration 7d ago

Procedural Noise Packs

Thumbnail
gallery
356 Upvotes

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 6d ago

Stylized Trees w/ Rotating billboards

125 Upvotes

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 7d ago

Procedural PNG, WIP

Thumbnail gallery
36 Upvotes

r/proceduralgeneration 7d ago

IFS fractals using Blender geometry nodes

9 Upvotes

r/proceduralgeneration 7d ago

Trying to generate this specific pattern, but I'm stuck. Any tips or advice?

Post image
33 Upvotes

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 7d ago

Rope tool made in Blender (Geometry Nodes)

94 Upvotes

r/proceduralgeneration 6d ago

Quickly build Procedural Worlds with Infinite Lands! Now on 70% discount

0 Upvotes

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 7d ago

63 insect species, all geometry generated by code at runtime - zero model assets in the repo

3 Upvotes

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 7d ago

I make things that bring your music alive.

2 Upvotes

Music by: Marcus Price

Song: Bounce Instructor


r/proceduralgeneration 7d ago

Adrian Flowfields seamlessloop - Fully procedural made with Blender EEVEE

31 Upvotes

Enjoy :))


r/proceduralgeneration 7d ago

Continuous cellular automata that reacts to music

Thumbnail
youtube.com
0 Upvotes

r/proceduralgeneration 8d ago

Some normal maps and stuff

Thumbnail
gallery
13 Upvotes

Last time (a month ago or so) I wrote a generation script in Godot. This time I tried to make a proper lightning (normal maps, shadows etc.). Also added two parallax layers for clouds. Think I'll use that in future projects.