Crate dotrix[][src]

Expand description

Dotrix is a 3D game engine following ECS programming pattern with a goal to be simple and feature rich. There is a Löwenware team behind the project and we are working on Dotrix to power up our own game projects.

The best place to see what can be done with Dotrix is our YouTube channel.

Getting Started

If you are more into a practice and looking for an example code, we’ve prepared a good demo application for you to get started.

If you prefer to work with the documentation, then the best place to start is where your game should start - the Dotrix application builder.

use dotrix::Dotrix;

fn main() {
    Dotrix::application("My Game")

It is also a tool to say the engine where should be rendered the output and what services and systems has to be enabled.


pub use dotrix_math as math;
pub use dotrix_egui as egui;
pub use dotrix_overlay as overlay;
pub use dotrix_pbr as pbr;
pub use dotrix_sky as sky;
pub use dotrix_terrain as terrain;


Animation components and systems

Assets and management service

Dotrix camera implementation


Dotrix core components

Entity Component System

Input service, ray casting service and utils

Mouse ray implementation

Rendering service and system, pipelines, abstractions for models, transformation, skybox, lights and overlay


Services are very important part of Dotrix. Technicaly the service is a standard Rust structure with methods. Logically, services are providers of interfaces to various features.

Transformation structure and builder

Window service - a wrapper for [winit::window::Window] instance.


Count parameters

Macros implementing all necessary archetyoes, patterns, querries and iterators for different types of tuples

Recursive macro treating arguments as a progression


Component to control model animation

Application data to maintain the process

Assets management service

Camera management service

RGBA Color.

Material component

Rendering output configuration

Application Builder

Frame tracking service

Centralized container service for uniforms and other data

Asset identifier

Input Service

Information about a monitor.

Rendering control component

Transformed Skin state

Represents ray and provides method for various calculations

Service providing an interface to WGPU and WINIT

Service wrapper

Wrapper for system functions

Model transformation structure

Information about a video mode.

Window service - a wrapper for [winit::window::Window] instance.

Service to store and manage entities


System Priority

Defines when and how often a system should run.


Trait providing extendablity

Service abstraction