1 unstable release

Uses new Rust 2024

0.1.0 Dec 16, 2025

#9 in Rendering engine

LicenseRef-Sable

285KB
5K SLoC

Rust 4K SLoC // 0.0% comments Shell 417 SLoC // 0.1% comments PowerShell 384 SLoC // 0.1% comments Zsh 37 SLoC // 0.2% comments BASH 27 SLoC // 0.2% comments

Sable Engine

A modular 3D/2.5D game engine built in Rust, focusing on modern graphics APIs and excellent developer experience.

License Rust

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 sable::prelude::*;

fn main() {
    // Math types
    let position = Vec3::new(1.0, 2.0, 3.0);
    let rotation = Quat::from_axis_angle(Vec3::Y, radians(45.0));
    let transform = Mat4::from_translation(position) * rotation.to_mat4();

    // Colors
    let color = Srgba::from_hex(0xFF5500);
    let linear = color.to_linear(); // For GPU operations

    // Generational handles for safe resource management
    let mut textures = HandleAllocator::new();
    let handle = textures.allocate(MyTexture::new());

    // Time tracking
    let mut time = Time::new();
    time.update();
    println!("Delta: {}ms", time.delta_secs() * 1000.0);
}

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

git clone https://github.com/PegasusHeavyIndustries/sable.git
cd sable
cargo build --workspace

Running Tests

# All tests
cargo test --workspace

# Specific crate
cargo test -p sable-core

Running Examples

# Basic triangle (coming soon)
cargo run --example hello_triangle

# 2D sprites (coming soon)
cargo run --example sprite_batch

# Puppet animation (coming soon)
cargo run --example puppet_basic

Development Setup

# Install development tools
cargo install cargo-commitlint

# Run tests (also installs pre-commit hooks via cargo-husky)
cargo test --workspace

# Check formatting and lints
cargo fmt --all --check
cargo clippy --workspace -- -D warnings

# Build documentation
cargo doc --workspace --no-deps --open

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

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.

Dependencies

~170–580KB
~14K SLoC