Skip to content

More Vanilla Biomes#85

Draft
EmeraldGltch wants to merge 12 commits into
xandergos:developfrom
EmeraldGltch:develop
Draft

More Vanilla Biomes#85
EmeraldGltch wants to merge 12 commits into
xandergos:developfrom
EmeraldGltch:develop

Conversation

@EmeraldGltch

Copy link
Copy Markdown

Added basic generation for a majority of the remaining overworld biomes.

I'm still working on formatting most of the biomes I added in, I just needed to make sure they could generate first.

Added basic generation for a majoirty of the remaining overworld biomes.
Added a debug subcommand for viewing classifying conditions at a specific coordinate (/td-explore debug).
Simplified logic in BiomeClassifier
@ThatDamnWittyWhizHard

Copy link
Copy Markdown
Collaborator

You should check if you can integrate Lithostitched for biomes classification as mentionned here

@EmeraldGltch

Copy link
Copy Markdown
Author

integrate Lithostitched for biomes

I totally agree! While I was working on the midland section last night, I made a note to myself that switching to data-driven generation would probably work best and look better, so I've actually been trying to work on that. I'm new to lithostitched, so I might take some time!

@EmeraldGltch

Copy link
Copy Markdown
Author

I made it so every biome in the registry is capable of generating (sort of)

Terralith as an example:
2026-05-06_19 42 51

I still need to find a way to make lithostitched and its tags control the placement of biomes, but I feel like this is a reasonable start.

If anyone has any knowledge of lithostitched and is willing to offer some advice, I'd appreciate that a lot.

@Arcanum3000

Copy link
Copy Markdown

Ok, so I'm not super knowledgeable about Minecraft modding, but I'm decent at reading code and documentation. This is what I think is needed to make Minecraft biomes in general work with TD in a way that more-or-less makes sense without a bunch of hand-coded rules, and support Lithostiched as well. If I'm off-base, someone should by all means correct me.

I think what needs to be done is to hook Terrain Diffusion data (height, temperature, and rainfall) into the "temperature", "erosion", "continents" (continental-ness, whatever that means; distance from ocean?), and "vegetation" (humidity) noise routers. I believe that involves writing custom density functions that translate TD's real-world(ish) values to the (often, but not always) -1 to 1 range Minecraft expects. ("ridges", which apparently represents "weirdness", can likely use the MC internal map?)

Some fudging will be needed for values that don't directly translate: "erosion" and "vegetation" are related to TD's rainfall, but not exactly the same, and I'm not sure what to do with "continents". Writing a handful of custom calculated density functions for special values used in BiomeClassifier such as e.g. slope may be worthwhile as well for use in Lithostiched. Lithostitched also has some internal density functions that may be useful.

With that done, from what I can tell (and I might be missing something), writing Biome Injectors to do custom biome placement should be reasonably straightforward. No tags needed? Depending on how picky you and @xandergos wanted to be about placement, you may want to just let Minecraft's default placement do its thing and mainly use Lithostitched for special cases like the bare slope override at the bottom of BiomeClassifier.classify(). That may be the best approach regardless from a "make it work, then make it work better" standpoint.

That is my thought process. I'm not sure if it's useful or helps with what you're looking for. Like I said, I may be wrong or misunderstanding things, and I encourage anyone more knowledgeable to correct me.

@EmeraldGltch

Copy link
Copy Markdown
Author

Lithostitched also has some internal density functions that may be useful. anyone more knowledgeable to correct me.

THANK YOU THAT'S ACTUALLY EXACTLY WHAT I NEEDED

@EmeraldGltch

Copy link
Copy Markdown
Author
2026-05-07_22 21 46

Using vanilla Minecraft's noise settings + some density functions provided by lithostitched, I did manage to get some nicer looking biome boundaries!

2026-05-07_22 23 51 Still not perfect, but it's getting there!

@ThatDamnWittyWhizHard

Copy link
Copy Markdown
Collaborator

Nice. Don’t work on rivers. You should avoid adding them for now. Or add them if you want but my changes will overwrite them anyway ^^'

@Shoro123456789

Copy link
Copy Markdown

Those screenshots look gorgeous

Using a mix of Vanilla and Diffusion density functions through Lithostitched
Terrain Diffusion density functions currently return fallback values
@ThatDamnWittyWhizHard ThatDamnWittyWhizHard added type: enhancement Improvement to an existing feature. priority: medium Important, but not blocking. Should be handled after critical and high-priority tasks. status: in progress Work is currently in progress. type: compatibility Compatibility issue or support for a loader, mod or environment. env: dev Issue related to the development environment. labels May 12, 2026
@awesomeEL218

Copy link
Copy Markdown

Would it be possible to add some sort of biome scale option independent of terrain scale? This could allow for large terrain sizes but smaller biome sizes, making larger terrain sizes more survival friendly as you're able to find different biomes easier.

@EmeraldGltch

Copy link
Copy Markdown
Author

@xandergos Out of curiosity, is there any specific reason that the world preset isn't just replacing the normal minecraft:overworld? It would be a lot easier for servers to load the mod if it were, and I don't image people would install the mod just to not use it.

If not, I was thinking of making a switch in here for easier testing.

@xandergos

Copy link
Copy Markdown
Owner

I think the usual pattern for world gen mods is to require it to be manually set. But I'm not sure. If it's standard to replace the overworld directly I'd be fine with following that pattern.

@EmeraldGltch

Copy link
Copy Markdown
Author

