A 3D game engine written in Rust with an Entity Component System architecture, physics simulation, and pathfinding.
- MSRV is Rust 1.89
- GPU with support for Vulkan, DirectX 12, Metal, or OpenGL ES
Run examples with:
cargo run --release --example <example_name>Available examples:
minimal- Basic scene with a rotating spherecustom_window- UI controls for manipulating objectsphysics- Physics simulation with falling objectsanimations- Basic GLTF animation system and complex mesh loadingpathfinding- A* pathfinding with obstacle navigationsandbox- Lights, physics, and player controlsinteractive- HFSM controlled entities with pathfinding and user interaction
The engine is organized into several crates:
gears-app- Main application layer, game loop and systemsgears-core- Core functionality and utilitiesgears-ecs- Entity Component System implementation with componentsgears-gui- GUI integration with eguigears-macro- Procedural macros for conveniencegears-renderer- Rendering backend and animantions
- 3D model loading (OBJ, GLTF formats)
- Multiple light types: colored ambient, directional, and point lights
- Animation queues with configurable transitions
- Debug wireframe visualization for colliders
- Rigid body dynamics with mass and velocity
- AABB (Axis-Aligned Bounding Box) collision detection
- Static and dynamic body support
- Gravity simulation
- Collision response and resolution
- Flexible component-based architecture
- Entity queries with read/write locks
- Async system execution
- Component markers for filtering and categorization
- Macros for simplified entity creation
- First-person camera with mouse look
- Fixed camera positions
- Look-at controller for targeting specific points
- Configurable movement controllers with WASD controls
- Adjustable movement speed and sensitivity
- A* pathfinding algorithm with multiple heuristic options
- Dynamic obstacle avoidance
- Finite State Machine (FSM) for NPC behaviors
- Configurable states and substates
- Grid-based navigation with customizable cell sizes
- Target tracking and pursuit mechanics
- egui integration for custom windows and overlays
- Interactive sliders and controls
- Real-time component manipulation
- Mouse and keyboard input
- Camera rotation and look controls
- Player movement (WASD + Space/Shift for vertical movement)
- Cursor locking and release (Alt key)
- Shooting mechanics with raycasting


