Skip to content

Latest commit

 

History

History
150 lines (110 loc) · 4.59 KB

File metadata and controls

150 lines (110 loc) · 4.59 KB

Installation

This page gives the complete setup for EnactToM. The top-level README contains the quickstart, and the docs README contains usage examples.

Local Setup

The local setup runs task validation, PDDL solving, task-generation utilities, the default mini authoring agent, and the in-package test suite:

conda create -n enacttom python=3.10 cmake=3.14.0 -y
conda activate enacttom
python -m pip install -r requirements.txt
python -m pip install -e .

Use mamba instead of conda if it is available.

Check the install:

bash -n enacttom/run.sh
python -m compileall -q enacttom habitat_llm
python -m pytest
./enacttom/run.sh --help

Habitat Setup

Habitat execution requires Linux, GPU/CUDA drivers for CUDA runs, git-lfs, and either conda or mamba. Use a separate Habitat env: mini-swe-agent requires Python 3.10+, while habitat-sim==0.3.3 is installed in Python 3.9.

Initialize Git LFS once on the machine:

git lfs install

Create and activate the Habitat runtime env:

conda create -n enacttom-habitat python=3.9.2 cmake=3.14.0 -y
conda activate enacttom-habitat

Install PyTorch and Habitat-Sim. Adjust the CUDA package if the target machine uses a different CUDA runtime:

conda install pytorch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 pytorch-cuda=12.4 "mkl<2025" "intel-openmp<2025" -c pytorch -c nvidia -y
conda install habitat-sim=0.3.3 withbullet headless -c conda-forge -c aihabitat -y

Install Habitat-Lab/Baselines from the revision used for this release, then install the repo runtime packages into the same conda env. Do not install requirements.txt here; that file includes the Python 3.10+ mini CLI used by the authoring env.

HABITAT_LAB_COMMIT=094d6be2f9d057e4781a68ae792132895fd4d3d0

python -m pip install "git+https://github.com/facebookresearch/habitat-lab.git@${HABITAT_LAB_COMMIT}#subdirectory=habitat-lab"
python -m pip install "git+https://github.com/facebookresearch/habitat-lab.git@${HABITAT_LAB_COMMIT}#subdirectory=habitat-baselines"
python -m pip install pillow==10.4.0 numpy-quaternion==2023.0.4 matplotlib==3.6.3 opencv-python==4.10.0.82 openai==2.24.0 pandas pytest unified-planning==1.3.0 up-fast-downward==0.5.2
python -m pip install -e . --no-deps

Install and authenticate the external task-generation CLI you plan to use before running generation.

Assets

Download Habitat robot and rearrangement assets:

python -m habitat_sim.utils.datasets_download \
  --uids rearrange_task_assets hab_spot_arm hab3-episodes \
  --data-path data/ \
  --no-replace \
  --no-prune

Download the object asset library:

git clone https://huggingface.co/datasets/ai-habitat/OVMM_objects data/objects_ovmm --recursive
git -C data/objects_ovmm lfs pull

Download HSSD. The upstream branch is still named partnr; the local paths are the EnactToM paths expected by the retained configs:

mkdir -p data/versioned_data
git clone -b partnr https://huggingface.co/datasets/hssd/hssd-hab data/versioned_data/hssd-hab
git -C data/versioned_data/hssd-hab lfs pull
ln -sfn versioned_data/hssd-hab data/hssd-hab

Provide the EnactToM episode file expected by habitat_llm/conf/habitat_conf/dataset/enacttom_hssd.yaml:

mkdir -p data/datasets/enacttom_episodes/v0_0
curl -L --fail \
  -o data/datasets/enacttom_episodes/v0_0/train_2k.json.gz \
  https://huggingface.co/datasets/ai-habitat/partnr_episodes/resolve/main/v0_0/train_2k.json.gz

Alternatively, point the runner at another compatible episode file:

export ENACTTOM_EPISODES_PATH=/absolute/path/to/train_2k.json.gz

Check required assets:

test -f data/hssd-hab/hssd-hab-partnr.scene_dataset_config.json
test -f "${ENACTTOM_EPISODES_PATH:-data/datasets/enacttom_episodes/v0_0/train_2k.json.gz}"
test -d data/objects_ovmm/train_val/hssd/configs/objects
test -f data/robots/hab_spot_arm/urdf/hab_spot_arm.urdf

Model APIs

Configure credentials through environment variables or a repo-root .env file:

OPENAI_API_KEY=...

Habitat Checks

Run Habitat-backed checks only after the asset checks pass:

./enacttom/run.sh new-scene --agents 2 --output-dir /tmp/enacttom-scene
./enacttom/run.sh generate --num-tasks 1 --difficulty standard
./enacttom/run.sh benchmark --tasks-dir data/enacttom/tasks --model gpt-5.4-mini --num-times 3

Missing Habitat dependencies or assets are setup errors and should be fixed before running generate.

Legacy task datasets, neural-network skill checkpoints, semantic map/RAG data, humanoid assets, and submodules are not required for the trimmed EnactToM paper path.