One scene. Deliberate work.
A shared Renderer boundary, capability-selected quality paths, offline Slang shader compilation and explicit frame orchestration. Atmosphere, water, temporal history and lighting are explored in the journal.
The engine behind the worlds
A custom C++ engine for building interactive worlds. Shared systems for graphics, simulation, assets and tools, with games that keep their own identity.

A shared foundation
OmiLith separates reusable engine services from each game's content and rules. An entity owns components, while shared reflection connects scene data, Luau scripting and inspectors. Rendering and simulation can evolve together without turning the engine into the game.
The renderer resolves work against the view, device capabilities and the game's quality policy. A retained frame graph and native graphics paths turn that plan into GPU work. Backend implementations share an engine boundary; that does not imply identical features or performance on every device.
Cooked assets · Luau scripts · input · audio · platform services
Vulkan / Metal / Direct3D 12 / WebGPU
A shared Renderer boundary, capability-selected quality paths, offline Slang shader compilation and explicit frame orchestration. Atmosphere, water, temporal history and lighting are explored in the journal.
Entity-owned components, RTTR reflection and Luau scripting connect authored scenes with runtime systems and tools. Reusable services support the world while game projects own their rules.
An offline asset cooker prepares runtime content. Authoritative multiplayer separates the headless game simulation from client presentation, with bounded messages and interpolated state.
Keep exploring
This is the introduction. Architecture, components, source-backed features and the engine's direction live at omilith.dev. The journal here follows the decisions and experiments along the way.
Visit omilith.dev ↗Authority ownership, snapshot deltas, interpolation, and the difference between a merged implementation and a qualified capacity result.
4 min readBuilding spectral water without letting a graphics quality setting change the forces acting on a multiplayer boat.
4 min readWhy loading a smaller representation is only the beginning of a safe streaming system.
4 min read