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.
Files changed (246) hide show
  1. molmo_spaces-0.2.9/LICENSE +13 -0
  2. molmo_spaces-0.2.9/PKG-INFO +463 -0
  3. molmo_spaces-0.2.9/README.md +362 -0
  4. molmo_spaces-0.2.9/molmo_spaces/__init__.py +3 -0
  5. molmo_spaces-0.2.9/molmo_spaces/configs/__init__.py +61 -0
  6. molmo_spaces-0.2.9/molmo_spaces/configs/abstract_config.py +43 -0
  7. molmo_spaces-0.2.9/molmo_spaces/configs/abstract_exp_config.py +211 -0
  8. molmo_spaces-0.2.9/molmo_spaces/configs/base_nav_to_obj_config.py +112 -0
  9. molmo_spaces-0.2.9/molmo_spaces/configs/base_open_task_configs.py +56 -0
  10. molmo_spaces-0.2.9/molmo_spaces/configs/base_packing_configs.py +21 -0
  11. molmo_spaces-0.2.9/molmo_spaces/configs/base_pick_and_place_color_configs.py +31 -0
  12. molmo_spaces-0.2.9/molmo_spaces/configs/base_pick_and_place_configs.py +27 -0
  13. molmo_spaces-0.2.9/molmo_spaces/configs/base_pick_and_place_next_to_configs.py +26 -0
  14. molmo_spaces-0.2.9/molmo_spaces/configs/base_pick_config.py +114 -0
  15. molmo_spaces-0.2.9/molmo_spaces/configs/camera_configs.py +959 -0
  16. molmo_spaces-0.2.9/molmo_spaces/configs/dummy_config.py +18 -0
  17. molmo_spaces-0.2.9/molmo_spaces/configs/policy_configs.py +461 -0
  18. molmo_spaces-0.2.9/molmo_spaces/configs/policy_configs_baselines.py +138 -0
  19. molmo_spaces-0.2.9/molmo_spaces/configs/robot_configs.py +427 -0
  20. molmo_spaces-0.2.9/molmo_spaces/configs/task_configs.py +200 -0
  21. molmo_spaces-0.2.9/molmo_spaces/configs/task_sampler_configs.py +327 -0
  22. molmo_spaces-0.2.9/molmo_spaces/controllers/__init__.py +0 -0
  23. molmo_spaces-0.2.9/molmo_spaces/controllers/abstract.py +83 -0
  24. molmo_spaces-0.2.9/molmo_spaces/controllers/base_pose.py +263 -0
  25. molmo_spaces-0.2.9/molmo_spaces/controllers/joint_pos.py +73 -0
  26. molmo_spaces-0.2.9/molmo_spaces/controllers/joint_rel_pos.py +84 -0
  27. molmo_spaces-0.2.9/molmo_spaces/controllers/joint_vel.py +78 -0
  28. molmo_spaces-0.2.9/molmo_spaces/controllers/torso_height.py +75 -0
  29. molmo_spaces-0.2.9/molmo_spaces/data_generation/__init__.py +0 -0
  30. molmo_spaces-0.2.9/molmo_spaces/data_generation/config/__init__.py +6 -0
  31. molmo_spaces-0.2.9/molmo_spaces/data_generation/config/benchmarks_datagen_configs.py +16 -0
  32. molmo_spaces-0.2.9/molmo_spaces/data_generation/config/door_opening_configs.py +168 -0
  33. molmo_spaces-0.2.9/molmo_spaces/data_generation/config/nav_to_obj_configs.py +71 -0
  34. molmo_spaces-0.2.9/molmo_spaces/data_generation/config/object_manipulation_datagen_configs.py +896 -0
  35. molmo_spaces-0.2.9/molmo_spaces/data_generation/config_registry.py +73 -0
  36. molmo_spaces-0.2.9/molmo_spaces/data_generation/main.py +149 -0
  37. molmo_spaces-0.2.9/molmo_spaces/data_generation/pipeline.py +1373 -0
  38. molmo_spaces-0.2.9/molmo_spaces/env/__init__.py +0 -0
  39. molmo_spaces-0.2.9/molmo_spaces/env/abstract_sensors.py +125 -0
  40. molmo_spaces-0.2.9/molmo_spaces/env/arena/__init__.py +0 -0
  41. molmo_spaces-0.2.9/molmo_spaces/env/arena/arena_utils.py +325 -0
  42. molmo_spaces-0.2.9/molmo_spaces/env/arena/bathroom.py +31 -0
  43. molmo_spaces-0.2.9/molmo_spaces/env/arena/cabinet.py +63 -0
  44. molmo_spaces-0.2.9/molmo_spaces/env/arena/drawer.py +32 -0
  45. molmo_spaces-0.2.9/molmo_spaces/env/arena/kitchen.py +89 -0
  46. molmo_spaces-0.2.9/molmo_spaces/env/arena/procthor_types.py +244 -0
  47. molmo_spaces-0.2.9/molmo_spaces/env/arena/randomization/__init__.py +0 -0
  48. molmo_spaces-0.2.9/molmo_spaces/env/arena/randomization/dynamics.py +303 -0
  49. molmo_spaces-0.2.9/molmo_spaces/env/arena/randomization/lighting.py +484 -0
  50. molmo_spaces-0.2.9/molmo_spaces/env/arena/randomization/test_randomizers.py +411 -0
  51. molmo_spaces-0.2.9/molmo_spaces/env/arena/randomization/texture.py +1863 -0
  52. molmo_spaces-0.2.9/molmo_spaces/env/arena/scene_tweaks.py +246 -0
  53. molmo_spaces-0.2.9/molmo_spaces/env/camera_manager.py +999 -0
  54. molmo_spaces-0.2.9/molmo_spaces/env/data_views.py +803 -0
  55. molmo_spaces-0.2.9/molmo_spaces/env/env.py +1079 -0
  56. molmo_spaces-0.2.9/molmo_spaces/env/mj_extensions.py +116 -0
  57. molmo_spaces-0.2.9/molmo_spaces/env/object_manager.py +1685 -0
  58. molmo_spaces-0.2.9/molmo_spaces/env/rby1_sensors.py +280 -0
  59. molmo_spaces-0.2.9/molmo_spaces/env/sensors.py +1101 -0
  60. molmo_spaces-0.2.9/molmo_spaces/env/sensors_cameras.py +170 -0
  61. molmo_spaces-0.2.9/molmo_spaces/evaluation/__init__.py +63 -0
  62. molmo_spaces-0.2.9/molmo_spaces/evaluation/benchmark_schema.py +600 -0
  63. molmo_spaces-0.2.9/molmo_spaces/evaluation/configs/__init__.py +0 -0
  64. molmo_spaces-0.2.9/molmo_spaces/evaluation/configs/evaluation_configs.py +349 -0
  65. molmo_spaces-0.2.9/molmo_spaces/evaluation/eval_main.py +769 -0
  66. molmo_spaces-0.2.9/molmo_spaces/evaluation/json_eval_runner.py +335 -0
  67. molmo_spaces-0.2.9/molmo_spaces/evaluation/policy_server.py +209 -0
  68. molmo_spaces-0.2.9/molmo_spaces/evaluation/robot_eval_overrides.py +89 -0
  69. molmo_spaces-0.2.9/molmo_spaces/grasp_generation/__init__.py +0 -0
  70. molmo_spaces-0.2.9/molmo_spaces/grasp_generation/find_objects.py +108 -0
  71. molmo_spaces-0.2.9/molmo_spaces/grasp_generation/pipeline/__init__.py +0 -0
  72. molmo_spaces-0.2.9/molmo_spaces/grasp_generation/pipeline/articulation_test.py +965 -0
  73. molmo_spaces-0.2.9/molmo_spaces/grasp_generation/pipeline/combine_meshes.py +153 -0
  74. molmo_spaces-0.2.9/molmo_spaces/grasp_generation/pipeline/extract_leaf_meshes.py +429 -0
  75. molmo_spaces-0.2.9/molmo_spaces/grasp_generation/pipeline/generate_grasps.py +1042 -0
  76. molmo_spaces-0.2.9/molmo_spaces/grasp_generation/pipeline/perturbations_test.py +643 -0
  77. molmo_spaces-0.2.9/molmo_spaces/grasp_generation/robotiq_gripper.py +65 -0
  78. molmo_spaces-0.2.9/molmo_spaces/grasp_generation/run_articulable.py +495 -0
  79. molmo_spaces-0.2.9/molmo_spaces/grasp_generation/run_rigid.py +281 -0
  80. molmo_spaces-0.2.9/molmo_spaces/housegen/__init__.py +0 -0
  81. molmo_spaces-0.2.9/molmo_spaces/housegen/builder.py +2204 -0
  82. molmo_spaces-0.2.9/molmo_spaces/housegen/constants.py +230 -0
  83. molmo_spaces-0.2.9/molmo_spaces/housegen/exporter.py +629 -0
  84. molmo_spaces-0.2.9/molmo_spaces/housegen/utils.py +1581 -0
  85. molmo_spaces-0.2.9/molmo_spaces/kinematics/__init__.py +0 -0
  86. molmo_spaces-0.2.9/molmo_spaces/kinematics/floating_rum_kinematics.py +162 -0
  87. molmo_spaces-0.2.9/molmo_spaces/kinematics/mujoco_kinematics.py +254 -0
  88. molmo_spaces-0.2.9/molmo_spaces/kinematics/parallel/__init__.py +0 -0
  89. molmo_spaces-0.2.9/molmo_spaces/kinematics/parallel/dummy_parallel_kinematics.py +87 -0
  90. molmo_spaces-0.2.9/molmo_spaces/kinematics/parallel/parallel_kinematics.py +107 -0
  91. molmo_spaces-0.2.9/molmo_spaces/kinematics/parallel/warp_kinematics.py +652 -0
  92. molmo_spaces-0.2.9/molmo_spaces/kinematics/test_robot_ik.py +104 -0
  93. molmo_spaces-0.2.9/molmo_spaces/molmo_spaces_constants.py +768 -0
  94. molmo_spaces-0.2.9/molmo_spaces/planner/__init__.py +0 -0
  95. molmo_spaces-0.2.9/molmo_spaces/planner/abstract.py +14 -0
  96. molmo_spaces-0.2.9/molmo_spaces/planner/astar_planner.py +227 -0
  97. molmo_spaces-0.2.9/molmo_spaces/planner/curobo_planner.py +606 -0
  98. molmo_spaces-0.2.9/molmo_spaces/planner/curobo_planner_client.py +307 -0
  99. molmo_spaces-0.2.9/molmo_spaces/planner/curobo_planner_server.py +608 -0
  100. molmo_spaces-0.2.9/molmo_spaces/planner/robot_specific/__init__.py +0 -0
  101. molmo_spaces-0.2.9/molmo_spaces/planner/test_grpc_batch.py +185 -0
  102. molmo_spaces-0.2.9/molmo_spaces/policy/__init__.py +0 -0
  103. molmo_spaces-0.2.9/molmo_spaces/policy/base_policy.py +204 -0
  104. molmo_spaces-0.2.9/molmo_spaces/policy/dummy_policy.py +50 -0
  105. molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/__init__.py +0 -0
  106. molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/bimanual_yam_pi_policy.py +360 -0
  107. molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/cap_policy.py +229 -0
  108. molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/dreamzero_policy.py +241 -0
  109. molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/keyboard_policy.py +230 -0
  110. molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/lerobot_grpc_client.py +209 -0
  111. molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/phone_policy.py +199 -0
  112. molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/pi_policy.py +217 -0
  113. molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/rum_client.py +227 -0
  114. molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/spacemouse_policy.py +322 -0
  115. molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/utils.py +246 -0
  116. molmo_spaces-0.2.9/molmo_spaces/policy/learned_policy/websocket_policy.py +137 -0
  117. molmo_spaces-0.2.9/molmo_spaces/policy/random_policy.py +39 -0
  118. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/__init__.py +3 -0
  119. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/curobo_planner_policy.py +707 -0
  120. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/move_solver.py +0 -0
  121. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/navigation/__init__.py +0 -0
  122. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/navigation/astar_planner_policy.py +539 -0
  123. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/__init__.py +3 -0
  124. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/base_object_manipulation_planner_policy.py +671 -0
  125. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/curobo_open_close_planner_policy.py +883 -0
  126. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/curobo_pick_and_place_planner_policy.py +681 -0
  127. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/open_close_planner_policy.py +234 -0
  128. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/pick_and_place_color_planner_policy.py +9 -0
  129. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/pick_and_place_next_to_planner_policy.py +200 -0
  130. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/pick_and_place_planner_policy.py +293 -0
  131. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/object_manipulation/pick_planner_policy.py +175 -0
  132. molmo_spaces-0.2.9/molmo_spaces/policy/solvers/opening_solver.py +703 -0
  133. molmo_spaces-0.2.9/molmo_spaces/renderer/__init__.py +0 -0
  134. molmo_spaces-0.2.9/molmo_spaces/renderer/abstract_renderer.py +173 -0
  135. molmo_spaces-0.2.9/molmo_spaces/renderer/filament_rendering.py +376 -0
  136. molmo_spaces-0.2.9/molmo_spaces/renderer/offline_renderers/__init__.py +0 -0
  137. molmo_spaces-0.2.9/molmo_spaces/renderer/offline_renderers/domain_randomization.py +113 -0
  138. molmo_spaces-0.2.9/molmo_spaces/renderer/offline_renderers/omniverse_renderer.py +299 -0
  139. molmo_spaces-0.2.9/molmo_spaces/renderer/offline_renderers/opengl_rendrerer.py +190 -0
  140. molmo_spaces-0.2.9/molmo_spaces/renderer/opengl_context.py +185 -0
  141. molmo_spaces-0.2.9/molmo_spaces/renderer/opengl_rendering.py +540 -0
  142. molmo_spaces-0.2.9/molmo_spaces/resources/__init__.py +0 -0
  143. molmo_spaces-0.2.9/molmo_spaces/resources/asset_id_to_object_type.json +1655 -0
  144. molmo_spaces-0.2.9/molmo_spaces/resources/base_scene.xml +33 -0
  145. molmo_spaces-0.2.9/molmo_spaces/resources/generate_user_asset_library_index.py +146 -0
  146. molmo_spaces-0.2.9/molmo_spaces/resources/generate_user_grasp_library_index.py +108 -0
  147. molmo_spaces-0.2.9/molmo_spaces/resources/material_to_textures.json +13694 -0
  148. molmo_spaces-0.2.9/molmo_spaces/robots/__init__.py +0 -0
  149. molmo_spaces-0.2.9/molmo_spaces/robots/abstract.py +419 -0
  150. molmo_spaces-0.2.9/molmo_spaces/robots/bimanual_yam.py +151 -0
  151. molmo_spaces-0.2.9/molmo_spaces/robots/find_gripper_finger_range.py +75 -0
  152. molmo_spaces-0.2.9/molmo_spaces/robots/floating_robotiq.py +59 -0
  153. molmo_spaces-0.2.9/molmo_spaces/robots/floating_rum.py +112 -0
  154. molmo_spaces-0.2.9/molmo_spaces/robots/franka.py +262 -0
  155. molmo_spaces-0.2.9/molmo_spaces/robots/i2rt_yam.py +131 -0
  156. molmo_spaces-0.2.9/molmo_spaces/robots/mobile_franka.py +278 -0
  157. molmo_spaces-0.2.9/molmo_spaces/robots/rby1.py +437 -0
  158. molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/__init__.py +0 -0
  159. molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/abstract.py +838 -0
  160. molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/bimanual_yam_view.py +190 -0
  161. molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/franka_cap_view.py +76 -0
  162. molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/franka_droid_view.py +154 -0
  163. molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/franka_fr3_view.py +115 -0
  164. molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/i2rt_yam_view.py +153 -0
  165. molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/mobile_franka_droid_view.py +41 -0
  166. molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/rby1_view.py +360 -0
  167. molmo_spaces-0.2.9/molmo_spaces/robots/robot_views/rum_gripper_view.py +162 -0
  168. molmo_spaces-0.2.9/molmo_spaces/tasks/__init__.py +0 -0
  169. molmo_spaces-0.2.9/molmo_spaces/tasks/eval_task_sampler.py +325 -0
  170. molmo_spaces-0.2.9/molmo_spaces/tasks/gym_env.py +246 -0
  171. molmo_spaces-0.2.9/molmo_spaces/tasks/json_eval_task_sampler.py +893 -0
  172. molmo_spaces-0.2.9/molmo_spaces/tasks/llm_task_utils.py +203 -0
  173. molmo_spaces-0.2.9/molmo_spaces/tasks/multi_task.py +121 -0
  174. molmo_spaces-0.2.9/molmo_spaces/tasks/nav_task.py +318 -0
  175. molmo_spaces-0.2.9/molmo_spaces/tasks/nav_task_sampler.py +414 -0
  176. molmo_spaces-0.2.9/molmo_spaces/tasks/opening_task_samplers.py +517 -0
  177. molmo_spaces-0.2.9/molmo_spaces/tasks/opening_tasks.py +662 -0
  178. molmo_spaces-0.2.9/molmo_spaces/tasks/packing_task.py +10 -0
  179. molmo_spaces-0.2.9/molmo_spaces/tasks/packing_task_sampler.py +140 -0
  180. molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_color_task.py +44 -0
  181. molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_color_task_sampler.py +146 -0
  182. molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_next_to_task.py +177 -0
  183. molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_next_to_task_sampler.py +171 -0
  184. molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_object_target_task_sampler.py +164 -0
  185. molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_task.py +251 -0
  186. molmo_spaces-0.2.9/molmo_spaces/tasks/pick_and_place_task_sampler.py +541 -0
  187. molmo_spaces-0.2.9/molmo_spaces/tasks/pick_task.py +194 -0
  188. molmo_spaces-0.2.9/molmo_spaces/tasks/pick_task_sampler.py +1204 -0
  189. molmo_spaces-0.2.9/molmo_spaces/tasks/task.py +566 -0
  190. molmo_spaces-0.2.9/molmo_spaces/tasks/task_sampler.py +1147 -0
  191. molmo_spaces-0.2.9/molmo_spaces/tasks/task_sampler_errors.py +47 -0
  192. molmo_spaces-0.2.9/molmo_spaces/tasks/task_scene_utils.py +75 -0
  193. molmo_spaces-0.2.9/molmo_spaces/tasks/util_samplers/__init__.py +0 -0
  194. molmo_spaces-0.2.9/molmo_spaces/tasks/util_samplers/grasp_sampler.py +204 -0
  195. molmo_spaces-0.2.9/molmo_spaces/tasks/util_samplers/navgoal_sampler.py +295 -0
  196. molmo_spaces-0.2.9/molmo_spaces/utils/__init__.py +0 -0
  197. molmo_spaces-0.2.9/molmo_spaces/utils/articulation_utils.py +554 -0
  198. molmo_spaces-0.2.9/molmo_spaces/utils/asset_names.py +36 -0
  199. molmo_spaces-0.2.9/molmo_spaces/utils/benchmark_utils.py +1052 -0
  200. molmo_spaces-0.2.9/molmo_spaces/utils/camera_utils.py +45 -0
  201. molmo_spaces-0.2.9/molmo_spaces/utils/constants/__init__.py +0 -0
  202. molmo_spaces-0.2.9/molmo_spaces/utils/constants/camera_constants.py +29 -0
  203. molmo_spaces-0.2.9/molmo_spaces/utils/constants/object_constants.py +781 -0
  204. molmo_spaces-0.2.9/molmo_spaces/utils/constants/simulation_constants.py +1 -0
  205. molmo_spaces-0.2.9/molmo_spaces/utils/controller_utils.py +39 -0
  206. molmo_spaces-0.2.9/molmo_spaces/utils/depth_utils.py +716 -0
  207. molmo_spaces-0.2.9/molmo_spaces/utils/devices/__init__.py +0 -0
  208. molmo_spaces-0.2.9/molmo_spaces/utils/devices/keyboard.py +52 -0
  209. molmo_spaces-0.2.9/molmo_spaces/utils/devices/spacemouse.py +343 -0
  210. molmo_spaces-0.2.9/molmo_spaces/utils/distance_transform_utils.py +131 -0
  211. molmo_spaces-0.2.9/molmo_spaces/utils/eval_camera_randomization_utils.py +531 -0
  212. molmo_spaces-0.2.9/molmo_spaces/utils/eval_utils.py +532 -0
  213. molmo_spaces-0.2.9/molmo_spaces/utils/fisheye_warping.py +454 -0
  214. molmo_spaces-0.2.9/molmo_spaces/utils/function_utils.py +82 -0
  215. molmo_spaces-0.2.9/molmo_spaces/utils/grasp_sample.py +239 -0
  216. molmo_spaces-0.2.9/molmo_spaces/utils/grasps.py +340 -0
  217. molmo_spaces-0.2.9/molmo_spaces/utils/lazy_loading_utils.py +283 -0
  218. molmo_spaces-0.2.9/molmo_spaces/utils/lemma_utils.py +52 -0
  219. molmo_spaces-0.2.9/molmo_spaces/utils/license_utils.py +478 -0
  220. molmo_spaces-0.2.9/molmo_spaces/utils/linalg_utils.py +231 -0
  221. molmo_spaces-0.2.9/molmo_spaces/utils/mj_model_and_data_utils.py +200 -0
  222. molmo_spaces-0.2.9/molmo_spaces/utils/mp_logging.py +422 -0
  223. molmo_spaces-0.2.9/molmo_spaces/utils/mujoco_scene_utils.py +373 -0
  224. molmo_spaces-0.2.9/molmo_spaces/utils/object_metadata.py +402 -0
  225. molmo_spaces-0.2.9/molmo_spaces/utils/object_retriever.py +77 -0
  226. molmo_spaces-0.2.9/molmo_spaces/utils/patch_renderer_flags.py +16 -0
  227. molmo_spaces-0.2.9/molmo_spaces/utils/pose.py +69 -0
  228. molmo_spaces-0.2.9/molmo_spaces/utils/profiler_utils.py +340 -0
  229. molmo_spaces-0.2.9/molmo_spaces/utils/rendering_utils.py +23 -0
  230. molmo_spaces-0.2.9/molmo_spaces/utils/sampler_utils.py +256 -0
  231. molmo_spaces-0.2.9/molmo_spaces/utils/save_utils.py +1070 -0
  232. molmo_spaces-0.2.9/molmo_spaces/utils/scene_maps.py +1075 -0
  233. molmo_spaces-0.2.9/molmo_spaces/utils/scene_metadata_utils.py +189 -0
  234. molmo_spaces-0.2.9/molmo_spaces/utils/spatial_utils.py +116 -0
  235. molmo_spaces-0.2.9/molmo_spaces/utils/synset_utils.py +1380 -0
  236. molmo_spaces-0.2.9/molmo_spaces/utils/task_relevant_objects_and_workspace_utils.py +113 -0
  237. molmo_spaces-0.2.9/molmo_spaces/utils/test_utils.py +1083 -0
  238. molmo_spaces-0.2.9/molmo_spaces/utils/video_utils.py +113 -0
  239. molmo_spaces-0.2.9/molmo_spaces.egg-info/PKG-INFO +463 -0
  240. molmo_spaces-0.2.9/molmo_spaces.egg-info/SOURCES.txt +244 -0
  241. molmo_spaces-0.2.9/molmo_spaces.egg-info/dependency_links.txt +1 -0
  242. molmo_spaces-0.2.9/molmo_spaces.egg-info/entry_points.txt +2 -0
  243. molmo_spaces-0.2.9/molmo_spaces.egg-info/requires.txt +89 -0
  244. molmo_spaces-0.2.9/molmo_spaces.egg-info/top_level.txt +1 -0
  245. molmo_spaces-0.2.9/pyproject.toml +235 -0
  246. 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>&nbsp;&nbsp;<a href="https://huggingface.co/datasets/allenai/molmospaces" target="_blank" rel="noopener noreferrer"><img alt="Data" src="./docs/images/button_data.svg"/></a>&nbsp;&nbsp;<a href="https://allenai.github.io/molmospaces/" target="_blank" rel="noopener noreferrer"><img alt="Docs" src="./docs/images/button_docs.svg"/></a>&nbsp;&nbsp;<a href="https://molmospaces.allen.ai/" target="_blank" rel="noopener noreferrer"><img alt="Demo" src="./docs/images/button_demo.svg"/></a>&nbsp;&nbsp;<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>&nbsp;&nbsp;<a href="https://github.com/allenai/MolmoBot" target="_blank" rel="noopener noreferrer"><img alt="Paper" src="./docs/images/button_code_models.svg"/></a>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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
+ ```