This release is a pre-release and may not be stable for production use.
Terrain development in Minecraft relies on large, deeply nested JSON structures that quickly become difficult to read and maintain. Rhombus introduces powerful abstractions and a comprehensive Python API, making world generation code cleaner, more modular, and significantly faster to develop.
Rhombus is an eDSL delivered as a Python package that allows worldgen developers to comfortably write expressions resembling the abstract syntax trees of density functions for Minecraft while benefiting from Python's forgiving syntax.
Key Advantages
- 📦 Object-oriented Design
Full use of Python’s object model for composing, reusing, and structuring density functions. - 📝 Native Comments
Since Python code is in use, comments work naturally without any custom syntax. - 📖 Integrated Documentation
Functions and classes provide docstrings describing behavior, parameters, and usage. - ⚡ Performance Optimization
Recurring expressions and resource intense operations can be cached automatically. - 🗄️ Macro Library
Growing collection of macros for common patterns and complex operations, reducing boilerplate and improving readability. - Multi-Version Compilation
While Rhombus follows an up-to-date-first approach, density functions can be compiled to older versions too. The most optimal implementation for each version is chosen automatically.
Features
Unveil
This list only includes features that are principally not necessary, but make up the real strengths of Rhombus.
- Rhombus Preview
A lightweight local frontend with file-watching for previewing density functions- Visualizer (built on deepslate)
- Supports all major worldgen mods (see Mod Support)
- File Explorer & Viewer (built on monaco)
- Spline Visualization
- Visualizer (built on deepslate)
- Macro Library
- Mod Support
- More Density Functions
- Lithostitched
- Tectonic
- En-sityFunctions
Impressions
pip install rhombus
from rhombus import *
continent_noise = Noise(-10, [2, 1, 2, 2, 2, 1, 1, 1, 1])
erosion_noise = Noise(-9, [3.5, 0, 2, 4, 2, 2, 3])
erosion = clamp(noise(erosion_noise, xz_scale=1.3, y_scale=0) - 0.1, min=-1, max=1)
height_map = spline(
erosion,
[
(-1, -1, 0),
(-0.6, -0.95, 0),
(-0.61, -0.6, 0),
(-0.2, -0.55, 0),
(-0.21, -0.2, 0),
(0.05, -0.2, 0),
(0.21, 0.2, 0),
(0.6, 0.3, 0),
(0.61, 0.8, 0),
(1, 0.8, 0),
],
)
FINAL = maps.extrude_heightmap(height_map, (-1, 0.8), (64, 256))
Spread the Word
The easiest way to support the Rhombus project is to propagate its use in your projects. You can use our custom Devin's Badges:
<a href="https://github.com/annhilati/rhombus"><img src="https://raw.githubusercontent.com/annhilati/rhombus/main/docs/images/badge-cozy.svg"/></a>
<a href="https://github.com/annhilati/rhombus"><img src="https://raw.githubusercontent.com/annhilati/rhombus/main/docs/images/badge-cozy-minimal.svg"/></a>
Release files for rhombus 0.1.0rc3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rhombus-0.1.0rc3.tar.gz | 873.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rhombus-0.1.0rc3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / rhombus-0.1.0rc3.tar.gz
| Download URL | rhombus-0.1.0rc3.tar.gz |
|---|---|
| Size | 873.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fbbb50ba4936573d8c21f1e36dde2bdbb8db1fd6bb7a8890c2f86453d56197e5
|
|
BLAKE2b-256 checksum How to use checksums |
6cd43866a60a93c34cc82045d2ac32a81c26d1c5e5bcf7eba1e278a66d7b8258
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / rhombus-0.1.0rc3-py3-none-any.whl
| Download URL | rhombus-0.1.0rc3-py3-none-any.whl |
|---|---|
| Size | 386.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b1ba7c60b1575ef4bf3ddda3fabaf7b38e51e85b79593f402230866774e7bc4d
|
|
BLAKE2b-256 checksum How to use checksums |
af6cd88fc54c1be8114a8893794bdc244032d068f5a8fb2b814d45dd2cd13bb4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|