Skip to main content
Version: 0.2.4

Installation

This page covers the quickest way to get Murali running and the optional tools that improve the experience.

Prerequisites​

You should have:

  • Rust 1.85 or newer
  • cargo
  • a working graphics environment for preview mode

If you do not have Rust yet, install it from the official site:

Optional but useful:

  • ffmpeg for MP4 and GIF assembly during export
  • latex and dvisvgm if you want LaTeX text rendering

Typst does not require a separate system install in the default setup.

Add Murali To A Project​

Install Murali from crates.io:

[dependencies]
murali = "0.2.4"
anyhow = "1"
glam = "0.33"

If you specifically want the latest unreleased changes, you can still depend on GitHub instead:

[dependencies]
murali = { git = "https://github.com/murali-engine/murali" }
anyhow = "1"
glam = "0.33"

If you want a quick scratch project:

cargo new --bin my_scene
cd my_scene
mkdir -p examples

Then add the dependency snippet above to Cargo.toml.

Important packaging note:

  • the published crate excludes examples/**
  • the reference examples are available in the GitHub repository
  • the crates.io package gives you the library surface, not the full example catalog

Feature-Gated APIs​

Some APIs are available only when a Cargo feature is enabled. The current linear-algebra visual toolkit is experimental and requires the experimental feature:

[dependencies]
murali = { version = "0.2.4", features = ["experimental"] }
anyhow = "1"
glam = "0.33"

Repository examples that use murali::frontend::collection::maths::linear_algebra should be run with the same feature:

cargo run --features experimental --example linear_algebra_vectors

See Experimental Features for the current feature-gated APIs.

Python Package​

The Python engine package is named murali-engine and is imported as murali_engine. Before the first PyPI release, install it from a local engine checkout:

python3 -m venv .venv
.venv/bin/python -m pip install maturin
.venv/bin/maturin develop --features python
.venv/bin/python python/examples/hello_shapes.py

After PyPI publish, users should install it directly:

python3 -m pip install murali-engine

The companion murali-kit package depends on murali-engine and contains broader Python examples and add-on experiments. Installing murali-engine gives you the engine, not the kit.

Preview Vs Export Dependencies​

Preview mode:

  • needs a working graphics environment
  • does not require ffmpeg

Export mode:

  • can always render PNG frames
  • uses ffmpeg when assembling video or GIF output

If ffmpeg is missing, Murali still exports frames and tells you where they were written.

Project Config​

Murali looks for a nearby murali.toml next to a Cargo.toml. A minimal config looks like this:

[preview]
fps = 60

[export]
fps = 60
width = 1920

width is the literal output width. Murali derives height from the scene's landscape, portrait, or square video format.

The repo includes a sample file at murali.toml.example in the repository root.

First Run​

Once your dependency is added, the fastest next step is:

  1. read Your First Scene
  2. create examples/my_scene.rs
  3. run it in preview mode from your own project:
cargo run --example my_scene --release -- --preview

LaTeX Support​

LaTeX text rendering requires system tools:

  • latex
  • dvisvgm

If you do not want to install them yet, use Typst or Label first.