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.
30-Second Start
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:
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:
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:
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
pip install pyroboframes
# or with uv
uv pip install pyroboframes
Optional: For specific dataset support:
pip install pyroboframes[lerobot] # LeRobot support
pip install pyroboframes[loco] # LOCO support
pip install pyroboframes[openx] # Open-X support
Documentation
- Quick Start — Load your first dataset
- Datasets — All supported robotics sources
- Custom Datasets — Add your own format
- Performance Tips — Optimize for training
- Examples — Real-world robot learning
License
Proprietary License - Free to use with explicit attribution. See 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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyroboframes-2.0.0-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyroboframes-2.0.0-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10bc15830c80b16fa390a81fa47f26360547b7b742b8d49c497fbab2a5665564
|
|
| MD5 |
4f02f341715c3a079010dcf0e6800ecb
|
|
| BLAKE2b-256 |
dbd37b8d02a653ec8dabddb9d65454f4d1bf57d12f4228891c35272bed83a2a3
|