mujoco-mojo 2.2.2__tar.gz → 2.2.3__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 (385) hide show
  1. mujoco_mojo-2.2.3/.gitattributes +3 -0
  2. mujoco_mojo-2.2.3/.github/workflows/docs.yml +33 -0
  3. mujoco_mojo-2.2.3/.github/workflows/release.yml +80 -0
  4. mujoco_mojo-2.2.3/.gitignore +27 -0
  5. mujoco_mojo-2.2.3/.pre-commit-config.yaml +57 -0
  6. mujoco_mojo-2.2.3/.python-version +1 -0
  7. mujoco_mojo-2.2.3/.vscode/settings.json +20 -0
  8. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/PKG-INFO +22 -23
  9. mujoco_mojo-2.2.3/TODO.md +1 -0
  10. mujoco_mojo-2.2.3/docs/about.md +9 -0
  11. mujoco_mojo-2.2.3/docs/assets/dark-hero-logo.png +0 -0
  12. mujoco_mojo-2.2.3/docs/assets/dark-hero-logo.svg +303 -0
  13. mujoco_mojo-2.2.3/docs/assets/light-hero-logo.svg +303 -0
  14. mujoco_mojo-2.2.3/docs/assets/logo.svg +306 -0
  15. mujoco_mojo-2.2.3/docs/assets/mesh/bunny_original.jpg +0 -0
  16. mujoco_mojo-2.2.3/docs/assets/mesh/bunny_with_coacd.jpg +0 -0
  17. mujoco_mojo-2.2.3/docs/assets/mesh/bunny_without_coacd.jpg +0 -0
  18. mujoco_mojo-2.2.3/docs/assets/mesh/frustums.jpg +0 -0
  19. mujoco_mojo-2.2.3/docs/assets/mesh/proximity/convex_hull_wireframe.jpg +0 -0
  20. mujoco_mojo-2.2.3/docs/assets/mesh/proximity/real_wireframe.jpg +0 -0
  21. mujoco_mojo-2.2.3/docs/assets/mesh/with_coacd.jpg +0 -0
  22. mujoco_mojo-2.2.3/docs/assets/mesh/without_coacd.jpg +0 -0
  23. mujoco_mojo-2.2.3/docs/assets/user-guides/dark-export-options.jpg +0 -0
  24. mujoco_mojo-2.2.3/docs/assets/user-guides/dark-monitor-view.jpg +0 -0
  25. mujoco_mojo-2.2.3/docs/assets/user-guides/dark-mosaic-view.jpg +0 -0
  26. mujoco_mojo-2.2.3/docs/assets/user-guides/dark-notes-editor.jpg +0 -0
  27. mujoco_mojo-2.2.3/docs/assets/user-guides/dark-plot-editor.jpg +0 -0
  28. mujoco_mojo-2.2.3/docs/assets/user-guides/dark-selector-bar.jpg +0 -0
  29. mujoco_mojo-2.2.3/docs/assets/user-guides/dark-shapes-editor.jpg +0 -0
  30. mujoco_mojo-2.2.3/docs/assets/user-guides/generate-result.jpg +0 -0
  31. mujoco_mojo-2.2.3/docs/assets/user-guides/light-export-options.jpg +0 -0
  32. mujoco_mojo-2.2.3/docs/assets/user-guides/light-monitor-view.jpg +0 -0
  33. mujoco_mojo-2.2.3/docs/assets/user-guides/light-mosaic-view.jpg +0 -0
  34. mujoco_mojo-2.2.3/docs/assets/user-guides/light-notes-editor.jpg +0 -0
  35. mujoco_mojo-2.2.3/docs/assets/user-guides/light-plot-editor.jpg +0 -0
  36. mujoco_mojo-2.2.3/docs/assets/user-guides/light-selector-bar.jpg +0 -0
  37. mujoco_mojo-2.2.3/docs/assets/user-guides/light-shapes-editor.jpg +0 -0
  38. mujoco_mojo-2.2.3/docs/assets/user-guides/runtime-anim.gif +0 -0
  39. mujoco_mojo-2.2.3/docs/index.md +175 -0
  40. mujoco_mojo-2.2.3/docs/javascripts/favicon-switcher.js +28 -0
  41. mujoco_mojo-2.2.3/docs/javascripts/mojo-highlighter.js +63 -0
  42. mujoco_mojo-2.2.3/docs/javascripts/tablesort.js +6 -0
  43. mujoco_mojo-2.2.3/docs/stylesheets/extra.css +227 -0
  44. mujoco_mojo-2.2.3/docs/user-guides/MOJO_RUNTIME_REPORT.md +47 -0
  45. mujoco_mojo-2.2.3/docs/user-guides/dojo.md +82 -0
  46. mujoco_mojo-2.2.3/docs/user-guides/generate-script.md +127 -0
  47. mujoco_mojo-2.2.3/docs/user-guides/getting-started.md +319 -0
  48. mujoco_mojo-2.2.3/docs/user-guides/init.md +65 -0
  49. mujoco_mojo-2.2.3/docs/user-guides/monitor.md +49 -0
  50. mujoco_mojo-2.2.3/docs/user-guides/monte_carlo_example.py +318 -0
  51. mujoco_mojo-2.2.3/docs/user-guides/mosaic.md +122 -0
  52. mujoco_mojo-2.2.3/docs/user-guides/optimization.md +125 -0
  53. mujoco_mojo-2.2.3/docs/user-guides/optimization_example.py +273 -0
  54. mujoco_mojo-2.2.3/docs/user-guides/reloaded.md +98 -0
  55. mujoco_mojo-2.2.3/docs/user-guides/running-jobs.md +151 -0
  56. mujoco_mojo-2.2.3/docs/user-guides/runtime-script.md +160 -0
  57. mujoco_mojo-2.2.3/examples/boxes_and_springs_monte_carlo.py +269 -0
  58. mujoco_mojo-2.2.3/examples/boxes_and_springs_optimization.py +268 -0
  59. mujoco_mojo-2.2.3/examples/tennis_racket_theorem.py +210 -0
  60. mujoco_mojo-2.2.3/mkdocs.yml +209 -0
  61. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/pyproject.toml +9 -5
  62. mujoco_mojo-2.2.3/requirements.txt +1969 -0
  63. mujoco_mojo-2.2.3/scripts/copy_docs_examples_to_examples.py +77 -0
  64. mujoco_mojo-2.2.3/scripts/fix_smart_quotes.py +63 -0
  65. mujoco_mojo-2.2.3/scripts/gen_ref_pages.py +87 -0
  66. mujoco_mojo-2.2.3/scripts/templating/filestomake.txt +49 -0
  67. mujoco_mojo-2.2.3/scripts/templating/make_sensors.py +54 -0
  68. mujoco_mojo-2.2.3/scripts/templating/sensor_template.py +11 -0
  69. mujoco_mojo-2.2.3/src/mujoco_mojo/templates/monte_carlo.py +36 -0
  70. mujoco_mojo-2.2.3/src/mujoco_mojo/templates/optimization.py +41 -0
  71. mujoco_mojo-2.2.3/src/mujoco_mojo/templates/reloaded.sh +7 -0
  72. mujoco_mojo-2.2.3/src/mujoco_mojo/templates/run_mc.sh +12 -0
  73. mujoco_mojo-2.2.3/src/mujoco_mojo/templates/run_opt.sh +13 -0
  74. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/cli.py +82 -23
  75. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/base.html +73 -33
  76. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_header.html +321 -0
  77. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_json_editor.html +60 -0
  78. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_overlays.html +82 -0
  79. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/dark-logo.svg +198 -0
  80. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/js/main.js +33 -4
  81. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/js/toast.d.ts +2 -0
  82. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/js/toast.d.ts.map +1 -0
  83. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/light-logo.svg +192 -0
  84. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/build.mjs +49 -0
  85. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/package-lock.json +548 -0
  86. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/package.json +16 -0
  87. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/lib/format.ts +18 -0
  88. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/lib/options.ts +79 -0
  89. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/lib/toast.ts +26 -0
  90. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/models.ts +182 -0
  91. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/monitor.ts +245 -0
  92. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/mosaic.ts +45 -0
  93. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/store.ts +323 -0
  94. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/trial-viewer.ts +1417 -0
  95. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/types/global.d.ts +58 -0
  96. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/tsconfig.json +20 -0
  97. mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/__init__.py +0 -0
  98. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/trial_viewer.html +4 -4
  99. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/runner.py +38 -0
  100. mujoco_mojo-2.2.3/tests/.gitignore +3 -0
  101. mujoco_mojo-2.2.3/tests/make_skybox.py +37 -0
  102. mujoco_mojo-2.2.3/tests/meshes/ball.stl +0 -0
  103. mujoco_mojo-2.2.3/tests/meshes/bunny2.stl +0 -0
  104. mujoco_mojo-2.2.3/tests/meshes/cup.stl +0 -0
  105. mujoco_mojo-2.2.3/tests/mjcf/inertial_test.py +226 -0
  106. mujoco_mojo-2.2.3/tests/mjcf/mesh.py +98 -0
  107. mujoco_mojo-2.2.3/tests/mjcf/orientation_test.py +110 -0
  108. mujoco_mojo-2.2.3/tests/mjcf/pos_test.py +86 -0
  109. mujoco_mojo-2.2.3/tests/mjcf/pose_test.py +99 -0
  110. mujoco_mojo-2.2.3/tests/mjcf/xml_model_test.py +211 -0
  111. mujoco_mojo-2.2.3/tests/model_with_skybox.xml +11 -0
  112. mujoco_mojo-2.2.3/tests/monte_carlo_test/asset_image.png +0 -0
  113. mujoco_mojo-2.2.3/tests/monte_carlo_test/monte_carlo.py +119 -0
  114. mujoco_mojo-2.2.3/tests/monte_carlo_test/overrides.json +9 -0
  115. mujoco_mojo-2.2.3/tests/monte_carlo_test/running_with_slurm.sh +33 -0
  116. mujoco_mojo-2.2.3/tests/runtime/conftest.py +34 -0
  117. mujoco_mojo-2.2.3/tests/runtime/loads_test.py +452 -0
  118. mujoco_mojo-2.2.3/tests/runtime/monte_carlo_bumper.py +407 -0
  119. mujoco_mojo-2.2.3/tests/runtime/optimizer_bumper.py +385 -0
  120. mujoco_mojo-2.2.3/tests/runtime/runtime_manager_test.py +100 -0
  121. mujoco_mojo-2.2.3/tests/runtime/signal_manager_test.py +250 -0
  122. mujoco_mojo-2.2.3/tests/smoke_test.py +4 -0
  123. mujoco_mojo-2.2.3/tests/utils/color_test.py +96 -0
  124. mujoco_mojo-2.2.3/tests/utils/dataframe_test.py +200 -0
  125. mujoco_mojo-2.2.3/tests/utils/filter_test.py +347 -0
  126. mujoco_mojo-2.2.3/tests/utils/interp_test.py +72 -0
  127. mujoco_mojo-2.2.3/tests/utils/proximity_test.py +618 -0
  128. mujoco_mojo-2.2.3/typings/mujoco/__init__.pyi +1273 -0
  129. mujoco_mojo-2.2.3/typings/mujoco/_callbacks.pyi +50 -0
  130. mujoco_mojo-2.2.3/typings/mujoco/_constants.pyi +183 -0
  131. mujoco_mojo-2.2.3/typings/mujoco/_enums.pyi +6973 -0
  132. mujoco_mojo-2.2.3/typings/mujoco/_errors.pyi +5 -0
  133. mujoco_mojo-2.2.3/typings/mujoco/_functions.pyi +2950 -0
  134. mujoco_mojo-2.2.3/typings/mujoco/_render.pyi +503 -0
  135. mujoco_mojo-2.2.3/typings/mujoco/_specs.pyi +2988 -0
  136. mujoco_mojo-2.2.3/typings/mujoco/_structs.pyi +6587 -0
  137. mujoco_mojo-2.2.3/typings/mujoco/cgl/__init__.pyi +23 -0
  138. mujoco_mojo-2.2.3/typings/mujoco/cgl/cgl.pyi +89 -0
  139. mujoco_mojo-2.2.3/typings/mujoco/gl_context.pyi +14 -0
  140. mujoco_mojo-2.2.3/typings/mujoco/glfw/__init__.pyi +17 -0
  141. mujoco_mojo-2.2.3/typings/mujoco/renderer.pyi +113 -0
  142. mujoco_mojo-2.2.3/uv.lock +3925 -0
  143. mujoco_mojo-2.2.2/setup.cfg +0 -4
  144. mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_header.html +0 -322
  145. mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_json_editor.html +0 -60
  146. mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_overlays.html +0 -83
  147. mujoco_mojo-2.2.2/src/mujoco_mojo.egg-info/PKG-INFO +0 -224
  148. mujoco_mojo-2.2.2/src/mujoco_mojo.egg-info/SOURCES.txt +0 -248
  149. mujoco_mojo-2.2.2/src/mujoco_mojo.egg-info/dependency_links.txt +0 -1
  150. mujoco_mojo-2.2.2/src/mujoco_mojo.egg-info/entry_points.txt +0 -2
  151. mujoco_mojo-2.2.2/src/mujoco_mojo.egg-info/requires.txt +0 -37
  152. mujoco_mojo-2.2.2/src/mujoco_mojo.egg-info/top_level.txt +0 -1
  153. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/LICENSE +0 -0
  154. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/README.md +0 -0
  155. {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static → mujoco_mojo-2.2.3/docs/assets}/dark-logo.svg +0 -0
  156. {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static → mujoco_mojo-2.2.3/docs/assets}/light-logo.svg +0 -0
  157. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/__about__.py +0 -0
  158. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/__init__.py +0 -0
  159. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/base.py +0 -0
  160. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/meta.py +0 -0
  161. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/__init__.py +0 -0
  162. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/defaults.py +0 -0
  163. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/dependency_path.py +0 -0
  164. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/extension.py +0 -0
  165. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/meta/__init__.py +0 -0
  166. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/meta/frame.py +0 -0
  167. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/meta/include.py +0 -0
  168. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/meta/replicate.py +0 -0
  169. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco.py +0 -0
  170. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/__init__.py +0 -0
  171. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator.py +0 -0
  172. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/__init__.py +0 -0
  173. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/adhesion.py +0 -0
  174. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/base.py +0 -0
  175. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/cylinder.py +0 -0
  176. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/damper.py +0 -0
  177. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/dcmotor.py +0 -0
  178. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/general.py +0 -0
  179. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/intvelocity.py +0 -0
  180. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/motor.py +0 -0
  181. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/muscle.py +0 -0
  182. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/plugin.py +0 -0
  183. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/position.py +0 -0
  184. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/velocity.py +0 -0
  185. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/asset.py +0 -0
  186. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/__init__.py +0 -0
  187. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/hfield.py +0 -0
  188. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/material.py +0 -0
  189. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/material_attr/__init__.py +0 -0
  190. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/material_attr/layer.py +0 -0
  191. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/mesh.py +0 -0
  192. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/model.py +0 -0
  193. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/texture.py +0 -0
  194. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body.py +0 -0
  195. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/__init__.py +0 -0
  196. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/attach.py +0 -0
  197. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/camera.py +0 -0
  198. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/composite.py +0 -0
  199. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/composite_attr/__init__.py +0 -0
  200. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/composite_attr/geom.py +0 -0
  201. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/composite_attr/joint.py +0 -0
  202. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/composite_attr/site.py +0 -0
  203. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/composite_attr/skin.py +0 -0
  204. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/flexcomp.py +0 -0
  205. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/flexcomp_attr/__init__.py +0 -0
  206. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/flexcomp_attr/contact.py +0 -0
  207. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/flexcomp_attr/edge.py +0 -0
  208. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/flexcomp_attr/elasticity.py +0 -0
  209. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/flexcomp_attr/pin.py +0 -0
  210. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/free_joint.py +0 -0
  211. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/geom.py +0 -0
  212. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/inertial.py +0 -0
  213. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/joint.py +0 -0
  214. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/light.py +0 -0
  215. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/plugin.py +0 -0
  216. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/site.py +0 -0
  217. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/compiler.py +0 -0
  218. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/compiler_attr/__init__.py +0 -0
  219. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/compiler_attr/lengthrange.py +0 -0
  220. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/contact.py +0 -0
  221. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/contact_attr/__init__.py +0 -0
  222. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/contact_attr/exclude.py +0 -0
  223. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/contact_attr/pair.py +0 -0
  224. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/deformable.py +0 -0
  225. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/__init__.py +0 -0
  226. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/flex.py +0 -0
  227. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/flex_attr/__init__.py +0 -0
  228. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/flex_attr/contact.py +0 -0
  229. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/flex_attr/edge.py +0 -0
  230. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/flex_attr/elasticity.py +0 -0
  231. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/skin.py +0 -0
  232. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/skin_attr/__init__.py +0 -0
  233. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/skin_attr/bone.py +0 -0
  234. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/equality.py +0 -0
  235. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/__init__.py +0 -0
  236. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/connect.py +0 -0
  237. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/equality_base.py +0 -0
  238. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/flex.py +0 -0
  239. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/flexstrain.py +0 -0
  240. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/flexvert.py +0 -0
  241. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/joint.py +0 -0
  242. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/tendon.py +0 -0
  243. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/weld.py +0 -0
  244. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/keyframe.py +0 -0
  245. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/keyframe_attr/__init__.py +0 -0
  246. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/keyframe_attr/key.py +0 -0
  247. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/option.py +0 -0
  248. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/option_attr/__init__.py +0 -0
  249. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/option_attr/flag.py +0 -0
  250. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor.py +0 -0
  251. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/__init__.py +0 -0
  252. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/accelerometer.py +0 -0
  253. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/actuatorfrc.py +0 -0
  254. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/actuatorpos.py +0 -0
  255. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/actuatorvel.py +0 -0
  256. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/ballangvel.py +0 -0
  257. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/ballquat.py +0 -0
  258. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/base.py +0 -0
  259. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/base_collision.py +0 -0
  260. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/camprojection.py +0 -0
  261. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/clock.py +0 -0
  262. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/contact.py +0 -0
  263. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/distance.py +0 -0
  264. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/e_kinetic.py +0 -0
  265. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/e_potential.py +0 -0
  266. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/force.py +0 -0
  267. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/frameangacc.py +0 -0
  268. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/frameangvel.py +0 -0
  269. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/framelinacc.py +0 -0
  270. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/framelinvel.py +0 -0
  271. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/framepos.py +0 -0
  272. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/framequat.py +0 -0
  273. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/framexaxis.py +0 -0
  274. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/frameyaxis.py +0 -0
  275. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/framezaxis.py +0 -0
  276. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/fromto.py +0 -0
  277. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/gyro.py +0 -0
  278. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/insidesite.py +0 -0
  279. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/jointactuatorfrc.py +0 -0
  280. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/jointlimitfrc.py +0 -0
  281. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/jointlimitpos.py +0 -0
  282. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/jointlimitvel.py +0 -0
  283. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/jointpos.py +0 -0
  284. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/jointvel.py +0 -0
  285. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/magnetometer.py +0 -0
  286. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/normal.py +0 -0
  287. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/plugin.py +0 -0
  288. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/rangefinder.py +0 -0
  289. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/subtreeangmom.py +0 -0
  290. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/subtreecom.py +0 -0
  291. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/subtreelinvel.py +0 -0
  292. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tactile.py +0 -0
  293. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tendonactuatorfrc.py +0 -0
  294. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tendonlimitfrc.py +0 -0
  295. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tendonlimitpos.py +0 -0
  296. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tendonlimitvel.py +0 -0
  297. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tendonpos.py +0 -0
  298. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tendonvel.py +0 -0
  299. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/torque.py +0 -0
  300. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/touch.py +0 -0
  301. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/user.py +0 -0
  302. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/velocimeter.py +0 -0
  303. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/size.py +0 -0
  304. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/statistic.py +0 -0
  305. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/tendon.py +0 -0
  306. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/__init__.py +0 -0
  307. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/fixed.py +0 -0
  308. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/fixed_attr/__init__.py +0 -0
  309. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/fixed_attr/joint.py +0 -0
  310. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/spatial.py +0 -0
  311. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/spatial_attr/__init__.py +0 -0
  312. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/spatial_attr/geom.py +0 -0
  313. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/spatial_attr/pulley.py +0 -0
  314. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/spatial_attr/site.py +0 -0
  315. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/tendon_base.py +0 -0
  316. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/visual.py +0 -0
  317. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/__init__.py +0 -0
  318. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/global_.py +0 -0
  319. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/headlight.py +0 -0
  320. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/map.py +0 -0
  321. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/quality.py +0 -0
  322. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/rgba.py +0 -0
  323. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/scale.py +0 -0
  324. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/orientation.py +0 -0
  325. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/plugin.py +0 -0
  326. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/pose.py +0 -0
  327. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/position.py +0 -0
  328. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mjcf/xml_model.py +0 -0
  329. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/mojo_model.py +0 -0
  330. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/runtime/__init__.py +0 -0
  331. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/runtime/load.py +0 -0
  332. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/runtime/runtime_manager.py +0 -0
  333. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/runtime/signal_manager.py +0 -0
  334. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/runtime/video_recorder.py +0 -0
  335. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/stochas/__init__.py +0 -0
  336. {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers → mujoco_mojo-2.2.3/src/mujoco_mojo/templates}/__init__.py +0 -0
  337. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/typing.py +0 -0
  338. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/__init__.py +0 -0
  339. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/color.py +0 -0
  340. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/dataframe.py +0 -0
  341. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/defaults.py +0 -0
  342. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/filters/__init__.py +0 -0
  343. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/filters/filters.py +0 -0
  344. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/interp.py +0 -0
  345. {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo → mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers}/__init__.py +0 -0
  346. {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/routers → mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo}/__init__.py +0 -0
  347. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/main.py +0 -0
  348. {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates → mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/routers}/__init__.py +0 -0
  349. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/routers/monitor.py +0 -0
  350. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/routers/morph.py +0 -0
  351. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/routers/mosaic.py +0 -0
  352. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/shared.py +0 -0
  353. {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static → mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates}/__init__.py +0 -0
  354. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/error.html +0 -0
  355. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/monitor.html +0 -0
  356. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/morph.html +0 -0
  357. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/mosaic.html +0 -0
  358. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_chart.html +0 -0
  359. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_series_panel.html +0 -0
  360. {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static/js → mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static}/__init__.py +0 -0
  361. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/chime.mp3 +0 -0
  362. {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored → mujoco_mojo-2.2.3/src/mujoco_mojo/utils/layers/dojo/templates/static/js}/__init__.py +0 -0
  363. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/js/monitor.js +0 -0
  364. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/js/mosaic.js +0 -0
  365. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/js/toast.js +0 -0
  366. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/js/trial-viewer.js +0 -0
  367. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/main.css +0 -0
  368. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/main.js +0 -0
  369. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/monitor.js +0 -0
  370. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/mosaic.js +0 -0
  371. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/trial-viewer.js +0 -0
  372. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/alpine.min.js +0 -0
  373. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/confetti.browser.min.js +0 -0
  374. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/iro.min.js +0 -0
  375. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/lz-string.min.js +0 -0
  376. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/plotly-3.4.0.min.js +0 -0
  377. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/tailwind.min.js +0 -0
  378. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/layers/reloaded.py +0 -0
  379. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/log.py +0 -0
  380. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/proximity.py +0 -0
  381. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/proximity_mixin.py +0 -0
  382. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/statusing.py +0 -0
  383. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/utils/utils.py +0 -0
  384. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/src/mujoco_mojo/visualization.py +0 -0
  385. {mujoco_mojo-2.2.2 → mujoco_mojo-2.2.3}/tests/test_writer.py +0 -0
