Metadata-Version: 2.4
Name: sparkmind
Version: 1.0.0rc2
Summary: Unified Robot Skill Learning Framework
Author: Synria Robotics
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/Synria-Robotics/SparkMind
Project-URL: Repository, https://github.com/Synria-Robotics/SparkMind
Project-URL: Issues, https://github.com/Synria-Robotics/SparkMind/issues
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: <3.14,>=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: accelerate<2.0.0,>=1.10.0
Requires-Dist: av<16.0.0,>=15.0.0
Requires-Dist: datasets<5.0.0,>=4.0.0
Requires-Dist: deepdiff<9.0.0,>=7.0.1
Requires-Dist: diffusers<0.36.0,>=0.27.2
Requires-Dist: draccus==0.10.0
Requires-Dist: einops<0.9.0,>=0.8.0
Requires-Dist: gymnasium<2.0.0,>=1.1.1
Requires-Dist: h5py>=3.1.0
Requires-Dist: huggingface-hub<2.0.0,>=1.0.0
Requires-Dist: hydra-core>=1.3.0
Requires-Dist: imageio[ffmpeg]<3.0.0,>=2.34.0
Requires-Dist: jsonlines<5.0.0,>=4.0.0
Requires-Dist: matplotlib>=3.3.0
Requires-Dist: numpy<2.3.0,>=2.0.0
Requires-Dist: num2words<1.0.0,>=0.5.14
Requires-Dist: opencv-python-headless<4.14.0,>=4.9.0
Requires-Dist: omegaconf>=2.3.0
Requires-Dist: packaging<26.0,>=24.2
Requires-Dist: pyserial>=3.5
Requires-Dist: requests>=2.31.0
Requires-Dist: rerun-sdk<0.27.0,>=0.24.0
Requires-Dist: PyYAML>=6.0.0
Requires-Dist: safetensors<1.0.0,>=0.4.3
Requires-Dist: scipy>=1.10.0
Requires-Dist: shutup>=0.2.0
Requires-Dist: tensorboard>=2.0.0
Requires-Dist: termcolor<4.0.0,>=2.4.0
Requires-Dist: torch<2.11.0,>=2.2.1
Requires-Dist: torchvision<0.26.0,>=0.21.0
Requires-Dist: lerobot[smolvla]==0.5.1
Requires-Dist: transformers==5.3.0
Requires-Dist: tqdm>=4.66.0
Requires-Dist: wandb<0.25.0,>=0.24.0
Provides-Extra: aloha
Requires-Dist: gym-aloha<0.2.0,>=0.1.2; extra == "aloha"
Requires-Dist: scipy<2.0.0,>=1.14.0; extra == "aloha"
Provides-Extra: pusht
Requires-Dist: gym-pusht<0.2.0,>=0.1.5; extra == "pusht"
Requires-Dist: pymunk<7.0.0,>=6.6.0; extra == "pusht"
Provides-Extra: libero
Requires-Dist: hf-libero<0.2.0,>=0.1.3; sys_platform == "linux" and extra == "libero"
Requires-Dist: scipy<2.0.0,>=1.14.0; extra == "libero"
Provides-Extra: metaworld
Requires-Dist: metaworld==3.0.0; extra == "metaworld"
Requires-Dist: scipy<2.0.0,>=1.14.0; extra == "metaworld"
Provides-Extra: envs
Requires-Dist: gym-aloha<0.2.0,>=0.1.2; extra == "envs"
Requires-Dist: gym-pusht<0.2.0,>=0.1.5; extra == "envs"
Requires-Dist: pymunk<7.0.0,>=6.6.0; extra == "envs"
Requires-Dist: hf-libero<0.2.0,>=0.1.3; sys_platform == "linux" and extra == "envs"
Requires-Dist: metaworld==3.0.0; extra == "envs"
Provides-Extra: dev
Requires-Dist: pytest>=8.1.0; extra == "dev"
Requires-Dist: pre-commit<5.0.0,>=3.7.0; extra == "dev"
Requires-Dist: debugpy<1.9.0,>=1.8.1; extra == "dev"
Requires-Dist: mypy>=1.19.1; extra == "dev"
Provides-Extra: xvla
Requires-Dist: lerobot[xvla]==0.5.1; extra == "xvla"
Provides-Extra: pi
Requires-Dist: lerobot[pi]==0.5.1; extra == "pi"
Requires-Dist: sentencepiece>=0.1.99; extra == "pi"
Requires-Dist: tiktoken>=0.6.0; extra == "pi"
Provides-Extra: groot
Requires-Dist: lerobot[groot]==0.5.1; extra == "groot"
Requires-Dist: peft<1.0.0,>=0.18.0; extra == "groot"
Requires-Dist: dm-tree<1.0.0,>=0.1.8; extra == "groot"
Requires-Dist: timm<1.1.0,>=1.0.0; extra == "groot"
Requires-Dist: Pillow<13.0.0,>=10.0.0; extra == "groot"
Requires-Dist: ninja<2.0.0,>=1.11.1; extra == "groot"
Requires-Dist: flash-attn<3.0.0,>=2.5.9; sys_platform != "darwin" and extra == "groot"
Provides-Extra: wallx
Requires-Dist: lerobot[wallx]==0.5.1; extra == "wallx"
Requires-Dist: peft<1.0.0,>=0.18.0; extra == "wallx"
Requires-Dist: scipy<2.0.0,>=1.14.0; extra == "wallx"
Requires-Dist: torchdiffeq<0.3.0,>=0.2.4; extra == "wallx"
Requires-Dist: qwen-vl-utils<0.1.0,>=0.0.11; extra == "wallx"
Provides-Extra: vla-policies
Requires-Dist: lerobot[pi,wallx,xvla]==0.5.1; extra == "vla-policies"
Requires-Dist: scipy<2.0.0,>=1.14.0; extra == "vla-policies"
Requires-Dist: sentencepiece>=0.1.99; extra == "vla-policies"
Requires-Dist: tiktoken>=0.6.0; extra == "vla-policies"
Requires-Dist: peft<1.0.0,>=0.18.0; extra == "vla-policies"
Requires-Dist: torchdiffeq<0.3.0,>=0.2.4; extra == "vla-policies"
Requires-Dist: qwen-vl-utils<0.1.0,>=0.0.11; extra == "vla-policies"
Provides-Extra: all
Requires-Dist: gym-aloha<0.2.0,>=0.1.2; extra == "all"
Requires-Dist: gym-pusht<0.2.0,>=0.1.5; extra == "all"
Requires-Dist: pymunk<7.0.0,>=6.6.0; extra == "all"
Requires-Dist: hf-libero<0.2.0,>=0.1.3; sys_platform == "linux" and extra == "all"
Requires-Dist: metaworld==3.0.0; extra == "all"
Requires-Dist: pytest>=8.1.0; extra == "all"
Requires-Dist: pre-commit<5.0.0,>=3.7.0; extra == "all"
Requires-Dist: debugpy<1.9.0,>=1.8.1; extra == "all"
Requires-Dist: mypy>=1.19.1; extra == "all"
Requires-Dist: lerobot[pi,wallx,xvla]==0.5.1; extra == "all"
Requires-Dist: scipy<2.0.0,>=1.14.0; extra == "all"
Requires-Dist: sentencepiece>=0.1.99; extra == "all"
Requires-Dist: tiktoken>=0.6.0; extra == "all"
Requires-Dist: peft<1.0.0,>=0.18.0; extra == "all"
Requires-Dist: torchdiffeq<0.3.0,>=0.2.4; extra == "all"
Requires-Dist: qwen-vl-utils<0.1.0,>=0.0.11; extra == "all"
Dynamic: license-file

