Skip to content

Repository files navigation

Blade

Matrix Build Status Docs arXiv

Crates.io Crates.io Crates.io Crates.io

Blade is an innovative rendering solution for Rust. It starts with a lean low-level GPU abstraction focused at ergonomics and fun. It then grows into a high-level rendering library that utilizes hardware ray-tracing. It's accompanied by a task-parallel asset pipeline together with egui support, turning into a minimal rendering engine. Finally, the top-level Blade engine combines all of this with Rapier3D-based physics and hides them behind a concise API. Talks:

architecture

Examples

scene editor particle example vehicle example sponza scene

Instructions

Just the usual 🦀 workflow. E.g. to run the bunny-mark benchmark run:

cargo run --release --example bunnymark

CPU tests run with the default command:

cargo test

GPU integration tests are marked #[ignore] and need to be requested explicitly:

cargo test --test gpu_examples -- --ignored --nocapture

Platforms

Blade-graphics can run on:

  • Linux (Vulkan and GLES)
  • Windows (Vulkan)
  • iOS/MacOS/tvOS (Metal)
  • Android (OpenXR/Vulkan)
  • Web (WebGL2)

The full-stack Blade Engine can only run on Vulkan with hardware Ray Tracing support.

Research

Global Pass Barriers Without Per-Resource RHI Tracking: A Cross-Vendor Study with Blade measures Blade's synchronization model against matched wgpu workloads on AMD, NVIDIA, Intel, and Apple hardware. A repository copy is retained with the code. The synchronization guide summarizes the resulting design and what an engine using Blade is still responsible for.

About

Sharp and simple graphics library

Topics

Resources

Contributing

Stars

Watchers

Forks

Used by

Contributors

Languages