@@ -0,0 +1,3 @@
1
+ # Ignore site files in language statistics
2
+ site/** linguist-documentation=true
3
+ site/** linguist-vendored=true
@@ -0,0 +1,33 @@
1
+ name: Documentation
2
+ on:
3
+ push:
4
+ branches:
5
+ - master
6
+ - main
7
+ permissions:
8
+ contents: read
9
+ pages: write
10
+ id-token: write
11
+ jobs:
12
+ deploy:
13
+ environment:
14
+ name: github-pages
15
+ url: ${{ steps.deployment.outputs.page_url }}
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/configure-pages@v5
19
+ - uses: actions/checkout@v5
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v5
22
+ with:
23
+ enable-cache: true
24
+ - name: Install Python 3.13
25
+ run: uv python install 3.13
26
+ - name: Generate API reference pages
27
+ run: uv run --python 3.13 --group dev python mujoco-mojo/scripts/gen_ref_pages.py
28
+ - run: uv run --python 3.13 --group dev zensical build --clean
29
+ - uses: actions/upload-pages-artifact@v4
30
+ with:
31
+ path: site
32
+ - uses: actions/deploy-pages@v4
33
+ id: deployment
@@ -0,0 +1,80 @@
1
+ name: "Publish"
2
+
3
+ on:
4
+ push:
5
+ branches: ["master"] # Run tests on every push to main
6
+ tags: ["v*"] # Run tests AND publish on tags
7
+ pull_request:
8
+ branches: ["master"] # Run tests on PRs
9
+
10
+ jobs:
11
+ test:
12
+ name: "Test (Python ${{ matrix.python-version }})"
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ matrix:
16
+ # Parallelize tests across your supported versions
17
+ python-version: ["3.12", "3.13", "3.14"]
18
+
19
+ steps:
20
+ - name: Checkout
21
+ uses: actions/checkout@v4
22
+
23
+ - name: Install uv
24
+ uses: astral-sh/setup-uv@v5
25
+ with:
26
+ enable-cache: true
27
+
28
+ - name: Install Python ${{ matrix.python-version }}
29
+ run: uv python install ${{ matrix.python-version }}
30
+
31
+ - name: Run unit tests
32
+ # Explicitly tells uv which python version to use for the test environment
33
+ run: uv run --python ${{ matrix.python-version }} --group dev pytest
34
+ publish:
35
+ name: "Build and Publish"
36
+ needs: [test]
37
+ # ONLY run this job if the push was actually a tag
38
+ if: startsWith(github.ref, 'refs/tags/v')
39
+ runs-on: ubuntu-latest
40
+ environment:
41
+ name: pypi
42
+ permissions:
43
+ id-token: write # Required for PyPI Trusted Publishing
44
+ contents: write # Required to create GitHub Release and upload assets
45
+ steps:
46
+ - name: Checkout
47
+ uses: actions/checkout@v6
48
+ with:
49
+ # Fetch all history so we can see other branches
50
+ fetch-depth: 0
51
+
52
+ - name: Verify Tag is on Master
53
+ # Only perform this check if we were triggered by a tag
54
+ if: startsWith(github.ref, 'refs/tags/v')
55
+ run: |
56
+ # Check if 'master' branch contains the current commit
57
+ if ! git branch -r --contains ${{ github.sha }} | grep -q "origin/master"; then
58
+ echo "::error::Tag ${{ github.ref_name }} was pushed on a non-master branch. Skipping workflow."
59
+ exit 1
60
+ fi
61
+
62
+ - name: Install uv
63
+ uses: astral-sh/setup-uv@v7
64
+
65
+ - name: Install Python 3.13
66
+ run: uv python install 3.13
67
+
68
+ - name: Build
69
+ run: uv build
70
+
71
+ - name: Publish to PyPI
72
+ run: uv publish --check-url https://pypi.org/simple
73
+
74
+ - name: Create GitHub Release
75
+ uses: softprops/action-gh-release@v2
76
+ with:
77
+ generate_release_notes: true
78
+ files: |
79
+ dist/*.whl
80
+ dist/*.tar.gz
@@ -0,0 +1,27 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
11
+
12
+ mojo.log
13
+ mojo.log.*
14
+
15
+ site
16
+ docs/reference/
17
+ mojo-models
18
+ textures
19
+
20
+ MUJOCO_LOG.TXT
21
+
22
+ /*.mp4
23
+ /*.gif
24
+
25
+ # TypeScript build artifacts (node_modules is dev-only; compiled .js files ARE committed)
26
+ node_modules/
27
+ *.js.map
@@ -0,0 +1,57 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v6.0.0
4
+ hooks:
5
+ - id: check-added-large-files
6
+ args: ["--maxkb=500"]
7
+ - repo: local
8
+ hooks:
9
+ - id: fix-smart-quotes
10
+ name: Replace smart quotes
11
+ entry: python scripts/fix_smart_quotes.py
12
+ language: python
13
+ files: ^src/
14
+ pass_filenames: false
15
+ always_run: true
16
+ stages: [pre-commit]
17
+ - repo: local
18
+ hooks:
19
+ - id: copy-docs-examples
20
+ name: Copy Docs Examples to Examples
21
+ entry: python scripts/copy_docs_examples_to_examples.py
22
+ language: python
23
+ files: ^docs/user-guides/.*\.py$
24
+ additional_dependencies: [ruff==0.14.14]
25
+ stages: [pre-commit]
26
+ - repo: https://github.com/astral-sh/ruff-pre-commit
27
+ # Ruff version.
28
+ rev: v0.14.14
29
+ hooks:
30
+ # Run the linter.
31
+ - id: ruff-check
32
+ args: [--fix]
33
+ # Run the formatter.
34
+ - id: ruff-format
35
+ - repo: https://github.com/astral-sh/uv-pre-commit
36
+ # uv version.
37
+ rev: 0.9.27
38
+ hooks:
39
+ - id: uv-lock
40
+ - repo: https://github.com/astral-sh/uv-pre-commit
41
+ # uv version.
42
+ rev: 0.9.27
43
+ hooks:
44
+ - id: uv-export
45
+ - repo: https://github.com/RobertCraigie/pyright-python
46
+ rev: v1.1.408
47
+ hooks:
48
+ - id: pyright
49
+ - repo: local
50
+ hooks:
51
+ - id: act-test
52
+ name: Run GitHub Actions locally (act)
53
+ entry: act -j test
54
+ language: system
55
+ stages: [pre-push]
56
+ pass_filenames: false
57
+ files: ^(src/|tests/|pyproject\.toml|uv\.lock)
@@ -0,0 +1 @@
1
+ 3.13
@@ -0,0 +1,20 @@
1
+ {
2
+ "xml.fileAssociations": [
3
+ {
4
+ "pattern": "**/*.xml",
5
+ "systemId": "../mujoco-xml-schema-mjcf/mujoco.xsd"
6
+ }
7
+ ],
8
+ "yaml.schemas": {
9
+ "https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yml"
10
+ },
11
+ "yaml.customTags": [
12
+ "!ENV scalar",
13
+ "!ENV sequence",
14
+ "!relative scalar",
15
+ "tag:yaml.org,2002:python/name:material.extensions.emoji.to_svg",
16
+ "tag:yaml.org,2002:python/name:material.extensions.emoji.twemoji",
17
+ "tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format",
18
+ "tag:yaml.org,2002:python/object/apply:pymdownx.slugs.slugify mapping"
19
+ ]
20
+ }
@@ -1,64 +1,63 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mujoco-mojo
3
- Version: 2.2.2
3
+ Version: 2.2.3
4
4
  Summary: A complete MJCF lifecycle and trial orchestration suite for MuJoCo, powered by Pydantic v2.
