A modular Rust game engine. Rendering, physics, ECS — each is an independent crate. Take what you need, skip what you don't.
Every feature is a standalone crate. Want the full engine? One line: use anvilkit::prelude::*. Just need rendering? Pull in anvilkit-render alone. Nothing you don't need comes along for the ride.
Render, physics, assets — each stands alone. Compose as needed.
Rust's zero-cost abstractions + memory safety. No runtime penalty.
┌─────────────────────────────┐
│ anvilkit (facade) │
└──────────────┬──────────────┘
▼
┌──────────────┴──────────────┐
│ anvilkit-ecs (bevy) │
└──────┬──────────────┬───────┘
▼ ▼
┌──────┴──────┐ ┌─────┴──────┐
│anvilkit- │ │anvilkit- │
│render (wgpu)│ │physics │
└──────┬──────┘ └─────┬──────┘
▼ ▼
┌──────┴──────┐ ┌─────┴──────┐
│anvilkit- │ │anvilkit- │
│assets (gltf)│ │input │
└─────────────┘ └────────────┘use the prelude, create an App, register your systems, run. No config files, no codegen. The Rust compiler is your type checker.
$ cargo run --releaseuse anvilkit::prelude::*;
fn main() {
App::new()
.add_plugins(RenderPlugin::default())
.add_systems(Startup, setup)
.add_systems(Update, game_logic)
.run();
}
fn setup(mut commands: Commands) {
commands.spawn((
CameraComponent::default(),
Transform::from_xyz(0.0, 2.0, -5.0),
));
}Bevy ECS at the core. Parallel schedules, archetypes, change detection.
PBR, HDR bloom, SSAO, CSM shadows — all via wgpu.
Built-in AABB collisions + optional Rapier3D integration.
3D spatial audio powered by Rodio. WAV, Vorbis, MP3.
glTF loading, hot-reload, procedural mesh generation.
Keyboard, mouse, gamepad — one unified API.
Flexbox layout engine with text rendering and z-order.
Frame profiler, debug console, wireframe renderer.
Systems run in parallel by default. The scheduler spreads work across all CPU cores — no locks, no race conditions to worry about.

One codebase targets Vulkan, Metal, and DX12. No platform-specific code — native performance everywhere.
Abstractions inline at compile time. Zero runtime overhead.
No segfaults, no leaks. The compiler has your back.

Procedural terrain, block building, day-night cycle, post-processing filters.
cargo run -p craft
Full PBR rendering, custom collision physics, aiming mechanics, scoring system.
cargo run -p billiardsOne command to create a project, one command to run it. Handles project structure and dependencies so you can focus on game logic.
One command to get the scaffolding tool.
cargo install anvil-cliGenerate a project from template.
anvil new my_gameCompile and launch.
cargo runDual-licensed MIT / Apache 2.0. Standing on the shoulders of: