molmo-spaces 0.2.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- molmo_spaces-0.2.9/LICENSE +13 -0
- molmo_spaces-0.2.9/PKG-INFO +463 -0
- molmo_spaces-0.2.9/README.md +362 -0
- molmo_spaces-0.2.9/molmo_spaces/__init__.py +3 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/__init__.py +61 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/abstract_config.py +43 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/abstract_exp_config.py +211 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/base_nav_to_obj_config.py +112 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/base_open_task_configs.py +56 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/base_packing_configs.py +21 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/base_pick_and_place_color_configs.py +31 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/base_pick_and_place_configs.py +27 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/base_pick_and_place_next_to_configs.py +26 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/base_pick_config.py +114 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/camera_configs.py +959 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/dummy_config.py +18 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/policy_configs.py +461 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/policy_configs_baselines.py +138 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/robot_configs.py +427 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/task_configs.py +200 -0
- molmo_spaces-0.2.9/molmo_spaces/configs/task_sampler_configs.py +327 -0
- molmo_spaces-0.2.9/molmo_spaces/controllers/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/controllers/abstract.py +83 -0
- molmo_spaces-0.2.9/molmo_spaces/controllers/base_pose.py +263 -0
- molmo_spaces-0.2.9/molmo_spaces/controllers/joint_pos.py +73 -0
- molmo_spaces-0.2.9/molmo_spaces/controllers/joint_rel_pos.py +84 -0
- molmo_spaces-0.2.9/molmo_spaces/controllers/joint_vel.py +78 -0
- molmo_spaces-0.2.9/molmo_spaces/controllers/torso_height.py +75 -0
- molmo_spaces-0.2.9/molmo_spaces/data_generation/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/data_generation/config/__init__.py +6 -0
- molmo_spaces-0.2.9/molmo_spaces/data_generation/config/benchmarks_datagen_configs.py +16 -0
- molmo_spaces-0.2.9/molmo_spaces/data_generation/config/door_opening_configs.py +168 -0
- molmo_spaces-0.2.9/molmo_spaces/data_generation/config/nav_to_obj_configs.py +71 -0
- molmo_spaces-0.2.9/molmo_spaces/data_generation/config/object_manipulation_datagen_configs.py +896 -0
- molmo_spaces-0.2.9/molmo_spaces/data_generation/config_registry.py +73 -0
- molmo_spaces-0.2.9/molmo_spaces/data_generation/main.py +149 -0
- molmo_spaces-0.2.9/molmo_spaces/data_generation/pipeline.py +1373 -0
- molmo_spaces-0.2.9/molmo_spaces/env/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/env/abstract_sensors.py +125 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/arena_utils.py +325 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/bathroom.py +31 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/cabinet.py +63 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/drawer.py +32 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/kitchen.py +89 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/procthor_types.py +244 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/randomization/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/randomization/dynamics.py +303 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/randomization/lighting.py +484 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/randomization/test_randomizers.py +411 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/randomization/texture.py +1863 -0
- molmo_spaces-0.2.9/molmo_spaces/env/arena/scene_tweaks.py +246 -0
- molmo_spaces-0.2.9/molmo_spaces/env/camera_manager.py +999 -0
- molmo_spaces-0.2.9/molmo_spaces/env/data_views.py +803 -0
- molmo_spaces-0.2.9/molmo_spaces/env/env.py +1079 -0
- molmo_spaces-0.2.9/molmo_spaces/env/mj_extensions.py +116 -0
- molmo_spaces-0.2.9/molmo_spaces/env/object_manager.py +1685 -0
- molmo_spaces-0.2.9/molmo_spaces/env/rby1_sensors.py +280 -0
- molmo_spaces-0.2.9/molmo_spaces/env/sensors.py +1101 -0
- molmo_spaces-0.2.9/molmo_spaces/env/sensors_cameras.py +170 -0
- molmo_spaces-0.2.9/molmo_spaces/evaluation/__init__.py +63 -0
- molmo_spaces-0.2.9/molmo_spaces/evaluation/benchmark_schema.py +600 -0
- molmo_spaces-0.2.9/molmo_spaces/evaluation/configs/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/evaluation/configs/evaluation_configs.py +349 -0
- molmo_spaces-0.2.9/molmo_spaces/evaluation/eval_main.py +769 -0
- molmo_spaces-0.2.9/molmo_spaces/evaluation/json_eval_runner.py +335 -0
- molmo_spaces-0.2.9/molmo_spaces/evaluation/policy_server.py +209 -0
- molmo_spaces-0.2.9/molmo_spaces/evaluation/robot_eval_overrides.py +89 -0
- molmo_spaces-0.2.9/molmo_spaces/grasp_generation/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/grasp_generation/find_objects.py +108 -0
- molmo_spaces-0.2.9/molmo_spaces/grasp_generation/pipeline/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/grasp_generation/pipeline/articulation_test.py +965 -0
- molmo_spaces-0.2.9/molmo_spaces/grasp_generation/pipeline/combine_meshes.py +153 -0
- molmo_spaces-0.2.9/molmo_spaces/grasp_generation/pipeline/extract_leaf_meshes.py +429 -0
- molmo_spaces-0.2.9/molmo_spaces/grasp_generation/pipeline/generate_grasps.py +1042 -0
- molmo_spaces-0.2.9/molmo_spaces/grasp_generation/pipeline/perturbations_test.py +643 -0
- molmo_spaces-0.2.9/molmo_spaces/grasp_generation/robotiq_gripper.py +65 -0
- molmo_spaces-0.2.9/molmo_spaces/grasp_generation/run_articulable.py +495 -0
- molmo_spaces-0.2.9/molmo_spaces/grasp_generation/run_rigid.py +281 -0
- molmo_spaces-0.2.9/molmo_spaces/housegen/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/housegen/builder.py +2204 -0
- molmo_spaces-0.2.9/molmo_spaces/housegen/constants.py +230 -0
- molmo_spaces-0.2.9/molmo_spaces/housegen/exporter.py +629 -0
- molmo_spaces-0.2.9/molmo_spaces/housegen/utils.py +1581 -0
- molmo_spaces-0.2.9/molmo_spaces/kinematics/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/kinematics/floating_rum_kinematics.py +162 -0
- molmo_spaces-0.2.9/molmo_spaces/kinematics/mujoco_kinematics.py +254 -0
- molmo_spaces-0.2.9/molmo_spaces/kinematics/parallel/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/kinematics/parallel/dummy_parallel_kinematics.py +87 -0
- molmo_spaces-0.2.9/molmo_spaces/kinematics/parallel/parallel_kinematics.py +107 -0
- molmo_spaces-0.2.9/molmo_spaces/kinematics/parallel/warp_kinematics.py +652 -0
- molmo_spaces-0.2.9/molmo_spaces/kinematics/test_robot_ik.py +104 -0
- molmo_spaces-0.2.9/molmo_spaces/molmo_spaces_constants.py +768 -0
- molmo_spaces-0.2.9/molmo_spaces/planner/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/planner/abstract.py +14 -0
- molmo_spaces-0.2.9/molmo_spaces/planner/astar_planner.py +227 -0
- molmo_spaces-0.2.9/molmo_spaces/planner/curobo_planner.py +606 -0
- molmo_spaces-0.2.9/molmo_spaces/planner/curobo_planner_client.py +307 -0
- molmo_spaces-0.2.9/molmo_spaces/planner/curobo_planner_server.py +608 -0
- molmo_spaces-0.2.9/molmo_spaces/planner/robot_specific/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/planner/test_grpc_batch.py +185 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/base_policy.py +204 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/dummy_policy.py +50 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/bimanual_yam_pi_policy.py +360 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/cap_policy.py +229 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/dreamzero_policy.py +241 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/keyboard_policy.py +230 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/lerobot_grpc_client.py +209 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/phone_policy.py +199 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/pi_policy.py +217 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/rum_client.py +227 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/spacemouse_policy.py +322 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/utils.py +246 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/websocket_policy.py +137 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/random_policy.py +39 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/__init__.py +3 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/curobo_planner_policy.py +707 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/move_solver.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/navigation/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/navigation/astar_planner_policy.py +539 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/__init__.py +3 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/base_object_manipulation_planner_policy.py +671 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/curobo_open_close_planner_policy.py +883 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/curobo_pick_and_place_planner_policy.py +681 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/open_close_planner_policy.py +234 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/pick_and_place_color_planner_policy.py +9 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/pick_and_place_next_to_planner_policy.py +200 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/pick_and_place_planner_policy.py +293 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/pick_planner_policy.py +175 -0
- molmo_spaces-0.2.9/molmo_spaces/policy/solvers/opening_solver.py +703 -0
- molmo_spaces-0.2.9/molmo_spaces/renderer/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/renderer/abstract_renderer.py +173 -0
- molmo_spaces-0.2.9/molmo_spaces/renderer/filament_rendering.py +376 -0
- molmo_spaces-0.2.9/molmo_spaces/renderer/offline_renderers/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/renderer/offline_renderers/domain_randomization.py +113 -0
- molmo_spaces-0.2.9/molmo_spaces/renderer/offline_renderers/omniverse_renderer.py +299 -0
- molmo_spaces-0.2.9/molmo_spaces/renderer/offline_renderers/opengl_rendrerer.py +190 -0
- molmo_spaces-0.2.9/molmo_spaces/renderer/opengl_context.py +185 -0
- molmo_spaces-0.2.9/molmo_spaces/renderer/opengl_rendering.py +540 -0
- molmo_spaces-0.2.9/molmo_spaces/resources/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/resources/asset_id_to_object_type.json +1655 -0
- molmo_spaces-0.2.9/molmo_spaces/resources/base_scene.xml +33 -0
- molmo_spaces-0.2.9/molmo_spaces/resources/generate_user_asset_library_index.py +146 -0
- molmo_spaces-0.2.9/molmo_spaces/resources/generate_user_grasp_library_index.py +108 -0
- molmo_spaces-0.2.9/molmo_spaces/resources/material_to_textures.json +13694 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/abstract.py +419 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/bimanual_yam.py +151 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/find_gripper_finger_range.py +75 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/floating_robotiq.py +59 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/floating_rum.py +112 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/franka.py +262 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/i2rt_yam.py +131 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/mobile_franka.py +278 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/rby1.py +437 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/abstract.py +838 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/bimanual_yam_view.py +190 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/franka_cap_view.py +76 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/franka_droid_view.py +154 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/franka_fr3_view.py +115 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/i2rt_yam_view.py +153 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/mobile_franka_droid_view.py +41 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/rby1_view.py +360 -0
- molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/rum_gripper_view.py +162 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/eval_task_sampler.py +325 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/gym_env.py +246 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/json_eval_task_sampler.py +893 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/llm_task_utils.py +203 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/multi_task.py +121 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/nav_task.py +318 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/nav_task_sampler.py +414 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/opening_task_samplers.py +517 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/opening_tasks.py +662 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/packing_task.py +10 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/packing_task_sampler.py +140 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_color_task.py +44 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_color_task_sampler.py +146 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_next_to_task.py +177 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_next_to_task_sampler.py +171 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_object_target_task_sampler.py +164 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_task.py +251 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_task_sampler.py +541 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/pick_task.py +194 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/pick_task_sampler.py +1204 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/task.py +566 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/task_sampler.py +1147 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/task_sampler_errors.py +47 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/task_scene_utils.py +75 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/util_samplers/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/util_samplers/grasp_sampler.py +204 -0
- molmo_spaces-0.2.9/molmo_spaces/tasks/util_samplers/navgoal_sampler.py +295 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/articulation_utils.py +554 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/asset_names.py +36 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/benchmark_utils.py +1052 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/camera_utils.py +45 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/constants/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/constants/camera_constants.py +29 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/constants/object_constants.py +781 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/constants/simulation_constants.py +1 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/controller_utils.py +39 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/depth_utils.py +716 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/devices/__init__.py +0 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/devices/keyboard.py +52 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/devices/spacemouse.py +343 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/distance_transform_utils.py +131 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/eval_camera_randomization_utils.py +531 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/eval_utils.py +532 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/fisheye_warping.py +454 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/function_utils.py +82 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/grasp_sample.py +239 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/grasps.py +340 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/lazy_loading_utils.py +283 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/lemma_utils.py +52 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/license_utils.py +478 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/linalg_utils.py +231 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/mj_model_and_data_utils.py +200 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/mp_logging.py +422 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/mujoco_scene_utils.py +373 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/object_metadata.py +402 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/object_retriever.py +77 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/patch_renderer_flags.py +16 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/pose.py +69 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/profiler_utils.py +340 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/rendering_utils.py +23 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/sampler_utils.py +256 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/save_utils.py +1070 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/scene_maps.py +1075 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/scene_metadata_utils.py +189 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/spatial_utils.py +116 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/synset_utils.py +1380 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/task_relevant_objects_and_workspace_utils.py +113 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/test_utils.py +1083 -0
- molmo_spaces-0.2.9/molmo_spaces/utils/video_utils.py +113 -0
- molmo_spaces-0.2.9/molmo_spaces.egg-info/PKG-INFO +463 -0
- molmo_spaces-0.2.9/molmo_spaces.egg-info/SOURCES.txt +244 -0
- molmo_spaces-0.2.9/molmo_spaces.egg-info/dependency_links.txt +1 -0
- molmo_spaces-0.2.9/molmo_spaces.egg-info/entry_points.txt +2 -0
- molmo_spaces-0.2.9/molmo_spaces.egg-info/requires.txt +89 -0
- molmo_spaces-0.2.9/molmo_spaces.egg-info/top_level.txt +1 -0
- molmo_spaces-0.2.9/pyproject.toml +235 -0
- molmo_spaces-0.2.9/setup.cfg +4 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Copyright 2026 Allen Institute for AI
|
|
2
|
+
|
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
you may not use this file except in compliance with the License.
|
|
5
|
+
You may obtain a copy of the License at
|
|
6
|
+
|
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
|
+
limitations under the License.
|
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: molmo-spaces
|
|
3
|
+
Version: 0.2.9
|
|
4
|
+
Summary: Large scale assets and benchmarks for vision language policies
|
|
5
|
+
Author: Allen Institute for Artificial Intelligence
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://molmospaces.allen.ai/
|
|
8
|
+
Project-URL: Documentation, https://allenai.github.io/molmospaces/
|
|
9
|
+
Project-URL: Repository, https://github.com/allenai/molmospaces.git
|
|
10
|
+
Keywords: robotics,simulation,manipulation,datagen,VLA,VLM,sim2real
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: Topic :: Scientific/Engineering
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Requires-Python: >=3.11
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: attrs
|
|
21
|
+
Requires-Dist: beaker-py>2.0.0
|
|
22
|
+
Requires-Dist: boto3>=1.35.0
|
|
23
|
+
Requires-Dist: coacd>=1.0.7
|
|
24
|
+
Requires-Dist: compress-json>=1.1.1
|
|
25
|
+
Requires-Dist: decord; sys_platform == "linux"
|
|
26
|
+
Requires-Dist: eva-decord; sys_platform == "darwin"
|
|
27
|
+
Requires-Dist: einops>=0.8.1
|
|
28
|
+
Requires-Dist: ffmpeg-python>=0.2.0
|
|
29
|
+
Requires-Dist: future>=1.0.0
|
|
30
|
+
Requires-Dist: gymnasium
|
|
31
|
+
Requires-Dist: h5py>=3.10.0
|
|
32
|
+
Requires-Dist: hidapi
|
|
33
|
+
Requires-Dist: imageio[ffmpeg]
|
|
34
|
+
Requires-Dist: lxml>=5.0.0
|
|
35
|
+
Requires-Dist: moviepy
|
|
36
|
+
Requires-Dist: msgpack>=1.0.6
|
|
37
|
+
Requires-Dist: msgpack-numpy
|
|
38
|
+
Requires-Dist: mujoco-warp
|
|
39
|
+
Requires-Dist: warp-lang
|
|
40
|
+
Requires-Dist: nbstripout>=0.7.0
|
|
41
|
+
Requires-Dist: nltk~=3.9.2
|
|
42
|
+
Requires-Dist: numpy<3,>=1.19.0
|
|
43
|
+
Requires-Dist: numpy-quaternion~=2024.0.10
|
|
44
|
+
Requires-Dist: nvidia-ml-py
|
|
45
|
+
Requires-Dist: omegaconf>=2.3.0
|
|
46
|
+
Requires-Dist: open_clip_torch~=3.2.0
|
|
47
|
+
Requires-Dist: opencv-python
|
|
48
|
+
Requires-Dist: pandas>=2.3.1
|
|
49
|
+
Requires-Dist: pillow>=10.0.0
|
|
50
|
+
Requires-Dist: prior>=1.0.3
|
|
51
|
+
Requires-Dist: protobuf>=4.21.0
|
|
52
|
+
Requires-Dist: psutil
|
|
53
|
+
Requires-Dist: pydantic<3,>=2.0.0
|
|
54
|
+
Requires-Dist: pynput>=1.8.1
|
|
55
|
+
Requires-Dist: scikit-image
|
|
56
|
+
Requires-Dist: scipy>=1.14.0
|
|
57
|
+
Requires-Dist: shapely>=2.1.1
|
|
58
|
+
Requires-Dist: shortuuid>=1.0.0
|
|
59
|
+
Requires-Dist: stringcase~=1.2
|
|
60
|
+
Requires-Dist: tensorboard>=2.20.0
|
|
61
|
+
Requires-Dist: teledex
|
|
62
|
+
Requires-Dist: termcolor>=2.0.0
|
|
63
|
+
Requires-Dist: toppra>=0.6.3
|
|
64
|
+
Requires-Dist: torch~=2.7.0
|
|
65
|
+
Requires-Dist: torchvision<0.23.0,>=0.22.0
|
|
66
|
+
Requires-Dist: tqdm>=4.65.0
|
|
67
|
+
Requires-Dist: trimesh>=4.7.3
|
|
68
|
+
Requires-Dist: wandb>=0.18.10
|
|
69
|
+
Requires-Dist: websockets
|
|
70
|
+
Requires-Dist: pytest
|
|
71
|
+
Requires-Dist: molmospaces-resources==0.0.2
|
|
72
|
+
Requires-Dist: packaging~=26.2
|
|
73
|
+
Provides-Extra: dev
|
|
74
|
+
Requires-Dist: mypy>=1.18.1; extra == "dev"
|
|
75
|
+
Requires-Dist: pre-commit>=4.3.0; extra == "dev"
|
|
76
|
+
Requires-Dist: pybind11-stubgen>=2.5.5; extra == "dev"
|
|
77
|
+
Requires-Dist: pytest-split>=0.10.0; extra == "dev"
|
|
78
|
+
Requires-Dist: ruff==0.15.0; extra == "dev"
|
|
79
|
+
Requires-Dist: ty>=0.0.15; extra == "dev"
|
|
80
|
+
Provides-Extra: grasp
|
|
81
|
+
Requires-Dist: matplotlib; extra == "grasp"
|
|
82
|
+
Requires-Dist: meshcat; extra == "grasp"
|
|
83
|
+
Requires-Dist: python-fcl; extra == "grasp"
|
|
84
|
+
Requires-Dist: rtree; extra == "grasp"
|
|
85
|
+
Requires-Dist: scikit-learn; extra == "grasp"
|
|
86
|
+
Requires-Dist: tensorflow; extra == "grasp"
|
|
87
|
+
Provides-Extra: housegen
|
|
88
|
+
Requires-Dist: p_tqdm; extra == "housegen"
|
|
89
|
+
Requires-Dist: open3d>=0.19.0; extra == "housegen"
|
|
90
|
+
Provides-Extra: mujoco
|
|
91
|
+
Requires-Dist: mujoco~=3.5.0; extra == "mujoco"
|
|
92
|
+
Provides-Extra: docs
|
|
93
|
+
Requires-Dist: mkdocs>=1.6.0; extra == "docs"
|
|
94
|
+
Requires-Dist: mkdocs-material>=9.5.0; extra == "docs"
|
|
95
|
+
Requires-Dist: mkdocstrings[python]>=0.27.0; extra == "docs"
|
|
96
|
+
Requires-Dist: mkdocs-autorefs>=1.2.0; extra == "docs"
|
|
97
|
+
Requires-Dist: mkdocs-git-revision-date-localized-plugin; extra == "docs"
|
|
98
|
+
Requires-Dist: griffe-inherited-docstrings; extra == "docs"
|
|
99
|
+
Requires-Dist: markdown-callouts>=0.4.0; extra == "docs"
|
|
100
|
+
Dynamic: license-file
|
|
101
|
+
|
|
102
|
+
<div align="center">
|
|
103
|
+
<h1>
|
|
104
|
+
<img src="docs/images/MolmoSpacesLogo.png" alt="MolmoSpaces Logo" width="800" style="margin-left:'auto' margin-right:'auto' display:'block'"/></br>
|
|
105
|
+
A Large-Scale Open Ecosystem for Robot Manipulation and Navigation
|
|
106
|
+
<div align="center">
|
|
107
|
+
<a href="https://arxiv.org/pdf/2602.11337" target="_blank" rel="noopener noreferrer"><img alt="Paper" src="./docs/images/button_paper.svg"/></a> <a href="https://huggingface.co/datasets/allenai/molmospaces" target="_blank" rel="noopener noreferrer"><img alt="Data" src="./docs/images/button_data.svg"/></a> <a href="https://allenai.github.io/molmospaces/" target="_blank" rel="noopener noreferrer"><img alt="Docs" src="./docs/images/button_docs.svg"/></a> <a href="https://molmospaces.allen.ai/" target="_blank" rel="noopener noreferrer"><img alt="Demo" src="./docs/images/button_demo.svg"/></a> <a href="https://molmospaces.allen.ai/leaderboard" target="_blank" rel="noopener noreferrer"><img alt="Leaderboard" src="./docs/images/button_leaderboard.svg"/></a>
|
|
108
|
+
</div>
|
|
109
|
+
</br>
|
|
110
|
+
&</br>
|
|
111
|
+
<img src="docs/images/MolmoBotLogo.png" alt="MolmoSpaces Logo" width="800" style="margin-left:'auto' margin-right:'auto' display:'block'"/></br>
|
|
112
|
+
Large-Scale Simulation Enables Zero-Shot Manipulation
|
|
113
|
+
<div align="center">
|
|
114
|
+
<a href="https://allenai.github.io/MolmoBot" target="_blank" rel="noopener noreferrer"><img alt="Paper" src="./docs/images/button_website.svg"/></a> <a href="https://github.com/allenai/MolmoBot" target="_blank" rel="noopener noreferrer"><img alt="Paper" src="./docs/images/button_code_models.svg"/></a> <a href="https://huggingface.co/collections/allenai/molmobot-models" target="_blank" rel="noopener noreferrer"><img alt="Data" src="./docs/images/button_data_models.svg"/></a> <a href="https://huggingface.co/datasets/allenai/MolmoBot-Data" target="_blank" rel="noopener noreferrer"><img alt="Data" src="./docs/images/button_data.svg"/></a>
|
|
115
|
+
</div>
|
|
116
|
+
</h1>
|
|
117
|
+
</div>
|
|
118
|
+
|
|
119
|
+
</br>
|
|
120
|
+
<br/>
|
|
121
|
+
|
|
122
|
+
<div align="center">
|
|
123
|
+
<img src="docs/images/Multi_Simulator_Pan.jpg" alt="Multi-Simulator-Pan" width="1200" style="margin-left:'auto' margin-right:'auto' display:'block'"/>
|
|
124
|
+
<br>
|
|
125
|
+
<p>Assets from MolmoSpaces are usable in MuJoCo, Isaac, and ManiSkill.
|
|
126
|
+
<br>
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
### Updates
|
|
132
|
+
- **[2026/06/22]** 🔥 [**awesome-molmospaces-papers**](docs/awesome-molmospaces-papers.md) a list of MolmoSpaces projects.
|
|
133
|
+
- **[2026/06/16]** 🔥 [**MolmoSpaces Policy Zoo**](https://github.com/allenai/molmospaces_policy_zoo) is a repository containing standalone third party policy implementations. If you use MolmoSpaces to make a policy (planner-based, learning-based, etc.) please contribute!
|
|
134
|
+
- **[2026/06/12]** 🔥 [**MolmoSpaces v0.2.0**](https://github.com/allenai/molmospaces/releases/tag/v0.2.0) is out, with significantly better usability, included tutorials, and more! Check out the changelog for more information.
|
|
135
|
+
- **[2026/03/24]** 🔥 [**MolmoBot-Datagen**](https://allenai.org/blog/molmobot-robot-manipulation) Code for scripted planners, data generation, and benchmark creation.
|
|
136
|
+
- **[2026/02/27]** 🔥 [**Leaderboards**](https://molmospaces.allen.ai/leaderboard) are out.
|
|
137
|
+
- **[2026/02/11]** 🔥 [**Datasets**](docs/assets.md#assets-and-resource-manager) for assets and scenes in MJCF and USDa format.
|
|
138
|
+
- **[2026/02/11]** 🔥 [**Benchmark**](molmo_spaces/evaluation/README.md) for 8 tasks, including *pick*, *open*, and *close* tasks in JSONs.
|
|
139
|
+
- **[2026/02/11]** 🔥 **MolmoSpaces** Code for scene conversion, grasp generation, teleoperation, and benchmark evaluation.
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
## Installation
|
|
143
|
+
|
|
144
|
+
Installing `molmospaces` is easy!
|
|
145
|
+
|
|
146
|
+
First, clone the project.
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
git clone git@github.com:allenai/molmospaces.git
|
|
150
|
+
cd molmospaces
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Then, set up the virtual environment and install.
|
|
154
|
+
|
|
155
|
+
> Note: If you want to use the debug viewer on macOS you need to use conda or a Homebrew Python. This is because `mjpython` used by the debug viewer requires a shared `libpython3.11.dylib`, which `uv`'s standalone CPython does not ship.
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
With conda:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
conda create -n mlspaces python=3.11
|
|
162
|
+
conda activate mlspaces
|
|
163
|
+
pip install -e ".[mujoco]"
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Or with `uv`:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
uv venv --python 3.11 .venv
|
|
170
|
+
source .venv/bin/activate
|
|
171
|
+
uv pip install -e ".[mujoco]"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
One of the following options must be provided:
|
|
175
|
+
- `mujoco` to use the classic MuJoCo renderer
|
|
176
|
+
- `mujoco-filament` to use the improved Filament renderer for MuJoCo
|
|
177
|
+
|
|
178
|
+
The optional installation options are:
|
|
179
|
+
- `dev` installs dependencies for code development.
|
|
180
|
+
- `grasp` installs dependencies for the grasp generation pipeline.
|
|
181
|
+
- `housegen` installs dependencies for the house generation pipeline from iTHOR, ProcTHOR, or Holodeck JSONs.
|
|
182
|
+
- `curobo` installs CuRobo for GPU-accelerated planning.
|
|
183
|
+
|
|
184
|
+
You may wish to specify some [environment variables](#environment-variables) to configure behavior.
|
|
185
|
+
Currently `molmospaces` supports Linux and Mac.
|
|
186
|
+
|
|
187
|
+
We provide simulation assets for Mujoco, Isaac, and ManiSkill.
|
|
188
|
+
Data generation and benchmarking are only supported for Mujoco.
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
### Installing the Filament renderer (optional)
|
|
192
|
+
|
|
193
|
+
If using `uv`, simply run:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
uv pip install -e .[mujoco-filament]
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Otherwise, first install `mujoco-filament` before installing this project:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
pip install -i https://test.pypi.org/simple/ mujoco-filament
|
|
203
|
+
pip install -e .[mujoco-filament]
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Installing cuRobo (optional, used only for RB-Y1 tasks)
|
|
207
|
+
|
|
208
|
+
For cuRobo support, inside your conda environment, install with:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
# Install CUDA toolkit and build tools (conda-forge for toolkit, nvidia channel for headers)
|
|
212
|
+
conda install -c conda-forge cuda-toolkit=12.8 ninja evdev cuda-nvcc cuda-cudart-dev -n mlspaces
|
|
213
|
+
|
|
214
|
+
# Install torch with CUDA 12.8 support BEFORE installing cuRobo (Ignore warnings after this step)
|
|
215
|
+
pip install "torch~=2.7.0" "torchvision>=0.22.0,<0.23.0" --index-url https://download.pytorch.org/whl/cu128
|
|
216
|
+
|
|
217
|
+
# Then compile and install the project against the installed torch
|
|
218
|
+
export CUDA_HOME=$CONDA_PREFIX
|
|
219
|
+
export CPATH=$(dirname $(find $CONDA_PREFIX -name "cuda_runtime_api.h" | head -1)):$CPATH
|
|
220
|
+
export TORCH_CUDA_ARCH_LIST="7.5;8.0;8.6;8.9;9.0"
|
|
221
|
+
|
|
222
|
+
pip install -e ".[mujoco,curobo]"
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
### Set Environment Variables (Optional)
|
|
227
|
+
|
|
228
|
+
You may wish to specify some environment variables to configure behavior.
|
|
229
|
+
Environment variables beginning with the `MLSPACES` prefix can be used to customize MolmoSpaces behavior.
|
|
230
|
+
|
|
231
|
+
| Environment Variable | Effect | Default |
|
|
232
|
+
|---|---|---|
|
|
233
|
+
| `MLSPACES_ASSETS_DIR` | Where to place downloaded assets | `~/.cache/molmospaces/assets/<install-hash>` |
|
|
234
|
+
| `MLSPACES_FORCE_INSTALL` | Override existing assets | `True` |
|
|
235
|
+
| `MLSPACES_PINNED_ASSETS_FILE` | A `.json` file containing pinned versions for each asset, used to override the versions specified in [molmo_spaces_constants.py](molmo_spaces/molmo_spaces_constants.py). | |
|
|
236
|
+
| `MUJOCO_EGL_DEVICE_ID` | The rendering device; indices do not always match `CUDA_VISIBLE_DEVICES`. See [here](https://github.com/allenai/molmospaces/issues/66) for details. | `0`|
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
### Quick Test
|
|
240
|
+
|
|
241
|
+
Run a quick sample of data generation. For machines with a display, use the `--viewer` option to launch the passive debug viewer (push "w" for wire-frame view to see the robot more easily; more details [here](#mujoco-viewer-tips)). Assets should be downloaded automatically for all runs.
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
# Linux
|
|
245
|
+
python scripts/datagen/run_pipeline.py --viewer --seed 1
|
|
246
|
+
# Mac
|
|
247
|
+
mjpython scripts/datagen/run_pipeline.py --viewer --seed 1
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
The MolmoSpaces codebase has three entry points for data generation, evaluation, and debugging. The two initial entry points make use of experiment configs to configure runs. The third is more easily modifiable, with some logic for constructing runs on the fly; however, constructing experiments is complicated, and not all permutations have been tested fully.
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
molmo_spaces/evaluation/eval_main.py # evaluation
|
|
254
|
+
molmo_spaces/data_generation/main.py # data generation
|
|
255
|
+
scripts/datagen/run_pipeline.py # debugging
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
This readme contains more information on [experiment configs](#experiment-configs) as well as the other entry points; for those, please see the [evaluation](#benchmarks-and-evaluations) and [data generation](#data-generation) sections of this readme.
|
|
259
|
+
|
|
260
|
+
## MolmoSpaces Assets
|
|
261
|
+
|
|
262
|
+
Molmospaces provides scenes, objects, robots, and benchmarks. These can be downloaded using an asset manager to automatically fetch and version-control asset dependencies. A number of assets are provided; this overview explains the naming of the assets in code:
|
|
263
|
+
|
|
264
|
+
| Type | Code Name | Paper Name | Description | Size |
|
|
265
|
+
|---|----------------------|--------------|----------------------------------------------|-------|
|
|
266
|
+
| objects| thor | | hand-crafted indoor assets | ~2k |
|
|
267
|
+
| objects| objaverse | | converted Objaverse assets | ~129k |
|
|
268
|
+
| scenes | ithor | MSCrafted | hand-crafted, many articulated assets | 120 |
|
|
269
|
+
| scenes | procthor-10k | MSProc | procedurally generated with THOR assets | ~120k |
|
|
270
|
+
| scenes | procthor-objaverse | MSProcObja | procedurally generated with Objaverse assets | ~110k |
|
|
271
|
+
| scenes | holodeck | MSMultiType | LLM generated with Objaverse assets | ~110k |
|
|
272
|
+
| benchmark| molmospaces_bench_v1 | MS-Bench v1 | base benchmark for atomic tasks | |
|
|
273
|
+
| benchmark| molmospaces_bench_v2 | MS-Bench v2 | extended benchmark for atomic tasks | |
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
Please refer to [here](./docs/assets.md) for instructions to set up data directories, but you shouldn't need to manually manage any dependencies beyond setting the appropriate environment variables. If you are interested only in data generation and evaluation using MuJoCo, you can skip the rest of this section.
|
|
277
|
+
|
|
278
|
+
## Documentation
|
|
279
|
+
|
|
280
|
+
The documentation for MolmoSpaces can be found [here](https://allenai.github.io/molmospaces/).
|
|
281
|
+
|
|
282
|
+
To see and easily run additional policies in MolmoSpaces, check out the [policy zoo](https://github.com/allenai/molmospaces_policy_zoo/)!
|
|
283
|
+
|
|
284
|
+
For a list of projects using MolmoSpaces look [here](docs/awesome-molmospaces-papers.md).
|
|
285
|
+
|
|
286
|
+
Additional documentation for using assets and benchmarks in other simulators are listed below:
|
|
287
|
+
|
|
288
|
+
| Simulator | Documentation |
|
|
289
|
+
|---|-------------------------------------------------------------------------------|
|
|
290
|
+
| MuJoCo | [MuJoCo Assets Quick Start Instructions](docs/assets.md#mujoco-assets) |
|
|
291
|
+
| ManiSkill | [ManiSkill Assets Quick Start Instructions](molmo_spaces_maniskill/README.md) |
|
|
292
|
+
| Isaac-Sim | [Isaac-Sim Assets Quick Start Instructions](molmo_spaces_isaac/README.md) |
|
|
293
|
+
| Isaac Lab-Arena | [Isaac Lab-Arena Support](https://github.com/AravindhShan-nv/molmospaces/tree/codex/isaac-arena-policy-parity-progress/molmo_spaces_isaac#isaac-lab-arena-molmospaces-pick-demo) (by NVIDIA, beta version)|
|
|
294
|
+
|
|
295
|
+
## Experiment Configs
|
|
296
|
+
|
|
297
|
+
In MolmoSpaces all runs, whether for data generation or evaluation of policies, are defined by experiment configs.
|
|
298
|
+
The base experiment config class is called `MlSpacesExpConfig` and is located in `molmo_spaces/configs/abstract_exp_config.py`, it contains documentation on configuring experiments.
|
|
299
|
+
|
|
300
|
+
To see a list of all currently defined experiment configs, run this:
|
|
301
|
+
```python
|
|
302
|
+
from molmo_spaces.data_generation.main import auto_import_configs
|
|
303
|
+
from molmo_spaces.data_generation.config_registry import list_available_configs
|
|
304
|
+
|
|
305
|
+
auto_import_configs()
|
|
306
|
+
print(list_available_configs())
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
## Benchmarks and Evaluations
|
|
310
|
+
|
|
311
|
+
Currently, installing and running the benchmark is only supported in the MuJoCo simulator.
|
|
312
|
+
|
|
313
|
+
### Installing Benchmarks
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
export MLSPACES_ASSETS_DIR=/path/to/symlink/resources
|
|
317
|
+
python -m molmo_spaces.molmo_spaces_constants
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### Running Benchmarks
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
python molmo_spaces/evaluation/eval_main.py \
|
|
324
|
+
molmo_spaces.evaluation.configs.evaluation_configs:PiPolicyEvalConfig \
|
|
325
|
+
--benchmark_dir assets/bench/path-to-benchmark.json \
|
|
326
|
+
--checkpoint_path <path/to/checkpoint/pi0_fast_droid_jointpos> \
|
|
327
|
+
--task_horizon_steps 500 # optional (defaults to benchmark value)
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
For more information, please refer to an instruction in the [benchmark](molmo_spaces/evaluation/README.md).
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
## Data Generation
|
|
334
|
+
|
|
335
|
+
Our data generation system makes use of predefined experiment configs that specify scenes, robots, tasks, and more.
|
|
336
|
+
Example experiment configs can be found in, e.g., `molmo_spaces/data_generation/config/object_manipulation_datagen_configs.py`
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
python molmo_spaces/data_generation/main.py FrankaPickOmniCamConfig
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
## Teleop Input
|
|
344
|
+
|
|
345
|
+
To control a robot via phone-based teleoperation, do the following (only iPhones supported).
|
|
346
|
+
|
|
347
|
+
1. Install TeleDex from the App Store; see [here](https://apps.apple.com/us/app/teledex/id6612039501).
|
|
348
|
+
2. Run the datagen pipeline with the teleop policy
|
|
349
|
+
```bash
|
|
350
|
+
python molmo_spaces/evaluation/eval_main.py \
|
|
351
|
+
molmo_spaces.evaluation.configs.evaluation_configs:TeleopPolicyEvalConfig \
|
|
352
|
+
--benchmark_dir assets/bench/path-to-benchmark.json \
|
|
353
|
+
--task_horizon_steps 1000
|
|
354
|
+
```
|
|
355
|
+
3. Scan the QR code that shows up using the app (or manually enter the IP port). Example terminal output:
|
|
356
|
+
```bash
|
|
357
|
+
TeleDex Session Starting on port 8888...
|
|
358
|
+
Session Started. Details:
|
|
359
|
+
IP Address: xxx.xxx.xx.xxx
|
|
360
|
+
Port: 8888
|
|
361
|
+
Waiting for a device to connect...
|
|
362
|
+
```
|
|
363
|
+
4. Start teleoperating!
|
|
364
|
+
|
|
365
|
+
- Click the toggle to grasp.
|
|
366
|
+
- Click the button to go to the next episode.
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
## Related Repositories:
|
|
370
|
+
|
|
371
|
+
The repositories related to this project can be found here:
|
|
372
|
+
|
|
373
|
+
| Repository | Purpose |
|
|
374
|
+
|---|---|
|
|
375
|
+
| [ai2_robot_infra](https://github.com/allenai/ai2_robot_infra) | Real robot infrastructure and utilities for experiments |
|
|
376
|
+
| [MolmoBot](https://github.com/allenai/MolmoBot) | MolmoBot policy code |
|
|
377
|
+
| [curobo](https://github.com/allenai/curobo) | Ai2 cuRobo branch |
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
## Development
|
|
381
|
+
|
|
382
|
+
### Code Formatting
|
|
383
|
+
|
|
384
|
+
Before committing, ensure your code is formatted:
|
|
385
|
+
```bash
|
|
386
|
+
ruff format .
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### Unit Testing
|
|
390
|
+
|
|
391
|
+
We use pytest for integration testing.
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
PYTHONPATH=. pytest mlspaces_tests/data_generation
|
|
395
|
+
PYTHONPATH=. pytest mlspaces_tests/data_generation_curobo # run tests that require curobo
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
> [!TIP]
|
|
399
|
+
> To debug failing tests, use `--log-cli-level DEBUG`
|
|
400
|
+
|
|
401
|
+
For setting up self-hosted CI runners or building Docker images for Beaker, see **[beaker_scripts/RUNNER_SETUP.md](beaker_scripts/RUNNER_SETUP.md)**.
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
### Use with Cursor/VSCode
|
|
405
|
+
|
|
406
|
+
Generating type stubs for mujoco and open3d and saving them in the `typings` folder
|
|
407
|
+
```bash
|
|
408
|
+
pybind11-stubgen mujoco -o ./typings/
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
### Mujoco Viewer Tips
|
|
412
|
+
1. Documentation for the viewer can be found [here](https://mujoco.readthedocs.io/en/stable/programming/samples.html#sasimulate) there are many keyboard shortcuts.
|
|
413
|
+
2. If you have red boxes on top of your objects, go to the left panel and toggle `Group Enable > Site groups > Site 0`
|
|
414
|
+
3. Interact with objects by double-clicking > Ctrl + right mouse drag. (only with active viewers, not passive ones)
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
## Robot Conventions
|
|
418
|
+
|
|
419
|
+
Robot base conventions: +x=forward, +y=left, +z=up
|
|
420
|
+
|
|
421
|
+
Robot parallel-jaw gripper conventions: +z=forward, fingers open along the y axis
|
|
422
|
+
|
|
423
|
+
<img src="docs/images/robot_axis_conventions.png" width="480px">
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
## License
|
|
428
|
+
|
|
429
|
+
The codebase is licensed under [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt).
|
|
430
|
+
The public MolmoSpaces data endpoint is available [here](https://pub-3555e9bb2d304fab9c6c79819e48aa40.r2.dev). The public MolmoSpaces Isaac data endpoint is available [here](https://pub-96496c3574b24d0c98b235219711d359.r2.dev). Both datasets are also available for download on [HuggingFace](https://huggingface.co/datasets/allenai/molmospaces). The Objaverse subsets in these buckets are licensed under [ODC-BY 1.0](https://opendatacommons.org/licenses/by/1-0/). All other data subsets are licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.en).
|
|
431
|
+
The artifacts are intended for research and educational use in accordance with [Ai2's Responsible Use Guidelines](https://allenai.org/responsible-use).
|
|
432
|
+
|
|
433
|
+
## Data Attributions
|
|
434
|
+
|
|
435
|
+
The XML files have been modified from the original versions provided by the following sources:
|
|
436
|
+
- [mujoco_menagerie / franka_fr3](https://github.com/google-deepmind/mujoco_menagerie/tree/main/franka_fr3) - Developed by Franka Robotics
|
|
437
|
+
- [mujoco_menagerie / robotiq_2f85_v4](https://github.com/google-deepmind/mujoco_menagerie/tree/main/robotiq_2f85_v4) - Copyright (c) 2013, ROS-Industrial
|
|
438
|
+
- [Rainbow Robotics / rby1-sdk](https://github.com/RainbowRobotics/rby1-sdk) - Copyright 2024-2025 Rainbow Robotics
|
|
439
|
+
- [RUM Gripper](https://github.com/jeffacce/cap-policy) - Copyright (c) 2026 NYU Generalizable Robotics and AI Lab (GRAIL)
|
|
440
|
+
- [I2RT Robotics / i2rt Python API](https://github.com/i2rt-robotics/i2rt) - Copyright (c) I2RT Robotics
|
|
441
|
+
- [mujoco_menagerie / unitree_g1](https://github.com/google-deepmind/mujoco_menagerie/tree/main/unitree_g1) - Copyright (c) 2016-2023 HangZhou YuShu TECHNOLOGY CO.,LTD. ("Unitree Robotics")
|
|
442
|
+
- [Microsoft-Rocketbox](https://github.com/microsoft/Microsoft-Rocketbox) - Copyright (c) 2020 Microsoft
|
|
443
|
+
|
|
444
|
+
## Citing
|
|
445
|
+
|
|
446
|
+
```
|
|
447
|
+
@article{kim2026molmospaces,
|
|
448
|
+
title={MolmoSpaces: A Large-Scale Open Ecosystem for Robot Navigation and Manipulation},
|
|
449
|
+
author={Kim, Yejin and Pumacay, Wilbert and Rayyan, Omar and Argus, Max and Han, Winson and VanderBilt, Eli and Salvador, Jordi and Deshpande, Abhay and Hendrix, Rose and Jauhri, Snehal and others},
|
|
450
|
+
journal={arXiv preprint arXiv:2602.11337},
|
|
451
|
+
year={2026}
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
@misc{deshpande2026molmobot,
|
|
455
|
+
title={MolmoB0T: Large-Scale Simulation Enables Zero-Shot Manipulation},
|
|
456
|
+
author={Abhay Deshpande and Maya Guru and Rose Hendrix and Snehal Jauhri and Ainaz Eftekhar and Rohun Tripathi and Max Argus and Jordi Salvador and Haoquan Fang and Matthew Wallingford and Wilbert Pumacay and Yejin Kim and Quinn Pfeifer and Ying-Chun Lee and Piper Wolters and Omar Rayyan and Mingtong Zhang and Jiafei Duan and Karen Farley and Winson Han and Eli Vanderbilt and Dieter Fox and Ali Farhadi and Georgia Chalvatzaki and Dhruv Shah and Ranjay Krishna},
|
|
457
|
+
year={2026},
|
|
458
|
+
eprint={2603.16861},
|
|
459
|
+
archivePrefix={arXiv},
|
|
460
|
+
primaryClass={cs.RO},
|
|
461
|
+
url={https://arxiv.org/abs/2603.16861},
|
|
462
|
+
}
|
|
463
|
+
```
|