Metadata-Version: 2.5
Name: murali-kit
Version: 0.1.0
Summary: Free Python authoring kit and add-ons for Murali Engine.
Project-URL: Homepage, https://github.com/murali-engine/murali-kit
Project-URL: Repository, https://github.com/murali-engine/murali-kit
Project-URL: Engine, https://github.com/murali-engine/murali
Author: Murali Engine
License: MIT OR Apache-2.0
Keywords: ai,animation,education,math,visualization
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Python: >=3.10
Requires-Dist: murali-engine<0.3.0,>=0.2.5
Description-Content-Type: text/markdown

# Murali Kit

Free Python authoring components and add-ons for Murali Engine.

This repository is the free companion package for higher-level Murali visuals, examples, and
education-focused helpers. The core runtime and PyO3 engine bindings live in the
[`murali-engine/murali`](https://github.com/murali-engine/murali) repository.

## Boundary

- `murali-engine`: Rust engine, renderer, scene graph, timelines, preview/export, and Python
  bindings for the core runtime.
- `murali-kit`: Python add-ons built on top of `murali-engine`.

The current split is non-destructive. Existing Rust collection code remains in the engine repo until
each add-on surface has a Python equivalent and a stable engine contract.

See [docs/SPLIT_PLAN.md](docs/SPLIT_PLAN.md) for the migration plan.

## First Component

`murali-kit` now includes a small `TitleCard` composition:

```python
from murali_engine import Scene
from murali_kit.collection import TitleCard

scene = Scene()
handles = TitleCard("Murali Kit", "Python add-ons for Murali Engine").add_to_scene(scene)
```

`murali-kit` depends on the `murali-engine` Python package:

```bash
python3 -m pip install murali-kit==0.1.0
```

During local development, create a virtual environment inside this repo and install the adjacent
engine checkout plus this kit package:

```bash
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements-local.txt
```

Activate the environment:

```bash
source .venv/bin/activate
```

Run the examples:

```bash
python examples/core_surfaces.py
python examples/hello_shapes.py
python examples/shapes_and_layout.py
python examples/three_d_scene.py
python examples/title_card.py
```

By default these open the preview window. To export a single PNG frame instead:

```bash
python examples/core_surfaces.py --png
python examples/hello_shapes.py --png
python examples/shapes_and_layout.py --png
python examples/three_d_scene.py --png
python examples/title_card.py --png
```

To try every Python example one by one:

```bash
python preview_all.py
```

For a non-window export pass:

```bash
python preview_all.py --png
```

You can also run them without activation:

```bash
.venv/bin/python examples/core_surfaces.py
.venv/bin/python examples/hello_shapes.py
.venv/bin/python examples/shapes_and_layout.py
.venv/bin/python examples/three_d_scene.py
.venv/bin/python examples/title_card.py
```

See [RUNNING_EXAMPLES.md](RUNNING_EXAMPLES.md) for the full local workflow.
