Hieroxel

A living voxel world in Rust and Bevy 0.20. Endless terrain streams in around you, and the world keeps changing on its own: grass spreads, flowers seed, saplings grow into trees, vines creep down from canopies, moss creeps through caves, leaves wither once their trunk is gone, and sand and gravel fall.

A forest coast in Hieroxel, with misty peaks across the sea

Build

Linux, with Rust, Bevy's system libraries (see docs/linux_dependencies.md in the Bevy repository) and clang + mold for fast linking. Without mold, delete .cargo/config.toml. The first build compiles all of Bevy and takes several minutes.

cargo run --release

Install

./install.sh

Builds the game, installs it to ~/.local/bin/hieroxel and adds Hieroxel to your app menu under Games. ./install.sh uninstall removes it again; your worlds stay.

VSCodium

Terminal β†’ Run Build Task (Ctrl+Shift+B) opens kitty, builds the release game and runs it there. The other tasks run it in the editor's terminal, run the tests or the benchmark, or install the game to the app menu. F5 debugs. Because VSCodium is a Flatpak, the tasks build on the host through flatpak-spawn --host.

Controls

Key Action
Click capture the mouse
WASD, Space, Shift move, jump, sprint
F toggle flying (Space / Ctrl to rise and sink)
Left / right / middle mouse break / place / pick block
1–9, mouse wheel choose hotbar slot
Q / E change the block in the slot
T (hold) fast-forward the day and the living world
G pause or resume the living world
C toggle cave culling (for comparison)
+ / βˆ’ view distance
V vsync
F11 fullscreen (also bypasses the desktop compositor: more fps)
F3 / H debug overlay / controls help
F2 screenshot (saved next to the worlds folder)
Esc release the mouse

Options

--world NAME        world to load or create (default: world)
--seed N            seed for a new world
--view N            view distance in chunks (default: 12)
--fullscreen        start fullscreen
--find BIOME        start above the nearest ocean/beach/plains/forest/desert/tundra/peaks
--time T            time of day, 0..1 (0.5 = noon)
--bench SECONDS     measure frame times while turning, then quit
--screenshot FILE   save a screenshot once loaded, then quit

Worlds are saved in ~/.local/share/hieroxel/worlds/ when you quit and every minute.

How it is built

  • world/terrain.rs: noise heightmap (continents, ridged mountains), biomes, tunnels and caverns, trees, desert obelisks, cave moss and lumen crystals.
  • world/mesher.rs: greedy mesher with per-vertex ambient occlusion and sky light. Each vertex is 8 bytes.
  • world/mod.rs: chunk columns, background generation and meshing on worker threads, edits, saving.
  • world/living.rs: the random-tick rules that keep the world alive.
  • render/voxel.wesl: one cheap shader for all blocks: texture array, AO, sky light, fog, water waves and swaying plants.
  • render/textures.rs: every block texture is painted procedurally at startup.

License

MIT. See LICENSE.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support