procedural generation
127 subscribers
5.37K photos
1.8K videos
7 files
11.4K links
Created by @r_channels
Download Telegram
Why I built a deterministic, data-driven engine that compiles Natural Language into bit-identical geometry

Most generative graphics tools today rely on probabilistic AI models. They are creative, but they are messy. You can’t recreate a scene exactly, and the outputs are often unpredictable.

I wanted the opposite: **Total, bit-identical determinism.**

I’ve spent the last months building **GAP+** (Geometric Architecture Parametrics), a system where natural language inputs compile to verifiable geometry through a strictly deterministic pipeline. No AI, no dependencies, no floating-point drift.

# The Architecture: "Objects are Data, not Code"

I moved away from hardcoded Rust strings. The pipeline is now:

1. **Natural Language Input:** `geotool nl "a stone tower"`
2. **Thin Loader:** Parses modifiers and selects a template.
3. **GAP+ Template:** A parametric `.gap` file (pure data).
4. **Compiler:** Expands `include`, `repeat`, and `let` declarations.
5. **Geokern Engine:** Executes the operations to output a **Merkle Hash** that proves the scene's geometry.

# Why this is different (The "World-Class" Checklist)

* **Cross-Platform Determinism:** By using a golden-root test matrix (Linux, Windows, macOS), every scene hash is validated. If the macOS output differs by a single bit from the Linux output, the CI fails.
* **No-Recompile Workflow:** I can add a complex object (like an obelisk) by adding one `.gap` data file and one TSV registry line. The engine doesn't even know what an "obelisk" is—it just executes the parameters.
* **Zero-Warning Policy:** The codebase enforces strict `clippy` lints and standard formatting via CI. If it doesn't build perfectly, it doesn't get merged.

# The Proof

Here is a physically based render of a gold sphere generated by this pipeline:

`sphere a0 2 48` `pbr a0 0.90 0.55 0.30 1.0 0.18 0.5`

# Why this matters

This isn't just about rendering spheres. It’s about building a **Foundation for Procedural Worlds** where you can mathematically prove the state of your environment across any hardware.

I've just open-sourced the framework, and I'm looking for feedback on the architecture—specifically on how to handle compositional grammar (e.g., "a vase on a table") within a purely deterministic system.

You can check out the source, the golden-root test suite, and the engine internals here:


[https://github.com/MerlijnW70/gap](https://github.com/MerlijnW70/gap)

https://preview.redd.it/rzkf9qkqvb7h1.png?width=1280&format=png&auto=webp&s=c092900458c44c0a849d736a031dcbea7c367c0c




https://redd.it/1u5zczk
@proceduralgeneration
This media is not supported in your browser
VIEW IN TELEGRAM
Tectonic plate movement simulation with voronoi convection zones and texture-pixel layer as the simulation particles with reintegration tracking.

https://redd.it/1u6d6lh
@proceduralgeneration
Media is too big
VIEW IN TELEGRAM
Age of Empires inspired me to make an RTS with randomly generated maps. What makes procedural maps feel memorable?

https://redd.it/1u6n33y
@proceduralgeneration
Media is too big
VIEW IN TELEGRAM
I solved a 145-second chunk loading problem. It took two completely unrelated fixes.

https://redd.it/1tvm67n
@proceduralgeneration
Help with mesh generation

https://preview.redd.it/425mcxxh6o7h1.png?width=806&format=png&auto=webp&s=2c37696415de0814c09747c64b478cd7dedfece4

I'm trying to make a procedural planet, but I can't seem to figure out how to get rid of this weird shading, You can see the individual quads and triangles. The quad diagonal is light and the sides of the quads are dark.

I'm doing this in Unity with a compute shader where I calculate normals with Finite Difference Sampling, but the issue prevails when I just use Unity's "RecalculateNormals" method.

https://redd.it/1u7i8y7
@proceduralgeneration
A learned, continuous control that erodes typed speech into wordless glossolalia, same voice the whole way

Not a DSP effect, it's lexical resynthesis from typed input: read a sentence you just invented and erode specific words into plausible others while holding syllable count, stress, and voice fixed across the slide. One dial, clean at 0, wordless tongues at 4, with a deterministic real-word-mishearing mode alongside. Type something, drag to 4, listen: https://huggingface.co/spaces/akshan-main/glossolalia .

https://redd.it/1u7o0f9
@proceduralgeneration
The Orani Prism Update - Massive UI Overhaul and Codework

https://the-orani-group.itch.io/the-orani-prism-demo

Hello everyone,

Quick reminder as to what The Orani Prism is: it’s a deterministic non-llm settlement generator that starts with a group of settlers and simulates growth over time until desired population or time amount has reached. It provides NPC with full OGL stats complete with historical memory through events the NPC has been a part of, as well as Big 5 psychological biases. Quests, hooks, rumors, secrets, are all generated from the engagement of NPCs and events as time progresses. Used for quick throwaway locations when you need a location with people for whatever reason.

This week I’ve been doing a lot of spring cleaning with my code. Ensuring everything is tied up where it’s supposed to be, making sure results are appropriate. I’ve also done little add-ons here and there so be sure to read the devlogs for more detail.

But more than that, I’ve majorly overhauled the UI and the user experience to try and make it flow better. For those of you who have used the Prism before, how do you like the changes? If this is your first time, does it flow well for you?

As always, a question for the Actors and Bards:

Actors: What is the best way to convey sensory experience in a format like this? How best would want conveyed sights, sounds, smells, and so on? Would you like it more in a narrative style? Bullet point? The Actor’s Sides are your you, and I want to make the settlement feel alive the way you want.

Bards: I provide you with a gigantic mountain of information. What information is most important for you? What holds the highest priority of order/accessibility? What kinds of demographic or sorting information do you need insight on?

Thank you for your time, see you at the table.

\-The Orani Group

https://redd.it/1u7oxe5
@proceduralgeneration