LIBERO
libero · benchmark template by LIBERO · 40 tasks · Franka Panda · four suites — spatial, object, goal and long-horizon · language-conditioned. Each version below is fixed once published, newest first.
seq init libero gives the stable version, seq init libero@beta the beta, and seq init libero@v<N> any version below that is not withdrawn. A benchmark registered from this template names the version it runs in seq benchmark ls; seq benchmark upgrade moves it to the newer stable one.
-
Both images install only from this version's frozen files, which the platform keeps: v6's packages and LIBERO at its commit, the same on any day.
Needs sequence-ai 0.34.17 or later.
benchmark.pyandbenchmark_cpu.pystart fromdebian:12-slimby digest and install from/seq/frozen(.template_files("libero", version=7)): the system packages as.debfiles; every Python package with no index, each file's sha256 checked againstrequirements-benchmark.lock,requirements-benchmark-classic.lockandrequirements-benchmark_cpu.lock; and LIBERO from its source at the commit inlibero_tasks.py, on the Python path as before.frozen.tomlsays what is frozen.- The Python packages are the ones v6's images hold (
pins-*.txt): the GPU sim's 30 (MuJoCo Warp 3.14.0, MuJoCo 3.15.0), LIBERO's own venv's 71 (pip 26.2.1, torch 2.5.1 for the CPU, MuJoCo 3.2.3, robosuite 1.4.1) and the CPU version's 84 (torch 2.5.1 for the CPU, MuJoCo 3.2.3, robosuite 1.4.1). - The images no longer set
UV_EXCLUDE_NEWER: they resolve nothing, and a step you add after the template's installs from PyPI as any image does. - Tasks, suites, seeds, goals and step limits are as in v6.
Use v7
# start a benchmark from this version, then register it seq init libero@v7 my-benchmark seq deploy my-benchmark/benchmark.py # its CPU version, on CPU machines seq deploy my-benchmark/benchmark_cpu.py # or move a benchmark registered from this template to it seq benchmark upgrade my-benchmark --to v7
In the console, New benchmark registers this version: the console registers the stable one.
-
Register it with sequence-ai 0.33.66 or later, which keeps libero_goal's own 300-step limit; earlier releases registered the suite with the benchmark's 520 steps.
Needs sequence-ai 0.33.66 or later.
- The README now says so. With an earlier sequence-ai, libero_goal was registered with 520 steps, and the CPU version ran its episodes that long.
- A benchmark registered with an earlier release keeps 520 until you register it again:
pip install -U sequence-ai, thenseq deploy benchmark.py(orbenchmark_cpu.py). - README only: the benchmarks, their images and the adapter
libero-openpiare v5's.
Use v6
# start a benchmark from this version, then register it seq init libero@v6 my-benchmark seq deploy my-benchmark/benchmark.py # its CPU version, on CPU machines seq deploy my-benchmark/benchmark_cpu.py # or move a benchmark registered from this template to it seq benchmark upgrade my-benchmark --to v6
-
Both images install their Python dependencies as PyPI had them at a fixed time, so a rebuild on any day installs exactly the same packages.
Needs sequence-ai 0.33.15 or later.
benchmark.py(libero): the GPU side takes its packages as of 2026-10-05 17:06 UTC (UV_EXCLUDE_NEWER), and LIBERO's own environment in the same image as of the same moment (pip 26.2.1's--uploaded-prior-to).benchmark_cpu.py(libero-cpu): its packages as of 2026-10-04 21:01 UTC.- Unpinned, a rebuild on 2026-10-09 took newer absl-py, imageio, iniconfig and platformdirs.
- To take newer versions, move
_PYPI_AS_OFforward in each file and check the benchmark again.
Use v5
# start a benchmark from this version, then register it seq init libero@v5 my-benchmark seq deploy my-benchmark/benchmark.py # its CPU version, on CPU machines seq deploy my-benchmark/benchmark_cpu.py # or move a benchmark registered from this template to it seq benchmark upgrade my-benchmark --to v5
-
benchmark.pyregisters from a machine with nothing but sequence-ai installed: it no longer needs numpy where you runseq deploy.Needs sequence-ai 0.33.15 or later.
seq validateandseq deployimportbenchmark.pyon your own machine to read its declaration. v3 imported numpy at the top, so with only sequence-ai installed they stopped withNo module named 'numpy'; numpy is now used only on the platform, where the image installs it.- The benchmarks, their images and the adapter
libero-openpiare v3's.
Use v4
# start a benchmark from this version, then register it seq init libero@v4 my-benchmark seq deploy my-benchmark/benchmark.py # its CPU version, on CPU machines seq deploy my-benchmark/benchmark_cpu.py # or move a benchmark registered from this template to it seq benchmark upgrade my-benchmark --to v4
-
The same benchmark as v2, published again without the notes v2's files carried for our own records: LIBERO's four suites on the GPU, a CPU version beside it, and the adapter
libero-openpiregistered on its own.Needs sequence-ai 0.33.15 or later; to register
benchmark.py, numpy on your machine too.benchmark.py,benchmark_cpu.py, the adapterlibero-openpi, the tasks and the episodes are v2's; v2's changes from v1, listed under v2, all ship here.
Use v3
# start a benchmark from this version, then register it seq init libero@v3 my-benchmark seq deploy my-benchmark/benchmark.py # its CPU version, on CPU machines seq deploy my-benchmark/benchmark_cpu.py # or move a benchmark registered from this template to it seq benchmark upgrade my-benchmark --to v3
-
v2withdrawn
LIBERO rebuilt for the GPU with MuJoCo Warp, a CPU version on LIBERO itself beside it, openpi's four suites with 50 seeds a task, and the adapter registered on its own as
libero-openpi.seq deploy benchmark.pyregisterslibero: MuJoCo Warp worlds on one L4 (or an RTX-PRO-6000), 64 environments an instance by default. robosuite's controllers run as GPU kernels, LIBERO's own renderer draws the cameras, and LIBERO's goal predicates, ported, decide success.seq deploy benchmark_cpu.pyregisterslibero-cpu: LIBERO itself (MuJoCo 3.2.3, robosuite 1.4.1), one environment per core, 16 cores and 32 GB an instance.- Both run openpi's four suites, libero_spatial, libero_object, libero_goal and libero_10: 10 tasks each with seeds 0-49 and openpi's step limits (220, 280, 300 and 520).
--suiteruns one suite and--trials Nthe first N seeds of each task. seq deploy pi05_libero_adapter.pyregisters the adapterlibero-openpi, which each eval names. It gives pi05-libero what openpi's LIBERO client does, with the frames sent losslessly; v1 kept its adapters in the benchmark's file. Recordings film the third-person camera at 20 fps, turned upright by the platform.- A control step for 64 environments takes about 55 ms on an L4. Replaying LIBERO's 100 libero_spatial demos from the same starts, 91 succeed on
libero-cpu, and 89, 94 and 90 in three runs onlibero.
Withdrawn on 2026-10-08: its files carried notes written for our own records. v3 is the same template without them.
-
v1withdrawn
The first version: LIBERO's own simulator on CPU workers, ten libero_spatial tasks with two seeds each, and two pi0.5 adapters inside the benchmark's file.
- One environment per worker with 2 CPUs and 4 GB, its images rendered in software; an episode ran at most 220 steps, and LIBERO's own
donedecided success. Recordings filmed the agent-view camera at 30 fps. - Each eval named its adapter:
LiberoToPi05Liberofor a LIBERO-trained pi0.5, orLiberoToPi05, marked lossy, for a DROID pi0.5.
Withdrawn on 2026-10-03: it simulated only on the CPU, and the platform ran benchmarks only on GPUs at the time; on 2026-10-08
seq init libero@v1stopped giving it too, as its files carried notes written for our own records. v2 is LIBERO on the GPU, with a CPU version beside it. - One environment per worker with 2 CPUs and 4 GB, its images rendered in software; an episode ran at most 220 steps, and LIBERO's own