Mjolnir Engine

Mjolnir is a minimalistic, bindless, GPU-driven game engine in Odin, on Vulkan and WebGPU (native and web).

Get started

Run make shader to compile shaders to SPIR-V and copy the mjolnir/ directory into your project. The examples are the guide: start with cube (odin run examples/cube), then look up calls in the API reference.

Physically-based rendering

Metallic-roughness materials with image-based lighting, driven entirely from bindless GPU buffers.

See PBR example

Lights and shadows

Point and spot lights and a sun, with shadows from one shared shadow atlas.

See lights example

Cameras as render targets

Any camera output can be sampled as a texture: mirrors, minimaps, portals.

See RTT example

Skeletal animation

Forward kinematics, FABRIK inverse kinematics, and layering with bone masks, blend modes and transitions.

See animation example

Procedural animation

Tail follow-through, spider legs and path-on-spline modifiers on top of any rig.

See spider example

Rigid-body physics

Physics primitives - boxes, spheres and cylinders with sleeping, sensors, area queries and ray casts.

See physics example

Particles and force fields

GPU particle simulation, shaped by force fields placed in the scene.

See particles example

Post-processing

Tonemap, bloom, blur, fog, outline, depth of field and crosshatch, stacked in any order, plus your own post shaders.

See post processing example

Asset loading

glTF scenes with skins and animations (an OBJ loader ships as an example). Procedural cubes, spheres and tori built in.

See GLTF example

Billboards, sprites and splines

The small pieces games reach for first.

See sprite example