| #!/usr/bin/env bash |
| set -euo pipefail |
|
|
| ROOT_DIR="${ROOT_DIR:-/workspace}" |
| PROJECT_DIR="${ROOT_DIR}/reveal_vla_bimanual" |
| MAMBA_BIN="$("${PROJECT_DIR}/scripts/install_micromamba.sh")" |
| MAMBA_ROOT_PREFIX="${ROOT_DIR}/.micromamba" |
| ENV_PREFIX="${ROOT_DIR}/envs/reveal" |
| ENV_YAML="${PROJECT_DIR}/envs/reveal310.yaml" |
| ISAACLAB_REF="${ISAACLAB_REF:-v2.1.1}" |
| ISAACLAB_DIR="${ROOT_DIR}/third_party/IsaacLab_${ISAACLAB_REF}" |
| INSTALL_ISAACSIM="${INSTALL_ISAACSIM:-0}" |
| ISAACSIM_VERSION="${ISAACSIM_VERSION:-4.5.0}" |
|
|
| mkdir -p "${ROOT_DIR}/envs" "${ROOT_DIR}/third_party" |
|
|
| run_in_env() { |
| env OMNI_KIT_ACCEPT_EULA=YES OMNI_KIT_ALLOW_ROOT=1 \ |
| "${MAMBA_BIN}" run -r "${MAMBA_ROOT_PREFIX}" -p "${ENV_PREFIX}" "$@" |
| } |
|
|
| if [[ -d "${ENV_PREFIX}" ]]; then |
| "${MAMBA_BIN}" install -y -r "${MAMBA_ROOT_PREFIX}" -p "${ENV_PREFIX}" -f "${ENV_YAML}" |
| else |
| "${MAMBA_BIN}" create -y -r "${MAMBA_ROOT_PREFIX}" -p "${ENV_PREFIX}" -f "${ENV_YAML}" |
| fi |
|
|
| run_in_env python -m pip install -U pip "setuptools==75.8.0" wheel |
| run_in_env python -m pip install -e "${PROJECT_DIR}" |
|
|
| if [[ ! -d "${ISAACLAB_DIR}" ]]; then |
| git clone --depth 1 --branch "${ISAACLAB_REF}" https://github.com/isaac-sim/IsaacLab.git "${ISAACLAB_DIR}" |
| fi |
|
|
| if [[ "${INSTALL_ISAACSIM}" == "1" ]]; then |
| run_in_env python -m pip install "isaacsim[extscache]==${ISAACSIM_VERSION}" \ |
| --extra-index-url https://pypi.nvidia.com |
| run_in_env python -m pip install --no-build-isolation \ |
| -e "${ISAACLAB_DIR}/source/isaaclab" \ |
| -e "${ISAACLAB_DIR}/source/isaaclab_assets" \ |
| -e "${ISAACLAB_DIR}/source/isaaclab_tasks" |
| fi |
|
|
| cat <<EOF |
| Reveal env base is ready at ${ENV_PREFIX} |
| Isaac Lab source is at ${ISAACLAB_DIR} |
| |
| This project is pinned to Python 3.10, so env B is expected to stay on an Isaac Sim 4.5-compatible Isaac Lab release. |
| Set INSTALL_ISAACSIM=1 when re-running this script to install the Isaac Sim 4.5 pip stack and the editable Isaac Lab packages. |
| EOF |
|
|