Lustre
Status: Early in development. The engine under Colony.
Lustre is a voxel engine for whole planets. A world is a sphere of metre cells you can dig anywhere on, made from a seed, streamed around the player, marched into smooth ground, and shared between a server and its clients. It is written in Rust on Vulkan and tested without a window.
Voxel engines make flat worlds because a round one breaks the easy assumptions: which way is up, what a column is, what a layer means. Lustre answers those once, in data, so the physics, the buildings, the colonists and the colony view work the same at a pole as at the centre of a face.
Today, for Colony. Later, for studios that want a planet rather than a map. If that is you, we would like to hear what you are building.
There is no engine licence today. Tell us what you are building.
Architecture
Planetary lattice
A planet is one cube lattice of metre cells; the six faces are bookkeeping for columns. Up is data: the local up is radial, the physics, the buildings and the colonists stand on it, and a landing at forty degrees off a face works like one at the centre.
Marched terrain
Terrain is a density field marched into smooth ground, with the skin's reach so a tilted lattice still lands the surface on a plane. Digging, pouring and packing edit the field, and the struck chunk is meshed in the same frame.
Deterministic generation
A planet cannot be stored: a 256 metre shell at one kilometre is billions of cells. A world is a seed, its parameters and the sparse edits, which works because generation is deterministic to the cell.
Gravity-aligned colony view
The layer view lays tiles on a grid level to gravity, never the lattice, reads each along its own radial, and lights the relief.
Client and server
The server owns the world and every edit; the client mirrors it. Singleplayer and multiplayer run the same code and differ only in transport.
Rust and Vulkan
Data-oriented throughout: a cell is one integer, a chunk a flat box of them, behaviour free functions over the data. Vulkan for the frame, a worker for the meshing, the whole thing tested headless.
Design constraints
Spherical worlds
Most voxel worlds are flat or wrap at an edge. Lustre's are spheres you walk around, with a solar system generated from the same seed. A free camera leaves the ground, travels to the moons and looks back at the planet.
Same-frame edits
The ground changes in the frame the tool is held. An edit that shows a frame later is a defect, and the profiler prints the lag on every run so it stays that way.
Headless tests
Every rule has a test that runs without a window: the winding of a quad, the depth of a tile, the bite of a shovel, the arrival at a moon. Hundreds of them run in seconds.
Built in-house
The engine and the game are one company's work, in one repository, with one changelog. No engine is licensed in, and nothing calls out to a service.
Rendering
The material system shading the six materials the direction sheet defines, and the props built on them. Renders out of the engine's own material set, not frames of the game.
Concept art
Model render
Model render
Model render
Model render
Concept artQuestions
What is Lustre?
Lustre is Acris Software's voxel engine for whole planets, written in Rust on Vulkan. Colony is the first game built on it.
Can I license Lustre?
No. There is no licence, no price and no date. Lustre is being built for one game, Colony. If you are building a game that needs round worlds, tell us what you need on the Connect page.
Is it open source?
No. The engine and the game are developed in the open in the sense that the test builds, the plans and the changelog are public to testers, but the source is Acris Software's.
How is Lustre different from Unity, Unreal or Godot?
Unity, Unreal and Godot are general-purpose engines for scenes built from meshes, with a fixed up and down. Lustre does one job: a whole planet of ground you can dig, on one voxel lattice where up points at the planet's centre and every edit is kept in the save. It is written in Rust on Vulkan, with a server and a client from the start.
Is Lustre a voxel engine like the ones behind block games?
It is a voxel engine, but the ground is not drawn as blocks. It is marched from a density field into a smooth surface that gives under the tool, and worlds are generated from a seed plus the player's edits.
What platforms does it target?
Windows and Linux, through Vulkan. Other graphics backends are not planned before the game ships.
Unity, Unreal Engine and Godot are trademarks of their respective owners. Acris Software is not affiliated with them; they are named only to say how Lustre compares.