![SparkMind logo](./imgs/logo.png)

# SparkMind

Focused robot policy training recipes on top of **LeRobot**. The maintained
training scripts live under [`examples/`](examples/); older experimental demos
are archived under [`legacy/examples/`](legacy/examples/).

---

## Maintained Training Recipes

<table>
<thead>
<tr>
<th align="left">Model</th>
<th align="left">Recipe</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>ACT</strong></td>
<td><a href="examples/learning_il/01_demo_ACT_local.py">Local LeRobot dataset training</a></td>
</tr>
<tr>
<td><strong>SmolVLA</strong></td>
<td><a href="examples/learning_vla/01_demo_SmolVLA_local.py">Local LeRobot dataset training / fine-tuning</a></td>
</tr>
<tr>
<td><strong>PI0</strong></td>
<td><a href="examples/learning_vla/02_demo_PI0_local.py">Local LeRobot dataset training / fine-tuning</a></td>
</tr>
<tr>
<td><strong>PI0.5</strong></td>
<td><a href="examples/learning_vla/03_demo_PI05_local.py">Local LeRobot dataset training / fine-tuning</a></td>
</tr>
</tbody>
</table>

See [docs/train_guide_local.md](docs/train_guide_local.md) for command-line
usage. Historical demos for XVLA, Groot, Wall-X, RL, GeomAM, and simulator
experiments are kept in `legacy/examples/` but are not part of the maintained
public recipe surface.

---

## Installation

**Requirements:** Python **3.12 or 3.13**, `pip`, and a clone of this repository.

```bash
cd /path/to/SparkMind
# pip install -e . 
pip install -e ".[all]" # install all extras
```

Optional simulation suites and VLA policy extras (e.g. `envs`, `pi`, `xvla`, `all`) are documented here:

**[docs/Installation.md](docs/Installation.md)**

Docker build and runtime usage for the current IL / VLA image is documented here:

**[docs/DOCKER_USAGE_ZH.md](docs/DOCKER_USAGE_ZH.md)**
