Skip to main content

Sweet wrappers for extending and remixing LeRobot Datasets

Project description

🍬 RoboCandyWrapper

Sweet wrappers for extending and remixing LeRobot Datasets.

PyPI version License: MIT GitHub stars Python 3.10+


🍬 Why do I need this?

You have robot data. Lots of it. But working with it is a pain.

Your datasets are split across incompatible LeRobot versions, extending or transforming them risks breaking compatibility, and balancing across data sources takes more effort than it should.

RoboCandyWrapper handles all of this:

  • Mix datasets freely — Load v2.1 and v3.0 LeRobot datasets through a single unified interface, and use them together as if they were the same format.

  • Extend without breaking — Add custom labels or columns to existing datasets via Plugins, while staying fully compatible with LeRobot tooling.

  • Control your data mix — Use built-in Samplers to increase or decrease the weight of specific datasets in your mix.

⚠️ RoboCandyWrapper is still experimental so do note that the API could change in the future, although we'll do our best to avoid unnecessary changes!

🍬 Quick Start (5 Minutes)

Installation

# Include LeRobot as a dependency in installation
pip install robocandywrapper

# OR...
# Use your own version of LeRobot - may cause issues!
pip install --no-dependencies robocandywrapper

# OR...
# Use your own version of LeRobot and install robocandywrapper as a local editable dependency so you change LeRobot imports as needed
# This might be required if you use a LeRobot fork or depend on an out of date version
git clone https://github.com/villekuosmanen/RoboCandyWrapper.git
cd RoboCandyWrapper
pip install --no-dependencies -e .

Basic usage

Load a vintage v2.1 dataset and a modern v3.0 dataset as if they were the same thing.

from robocandywrapper import make_dataset_without_config

# Your playlist: one old, one new
repo_ids = [
    "lerobot/svla_so100_pickplace",  # v2.1 dataset
    "lerobot/svla_so100_stacking",   # v3.0 dataset
]

# The factory handles the compatibility logic automatically
dataset = make_dataset_without_config(repo_ids)

print(f"🎉 Successfully loaded {len(dataset)} episodes from mixed sources!")

🍬 What more can I do with it?

🎧 The "Mix Tape" (Mixing Datasets)

Learn how to combine multiple datasets into one, handle different robot configurations, and use sampling weights to balance your data mix.

🧂 The "Flavor Enhancer" (Transforming Data)

Learn how to use Plugins to add new labels or columns to your dataset, reshape tensors, or modify existing data on-the-fly without breaking backwards compatability.

Other cool stuff from the authors

  1. Physical AI Interpretability offers open-source interpretability tools for AI robotics.
  2. RewACT is an open-source reward model / value function based on the ACT transformer architecture.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robocandywrapper-0.2.6.tar.gz (49.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robocandywrapper-0.2.6-py3-none-any.whl (50.8 kB view details)

Uploaded Python 3

File details

Details for the file robocandywrapper-0.2.6.tar.gz.

File metadata

  • Download URL: robocandywrapper-0.2.6.tar.gz
  • Upload date:
  • Size: 49.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for robocandywrapper-0.2.6.tar.gz
Algorithm Hash digest
SHA256 9c44a9be52eacd43d25e87f20d4e0ed51ebf5ab33ed2fd292427b8ec9886e44d
MD5 0b70ec4e5d5a8aacabe2db4e852b6d43
BLAKE2b-256 62083b78f26ed6aaecb5a47192a1f1acd8536b8d9f33f0a5f154834b43d735bc

See more details on using hashes here.

File details

Details for the file robocandywrapper-0.2.6-py3-none-any.whl.

File metadata

File hashes

Hashes for robocandywrapper-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 330291f582aa4e6dab4683d2ad823425a5b6704706e5e2fb4e6db292aa77f627
MD5 15150d8a37628775738c0c450bde14ab
BLAKE2b-256 d2a701ae5a8994dcde4712e5e06882e282bbabc6c1f7c8dcf7fb9228dcb37df0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page