Compose the world
Build typed scenes from shapes, text, mathematics, 3D objects, and reusable tattvas.
Murali is the Rust engine
A deterministic animation engine for mathematical visuals, technical storytelling, and workloads that belong close to the metal.
The native pipeline
Murali keeps composition, time, projection, and rendering explicit—so complex animation remains understandable as it grows.
Build typed scenes from shapes, text, mathematics, 3D objects, and reusable tattvas.
Schedule motion, easing, cameras, callbacks, and transitions on one deterministic clock.
Turn authored intent into explicit render primitives with predictable layout and geometry.
Render through wgpu across Metal, Vulkan, and DirectX for native, computation-heavy work.
Rust from the first frame
Murali is for work where explicit state, predictable performance, and native control matter. Your animation is regular Rust—not a hidden graph or proprietary project file.
use glam::Vec3;use murali::App;use murali::colors::*;use murali::engine::{scene::Scene, timeline::Timeline};use murali::frontend::{animation::Ease, collection::primitives::circle::Circle};
fn main() -> anyhow::Result<()> { let mut scene = Scene::new(); let dot = scene.add_tattva( Circle::new(0.5, 48, RED_B), Vec3::new(-2.0, 0.0, 0.0), );
let mut timeline = Timeline::new(); timeline.animate(dot) .for_duration(1.2) .ease(Ease::OutCubic) .move_to(Vec3::new(2.0, 0.0, 0.0)) .spawn();
scene.play(timeline)?; App::new()?.with_scene(scene).run_app()}Rendered with Murali
From geometric choreography to camera-led scenes, Murali keeps every result tied to authored code and a deterministic timeline.
Clear by design
This project is the native animation engine: a Rust crate, a wgpu renderer, and a lower-level foundation for demanding visual workloads.
Veena remains a separate browser-native engine for JavaScript and web authoring.
Documentation
The guides move from a first preview to reusable visual systems and the engine internals beneath them.
Install the crate, place a few tattvas, preview the result, and understand the basic loop.
02BuildExplore primitives, text, layout, mathematics, AI diagrams, and storytelling components.
03Deep diveRead how scenes, timelines, projection, ECS state, and the renderer fit together.
Start at frame zero