5
- Author-email: David Gable <dave.a.gable@gmail.com>
6
- Maintainer-email: David Gable <dave.a.gable@gmail.com>
7
- License: Apache-2.0
8
5
  Project-URL: Homepage, https://github.com/Hydrowelder/mujoco-mojo
9
6
  Project-URL: Documentation, https://hydrowelder.github.io/mujoco-mojo/
10
7
  Project-URL: Repository, https://github.com/Hydrowelder/mujoco-mojo
11
8
  Project-URL: Issues, https://github.com/Hydrowelder/mujoco-mojo/issues
12
9
  Project-URL: Discussions, https://github.com/Hydrowelder/mujoco-mojo/discussions
13
- Keywords: mujoco,robotics,simulation,monte-carlo,physics,pydantic,orchestration,mjcf
10
+ Author-email: David Gable <dave.a.gable@gmail.com>
11
+ Maintainer-email: David Gable <dave.a.gable@gmail.com>
12
+ License: Apache-2.0
13
+ License-File: LICENSE
14
+ Keywords: mjcf,monte-carlo,mujoco,orchestration,physics,pydantic,robotics,simulation
14
15
  Classifier: Development Status :: 4 - Beta
15
16
  Classifier: Intended Audience :: Science/Research
16
- Classifier: Topic :: Scientific/Engineering :: Physics
17
- Classifier: Topic :: Scientific/Engineering :: Visualization
18
17
  Classifier: License :: OSI Approved :: Apache Software License
