Metadata-Version: 2.4
Name: lingot
Version: 0.0.1
Summary: Umbrella orchestrator for the Autarkis spatial stack — the mint for embodied-AI ground truth.
Project-URL: Homepage, https://github.com/Autarkis/lingot
Project-URL: Repository, https://github.com/Autarkis/lingot
Project-URL: Issues, https://github.com/Autarkis/lingot/issues
Author-email: Boris Blosse <borisblosse@gmail.com>
Keywords: embodied-ai,ground-truth,robotics,simulation,spatial,synthetic-data
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: Other/Proprietary License
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 :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: pyright>=1.1; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.1; extra == 'dev'
Description-Content-Type: text/markdown

# Lingot

**The mint for the reserve currency of embodied AI.** Lingot is the umbrella
orchestrator of the Autarkis spatial stack — the thin layer that depends on the
worker services and conducts them through one pipeline:

```
spec -> cadastre (registry + solve) -> chitin (physics .phys) -> oneiros (render) -> StagedScene
```

Lingot is intentionally thin. It owns the *order* and the *data hand-off*; the
work lives in the workers, each an independently published package.

## Install

```bash
pip install lingot            # Python orchestrator + CLI   (PyPI: lingot)
npm install @autarkis/lingot  # JS orchestrator / client    (npm bare `lingot` is taken -> scoped)
```

> The Rust force-directed solver is **not** vendored here — it ships as its own
> worker package and is pulled in as a dependency. Lingot orchestrates; it does
> not implement.

## Local development

The worker repos are siblings (`../cadastre`, `../chitin`, `../oneiros`). Wire
them in editable mode, then run the pipeline on a spec:

```bash
just dev-install
just run path/to/spec.json
```

Every pipeline stage delegates to a worker adapter in `src/lingot/workers.py`.
Stages with no wired worker raise a clear error naming what to connect — the
skeleton runs end-to-end the moment the seams are filled.

## Layout

```
lingot/
|- src/lingot/         # Python orchestrator
|  |- pipeline.py      #   stage order + data hand-off
|  |- workers.py       #   one adapter seam per worker service
|  \- cli.py           #   `lingot run spec.json`
|- ts/                 # @autarkis/lingot — JS orchestrator / client
\- justfile            # dev / test / build across py + ts
```

See [`../LINGOT.md`](../LINGOT.md) for the full thesis.
