Gizmo Engine is a high-performance, data-driven, and fully modular game development framework. Designed specifically for large-scale physics simulations, advanced vehicular dynamics, and modern 3D rendering, it provides an industry-standard workflow with zero external physics API dependencies.
✨ Features
- Archetype-based ECS: A columnar, data-driven Entity Component System powered by
mimalloc. Built for maximum cache locality and lock-free concurrency, easily scaling to tens of thousands of entities. Component access goes through a borrow-checked query API — shared reads viaWorld::query(read-only), exclusive mutation viaWorld::query_mut/borrow_mut— so two aliasing&mutviews can never be created from safe code. - Custom Vectorial Physics Engine: Built from scratch using purely mathematical vectors. Features include:
- Sweep and Prune (SAP) Broad-Phase with Rayon multi-threading.
- GJK/EPA Narrow-Phase for accurate collision detection (Convex Hulls, Capsules, Polygons).
- FEM (Finite Element Method) Soft-Body Physics for hyper-realistic deformation and stress-tensor calculations.
- Sequential Impulse Solvers with advanced Coulomb Friction and Moment of Inertia.
- WGPU-Based Rendering: A robust graphics pipeline targeting Vulkan, Metal, DX12 — and WebGPU in the browser. Features Instanced Rendering, GLTF PBR Materials, Dynamic Shadows (CSM), SSAO, Bloom, and Deferred Shading. The engine runs on
wasm32-unknown-unknownwith a reduced web pipeline (forward-only, 4 bind groups, no shadows); try it with thedemo-web/crate. Audio, networking and Lua scripting are still native-only — seeRELEASING.md§4g. - In-Game Editor: Built-in
eguitooling with a dynamic scene hierarchy, real-time inspector, and modular prefab architecture. - Spatial Audio: RAM-cached, 3D spatial audio engine with distance attenuation and Doppler effect support.
🚀 Quickstart
Gizmo Engine is designed to be highly modular and ergonomic. Here is a minimal
example — the default bevy_3d_scene demo — that opens a window and renders a lit
3D scene (a ground disc, a cube, a directional light, and a camera) using the
high-level SimpleApp API.
use *;
use Vec3;
use ;
The full source is
demo/src/bin/bevy_3d_scene.rs. For lower-level control, drop down toApp,Plugin,Commands,Query,Res/ResMut, and the*Bundletypes ingizmo::prelude.
📦 Workspace Architecture
Gizmo's decoupled workspace architecture allows you to pick and choose exactly what you need. If you are building a headless server, simply omit the renderer plugin!
gizmo-core: The foundational ECS, math, and scheduling architecture.gizmo-physics: A completely render-agnostic, zero-dependency physics engine. Can be embedded into other engines (e.g., Bevy, Macroquad).gizmo-renderer: The standalone, WGPU-driven rendering pipeline.gizmo-app: The plugin-driven app loop and phase executor.
📸 Showcase
🛠️ Building and Running
To compile the engine and test the showcase scene with advanced physics and rendering:
# Default demo scene (3D PBR + physics)
# Other showcase binaries:
Note: Due to the extreme scale of the broad-phase and narrow-phase physics computations, compiling without
--releasewill cause a severe CPU bottleneck. Always use the release profile for optimal performance.
Upgrading?
0.8.0is a large feature release; the whole workspace ships at one uniform0.xversion and no API is promised stable yet. See theCHANGELOG(and, if coming from0.1.x, the migration guide).
📄 License
Gizmo Engine is free, open source, and dual-licensed under the MIT and Apache 2.0 licenses.