19
18
  Classifier: Programming Language :: Python :: 3.12
20
19
  Classifier: Programming Language :: Python :: 3.13
21
20
  Classifier: Programming Language :: Python :: 3.14
21
+ Classifier: Topic :: Scientific/Engineering :: Physics
22
+ Classifier: Topic :: Scientific/Engineering :: Visualization
22
23
  Requires-Python: >=3.12
23
- Description-Content-Type: text/markdown
24
- License-File: LICENSE
25
24
  Requires-Dist: coacd>=1.0.7
26
25
  Requires-Dist: fastapi>=0.134.0
27
26
  Requires-Dist: fastparquet>=2025.12.0
27
+ Requires-Dist: filelock>=3.29.0
28
+ Requires-Dist: ipykernel>=7.2.0
28
29
  Requires-Dist: jinja2>=3.1.6
30
+ Requires-Dist: joblib>=1.5.3
29
31
  Requires-Dist: matplotlib>=3.10.8
30
32
  Requires-Dist: mediapy>=1.2.6
31
33
  Requires-Dist: mujoco>=3.8.0
32
34
  Requires-Dist: numpy>=2.4.1
33
35
  Requires-Dist: numpydantic>=1.7.0
36
+ Requires-Dist: optuna-dashboard>=0.20.0
37
+ Requires-Dist: optuna>=4.8.0
34
38
  Requires-Dist: pandas>=3.0.0
