← Back to products

Dotrix

Our in-house open-source Rust 3D engine — modular, performant, and built for real-time graphics.

Dotrix is Löwenware's in-house 3D engine, written in Rust. The name derives from dot and matrix — keystones of rendering. We built it to power our own game projects and open-sourced it because the solutions we develop can be useful to others.

Why we built it

Commercial game engines are powerful but come with licensing constraints and abstraction layers that do not always fit our needs. Dotrix gives us direct control over the rendering pipeline, ECS architecture, and platform support.

For developers

Dotrix is modular and designed for Rust developers who want a modern 3D engine without leaving the Rust ecosystem. Visit dotrix.rs for documentation, examples, and the source repository.

Highlights

ECS

Entity Component System programming pattern makes access to your in-game objects fast and simple. Components can contain data describing an entity, as well as data necessary for its rendering or control.

Physical Based Rendering

Physical Based Rendering

GPU Driven Rendering

To avoid annecessary round trips between CPU and GPU, Dotrix arranges indirect draw calls, so GPU has enough data to render not just one entity but complete world or significant parts or it with only one draw call.

Particles and Compute Shaders

Particles and Compute Shaders

Multitasking

All logic in Dotrix is concentrated in tasks that can be parallelized by the engine in background. There is no need for manual arrangments, scheduling or synchronization.

Skybox

Skybox

Crossplatform

Being written in Rust, Dotrix is highly portable and can be effortlessly used on Linux, MacBook or Windows.

Terrain

Terrain

FAQ

Why Rust?

The idea to give Rust a try for game development appeared as soon as we started to use that programming language for embedded solutions. Its modularity, modern syntax built-in safety makes it the best in general for such a big projects like games. On other hand, the way how it deals with data types and generics, makes it very attractive for all kinds of ECS (Entity Component System) programming patterns, that we wanted to use.