AgentCanvas / Pages / Developer Guide / Nodesets / Env

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).

NodeSetFileDescription
Habitatenv_habitat.pyHabitat-Sim 0.1.7 VLN-CE simulator + HabitatEnvPanel
Matterport3Denv_mp3d/MatterSim discrete panoramic nav across R2R/R4R/RxR/REVERIE/CVDN/NDH
HM-EQAenv_hmeqa/HM3D semantic-mesh EQA env — free-pose teleport, episode Q/A, TSDF bounds
OpenEQAenv_openeqa_em.pyOpenEQA Episodic-Memory EQA — free-form answers scored by LLM-as-judge
SIMPLERenv_simpler/SimplerEnv real-to-sim VLA eval — 25 tasks, SAPIEN + ManiSkill2_real2sim
LIBEROenv_libero/LIBERO manipulation benchmark — 130 tasks on a Panda arm, robosuite + MuJoCo
Env Adapterenv_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.

Envstep_* (action spaces)observe_* (obs spaces)Notes
env_habitatdiscrete, pose, hightolowegocentric, panorama3 coexisting step nodes (accepted)
env_mp3dwaypointnavigable, panoramaDiscrete panoramic graph nav
env_hmeqapose (teleport)egocentricEQA
env_simplercontinuousegocentric7-DoF VLA
env_liberocontinuous, ee_poseegocentric, objectsManipulation; objects = privileged GT snapshot for GT planners (+ reset_to_home/close_gripper EE-control extras). step_posestep_ee_pose 2026-07-03: the 8-vec + gripper shape never matched the nav pose row
env_openeqa_em— (none)framesNon-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.

NodeSetConda env (override var)Install scriptthird_party/ needed
Habitatvlnce ($VLNCE_PYTHON)install_ac_vlnce.shVLN-CE + habitat-lab submodules
Matterport3Dmp3d ($MP3D_PYTHON)install_ac_mp3d.shMatterport3DSimulator submodule (C++ build; connectivity graphs + R2R episodes read at runtime)
HM-EQAhmeqa ($HMEQA_PYTHON)install_ac_hmeqa.sh
OpenEQAhmeqa, optional — falls back to local modefetch_dataset_openeqa.sh
SIMPLERac-simpler ($SIMPLER_PYTHON)install_ac_simpler.sh
LIBEROac-libero ($LIBERO_PYTHON)install_ac_libero.shvla_workspace submodule (nested libero source)
AgentCanvas docs