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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2a5643438e8c7a61ada5075a491f750b93dabbc4d61144d266f5adc3eb79405
|
|
| MD5 |
5bffc51d19e2ae5dbfe3a8ff603e6543
|
|
| BLAKE2b-256 |
bbc611c0fe124c14717c7b6efb16973f42888fd9f5b5f264033a3396e31ffc0b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a9fa8f0a6f94e9c11ce4ecbb6586090770b39298466e8b11465812fcf04b9d1
|
|
| MD5 |
19898f63046cf59a83749fb71b74bf3a
|
|
| BLAKE2b-256 |
33ba7af483065ee9acb49b507b19640c6ca260a53d16d41ac91104c7b488026a
|