Sable Engine
A modular 3D/2.5D game engine built in Rust, focusing on modern graphics APIs and excellent developer experience.
Features
- Multi-Backend Rendering — Vulkan (primary), Metal (macOS/iOS), DirectX 12 (Windows)
- 2D & 3D Support — Full 3D rendering with first-class 2.5D/sprite support
- Live2D-Style Animation — Mesh deformation, physics-based hair/cloth, lip sync
- Scripting — Lua, Rhai, and WebAssembly scripting with hot-reload
- Visual Editor — Scene editing, asset browsing, profiling tools
- Modern Rust — 2024 edition, proc-macros for ergonomic APIs, zero-cost abstractions
Quick Start
use *;
Architecture
sable/
├── sable-core # ✅ Math, handles, colors, time utilities
├── sable-platform # ⏳ Windowing, input
├── sable-gpu # ⏳ Vulkan abstraction
├── sable-metal # ⏳ Metal backend (macOS/iOS)
├── sable-dx12 # ⏳ DirectX 12 backend (Windows)
├── sable-render # ⏳ High-level rendering (backend-agnostic)
├── sable-assets # ⏳ Asset loading, hot-reload
├── sable-scene # ⏳ ECS, transforms, spatial structures
├── sable-audio # ⏳ Audio playback, spatial sound
├── sable-physics # ⏳ Collision, rigid bodies
├── sable-puppet # ⏳ Live2D-style character animation
├── sable-script # ⏳ Scripting integration
├── sable-editor # ⏳ Visual development editor
├── sable-macros # ⏳ Proc macros for DX
└── sable-app # ⏳ Application framework
What's Implemented
sable-core ✅
| Module | Features |
|---|---|
| Math | Vec2, Vec3, Vec4, Mat3, Mat4, Quat with full operator support |
| Transforms | Rotation, scale, translation matrices; perspective/orthographic projection |
| Quaternions | Axis-angle, euler angles, slerp/nlerp interpolation |
| Handles | Generational indices for safe resource management |
| Colors | sRGB and linear color spaces with gamma-correct conversions |
| Time | Frame timing, fixed timestep for physics, stopwatch |
Test Coverage: 170 unit tests
Status
🚧 Early Development — Foundation complete, rendering in progress.
See TODO.md for the full development roadmap.
Getting Started
Prerequisites
- Rust 2024 edition (nightly or latest stable)
- Vulkan SDK (for Vulkan backend)
- Xcode (for Metal backend on macOS)
- Windows SDK (for DX12 backend on Windows)
Building
Running Tests
# All tests
# Specific crate
Running Examples
# Basic triangle (coming soon)
# 2D sprites (coming soon)
# Puppet animation (coming soon)
Development Setup
# Install development tools
# Run tests (also installs pre-commit hooks via cargo-husky)
# Check formatting and lints
# Build documentation
See CONTRIBUTING.md for detailed guidelines.
Roadmap
| Milestone | Description | Status |
|---|---|---|
| v0.1 | Foundation (math, handles, time) | ✅ |
| v0.2 | Platform & Vulkan (window, device, swapchain) | 🚧 |
| v0.2.5 | Metal backend | ⏳ |
| v0.2.6 | DirectX 12 backend | ⏳ |
| v0.3 | Basic rendering (meshes, textures, camera) | ⏳ |
| v0.4 | 2D support (sprites, text) | ⏳ |
| v0.5 | Production rendering (PBR, shadows) | ⏳ |
| v0.6 | ECS and scenes | ⏳ |
| v0.7 | Audio and physics | ⏳ |
| v0.8 | Puppet system | ⏳ |
| v0.9 | Scripting | ⏳ |
| v0.10 | Editor | ⏳ |
| v1.0 | Stable release | ⏳ |
Documentation
- Development Roadmap
- Contributing Guide
- Changelog
- API Documentation:
cargo doc --workspace --open
License
Sable Engine is proprietary software. See LICENSE for full terms.
Summary
| Team Size | License Terms |
|---|---|
| < 5 people | ✅ Free to use |
| ≥ 5 people | 10% revenue share on sold copies |
- Free for indie developers and small teams
- Attribution required: "Built with Sable Engine © Pegasus Heavy Industries LLC"
- Cannot redistribute the engine separately
- Cannot use to build a competing game engine
For licensing inquiries: licensing@pegasusheavyindustries.com
Contributing
Contributions are welcome! Please read CONTRIBUTING.md before submitting PRs.
By contributing, you agree that your contributions will be licensed under the same proprietary license as the project.
Sable is developed by Pegasus Heavy Industries LLC.