17 releases (8 breaking)

0.10.4 Jan 10, 2019
0.10.2 Dec 26, 2018
0.9.0 Oct 23, 2018
0.7.0 May 19, 2018
0.3.0 Mar 31, 2016

#29 in #amethyst

Download history 611/week @ 2023-05-30 218/week @ 2023-06-06 333/week @ 2023-06-13 702/week @ 2023-06-20 399/week @ 2023-06-27 435/week @ 2023-07-04 373/week @ 2023-07-11 442/week @ 2023-07-18 464/week @ 2023-07-25 292/week @ 2023-08-01 436/week @ 2023-08-08 528/week @ 2023-08-15 237/week @ 2023-08-22 318/week @ 2023-08-29 518/week @ 2023-09-05 346/week @ 2023-09-12

1,462 downloads per month
Used in 7 crates (2 directly)


13K SLoC

Amethyst - Rendering Engine

Build Status Crates.io MIT/Apache Join us on Discord

High-level rendering engine with multiple backends. This project is a work in progress and is very incomplete. Pardon the dust!


A data parallel rendering engine developed by the Amethyst project.

The source code is available for download on GitHub. See the online book for a complete guide to using Amethyst.


This crate provides OpenGL graphics rendering functionality through various rendering passes. The rendering passes may handle different domains of rendering, such as "draw game objects" vs "render text"; or they can handle the same domain with different variations, such as "draw objects with lighting" vs "draw objects ignoring lighting".

Skinning: Interleaved Versus Separate Passes

In an application, objects may be composed of multiple renderable entities, such as a main body and separate limbs. Where the limbs join the the body, it will look more realistic if the vertex positions are affected by the relative positions to the body and limb.

This is where, for a DrawX pass, you will find a corresponding DrawXSeparate pass which supports vertex skinning and joint transformations to improve the render. An exception to this is the DrawFlat2D pass, which does not support joint transformations.


~408K SLoC