Biome

Biomes are regions in a world with varying geographical features, flora, heights, temperatures, humidity ratings, and sky and foliage colors. Biomes separate every generated world into different environments, such as forests, jungles, deserts, and taigas.

Temperature
Biomes have a temperature value that determines if it snows or rains. The required temperature values are less than 0.15 for snow, and above 0.15 for rain. The temperature also drops 0.0016 ($1/625$) per meter above the default sea level (Y=64), but does not change below sea level. These values can be used to determine the heights that snow generates at in different biomes. For example, mountains generate snow at Y=95, due to their highland climate, as their temperature value is 0.2. The temperature affects only the transition from rain to snowfall. All the biomes in vanilla with a temperature above 0.95 (and by extent, all the dry biomes) are hardcoded to never have precipitation at any height or temperature. For example, savannas do not experience rain or snow due to their heat. If a biome with a temperature above 0.95 is edited to allow rain through a data pack or mod, it will simply rain until the temperature drops below 0.15 (this will be far above the build limit in vanilla).

Biomes are split into 5 categories based on their temperature: snow-covered, cold, temperate/lush, dry/warm, and neutral. They are almost always separated during terrain generation to prevent biomes with huge temperature differences being placed side-by-side (such as a snowy taiga next to a desert), and to allow biomes with similar temperatures to be placed next to each other more often (such as forests and swamps).

Biome clusters
While biomes are still split into 5 categories, generation of biomes between 1.7 and the current version differs somewhat from the biome categories described below. In general, land biomes generate in 4 different clusters; cold, temperate, lush, and hot biomes. Temperate and Lush biome groups are often indistinguishable from each other however, with the only difference being areas of taiga versus areas of swamps, birch, and dark forests. The former two biome clusters are often the most expansive. Cold and dry biomes generate in smaller clusters, but can still extend a thousand or more blocks. Cold biomes include the snow-covered Snowy Tundra and Snowy Taiga. Dry biomes consist of Savanna, Plains, and Desert. Plains biomes are somewhat unusual in that they generate in dry biome clusters in addition to lush and temperate biome clusters. Temperate and Lush biome clusters both contain Extreme Hills, Plains, and Forest.

In snowy climates, Snowy Tundra are weighed 3 times more versus Snowy Taiga, meaning Snowy Tundra is much more common than Snowy Taiga. In dry climates, Deserts are weighed 3 times, Savanna 2 times, and Plains only once, meaning in dry climates, Deserts are more common than Savannas, which are more common than Plains.

Snowy, temperate, lush, and dry biome clusters, as well as Mushroom Fields, Jungles, Giant Tree Taigas, Oceans and Deep Oceans, are generated and pre-determined in the biome climate stage of biome generation. The biome clusters then generate their respective biomes.

Four land biomes are rarer, and generate separately from biome clusters: Mushroom Fields, Badlands, Jungles, and Giant Tree Taigas. Mushroom Fields generate in Ocean biomes, Badlands in dry biomes, Jungle in lush biomes, and Giant Tree Taiga in temperate biomes. These three land biomes may also occasionally generate standalone separate from their parent biome clusters. In addition, an "edge" variant biome surrounds these three biomes. Jungle Edges separate Jungles from most other land biomes aside from regular Forest or Taiga (if bordering a Swamp the Jungle edge extends up to 3 chunks), and Desert separates Badlands from the rest of the land biomes except with Modified Badlands. Taiga and its variants surround Giant Tree Taiga in all cases except for Snowy Taiga. The thin Deserts and Jungle Edges that border much of Mesa and Jungle biomes are generated in the beach/shore biome stage. The generation of Mushroom Fields uses Mushroom Fields Shore as its "technical" river biome and beach biome, but if a Deep Ocean touches a Mushroom Field biome then the Mushroom Field Shore biome does not generate.

Biome edges
During the biome edge stage of biome generation, portions of some biomes can be overwritten and replaced by different ones. This generally occurs in areas where two nearby biomes would create a strange and contrasting border. Plains biomes can overwrite Swamps if the Swamps border snowy areas or Deserts. Jungle Edge biomes overwrite Swamps if Jungles border Swamps. If Snowy Tundra borders Deserts, a Wooded Mountains biome overwrites the Desert.

Taigas that surround Giant Tree Taigas are generated in the Biome-Edge layer stage, however Jungle Edges and Deserts that surround Jungles and Badlands are generated in the stage where shores and beaches are generated. As such, the latter two biome edges cannot generate modified biome variants, but modified biomes can take over any biome edges within the biome edge generation. Note that the biome edge stage, not the beach/shore stage, in biome generation, handles the case of a Jungle Edge and Swamp bordering.

Other information
The generation and location of Hill biomes is pre-determined, and mutated biomes have their own stage in biome generation. The dense Dark Forest uses Plains as its Hill biome, forming glades. Plains generate groves of Forest, Forest Hills, or Flower Forest. Ocean biomes may have spots of Deep Ocean biomes within it, while Deep Ocean biomes generate sparse islands with Plains or Forest. Mushroom Fields that generate in Ocean biomes are pre-determined in the biome climate stage of biome generation. In the Badlands, the Badlands Plateau is the actual main biome generated with the regular badlands as the Hills biome. However, the non-plateaued badlands biome generates on the edges of all types of plateaued badlands, in this case of the non-plateaued badlands, this is generated in the biome-edge stage of biome generation. In the case of Modified Hills, if a biome type doesn't have a Modified Hills biome, such as warm ocean or Swampland, only the regular biome type generates. Since Update Aquatic, Modified biomes can conform to an entire biome or can border a river.

