Environment NodeSets
Simulators and benchmark environments. Per the decoupled-nodeset principle, env nodesets are pure tools: they expose observe / step / episode-control surfaces and carry no method reasoning. Method nodesets consume them over wires.
All MDP envs implement the gym-like interface contract — four verbs (reset / step_<actionspace> / observe_<obsspace> / close) plus a thin evaluate sink. One deliberate exception: OpenEQA-EM is exempt (a non-MDP frame-reader with no action and hence no step) — classified in the template's interface taxonomy (template §1). DetAny3D, the stateless detection service that sat here by historical placement, moved to model/model_detany3d on 2026-07-04 (see the Tools catalog).
| NodeSet | File | Description |
|---|---|---|
| Habitat | env_habitat.py | Habitat-Sim 0.1.7 VLN-CE simulator + HabitatEnvPanel |
| Matterport3D | env_mp3d/ | MatterSim discrete panoramic nav across R2R/R4R/RxR/REVERIE/CVDN/NDH |
| HM-EQA | env_hmeqa/ | HM3D semantic-mesh EQA env — free-pose teleport, episode Q/A, TSDF bounds |
| OpenEQA | env_openeqa_em.py | OpenEQA Episodic-Memory EQA — free-form answers scored by LLM-as-judge |
| SIMPLER | env_simpler/ | SimplerEnv real-to-sim VLA eval — 25 tasks, SAPIEN + ManiSkill2_real2sim |
| LIBERO | env_libero/ | LIBERO manipulation benchmark — 130 tasks on a Panda arm, robosuite + MuJoCo |
| Env Adapter | env_adapter/ | Env-side stages of the General Policy Adapter pipeline — env→canonical / canonical→env for VLA robots + VLN-CE families; pure numpy, in-process |
Files live under workspace/nodesets/env/.
Capability matrix
Which env implements which space suffixes. The vocabulary (what a suffix means, what ports it carries) is contract and lives in the template; this table is the registry — it changes when env coverage changes.
| Env | step_* (action spaces) | observe_* (obs spaces) | Notes |
|---|---|---|---|
env_habitat | discrete, pose, hightolow | egocentric, panorama | 3 coexisting step nodes (accepted) |
env_mp3d | waypoint | navigable, panorama | Discrete panoramic graph nav |
env_hmeqa | pose (teleport) | egocentric | EQA |
env_simpler | continuous | egocentric | 7-DoF VLA |
env_libero | continuous, ee_pose | egocentric, objects | Manipulation; objects = privileged GT snapshot for GT planners (+ reset_to_home/close_gripper EE-control extras). step_pose → step_ee_pose 2026-07-03: the 8-vec + gripper shape never matched the nav pose row |
env_openeqa_em | — (none) | frames | Non-MDP replay benchmark: reset + frame sampling, no step (exempt from the template) |
Installation prerequisites
Heavy simulators run in server mode: each nodeset auto-hosts itself in a dedicated
conda env, resolved by env name (override with the env var below). Run the matching
scripts/install/install_*.sh once per machine; scripts that need
third_party/ submodules initialize and build them on their own.
| NodeSet | Conda env (override var) | Install script | third_party/ needed |
|---|---|---|---|
| Habitat | vlnce ($VLNCE_PYTHON) | install_ac_vlnce.sh | VLN-CE + habitat-lab submodules |
| Matterport3D | mp3d ($MP3D_PYTHON) | install_ac_mp3d.sh | Matterport3DSimulator submodule (C++ build; connectivity graphs + R2R episodes read at runtime) |
| HM-EQA | hmeqa ($HMEQA_PYTHON) | install_ac_hmeqa.sh | — |
| OpenEQA | hmeqa, optional — falls back to local mode | fetch_dataset_openeqa.sh | — |
| SIMPLER | ac-simpler ($SIMPLER_PYTHON) | install_ac_simpler.sh | — |
| LIBERO | ac-libero ($LIBERO_PYTHON) | install_ac_libero.sh | vla_workspace submodule (nested libero source) |