lyra-rs — Generative 3D World Model & 3D Gaussian Splatting Engine in Rust
lyra-rs is a native Rust implementation of NVIDIA's Project Lyra that turns single images or video clips into navigable 3D Gaussian Splatting (3DGS) worlds. It pairs spatio-temporal latent diffusion with a real-time tile-based Gaussian rasterizer and camera trajectory planner.
$ cargo install lyra-rs
Architected for Speed & Reliability
Engineered from the ground up in memory-safe Rust with zero unnecessary dependencies.
Parallel Gaussian Rasterizer
High-throughput pure Rust CPU rasterizer powered by Rayon and Glam. Renders complex 3D Gaussian splat clouds without proprietary CUDA drivers.
Jacobian Screen Projection
Converts 3D world covariance into 2D screen covariance matrices with accurate viewing frustum clipping and depth sorting.
Spherical Harmonics Degree 3
Computes view-dependent radiance and specular reflections using spherical harmonic basis functions (up to degree 3 / 16 coefficients per channel).
Camera Trajectory Generators
Built-in analytical trajectory generators: orbital paths, spiral tracks, dolly zooms, and cinematic keyframe interpolators.
Multi-Buffer Compositing
Produces full color RGBA image buffers, linear expected depth maps, and accumulation alpha masks with front-to-back compositing.
Apple Silicon Optimized
Runs with multi-core NEON SIMD acceleration on Apple Silicon (M1/M2/M3/M4) as well as AVX2 on Linux and Windows.
Get Started in Seconds
Install via Cargo and run immediately on macOS, Linux, or Windows.
# Install Lyra-RS
cargo install --git https://github.com/bhubbard/lyra-rs
# Render a Gaussian Splat PLY scene to PNG
lyra-rs render --scene scene.ply --out render.png --width 1920 --height 1080
# Generate an orbital camera sequence
lyra-rs animate --scene scene.ply --trajectory orbit --frames 120 --out ./frames/
# Run the test suite
cargo test --release
Engine Architecture
Streamlined execution pipeline with deterministic memory isolation and zero runtime overhead.
┌───────────────────────────────────────────────────────────┐
│ Input: 3D Gaussian Splat Cloud (PLY) │
└─────────────────────────────┬─────────────────────────────┘
│ Positions, Rotations, Scales, SH
┌─────────────────────────────▼─────────────────────────────┐
│ Jacobian Screen-Space Projection & Covariance │
└─────────────────────────────┬─────────────────────────────┘
│ 2D Ellipses & Depth Keys
┌─────────────────────────────▼─────────────────────────────┐
│ 16x16 Tile Binning & Front-to-Back Sort │
└─────────────────────────────┬─────────────────────────────┘
│ Multi-Threaded Rayon Workers
┌─────────────────────────────▼─────────────────────────────┐
│ Alpha Compositing + Spherical Harmonics Color Output │
└───────────────────────────────────────────────────────────┘