Rivers and beaches simply overwrite the land biome entirely during generation.

The temperature of Ocean biomes is done completely separately from the land biome generation, meaning it is possible for a frozen ocean to generate next to a badlands biome. This was done in order to not have to change land biome generation in its entirety.

$$, the possible shapes of biomes can use only the first 24 bits of the 64-bit world seed, and biome shapes within a world seed can repeat beginning around blocks from 0,0. Biomes are sampled in 4 by 4 block segments, as such, the biome generation algorithm overflows at blocks, biomes can repeat every  blocks. Scaling the biome size down causes beaches and edge biomes to disappear as biomes are sampled in 4 by 4 block segments. In other cases, some edge biomes, those that are generated in the biome-edge stage of biomes instead of beach/shore stage of generation, can maintain it's normal block width, even though the biomes in the noise map are shrunken.

Even though there are 64-bit seeds on Java, there are only unique noise maps for continental/ocean biome generation, due to a use of a quadratic equation in biome generation. This is colloquially known as a shadow seed. In this case, land biome and general ocean biomes are exactly the same in a pair of seeds, but ocean biome temperatures, structures, and hills differ in the shadow seed. A user can find a shadow seed by using a 64 bit integer calculator and subtracting -7379792620528906219 to obtain the shadow seed. Shadow seeds are exclusive to Java Edition.

With using 32-bit seeds and a different world generation algorithm, there are few similarities between it and the 64-bit world generation. The positions of Mutated biomes, oceans (and islands), rare biomes (Jungles, Badlands, Mushroom Fields, Giant Tree Taiga), as well as specific biomes in cold, temperate, or dry biome clusters, bear some geographical relationship with the equivalent positive value seed of the 64-bit generation. The biome shapes deviate significantly. The specific generation of lush biomes is completely different on Bedrock.

Biome types
$$, currently, there are 67 Overworld biomes, 5 Nether biomes, 5 End biomes, and 2 unused biomes, with a total of 79 different biomes. $$, however, there are 66 Overworld biomes, 5 Nether biomes, 1 End biome, and 3 unused biomes, with a total of 75. Biomes can be distinguished by the grass, and leaf colors (water color also differ between biomes in the biome, along with the types of blocks present (e.g. types of trees or other plants like cacti, sand coverage in deserts)). Biomes are pseudo-randomly generated using the map seed.

Biomes are separated into 6 temperature classes. The snowy ones have their temperature listed in purple, cold in green , temperate/lush in orange , dry/warm in red , and the end in blue. The biomes of either neutral or unknown temperature have no temperature class. Temperatures are given at sea level.

Snowy biomes
In these biomes, it always snows instead of rains, no matter the height; all sources of water exposed to the sky are frozen over. The foliage and grass is aqua, and the water is purple.

Cold biomes
In these biomes, it begins to snow above y=90 in mountains and stone shore, above y=120 in taiga and giant spruce taiga, and above y=150 in giant tree taiga. Otherwise, it rains. Foliage is aqua as in snowy biomes, with the water being indigo.

Temperate/lush biomes
In these verdant biomes, it begins snowing over the 256 block height limit, snow does not generate naturally. Otherwise, it rains. The foliage and grass is a vibrant light green, except for swamps and dark forests, which have dark green grass. Rivers and birch forests are also exempt from this, as they have a dull aqua hue. The water is blue in this biome.

Dry/warm biomes
In these biomes, it neither rains nor snows at all, but the sky still turns overcast during inclement weather. The foliage and grass is an olive tone, except badlands biomes, which have brown grass. The water is light blue. As in jungle biomes, the sky becomes lighter. Additionally, a snow golem spawned or brought into one of these biomes melts unless it has the Fire Resistance effect.

Ocean biomes
Oceans are large, open biomes made entirely of water going up to y=63, with underwater relief on the sea floor, such as small mountains and plains, usually including gravel. Oceans typically extend under 3,000 blocks in any direction; around 60% of the Overworld's surface is covered in ocean. Small islands with infrequent vegetation can be found in oceans. Passive mobs sometimes can spawn on these islands, as hostiles can. Squid spawn frequently in the water. Underwater cave entrances can be found frequently at the bottom of the ocean.

Unused biomes
These biomes don't generate in default worlds.

Removed biomes
These biomes no longer generate in current versions of the game.

The Nether
The Nether is considered a different dimension. All biomes in this dimension are dry and it is not possible to place water in these biomes, though ice can still be placed.

The End
The End is considered a different dimension. The water is lilac.

Trivia

 * The term biome is analogous to its scientific usage: in real life, a biome is climatically and geographically defined by distinctive communities of plants, animals and soil organisms supported by similar climatic conditions. They are often referred to as ecosystems.
 * Most biomes in the Overworld are based on real world counterparts. Mushroom Fields, Roofed Forest/Dark Forest, and Swamp biomes (and their variants) parallel real world biomes except for the addition of giant mushrooms, which don't exist in reality. Biomes in the Nether and The End obviously don't exist either.
 * It is possible for biomes to be a single block in size.