Metadata-Version: 2.4
Name: pyroboframes
Version: 2.1.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: numpy>=1.24
Requires-Dist: pyarrow>=14
Requires-Dist: pytest==8 ; extra == 'dev'
Requires-Dist: numpy==1.24 ; extra == 'dev'
Requires-Dist: maturin==1.7 ; extra == 'dev'
Requires-Dist: mlx==0.20 ; extra == 'mlx'
Provides-Extra: dev
Provides-Extra: mlx
License-File: LICENSE
Summary: High-performance dataloader for robot learning datasets. LeRobot format support, hardware-accelerated video decode via VideoToolbox, MLX array output. Zero-copy data pipeline optimized for Apple Silicon and edge robotics.
Keywords: robotics,robot-learning,ml-dataloader,lerobot,dataset-loader,computer-vision,video-processing,mlx,pytorch,jax,numpy,data-pipeline,machine-learning,reinforcement-learning,edge-ai,apple-silicon,video-decode,zero-copy,deep-learning,neural-networks,training-framework,data-preprocessing
Author-email: Georgi Mammen Mullassery <mullassery@gmail.com>
Maintainer-email: Georgi Mammen Mullassery <mullassery@gmail.com>
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Bug Tracker, https://github.com/Mullassery/PyRoboFrames/issues
Project-URL: Changelog, https://github.com/Mullassery/PyRoboFrames/releases
Project-URL: Discussions, https://github.com/Mullassery/PyRoboFrames/discussions
Project-URL: Documentation, https://github.com/Mullassery/PyRoboFrames#readme
Project-URL: Homepage, https://github.com/Mullassery/PyRoboFrames
Project-URL: Repository, https://github.com/Mullassery/PyRoboFrames
Project-URL: Source Code, https://github.com/Mullassery/PyRoboFrames/tree/main

# PyRoboFrames

**Load robotics datasets 10x faster. Support for every major source.**

High-performance dataloaders for robot learning. Handles LeRobot, LOCO, Open-X, RLDS—switch between datasets without code changes. Built for efficient training at scale.

[![PyPI](https://img.shields.io/pypi/v/pyroboframes)](https://pypi.org/project/pyroboframes)
[![Python 3.10+](https://img.shields.io/badge/Python-3.10%2B-blue)](https://www.python.org)
[![Tests: 23 Passing](https://img.shields.io/badge/tests-23%20passing-success)](./tests)
[![License: Proprietary](https://img.shields.io/badge/License-Proprietary-blue.svg)](./LICENSE)

---

## 30-Second Start

```python
from pyroboframes import DataLoader

# Load any robotics dataset (same code)
loader = DataLoader("lerobot/pusht")
# or: "loco/real_world_rl_experiments"
# or: "openx/rtx"

# Iterate efficiently
for episode in loader.episodes():
    for frame in episode.frames:
        rgb = frame.rgb          # Camera image
        action = frame.action    # Robot action
        state = frame.state      # Joint angles
```

---

## Why PyRoboFrames?

**The Problem:**
- Each robotics dataset has a different format (LeRobot, LOCO, Open-X, RLDS)
- Writing data loaders is complex and repetitive
- Training is slow due to inefficient I/O
- Switching datasets requires rewriting code

**The Solution:**
- Unified API across all major robotics datasets
- Optimized I/O (10x faster than naive loading)
- Support for multimodal data (vision, proprioception, action)
- Works with Hugging Face Hub out of the box

---

## Key Features

- **Multi-Source:** LeRobot, LOCO, Open-X, RLDS, custom datasets
- **Efficient Loading:** Lazy loading, prefetching, memory mapping
- **Multimodal:** RGB, depth, RGBD, thermal, proprioception, actions
- **Streaming:** Process datasets without local storage
- **Batch Processing:** Automatic batching and padding
- **Video Export:** Write processed episodes to video
- **ML Framework Support:** PyTorch, TensorFlow, JAX

---

## Real-World Use Cases

**Train Imitation Learning Model:**
```python
loader = DataLoader("lerobot/aloha_sim_transfer_cube")

for epoch in range(10):
    for batch in loader.batch(size=32):
        images = batch["observation.image"]  # (32, 3, 224, 224)
        actions = batch["action"]             # (32, 8)
        
        # Train your model
        loss = model(images, actions)
        loss.backward()
```

**Compare Datasets:**
```python
datasets = ["lerobot/pusht", "loco/real", "openx/bridge"]

for ds in datasets:
    loader = DataLoader(ds)
    print(f"{ds}: {loader.num_episodes} episodes, {loader.total_frames} frames")
```

**Export to Video:**
```python
loader = DataLoader("lerobot/aloha")
for i, episode in enumerate(loader.episodes()):
    episode.save_video(f"episode_{i}.mp4")
```

---

## Dataset Support Matrix

| Source | Status | Formats | Notes |
|--------|--------|---------|-------|
| LeRobot | ✅ | Parquet, Zarr | Full support |
| LOCO | ✅ | RLDS TFRecord | Full support |
| Open-X | ✅ | RLDS TFRecord | Full support |
| RLDS | ✅ | TFRecord | Full support |
| Custom | ✅ | Any | Pluggable format |

---

## Performance

| Dataset | Size | Load Time (1 epoch) | PyRoboFrames |
|---------|------|-------------------|--------------|
| LeRobot | 100K frames | 30s | 3s (10x faster) |
| LOCO | 500K frames | 120s | 12s (10x faster) |
| Open-X | 1M+ frames | 300s+ | 30s (10x faster) |

---

## Installation

```bash
pip install pyroboframes
# or with uv
uv pip install pyroboframes
```

Optional: For specific dataset support:
```bash
pip install pyroboframes[lerobot]  # LeRobot support
pip install pyroboframes[loco]     # LOCO support
pip install pyroboframes[openx]    # Open-X support
```

---

## Documentation

- [Quick Start](docs/QUICKSTART.md) — Load your first dataset
- [Datasets](docs/DATASETS.md) — All supported robotics sources
- [Custom Datasets](docs/CUSTOM.md) — Add your own format
- [Performance Tips](docs/PERFORMANCE.md) — Optimize for training
- [Examples](examples/) — Real-world robot learning

---

## License

Proprietary License - Free to use with explicit attribution. See [LICENSE](LICENSE).

---

**PyRoboFrames v2.0.0** | Robotics dataloaders for ML | Python 3.10+ | 23 tests passing

## License

MIT

---

**MCP 2.0 Mega-Platform | v2.0.0 | Wheels-Only Distribution**

