Skip to main content
Version: 0.3.0

Engine vs Kit

Murali is two Python packages and one Rust crate:

murali-kit Python authoring: themes, colors, teaching views
murali-engine Python runtime: Scene, primitives, timeline, preview, export
murali Rust crate: the engine implementation

Install kit. It depends on the engine.

python3 -m pip install murali-kit==0.3.0
from murali_engine import Scene, Timeline, Circle
from murali_kit.colors import WHITE
from murali_kit.themes import DarkTheme, apply_theme

The engine does not depend on the kit. A future package can sit on murali-engine without taking kit opinions.

Who owns what​

Engine is the language:

  • scene identity, handles, timeline, camera, frames
  • preview and export
  • primitives (shapes, text, paths)
  • generic renderables (axes, tables, surfaces, 3D props)

Kit is sentences and style:

  • theme selection (DarkTheme, LightTheme, apply_theme)
  • named colors (WHITE, BLUE_D, …)
  • teaching views (networks, attention, graphs, stepwise)
  • title cards, openings, layout helpers
  • the Python example catalog

Rule of thumb:

If it is the language, keep it in the engine.
If it is a sentence, lesson, or look, put it in the kit.

Themes belong in kit​

from murali_engine import Scene
from murali_kit.themes import LightTheme, apply_theme

scene = apply_theme(Scene(), LightTheme())

The engine accepts a background as an RGBA tuple. It does not export DarkTheme.

Docs shape​

The public guide is one product, Murali. A scene file already mixes both packages, so the sidebar follows authoring: Start, Write scenes, Teaching views, Reference. The package split is this page, not two top-level products.

Rust architecture and native constructor notes live under Internals. Ignore that section while you are writing scenes.

Rust crate​

The native API is still the murali crate:

[dependencies]
murali = "0.3.0"

Use it when you are changing the runtime. Scene authoring in this docs set is Python.

0.3.0​

The locked public docs are 0.3.0. Unreleased work lives under Next. Frozen 0.2.x pages remain for historical Rust-era authoring, especially 0.2.4. Kit currently depends on murali-engine>=0.3.0,<0.4.0.