Well I'll leave that to you or someone else to decide, but I think this pull request is ready now!

@EmeraldGltch EmeraldGltch marked this pull request as ready for review May 14, 2026 03:05
@xandergos xandergos self-requested a review May 14, 2026 03:09
@xandergos

Copy link
Copy Markdown
Owner

Alright, i'll take a look. There are some conflicts that need to be resolved though.

@xandergos

Copy link
Copy Markdown
Owner

Just from a quick look, it seems like temperature and vegetation don't use terrain diffusion at all, which seems a bit odd. Are the biomes just coming from plain noise, independent of any Terrain Diffusion outputs? There are 4 climate variables, which don't map perfectly to the noise variables, but it should map pretty cleanly at least to temperature and vegetation (probably derived from precipitation, maybe combined with temperature in some way)

@EmeraldGltch

Copy link
Copy Markdown
Author

I was trying to get that working, but I ended up just creating a mess that wasn't working, so I had scrapped the idea. What I have right now was really just to get the biomes to at least work.

I left some noise channels in the codec open to be expanded on since I didn't know how to handle it. I'd totally be open to letting someone collaborate on the pull request if anyone else knows what to do with it though!

@xandergos

Copy link
Copy Markdown
Owner

hmm well i probably wont want to merge this into the mod until the terrain diffusion climate is integrated more cleanly. Personally I'd much rather stick with vanilla biomes that make sense than have modded biomes that don't match the terrain at all. If I have some free time I'll look into it myself.

@EmeraldGltch

Copy link
Copy Markdown
Author

So turns out I may have been a bit stupid lol. I realized I could just take a bunch of the old BiomeClassifier logic and reuse it. I should have the full thing working soon!

@ThatDamnWittyWhizHard ThatDamnWittyWhizHard marked this pull request as draft May 14, 2026 06:42
@ThatDamnWittyWhizHard

Copy link
Copy Markdown
Collaborator

I should have the full thing working soon!

No pressure don’t worry. I can take a look if you need it.

Only temperature + vegetation
BROKEN & INTENSE
@Majesty85

Copy link
Copy Markdown

I just wanna ask how "realistic" the end product would end up looking, because afaik some vanilla biomes (and definitely some modded biomes) inherently feature "less realistic" terrain and if I understand this mod correctly it uses a model exclusively trained on real-world data to generate Minecraft terrain.

Would there then be any way to make the terrain then more closely resemble the shapes of some of these biomes where they generate? Because this mod absolutely blows everything else I've seen out of the water in terms of pure generation and scale and I would absolutely love to have this type of generation with its realistic scale much closer to 1:1 with reality but with exotic terrain shapes, for instance Terralith's floating islands or Glacial Chasm!
Ice_Spikes_(Cero)

@xandergos

Copy link
Copy Markdown
Owner

This mod is really a tech demo of terrain diffusion, which was designed to push the limits of what's possible. It's not designed for optimal gameplay. Really, if it were designed for Minecraft from the ground up, I'd probably use it as more of a post-processing erosion filter, and then you can control the strength and choose which layer it is applied to. Condition it on the climate of the biomes for realism. It could probably be integrated directly into Terralith or other terrain generators that way and the biomes would be straightforward because they would be defined before the terrain. But I don't have the time to do this myself.

Underground biomes often get assigned on the surface
@EmeraldGltch

EmeraldGltch commented May 15, 2026

Copy link
Copy Markdown
Author

There's still definitely a performance hit, but most of the crucial noise channels use climate and elevation from Terrain Diffusion now! Let me know what you think of it, and especially let me know if there's a way I can fix the problem of ocean and cave biomes generating on the surface.

@Majesty85

Copy link
Copy Markdown

@xandergos Makes sense, I hope this gets really popular so someone will be inspired to apply this technology to more vanilla/modded biome terrain shapes! (I don't know nearly enough about coding to do this myself unfortunately, in fact I made an account specifically just to thank you, ask that, hang out, and help people who didn't read the readme that post questions about errors that are easily fixed lol)

@ThatDamnWittyWhizHard ThatDamnWittyWhizHard added priority: critical Blocks normal use of the mod or causes a major crash. Must be handled first. and removed priority: medium Important, but not blocking. Should be handled after critical and high-priority tasks. labels May 16, 2026
@ThatDamnWittyWhizHard

ThatDamnWittyWhizHard commented May 16, 2026

Copy link
Copy Markdown
Collaborator

I will check your code and make the necessary modifications accordingly. We need those features for 2.3.0 I think but no pressure ^^

@ThatDamnWittyWhizHard

Copy link
Copy Markdown
Collaborator

tbh this is not what I expected. I actually think you should first implement the missing biomes in the BiomeClassifier and use the four-channel options provided by the pipeline to populate the world with clean biomes transitions for people who do not use any custom terrain or biome generation mods.

From there offer modding capabilities so modders can add their own logic and build an interface between added biomes and the four-channel options. Maybe Lithostitched was a bad idea.I started working on an idea. I might push my own PR or push into yours. I don’t know yet.

@ThatDamnWittyWhizHard ThatDamnWittyWhizHard added status: blocked Blocked by a dependency, decision or external issue. and removed priority: critical Blocks normal use of the mod or causes a major crash. Must be handled first. status: in progress Work is currently in progress. labels May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

env: dev Issue related to the development environment. status: blocked Blocked by a dependency, decision or external issue. type: compatibility Compatibility issue or support for a loader, mod or environment. type: enhancement Improvement to an existing feature.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants