Skip to main content

MAPLE - A unified CLI daemon for evaluating robotics policies across diverse simulation environments

MAPLE

GitHub PyPI Documentation License: MIT


Why Maple?

Evaluating robotics policies—whether Vision-Language-Action (VLA) models, foundation models, imitation learning policies, or reinforcement learning agents—across different simulation environments is painful:

  • Environment chaos: Every simulator has its own observation format, action space, and API quirks
  • Dependency hell: MuJoCo, PyBullet, Isaac Gym, LIBERO—each with conflicting dependencies
  • Integration tax: Each policy-environment combination requires custom glue code
  • No standardization: Comparing policies across environments means rewriting evaluation scripts

Maple solves this with a daemon-based architecture that containerizes everything:

# Start the daemon
maple serve

# Pull and serve a policy
maple pull policy openvla:7b
maple serve policy openvla:7b

# Pull and serve an environment
maple pull env libero
maple serve env libero

# Run evaluation
maple eval openvla-7b-xxx libero-yyy --tasks libero_10 --seeds 0,1,2

That's it. No dependency conflicts. No custom scripts. Just results.


Features

  • 🐳 Docker-First Architecture — Every policy and environment runs in its own container
  • 🔌 Adapter System — Automatic translation between policy outputs and environment inputs
  • 📊 Batch Evaluation — Run evaluations across multiple tasks, seeds, and configurations
  • ⚙️ Flexible Configuration — YAML config files, environment variables, or CLI flags
  • 🏥 Health Monitoring — Background health checks with auto-restart on failure
  • 💾 Persistent State — SQLite-backed state storage for tracking history

Installation

pip install maple-robotics

Requirements

  • Python 3.10+
  • Docker with NVIDIA GPU support
  • NVIDIA GPU with CUDA 12.1+

Build Docker Images

# Policy images
docker build -t maple/openvla:latest docker/openvla/
docker build -t maple/smolvla:latest docker/smolvla/

# Environment images
docker build -t maple/libero:latest docker/libero/

Quick Start

# 1. Start daemon
maple serve --detach

# 2. Pull and serve policy
maple pull policy openvla:7b
maple serve policy openvla:7b
# Output: Policy ID: openvla-7b-a1b2c3d4

# 3. Pull and serve environment
maple pull env libero
maple serve env libero
# Output: Env ID: libero-x1y2z3w4

# 4. Run evaluation
maple eval openvla-7b-a1b2c3d4 libero-x1y2z3w4 \
    --tasks libero_10 \
    --seeds 0,1,2 \
    --output results/

# 5. View results
maple report results/

Supported Policies and Environments

All the list of supported environments and policies can be Found - Policies & Environments Reference. Feel free to suggest any specific policy or environment you would like to be added in the repository.


Architecture

┌─────────────────────────────────────────────────────────┐
│                      maple CLI                          │
└───────────────────────┬─────────────────────────────────┘
                        │
                        ▼
┌─────────────────────────────────────────────────────────┐
│                   Maple Daemon                          │
│  ┌───────────┐  ┌───────────┐  ┌─────────────────────┐  │
│  │ Policy    │  │ Env       │  │ Adapter             │  │
│  │ Backends  │  │ Backends  │  │ Registry            │  │
│  └─────┬─────┘  └─────┬─────┘  └─────────────────────┘  │
└────────┼──────────────┼─────────────────────────────────┘
         │              │
         ▼              ▼
┌─────────────────┐  ┌─────────────────┐
│ Policy Container│  │ Env Container   │
│ (Docker + GPU)  │  │ (Docker + X11)  │
└─────────────────┘  └─────────────────┘

Configuration

Create ~/.maple/config.yaml:

daemon:
  port: 8000

policy:
  default_device: cuda:0
  model_kwargs: {}
  model_load_kwargs: {}

containers:
  memory_limit: 32g
  startup_timeout: 300

eval:
  max_steps: 300
  save_video: false

Or use environment variables:

MAPLE_DEVICE=cuda:1 maple serve

Documentation

Full documentation: maple-robotics.readthedocs.io


License

MIT License - see LICENSE for details.

Metadata

Release files for maple-robotics 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for maple-robotics 0.0.2
File Size Uploaded
maple_robotics-0.0.2.tar.gz 78.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for maple-robotics 0.0.2
File Interpreter ABI Platform
maple_robotics-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 189.0 kB

Release files / maple_robotics-0.0.2.tar.gz

Download URL maple_robotics-0.0.2.tar.gz
Size 78.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f2a5643438e8c7a61ada5075a491f750b93dabbc4d61144d266f5adc3eb79405
BLAKE2b-256 checksum
How to use checksums
bbc611c0fe124c14717c7b6efb16973f42888fd9f5b5f264033a3396e31ffc0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release files / maple_robotics-0.0.2-py3-none-any.whl

Download URL maple_robotics-0.0.2-py3-none-any.whl
Size 110.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4a9fa8f0a6f94e9c11ce4ecbb6586090770b39298466e8b11465812fcf04b9d1
BLAKE2b-256 checksum
How to use checksums
33ba7af483065ee9acb49b507b19640c6ca260a53d16d41ac91104c7b488026a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.18

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page