Skip to main content

A CLI daemon interface for evaluating robotics policies across diverse simulation environments

Project description

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.

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

maple_robotics-0.0.2.tar.gz (78.6 kB view details)

Uploaded Source

Built Distribution

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

maple_robotics-0.0.2-py3-none-any.whl (110.4 kB view details)

Uploaded Python 3

File details

Details for the file maple_robotics-0.0.2.tar.gz.

File metadata

  • Download URL: maple_robotics-0.0.2.tar.gz
  • Upload date:
  • Size: 78.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for maple_robotics-0.0.2.tar.gz
Algorithm Hash digest
SHA256 f2a5643438e8c7a61ada5075a491f750b93dabbc4d61144d266f5adc3eb79405
MD5 5bffc51d19e2ae5dbfe3a8ff603e6543
BLAKE2b-256 bbc611c0fe124c14717c7b6efb16973f42888fd9f5b5f264033a3396e31ffc0b

See more details on using hashes here.

File details

Details for the file maple_robotics-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: maple_robotics-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 110.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for maple_robotics-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4a9fa8f0a6f94e9c11ce4ecbb6586090770b39298466e8b11465812fcf04b9d1
MD5 19898f63046cf59a83749fb71b74bf3a
BLAKE2b-256 33ba7af483065ee9acb49b507b19640c6ca260a53d16d41ac91104c7b488026a

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