35
39
  Requires-Dist: pillow>=12.1.1
40
+ Requires-Dist: pint>=0.25.3
41
+ Requires-Dist: pip>=26.0.1
36
42
  Requires-Dist: polars>=1.39.0
37
43
  Requires-Dist: pyarrow>=23.0.1
38
44
  Requires-Dist: pybind11-stubgen>=2.5.5
39
45
  Requires-Dist: pydantic>=2.12.5
46
+ Requires-Dist: python-fcl>=0.7.0.11
40
47
  Requires-Dist: rich>=14.3.3
41
- Requires-Dist: scipy>=1.17.0
48
+ Requires-Dist: rtree>=1.4.1
42
49
  Requires-Dist: scipy-stubs[scipy]>=1.17.0.2
43
- Requires-Dist: stochas>=2.0.0
50
+ Requires-Dist: scipy>=1.17.0
44
51
  Requires-Dist: sse-starlette>=3.3.4
52
+ Requires-Dist: stochas>=2.0.0
45
53
  Requires-Dist: tabulate>=0.9.0
46
54
  Requires-Dist: trimesh>=4.11.2
47
55
  Requires-Dist: typer>=0.24.1
48
56
  Requires-Dist: uvicorn>=0.41.0
49
- Requires-Dist: ipykernel>=7.2.0
50
- Requires-Dist: pip>=26.0.1
51
- Requires-Dist: optuna>=4.8.0
52
- Requires-Dist: joblib>=1.5.3
53
- Requires-Dist: optuna-dashboard>=0.20.0
54
- Requires-Dist: pint>=0.25.3
55
- Requires-Dist: python-fcl>=0.7.0.11
56
- Requires-Dist: rtree>=1.4.1
57
- Requires-Dist: filelock>=3.29.0
58
57
  Provides-Extra: reloaded
