Skip to content

A beautiful, modern desktop application for managing LeRobot datasets on macOS, Linux, and Windows.

Notifications You must be signed in to change notification settings

omniedgeio/Any4LeRobotGUI

Repository files navigation

Any4LeRobot GUI

A beautiful, modern desktop application for managing LeRobot datasets on macOS, Linux, and Windows.

macOS Linux Windows Flutter Python

Features

  • Data Conversion - Convert datasets from OpenX, AgiBot-World, RoboMIND, LIBERO to LeRobot format
  • Dataset Merging - Combine multiple LeRobot datasets with configurable parameters
  • Version Conversion - Upgrade/downgrade between LeRobot versions (v1.6 ↔ v2.0 ↔ v2.1 ↔ v3.0)
  • Job Management - Real-time job monitoring with logs and cancel support

Screenshots

Dashboard

The main dashboard with job statistics, quick actions, and real-time job monitoring.

Dashboard

Data Conversion

Convert datasets from OpenX, AgiBot, RoboMIND, LIBERO to LeRobot format with configurable options.

Data Conversion

Preprocessing

Merge, filter, and sample datasets with customizable parameters.

Preprocessing

Version Convert

Upgrade or downgrade between LeRobot versions (v1.6 ↔ v2.0 ↔ v2.1 ↔ v3.0).

Version Convert

Settings

Configure Python path, backend location, and Hugging Face integration.

Settings

Requirements

  • macOS (Apple Silicon or Intel), Linux (Ubuntu 20.04+), or Windows (10/11)
  • Flutter 3.38+
  • Python 3.10+ with virtual environment

Platform-Specific Dependencies

macOS

  • Xcode command line tools: xcode-select --install
  • CocoaPods: gem install cocoapods

Linux

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev

Windows

  • Visual Studio 2022 with "Desktop development with C++" workload
  • Windows 10 SDK

Quick Start

1. Clone & Setup

# Clone with submodules
git clone --recursive <repo-url>
cd Any4LeRobotGUI

# Or if already cloned, initialize submodule:
git submodule update --init --recursive

# Setup Python virtual environment
python3 -m venv backend/.venv

# Activate virtual environment
# macOS/Linux:
source backend/.venv/bin/activate
# Windows (PowerShell):
# backend\.venv\Scripts\Activate.ps1

pip install numpy lerobot huggingface_hub tqdm pillow torch

2. Sync Backend with Upstream

# Update backend to latest from any4lerobot repo
git submodule update --remote backend
git add backend
git commit -m "Update backend to latest"

3. Run the App

# macOS (may need: PATH=/opt/homebrew/opt/ruby/bin:$PATH)
flutter run -d macos

# Linux
flutter run -d linux

# Windows
flutter run -d windows

Project Structure

.
├── lib/                             # Flutter source code (2,829 lines)
│   ├── main.dart                    # App entry, theme, navigation
│   ├── services/
│   │   ├── settings_service.dart    # Persistent settings & backend detection
│   │   └── process_manager.dart     # Python subprocess execution
│   └── screens/
│       ├── home_screen.dart         # Dashboard with job list
│       ├── data_conversion/         # OpenX, AgiBot, etc. conversion
│       ├── preprocessing/           # Merge, filter, sample datasets
│       ├── version_convert/         # LeRobot version conversion
│       └── settings/                # App configuration
├── backend/                         # any4lerobot Python scripts (submodule)
│   ├── openx2lerobot/
│   ├── agibot2lerobot/
│   ├── robomind2lerobot/
│   ├── libero2lerobot/
│   ├── lerobot2rlds/
│   ├── dataset_merging/
│   └── ds_version_convert/
├── assets/                          # App assets
│   └── icon.png                     # App icon source
├── macos/                           # macOS platform files
├── linux/                           # Linux platform files
├── windows/                         # Windows platform files
└── .github/workflows/               # CI/CD pipelines
    └── release.yml                  # Multi-platform build & release

Configuration

On first launch:

  1. The app auto-detects the bundled backend/ directory
  2. Settings can be customized in the Settings screen
  3. Python venv path is automatically used: backend/.venv/bin/python

Usage

Data Conversion

  1. Select conversion type (e.g., OpenX → LeRobot)
  2. Choose input/output directories
  3. Configure options (videos, push to hub)
  4. Click Start Conversion

Dataset Merging

  1. Go to PreprocessingMerge
  2. Add multiple source datasets
  3. Set parameters (state/action dims, FPS)
  4. Click Start Merge

Version Conversion

  1. Select version path (e.g., v2.1 → v3.0)
  2. Choose dataset directory
  3. Click Start Conversion

Dependencies

Flutter Packages

  • provider - State management
  • file_picker - Directory selection
  • shared_preferences - Persistent settings
  • flutter_animate - UI animations

Python Packages

  • lerobot - Dataset format
  • numpy, torch - Computation
  • huggingface_hub - Hub integration
  • tensorflow (optional) - For OpenX conversion

Troubleshooting

CocoaPods Issues

# If CocoaPods is broken due to Ruby version conflicts:
PATH=/opt/homebrew/opt/ruby/bin:$PATH pod install
PATH=/opt/homebrew/opt/ruby/bin:$PATH flutter run -d macos

Missing Python Modules

# Activate venv and install missing packages:
source backend/.venv/bin/activate
pip install <missing-package>

License

MIT License - See LICENSE file for details.

Credits

  • Backend: any4lerobot by Tavish9
  • UI Framework: Flutter with Cupertino design

About

A beautiful, modern desktop application for managing LeRobot datasets on macOS, Linux, and Windows.

Resources

Stars

Watchers

Forks

Packages

No packages published