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:
- In GPU we Rust (Rust AI meetup, 2024)
- Blade - lean and mean graphics library (Rust Graphics meetup, 2023)
- Blade asset pipeline (Rust Gamedev meetup, 2023)
- Blade scene editor (Rust Gamedev meetup, 2023)
Just the usual 🦀 workflow. E.g. to run the bunny-mark benchmark run:
cargo run --release --example bunnymarkCPU tests run with the default command:
cargo testGPU integration tests are marked #[ignore] and need to be requested explicitly:
cargo test --test gpu_examples -- --ignored --nocaptureBlade-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.
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.