Reading the repo
Opening the box…
Reading the repo
Opening the box…
How to install on macOS
Zetta is an efficient closed-loop embodied harness for self-evolving physical intelligence. It evolves code-based runtime critics and recovery skills online while keeping the base policy frozen. Project Page: https://air-embodied-brain.github.io/zetta/
GitHub didn't answer, so this is the saved copy from 1 days ago
Will it work on macOS?
Then run bash setup.sh. It stops at the first error and is safe to run again. Servers and tests aren't started; it lists them at the end. Read it first.
Needs Git: xcode-select --install
git clone https://github.com/air-embodied-brain/Zetta-Embodiment.git cd Zetta-Embodiment
Python >=3.10,<3.13, Docker
brew install uv brew install --cask docker # Docker Desktop
uv sync
uv run pytest
Python 3.11 through 3.12 is supported. The minimal test environment (no simulator/model required):
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[test]"
Campaigns call LLM agents in two places, configured separately:
openai-codex). Set CODEX_API_KEY, plus CODEX_BASE_URL for an
OpenAI-compatible gateway; run_campaign.py --model selects the model. To fail
over across several routes, set ZETTA_API_PROVIDERS to a JSON list of routes
(name, model, base_url, and api_key or api_key_env).--role1-planner api|codex and --role1-model. The api planner takes a
provider-prefixed model id (e.g. openai:<model>) and reads the provider's own
key (OPENAI_API_KEY, ANTHROPIC_API_KEY, …); on LIBERO and RoboCasa,
ZETTA_ROLE1_BASE_URL overrides its base URL. The codex planner uses the
CODEX_* variables above.Store these secrets as described in Security and Reproducibility.
scripts/deployment/install_vla_env.sh builds a venv for one of two tracks. See
the VLA runtime setup guide for the full
installation notes, compatibility fixes, and known limitations.
[!WARNING] The two tracks cannot share a venv state (incompatible
robosuiteversions).
Prebuilt Docker images, built from scripts/deployment/Dockerfile.vla-env, are available for both tracks so you can skip the manual venv build:
LIBERO-Pro + Pi0.5
export REPO_ROOT=/abs/path/to/Zetta-Embodiment
export VENV_ROOT=/abs/path/to/venvs/vla-env
bash scripts/deployment/install_vla_env.sh --track libero-pro
install_vla_env.sh downloads the LIBERO-Pro scene/object assets automatically. To fetch or refresh them manually:
"$VENV_ROOT/bin/liberopro-download-assets" --skip-existing
RoboCasa + GR00T (needs a source checkout with robocasa/, robosuite/, Isaac-GR00T/)
export REPO_ROOT=/abs/path/to/Zetta-Embodiment
export VENV_ROOT=/abs/path/to/venvs/vla-env
export ROBOCASA_SRC_ROOT=/abs/path/to/robocasa-source-checkout
bash scripts/deployment/install_vla_env.sh --track robocasa
RoboCasa also needs its kitchen assets (~10GB); see the RoboCasa installation guide for details:
python -m robocasa.scripts.setup_macros # set up system variables
python -m robocasa.scripts.download_kitchen_assets # downloads ~10GB of kitchen assets
RoboTwin 2.0 + Pi0.5
RoboTwin is SAPIEN-based and cannot share a venv with either track above. Use the upstream RLinf image rather than building one:
git clone https://github.com/RoboTwin-Platform/RoboTwin.git -b RLinf_support
# then download ~15GB of assets into its assets/ directory
docker run --rm --gpus all --shm-size 32g \
-e NVIDIA_DISABLE_REQUIRE=1 \
-e NVIDIA_DRIVER_CAPABILITIES=compute,utility,graphics \
-e LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:/usr/local/cuda/lib64 \
--device /dev/dri \
-v "$ROBOTWIN_ROOT":/workspace/RoboTwin \
-v "$REPO_ROOT":/workspace/Zetta \
--entrypoint /bin/bash rlinf/rlinf:agentic-rlinf0.4-robotwin
The image ships three venvs under /opt/venv/; this repository uses openpi.
assets_path must point at the RoboTwin repository root, not its assets/
subdirectory.
The three environment variables let a CUDA 12.8 image run on a 12.4 driver:
NVIDIA_DISABLE_REQUIRE skips the image's cuda>=12.8 label check,
NVIDIA_DRIVER_CAPABILITIES drops the display capability that needs a
/dev/nvidia-modeset a headless host does not have, and LD_LIBRARY_PATH puts
the host driver's libcuda ahead of the image's forward-compatibility libraries
— CUDA forward compatibility is datacenter-only and fails on GeForce with
Error 804.
The native geniesim Runtime backend supports the RoboColiseum
g2op_if_pick_block_color task with Isaac Sim 5.1 and an isolated Python 3.11
simulator process. Use prepare_geniesim.py
to prepare pinned dependencies and task assets, then run
[smoke_gen
…
No reports for macOS yet.
GitManual AI Agent reads the 3 key files and writes a step-by-step guide for macOS. Once written, it's saved for everyone.