active-cubiomes
Python/Cython bindings for cubiomes — a fast C library that replicates Minecraft's world-generation algorithms without running the game.
pip install active-cubiomes
Import name:
import cubiomes(the distribution isactive-cubiomes)
Quick start
from cubiomes import Generator, MCVersion, Dimension, BiomeID
g = Generator(MCVersion.MC_1_21)
g.apply_seed(Dimension.DIM_OVERWORLD, 123456789)
biome = g.get_biome_at(0, 63, 0) # block coords
print(BiomeID(biome).name) # "river"
# 256×256 biome map at 1:4 scale
ids = g.gen_biomes(-128, -128, 256, 256) # array.array('i')
import numpy as np
grid = np.array(ids, dtype=np.int32).reshape(256, 256)
Structure finding
from cubiomes import StructureType, get_structure_pos, is_viable_structure_pos
seed = 123456789
mc = MCVersion.MC_1_21
for reg_x in range(-3, 4):
for reg_z in range(-3, 4):
pos = get_structure_pos(StructureType.Village, mc, seed, reg_x, reg_z)
if pos and is_viable_structure_pos(StructureType.Village, g, *pos):
print(f"Village at {pos}")
Strongholds
from cubiomes import iter_strongholds
for i, (x, z) in enumerate(iter_strongholds(g, seed=123456789)):
print(f"Stronghold {i}: ({x}, {z})")
if i >= 4:
break
Seed search CLI
# Seeds with mushroom fields AND badlands within 4 km
cubiomes-search --mc 1.21 --biome mushroom_fields badlands --biome-radius 4000 --count 5
# Quad witch-hut base
cubiomes-search --mc 1.21 --quad Swamp_Hut --quad-dist 128 --count 3
# Inspect one seed
cubiomes-search --seed 123456789 --info
# Village and Monument within 400 blocks of each other, JSON output
cubiomes-search --mc 1.21 --proximity Village Monument 400 --count 10 --format json
Seed search Python API
from cubiomes.search import (
SearchCriteria, BiomeCondition, StructureCondition,
SpawnCondition, StrongholdCondition, ProximityCondition,
QuadStructureCondition, BiomeDensityCondition,
SlimeDensityCondition, AnyOfBiomes, CustomCondition,
SeedSearch,
)
from cubiomes import MCVersion, BiomeID, StructureType
criteria = SearchCriteria(
mc=MCVersion.MC_1_21,
biomes=[BiomeCondition(BiomeID.mushroom_fields, radius=2000)],
conditions=[
SpawnCondition(max_distance=500),
StrongholdCondition(count=1, max_distance=2000),
QuadStructureCondition(StructureType.Swamp_Hut, max_dist=128),
],
)
for result in SeedSearch(criteria).run(
seed_range=(0, 100_000_000),
count=5,
workers=4,
):
print(result)
All condition types
| Class | CLI flag | Description |
|---|---|---|
BiomeCondition |
--biome NAME... |
Biome must exist near origin (AND) |
AnyOfBiomes |
--any-biome NAME... |
At least one biome (OR) |
StructureCondition |
--structure NAME... |
Structure viable near origin |
SpawnCondition |
--spawn-biome / --spawn-max-dist |
Spawn location/biome |
StrongholdCondition |
--stronghold-radius |
First N strongholds in radius |
ProximityCondition |
--proximity A B DIST |
Two structures near each other |
QuadStructureCondition |
--quad STRUCT |
Quad-farm base (2×2 regions) |
BiomeDensityCondition |
--biome-density BIOME FRAC |
Biome coverage fraction |
SlimeDensityCondition |
--min-slime-chunks N |
Minimum slime chunks |
CustomCondition |
— (Python only) | Arbitrary (seed, mc) → bool function |
Building from source
Requires GCC and Python ≥ 3.8:
git clone https://github.com/your-fork/active-cubiomes
cd active-cubiomes
pip install -e ".[dev]"
License
The Python bindings are MIT licensed. The bundled cubiomes C library is also MIT licensed.
Metadata
Release files for active-cubiomes 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| active_cubiomes-0.1.0.tar.gz | 888.9 kB | Details |
Release files / active_cubiomes-0.1.0.tar.gz
| Download URL | active_cubiomes-0.1.0.tar.gz |
|---|---|
| Size | 888.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
56e98b25b9999d108d08d2872754150c28a0d47d85f7f5c8d3453584ec94c477
|
|
BLAKE2b-256 checksum How to use checksums |
226ca2224e694afb333e4b246c4d89eb54e03d4e92edc2af499013db21882df0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|