59
- Requires-Dist: mjviser>=0.0.11; extra == "reloaded"
60
- Requires-Dist: viser>=1.0.26; extra == "reloaded"
61
- Dynamic: license-file
58
+ Requires-Dist: mjviser>=0.0.11; extra == 'reloaded'
59
+ Requires-Dist: viser>=1.0.26; extra == 'reloaded'
60
+ Description-Content-Type: text/markdown
62
61
 
63
62
  <p align="center">
64
63
  <img alt="MuJoCo Mojo" src="https://raw.githubusercontent.com/hydrowelder/mujoco-mojo/master/docs/assets/dark-hero-logo.svg" style="width: 100%">
@@ -0,0 +1 @@
1
+ [ ] Add a "dependency" Path type alias (used in XML writer to copy the file local to the XML file/use resolved path, but that makes things less portable)
@@ -0,0 +1,9 @@
1
+ **MuJoCo Mojo**[^1] was developed by David Gable to add additional analytical capability to the [MuJoCo](https://mujoco.org/){target:"_blank"} physics engine. Check out my other work on [my website](https://www.david-gable.com/){target:"_blank"}.
2
+
3
+
4
+ !!! info "Disclaimer & Attribution"
5
+ **MuJoCo Mojo** is an independently developed open-source toolbox. It is **not** affiliated with, sponsored by, or endorsed by **Google DeepMind** or the official **MuJoCo** development team.
6
+
7
+ MuJoCo® is a registered trademark of Google LLC. All MJCF schemas and MuJoCo-related terminology used within this project are for compatibility and documentation purposes only.
8
+
9
+ [^1]: In case you were wondering, the lines in the **MuJoCo Mojo** logo are right-side up and upside-down "M"s.
@@ -0,0 +1,303 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ width="1600"
6
+ height="512"
7
+ viewBox="0 0 423.33352 135.46653"
8
+ version="1.1"
9
+ id="svg1"
10
+ inkscape:version="1.4.3 (0d15f75, 2025-12-25)"
11
+ sodipodi:docname="logo.svg"
12
+ inkscape:export-filename="dark-hero-logo.svg"
13
+ inkscape:export-xdpi="96"
14
+ inkscape:export-ydpi="96"
15
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
16
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
17
+ xmlns:xlink="http://www.w3.org/1999/xlink"
18
+ xmlns="http://www.w3.org/2000/svg"
19
+ xmlns:svg="http://www.w3.org/2000/svg"
20
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
21
+ xmlns:cc="http://creativecommons.org/ns#"
22
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
23
+ <title
24
+ id="title5">MuJoCo Mojo Logo</title>
25
+ <sodipodi:namedview
26
+ id="namedview1"
27
+ pagecolor="#ffffff"
28
+ bordercolor="#000000"
29
+ borderopacity="0.25"
30
+ inkscape:showpageshadow="2"
31
+ inkscape:pageopacity="0.0"
32
+ inkscape:pagecheckerboard="true"
33
+ inkscape:deskcolor="#d1d1d1"
34
+ inkscape:document-units="mm"
35
+ inkscape:zoom="1.1172287"
36
+ inkscape:cx="775.13224"
37
+ inkscape:cy="297.6114"
38
+ inkscape:window-width="3840"
39
+ inkscape:window-height="2050"
40
+ inkscape:window-x="3828"
41
+ inkscape:window-y="-12"
42
+ inkscape:window-maximized="1"
43
+ inkscape:current-layer="layer1"
44
+ showgrid="true"
45
+ labelstyle="default">
46
+ <inkscape:page
47
+ x="0"
48
+ y="0"
49
+ width="423.33353"
50
+ height="135.46654"
51
+ id="page2"
52
+ margin="0"
53
+ bleed="0" />
54
+ </sodipodi:namedview>
55
+ <defs
56
+ id="defs1">
57
+ <linearGradient
58
+ id="linearGradient33"
59
+ inkscape:label="Light to Cyan">
60
+ <stop
61
+ style="stop-color:#06b6d4;stop-opacity:1;"
62
+ offset="0.35751292"
63
+ id="stop10" />
64
+ <stop
65
+ style="stop-color:#e2e8f0;stop-opacity:1;"
66
+ offset="0.92227978"
67
+ id="stop12" />
68
+ </linearGradient>
69
+ <linearGradient
70
+ id="linearGradient33-1"
71
+ inkscape:label="Dark to Cyan">
72
+ <stop
73
+ style="stop-color:#06b6d4;stop-opacity:1;"
74
+ offset="0.35751292"
75
+ id="stop32" />
76
+ <stop
77
+ style="stop-color:#0f172a;stop-opacity:1;"
78
+ offset="0.92227978"
79
+ id="stop33" />
80
+ </linearGradient>
81
+ <linearGradient
82
+ id="swatch8"
83
+ inkscape:swatch="solid">
84
+ <stop
85
+ style="stop-color:#000000;stop-opacity:1;"
86
+ offset="0"
87
+ id="stop8" />
88
+ </linearGradient>
89
+ <linearGradient
90
+ id="swatch7"
91
+ inkscape:swatch="solid">
92
+ <stop
93
+ style="stop-color:#1e293b;stop-opacity:1;"
94
+ offset="0"
95
+ id="stop7" />
96
+ </linearGradient>
97
+ <linearGradient
98
+ id="swatch4"
99
+ inkscape:swatch="solid">
100
+ <stop
101
+ style="stop-color:#000000;stop-opacity:1;"
102
+ offset="0"
103
+ id="stop4" />
104
+ </linearGradient>
105
+ <linearGradient
106
+ id="swatch6"
107
+ inkscape:swatch="solid"
108
+ inkscape:label="slate-500">
109
+ <stop
110
+ style="stop-color:#62748e;stop-opacity:1;"
111
+ offset="0"
112
+ id="stop6" />
113
+ </linearGradient>
114
+ <linearGradient
115
+ id="swatch5"
116
+ inkscape:swatch="solid"
117
+ inkscape:label="cyan-500">
118
+ <stop
119
+ style="stop-color:#00b8db;stop-opacity:1;"
120
+ offset="0"
121
+ id="stop5" />
122
+ </linearGradient>
123
+ <radialGradient
124
+ inkscape:collect="always"
125
+ xlink:href="#linearGradient33"
126
+ id="radialGradient32"
127
+ cx="47"
128
+ cy="47"
129
+ fx="47"
130
+ fy="47"
131
+ r="16.316183"
132
+ gradientTransform="matrix(1,0,0,1.1547005,0,-7.2709252)"
133
+ gradientUnits="userSpaceOnUse" />
134
+ <radialGradient
135
+ inkscape:collect="always"
136
+ xlink:href="#linearGradient33-1"
137
+ id="radialGradient12"
138
+ gradientUnits="userSpaceOnUse"
139
+ gradientTransform="matrix(1,0,0,1.1547005,0,-7.2709252)"
140
+ cx="47"
141
+ cy="47"
142
+ fx="47"
143
+ fy="47"
144
+ r="16.316183" />
145
+ <rect
146
+ x="530.90698"
147
+ y="6.457725"
148
+ width="1143.1482"
149
+ height="520.78326"
150
+ id="rect13" />
151
+ </defs>
152
+ <metadata
153
+ id="metadata5">
154
+ <rdf:RDF>
155
+ <cc:Work
156
+ rdf:about="">
157
+ <dc:title>MuJoCo Mojo Logo</dc:title>
158
+ <dc:creator>
159
+ <cc:Agent>
160
+ <dc:title>David Gable</dc:title>
161
+ </cc:Agent>
162
+ </dc:creator>
163
+ </cc:Work>
164
+ </rdf:RDF>
165
+ </metadata>
166
+ <g
167
+ inkscape:groupmode="layer"
168
+ id="layer1"
169
+ inkscape:label="Layer 1">
170
+ <rect
171
+ style="display:inline;fill:#0f172a;fill-opacity:0;stroke:#0f172a;stroke-width:0;stroke-dasharray:none"
172
+ id="rect12"
173
+ width="135.46672"
174
+ height="135.46672"
175
+ x="0"
176
+ y="-9.5290525e-05"
177
+ inkscape:label="LOGO-TRANS-BG"
178
+ sodipodi:insensitive="true"
179
+ inkscape:export-filename="dark-logo.svg"
180
+ inkscape:export-xdpi="96"
181
+ inkscape:export-ydpi="96" />
182
+ <g
183
+ id="g8"
184
+ transform="translate(-28.906597,-33.400236)"
185
+ inkscape:label="DARK-LOGO"
186
+ style="display:inline"
187
+ sodipodi:insensitive="true"
188
+ inkscape:export-filename="dark-logo.svg"
189
+ inkscape:export-xdpi="96"
190
+ inkscape:export-ydpi="96">
191
+ <path
192
+ sodipodi:type="star"
193
+ style="display:inline;fill:url(#radialGradient12);stroke:#0f172a;stroke-width:2.2518;stroke-dasharray:none;stroke-opacity:1"
194
+ id="path6"
195
+ inkscape:flatsided="true"
196
+ sodipodi:sides="6"
197
+ sodipodi:cx="47"
198
+ sodipodi:cy="47"
199
+ sodipodi:r1="18.027756"
200
+ sodipodi:r2="15.612495"
201
+ sodipodi:arg1="0.52359878"
202
+ sodipodi:arg2="1.0471976"
203
+ inkscape:rounded="0"
204
+ inkscape:randomized="0"
205
+ d="M 62.612494,56.013878 47,65.027756 31.387506,56.013878 l 0,-18.027756 L 47,28.972244 62.612494,37.986122 Z"
206
+ transform="matrix(3.5044454,0,0,3.5044454,-68.068977,-63.575426)"
207
+ inkscape:label="hex"
208
+ sodipodi:insensitive="true" />
209
+ <path
210
+ style="display:inline;fill:#334155;fill-opacity:1;stroke:#0f172a;stroke-width:7.89132;stroke-dasharray:none"
211
+ d="M 78.516104,148.51653 105.87268,37.956293 M 133.22924,148.51653 105.87268,37.956293 M 133.22924,148.51653 160.58579,69.544935 M 78.516104,148.51653 51.15954,69.544935"
212
+ id="path7"
213
+ sodipodi:nodetypes="cccccccc"
214
+ inkscape:label="w_path"
215
+ transform="translate(-9.2327158,-6.8948478e-5)"
216
+ sodipodi:insensitive="true" />
217
+ <path
218
+ style="display:inline;fill:#e2e8f0;stroke:#0f172a;stroke-width:7.89132;stroke-dasharray:none"
219
+ d="M 78.516104,53.750612 105.87268,164.31087 M 133.22924,53.750614 105.87268,164.31087 M 133.22924,53.750614 160.58579,132.72222 M 78.516104,53.750612 51.159538,132.72222"
220
+ id="path8"
221
+ sodipodi:nodetypes="cccccccc"
222
+ inkscape:label="m_path"
223
+ transform="translate(-9.2327158,-6.8948478e-5)"
224
+ sodipodi:insensitive="true" />
225
+ </g>
226
+ <g
227
+ id="g5"
228
+ transform="translate(-28.906595,-33.400266)"
229
+ inkscape:label="LIGHT-LOGO"
230
+ style="display:none"
231
+ sodipodi:insensitive="true">
232
+ <path
233
+ sodipodi:type="star"
234
+ style="display:inline;fill:url(#radialGradient32);fill-opacity:1;stroke:#e2e8f0;stroke-width:2.2518;stroke-dasharray:none;stroke-opacity:1"
235
+ id="path10"
236
+ inkscape:flatsided="true"
237
+ sodipodi:sides="6"
238
+ sodipodi:cx="47"
239
+ sodipodi:cy="47"
240
+ sodipodi:r1="18.027756"
241
+ sodipodi:r2="15.612495"
242
+ sodipodi:arg1="0.52359878"
243
+ sodipodi:arg2="1.0471976"
244
+ inkscape:rounded="0"
245
+ inkscape:randomized="0"
246
+ d="M 62.612494,56.013878 47,65.027756 31.387506,56.013878 l 0,-18.027756 L 47,28.972244 62.612494,37.986122 Z"
247
+ transform="matrix(3.5044454,0,0,3.5044454,-68.068979,-63.575427)"
248
+ inkscape:label="hex"
249
+ sodipodi:insensitive="true" />
250
+ <path
251
+ style="display:inline;fill:#334155;fill-opacity:1;stroke:#e2e8f0;stroke-width:7.89132;stroke-dasharray:none"
252
+ d="M 78.516104,148.51653 105.87268,37.956293 M 133.22924,148.51653 105.87268,37.956293 M 133.22924,148.51653 160.58579,69.544935 M 78.516104,148.51653 51.15954,69.544935"
253
+ id="path29"
254
+ sodipodi:nodetypes="cccccccc"
255
+ inkscape:label="w_path"
256
+ transform="translate(-9.2327158,-6.8948478e-5)"
257
+ sodipodi:insensitive="true" />
258
+ <path
259
+ style="display:inline;fill:#e2e8f0;stroke:#e2e8f0;stroke-width:7.89132;stroke-dasharray:none"
260
+ d="M 78.516104,53.750612 105.87268,164.31087 M 133.22924,53.750614 105.87268,164.31087 M 133.22924,53.750614 160.58579,132.72222 M 78.516104,53.750612 51.159538,132.72222"
261
+ id="path30"
262
+ sodipodi:nodetypes="cccccccc"
263
+ inkscape:label="m_path"
264
+ transform="translate(-9.2327158,-6.8948478e-5)"
265
+ sodipodi:insensitive="true" />
266
+ </g>
267
+ <g
268
+ id="g6"
269
+ transform="translate(-138.61709,-29.665472)"
270
+ inkscape:label="TEXT"
271
+ style="display:inline"
272
+ sodipodi:insensitive="true">
273
+ <path
274
+ style="font-weight:bold;font-size:256px;line-height:1;font-family:'Segoe UI';-inkscape-font-specification:'Segoe UI Bold';letter-spacing:0px;white-space:pre;fill:#06b6d4;stroke:#06b6d4;stroke-width:15.1181"
275
+ d="m 755.65625,205.05016 h -39.875 V 97.800163 q 0,-17.375 1.5,-38.375 h -1 q -3.125,16.5 -5.625,23.75 l -42,121.874997 h -33 l -42.75,-120.624997 q -1.75,-4.875 -5.625,-25 h -1.125 q 1.625,26.5 1.625,46.499997 v 99.125 h -36.375 V 25.800163 h 59.125 l 36.625,106.249997 q 4.375,12.75 6.375,25.625 h 0.75 q 3.375,-14.875 7.125,-25.875 l 36.625,-105.999997 h 57.625 z m 186.875,-77.625 q 0,80.75 -75.25,80.75 -73,0 -73,-78.875 V 25.800163 h 40.5 V 129.80016 q 0,43.5 34,43.5 33.375,0 33.375,-42 V 25.800163 h 40.375 z m 109.12505,6.5 q 0,36 -16.75,55.125 -16.6251,19.125 -48.25005,19.125 -14.125,0 -26.125,-4.875 v -37.875 q 10.375,7.875 23.25,7.875 27.62495,0 27.62495,-41 V 25.800163 h 40.2501 z m 115,74.25 q -38.5,0 -62.75,-25 -24.25,-25.125 -24.25,-65.375 0,-42.499997 24.625,-68.749997 24.625,-26.25 65.25,-26.25 38.375,0 62,25.125 23.75,25.125 23.75,66.249997 0,42.25 -24.625,68.125 -24.5,25.875 -64,25.875 z m 1.75,-150.624997 q -21.25,0 -33.75,16 -12.5,15.875 -12.5,42.124997 0,26.625 12.5,42.125 12.5,15.5 32.75,15.5 20.875,0 33.125,-15 12.25,-15.125 12.25,-41.875 0,-27.874997 -11.875,-43.374997 -11.875,-15.5 -32.5,-15.5 z m 245.125,141.124997 q -19.625,9.5 -51.25,9.5 -41.25,0 -64.875,-24.25 -23.625,-24.25 -23.625,-64.625 0,-42.999997 26.5,-69.749997 26.625,-26.75 69,-26.75 26.25,0 44.25,6.625 v 38.875 q -18,-10.75 -41,-10.75 -25.25,0 -40.75,15.875 -15.5,15.875 -15.5,42.999997 0,26 14.625,41.5 14.625,15.375 39.375,15.375 23.625,0 43.25,-11.5 z m 103.875,9.5 q -38.5,0 -62.75,-25 -24.25,-25.125 -24.25,-65.375 0,-42.499997 24.625,-68.749997 24.625,-26.25 65.25,-26.25 38.375,0 62,25.125 23.75,25.125 23.75,66.249997 0,42.25 -24.625,68.125 -24.5,25.875 -64,25.875 z m 1.75,-150.624997 q -21.25,0 -33.75,16 -12.5,15.875 -12.5,42.124997 0,26.625 12.5,42.125 12.5,15.5 32.75,15.5 20.875,0 33.125,-15 12.25,-15.125 12.25,-41.875 0,-27.874997 -11.875,-43.374997 -11.875,-15.5 -32.5,-15.5 z M 755.65625,461.05016 h -39.875 v -107.25 q 0,-17.375 1.5,-38.375 h -1 q -3.125,16.5 -5.625,23.75 l -42,121.875 h -33 l -42.75,-120.625 q -1.75,-4.875 -5.625,-25 h -1.125 q 1.625,26.5 1.625,46.5 v 99.125 h -36.375 v -179.25 h 59.125 l 36.625,106.25 q 4.375,12.75 6.375,25.625 h 0.75 q 3.375,-14.875 7.125,-25.875 l 36.625,-106 h 57.625 z m 116.5,3.125 q -38.5,0 -62.75,-25 -24.25,-25.125 -24.25,-65.375 0,-42.5 24.625,-68.75 24.625,-26.25 65.25,-26.25 38.375,0 62,25.125 23.75,25.125 23.75,66.25 0,42.25 -24.625,68.125 -24.5,25.875 -64,25.875 z m 1.75,-150.625 q -21.25,0 -33.75,16 -12.5,15.875 -12.5,42.125 0,26.625 12.5,42.125 12.5,15.5 32.75,15.5 20.875,0 33.125,-15 12.25,-15.125 12.25,-41.875 0,-27.875 -11.875,-43.375 -11.875,-15.5 -32.5,-15.5 z m 188.87505,76.375 q 0,36 -16.75,55.125 -16.625,19.125 -48.25005,19.125 -14.125,0 -26.125,-4.875 v -37.875 q 10.375,7.875 23.25,7.875 27.62495,0 27.62495,-41 v -106.5 h 40.2501 z m 115,74.25 q -38.5,0 -62.75,-25 -24.25,-25.125 -24.25,-65.375 0,-42.5 24.625,-68.75 24.625,-26.25 65.25,-26.25 38.375,0 62,25.125 23.75,25.125 23.75,66.25 0,42.25 -24.625,68.125 -24.5,25.875 -64,25.875 z m 1.75,-150.625 q -21.25,0 -33.75,16 -12.5,15.875 -12.5,42.125 0,26.625 12.5,42.125 12.5,15.5 32.75,15.5 20.875,0 33.125,-15 12.25,-15.125 12.25,-41.875 0,-27.875 -11.875,-43.375 -11.875,-15.5 -32.5,-15.5 z"
276
+ id="text1"
277
+ inkscape:label="text_path"
278
+ transform="matrix(0.26458345,0,0,0.26458345,128.73718,32.975931)"
279
+ aria-label="MUJOCO&#10;MOJO&#10;" />
280
+ <text
281
+ xml:space="preserve"
282
+ transform="matrix(0.26458345,0,0,0.26458345,128.73718,32.975931)"
283
+ id="text13"
284
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:128px;line-height:1;font-family:'Segoe UI';-inkscape-font-specification:'Segoe UI Bold';letter-spacing:0.1px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect13);display:none;fill:#06b6d4;stroke:#06b6d4;stroke-width:15.1181"
285
+ inkscape:label="text_original"
286
+ sodipodi:insensitive="true"><tspan
287
+ x="530.90625"
288
+ y="205.05016"
289
+ id="tspan2"><tspan
290
+ style="font-size:256px;letter-spacing:0px"
291
+ id="tspan1">MUJOCO
292
+ </tspan></tspan><tspan
293
+ x="530.90625"
294
+ y="461.05016"
295
+ id="tspan5"><tspan
296
+ style="font-size:256px;letter-spacing:0px"
297
+ id="tspan3">MOJO</tspan><tspan
298
+ dx="-0.1"
299
+ id="tspan4">
300
+ </tspan></tspan></text>
301
+ </g>
302
+ </g>
303
+ </svg>