jaxsim 0.2.dev191__tar.gz → 0.6.1.dev2__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 (222) hide show
  1. jaxsim-0.6.1.dev2/.devcontainer/Dockerfile +19 -0
  2. jaxsim-0.6.1.dev2/.devcontainer/devcontainer.json +51 -0
  3. jaxsim-0.6.1.dev2/.gitattributes +2 -0
  4. jaxsim-0.6.1.dev2/.github/CODEOWNERS +1 -0
  5. jaxsim-0.6.1.dev2/.github/dependabot.yml +15 -0
  6. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/.github/workflows/ci_cd.yml +46 -17
  7. jaxsim-0.6.1.dev2/.github/workflows/pixi.yml +57 -0
  8. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/.gitignore +15 -0
  9. jaxsim-0.6.1.dev2/.pre-commit-config.yaml +54 -0
  10. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/.readthedocs.yaml +2 -2
  11. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/LICENSE +1 -1
  12. jaxsim-0.6.1.dev2/PKG-INFO +465 -0
  13. jaxsim-0.6.1.dev2/README.md +373 -0
  14. jaxsim-0.6.1.dev2/docs/conf.py +121 -0
  15. jaxsim-0.6.1.dev2/docs/examples.rst +60 -0
  16. jaxsim-0.6.1.dev2/docs/guide/configuration.rst +69 -0
  17. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/docs/guide/install.rst +4 -4
  18. jaxsim-0.6.1.dev2/docs/index.rst +138 -0
  19. jaxsim-0.6.1.dev2/docs/modules/api.rst +101 -0
  20. jaxsim-0.6.1.dev2/docs/modules/integrators.rst +23 -0
  21. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/docs/modules/math.rst +2 -14
  22. jaxsim-0.6.1.dev2/docs/modules/mujoco.rst +27 -0
  23. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/docs/modules/parsers.rst +1 -1
  24. jaxsim-0.6.1.dev2/docs/modules/rbda.rst +38 -0
  25. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/docs/modules/typing.rst +2 -2
  26. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/docs/modules/utils.rst +1 -4
  27. jaxsim-0.6.1.dev2/environment.yml +66 -0
  28. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/examples/.gitattributes +0 -1
  29. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/examples/.gitignore +0 -1
  30. jaxsim-0.6.1.dev2/examples/README.md +45 -0
  31. jaxsim-0.6.1.dev2/examples/assets/build_cartpole_urdf.py +202 -0
  32. jaxsim-0.6.1.dev2/examples/assets/cartpole.urdf +80 -0
  33. jaxsim-0.6.1.dev2/examples/jaxsim_as_multibody_dynamics_library.ipynb +966 -0
  34. jaxsim-0.6.1.dev2/examples/jaxsim_as_physics_engine.ipynb +274 -0
  35. jaxsim-0.6.1.dev2/examples/jaxsim_as_physics_engine_advanced.ipynb +476 -0
  36. jaxsim-0.6.1.dev2/examples/jaxsim_for_robot_controllers.ipynb +474 -0
  37. jaxsim-0.6.1.dev2/pixi.lock +3 -0
  38. jaxsim-0.6.1.dev2/pyproject.toml +286 -0
  39. jaxsim-0.6.1.dev2/setup.cfg +4 -0
  40. jaxsim-0.6.1.dev2/src/jaxsim/__init__.py +118 -0
  41. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/_version.py +2 -2
  42. jaxsim-0.6.1.dev2/src/jaxsim/api/__init__.py +13 -0
  43. jaxsim-0.6.1.dev2/src/jaxsim/api/com.py +423 -0
  44. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/api/common.py +48 -19
  45. jaxsim-0.6.1.dev2/src/jaxsim/api/contact.py +746 -0
  46. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/api/data.py +308 -163
  47. jaxsim-0.6.1.dev2/src/jaxsim/api/frame.py +471 -0
  48. jaxsim-0.6.1.dev2/src/jaxsim/api/joint.py +277 -0
  49. jaxsim-0.6.1.dev2/src/jaxsim/api/kin_dyn_parameters.py +901 -0
  50. jaxsim-0.6.1.dev2/src/jaxsim/api/link.py +461 -0
  51. jaxsim-0.6.1.dev2/src/jaxsim/api/model.py +2354 -0
  52. jaxsim-0.6.1.dev2/src/jaxsim/api/ode.py +475 -0
  53. jaxsim-0.6.1.dev2/src/jaxsim/api/ode_data.py +401 -0
  54. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/api/references.py +216 -80
  55. jaxsim-0.6.1.dev2/src/jaxsim/exceptions.py +80 -0
  56. jaxsim-0.6.1.dev2/src/jaxsim/integrators/__init__.py +2 -0
  57. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/integrators/common.py +191 -107
  58. jaxsim-0.6.1.dev2/src/jaxsim/integrators/fixed_step.py +153 -0
  59. jaxsim-0.6.1.dev2/src/jaxsim/integrators/variable_step.py +706 -0
  60. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/logging.py +1 -2
  61. jaxsim-0.6.1.dev2/src/jaxsim/math/__init__.py +13 -0
  62. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/math/adjoint.py +57 -22
  63. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/math/cross.py +16 -7
  64. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/math/inertia.py +10 -8
  65. jaxsim-0.6.1.dev2/src/jaxsim/math/joint_model.py +289 -0
  66. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/math/quaternion.py +54 -20
  67. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/math/rotation.py +27 -21
  68. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/math/skew.py +16 -5
  69. jaxsim-0.6.1.dev2/src/jaxsim/math/transform.py +102 -0
  70. jaxsim-0.6.1.dev2/src/jaxsim/math/utils.py +31 -0
  71. jaxsim-0.6.1.dev2/src/jaxsim/mujoco/__init__.py +4 -0
  72. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/mujoco/loaders.py +216 -29
  73. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/mujoco/model.py +163 -33
  74. jaxsim-0.6.1.dev2/src/jaxsim/mujoco/utils.py +228 -0
  75. jaxsim-0.6.1.dev2/src/jaxsim/mujoco/visualizer.py +245 -0
  76. jaxsim-0.6.1.dev2/src/jaxsim/parsers/descriptions/__init__.py +10 -0
  77. jaxsim-0.6.1.dev2/src/jaxsim/parsers/descriptions/collision.py +178 -0
  78. jaxsim-0.6.1.dev2/src/jaxsim/parsers/descriptions/joint.py +130 -0
  79. jaxsim-0.6.1.dev2/src/jaxsim/parsers/descriptions/link.py +120 -0
  80. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/parsers/descriptions/model.py +101 -68
  81. jaxsim-0.6.1.dev2/src/jaxsim/parsers/kinematic_graph.py +985 -0
  82. jaxsim-0.6.1.dev2/src/jaxsim/parsers/rod/meshes.py +104 -0
  83. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/parsers/rod/parser.py +125 -82
  84. jaxsim-0.6.1.dev2/src/jaxsim/parsers/rod/utils.py +273 -0
  85. jaxsim-0.6.1.dev2/src/jaxsim/rbda/__init__.py +11 -0
  86. jaxsim-0.6.1.dev2/src/jaxsim/rbda/aba.py +289 -0
  87. jaxsim-0.6.1.dev2/src/jaxsim/rbda/collidable_points.py +156 -0
  88. jaxsim-0.6.1.dev2/src/jaxsim/rbda/contacts/__init__.py +13 -0
  89. jaxsim-0.6.1.dev2/src/jaxsim/rbda/contacts/common.py +313 -0
  90. jaxsim-0.6.1.dev2/src/jaxsim/rbda/contacts/relaxed_rigid.py +605 -0
  91. jaxsim-0.6.1.dev2/src/jaxsim/rbda/contacts/rigid.py +462 -0
  92. jaxsim-0.6.1.dev2/src/jaxsim/rbda/contacts/soft.py +480 -0
  93. jaxsim-0.6.1.dev2/src/jaxsim/rbda/contacts/visco_elastic.py +1066 -0
  94. jaxsim-0.6.1.dev2/src/jaxsim/rbda/crba.py +167 -0
  95. jaxsim-0.6.1.dev2/src/jaxsim/rbda/forward_kinematics.py +117 -0
  96. jaxsim-0.6.1.dev2/src/jaxsim/rbda/jacobian.py +330 -0
  97. jaxsim-0.6.1.dev2/src/jaxsim/rbda/rnea.py +235 -0
  98. jaxsim-0.6.1.dev2/src/jaxsim/rbda/utils.py +160 -0
  99. jaxsim-0.6.1.dev2/src/jaxsim/terrain/__init__.py +2 -0
  100. jaxsim-0.6.1.dev2/src/jaxsim/terrain/terrain.py +238 -0
  101. jaxsim-0.6.1.dev2/src/jaxsim/typing.py +39 -0
  102. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/utils/__init__.py +1 -4
  103. jaxsim-0.6.1.dev2/src/jaxsim/utils/jaxsim_dataclass.py +364 -0
  104. jaxsim-0.6.1.dev2/src/jaxsim/utils/tracing.py +19 -0
  105. jaxsim-0.6.1.dev2/src/jaxsim/utils/wrappers.py +159 -0
  106. jaxsim-0.6.1.dev2/src/jaxsim.egg-info/PKG-INFO +465 -0
  107. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim.egg-info/SOURCES.txt +60 -52
  108. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim.egg-info/requires.txt +12 -17
  109. jaxsim-0.6.1.dev2/tests/conftest.py +593 -0
  110. jaxsim-0.6.1.dev2/tests/test_api_com.py +67 -0
  111. jaxsim-0.6.1.dev2/tests/test_api_contact.py +167 -0
  112. jaxsim-0.6.1.dev2/tests/test_api_data.py +147 -0
  113. jaxsim-0.6.1.dev2/tests/test_api_frame.py +302 -0
  114. jaxsim-0.6.1.dev2/tests/test_api_joint.py +46 -0
  115. jaxsim-0.6.1.dev2/tests/test_api_link.py +379 -0
  116. jaxsim-0.6.1.dev2/tests/test_api_model.py +577 -0
  117. jaxsim-0.6.1.dev2/tests/test_automatic_differentiation.py +458 -0
  118. jaxsim-0.6.1.dev2/tests/test_benchmark.py +127 -0
  119. jaxsim-0.6.1.dev2/tests/test_contact.py +37 -0
  120. jaxsim-0.6.1.dev2/tests/test_exceptions.py +86 -0
  121. jaxsim-0.6.1.dev2/tests/test_meshes.py +103 -0
  122. jaxsim-0.6.1.dev2/tests/test_pytree.py +63 -0
  123. jaxsim-0.6.1.dev2/tests/test_simulations.py +473 -0
  124. jaxsim-0.6.1.dev2/tests/test_visualizer.py +64 -0
  125. jaxsim-0.6.1.dev2/tests/utils_idyntree.py +494 -0
  126. jaxsim-0.2.dev191/.devcontainer/Dockerfile +0 -26
  127. jaxsim-0.2.dev191/.devcontainer/devcontainer.json +0 -34
  128. jaxsim-0.2.dev191/.github/CODEOWNERS +0 -2
  129. jaxsim-0.2.dev191/.github/workflows/style.yml +0 -53
  130. jaxsim-0.2.dev191/.pre-commit-config.yaml +0 -21
  131. jaxsim-0.2.dev191/PKG-INFO +0 -184
  132. jaxsim-0.2.dev191/README.md +0 -117
  133. jaxsim-0.2.dev191/docs/conf.py +0 -86
  134. jaxsim-0.2.dev191/docs/index.rst +0 -110
  135. jaxsim-0.2.dev191/docs/modules/high_level.rst +0 -30
  136. jaxsim-0.2.dev191/docs/modules/physics.rst +0 -40
  137. jaxsim-0.2.dev191/docs/modules/simulation.rst +0 -34
  138. jaxsim-0.2.dev191/environment.yml +0 -46
  139. jaxsim-0.2.dev191/examples/PD_controller.ipynb +0 -378
  140. jaxsim-0.2.dev191/examples/Parallel_computing.ipynb +0 -305
  141. jaxsim-0.2.dev191/examples/README.md +0 -40
  142. jaxsim-0.2.dev191/examples/assets/cartpole.urdf +0 -83
  143. jaxsim-0.2.dev191/examples/pixi.lock +0 -9282
  144. jaxsim-0.2.dev191/examples/pixi.toml +0 -32
  145. jaxsim-0.2.dev191/pyproject.toml +0 -25
  146. jaxsim-0.2.dev191/setup.cfg +0 -87
  147. jaxsim-0.2.dev191/src/jaxsim/__init__.py +0 -67
  148. jaxsim-0.2.dev191/src/jaxsim/api/__init__.py +0 -1
  149. jaxsim-0.2.dev191/src/jaxsim/api/contact.py +0 -194
  150. jaxsim-0.2.dev191/src/jaxsim/api/joint.py +0 -148
  151. jaxsim-0.2.dev191/src/jaxsim/api/link.py +0 -262
  152. jaxsim-0.2.dev191/src/jaxsim/api/model.py +0 -1144
  153. jaxsim-0.2.dev191/src/jaxsim/api/ode.py +0 -284
  154. jaxsim-0.2.dev191/src/jaxsim/high_level/__init__.py +0 -2
  155. jaxsim-0.2.dev191/src/jaxsim/high_level/common.py +0 -11
  156. jaxsim-0.2.dev191/src/jaxsim/high_level/joint.py +0 -148
  157. jaxsim-0.2.dev191/src/jaxsim/high_level/link.py +0 -259
  158. jaxsim-0.2.dev191/src/jaxsim/high_level/model.py +0 -1686
  159. jaxsim-0.2.dev191/src/jaxsim/integrators/__init__.py +0 -2
  160. jaxsim-0.2.dev191/src/jaxsim/integrators/fixed_step.py +0 -158
  161. jaxsim-0.2.dev191/src/jaxsim/math/conv.py +0 -114
  162. jaxsim-0.2.dev191/src/jaxsim/math/joint.py +0 -102
  163. jaxsim-0.2.dev191/src/jaxsim/math/plucker.py +0 -100
  164. jaxsim-0.2.dev191/src/jaxsim/mujoco/__init__.py +0 -3
  165. jaxsim-0.2.dev191/src/jaxsim/mujoco/visualizer.py +0 -160
  166. jaxsim-0.2.dev191/src/jaxsim/parsers/__init__.py +0 -1
  167. jaxsim-0.2.dev191/src/jaxsim/parsers/descriptions/__init__.py +0 -4
  168. jaxsim-0.2.dev191/src/jaxsim/parsers/descriptions/collision.py +0 -121
  169. jaxsim-0.2.dev191/src/jaxsim/parsers/descriptions/joint.py +0 -137
  170. jaxsim-0.2.dev191/src/jaxsim/parsers/descriptions/link.py +0 -93
  171. jaxsim-0.2.dev191/src/jaxsim/parsers/kinematic_graph.py +0 -608
  172. jaxsim-0.2.dev191/src/jaxsim/parsers/rod/utils.py +0 -228
  173. jaxsim-0.2.dev191/src/jaxsim/physics/__init__.py +0 -12
  174. jaxsim-0.2.dev191/src/jaxsim/physics/algos/aba.py +0 -254
  175. jaxsim-0.2.dev191/src/jaxsim/physics/algos/aba_motors.py +0 -284
  176. jaxsim-0.2.dev191/src/jaxsim/physics/algos/crba.py +0 -154
  177. jaxsim-0.2.dev191/src/jaxsim/physics/algos/forward_kinematics.py +0 -79
  178. jaxsim-0.2.dev191/src/jaxsim/physics/algos/jacobian.py +0 -98
  179. jaxsim-0.2.dev191/src/jaxsim/physics/algos/rnea.py +0 -180
  180. jaxsim-0.2.dev191/src/jaxsim/physics/algos/rnea_motors.py +0 -196
  181. jaxsim-0.2.dev191/src/jaxsim/physics/algos/soft_contacts.py +0 -523
  182. jaxsim-0.2.dev191/src/jaxsim/physics/algos/terrain.py +0 -78
  183. jaxsim-0.2.dev191/src/jaxsim/physics/algos/utils.py +0 -69
  184. jaxsim-0.2.dev191/src/jaxsim/physics/model/__init__.py +0 -0
  185. jaxsim-0.2.dev191/src/jaxsim/physics/model/ground_contact.py +0 -53
  186. jaxsim-0.2.dev191/src/jaxsim/physics/model/physics_model.py +0 -388
  187. jaxsim-0.2.dev191/src/jaxsim/physics/model/physics_model_state.py +0 -283
  188. jaxsim-0.2.dev191/src/jaxsim/simulation/__init__.py +0 -4
  189. jaxsim-0.2.dev191/src/jaxsim/simulation/integrators.py +0 -393
  190. jaxsim-0.2.dev191/src/jaxsim/simulation/ode.py +0 -290
  191. jaxsim-0.2.dev191/src/jaxsim/simulation/ode_data.py +0 -96
  192. jaxsim-0.2.dev191/src/jaxsim/simulation/ode_integration.py +0 -62
  193. jaxsim-0.2.dev191/src/jaxsim/simulation/simulator.py +0 -543
  194. jaxsim-0.2.dev191/src/jaxsim/simulation/simulator_callbacks.py +0 -79
  195. jaxsim-0.2.dev191/src/jaxsim/simulation/utils.py +0 -15
  196. jaxsim-0.2.dev191/src/jaxsim/sixd/__init__.py +0 -2
  197. jaxsim-0.2.dev191/src/jaxsim/typing.py +0 -39
  198. jaxsim-0.2.dev191/src/jaxsim/utils/jaxsim_dataclass.py +0 -109
  199. jaxsim-0.2.dev191/src/jaxsim/utils/oop.py +0 -536
  200. jaxsim-0.2.dev191/src/jaxsim/utils/tracing.py +0 -25
  201. jaxsim-0.2.dev191/src/jaxsim/utils/vmappable.py +0 -117
  202. jaxsim-0.2.dev191/src/jaxsim.egg-info/PKG-INFO +0 -184
  203. jaxsim-0.2.dev191/src/jaxsim.egg-info/not-zip-safe +0 -1
  204. jaxsim-0.2.dev191/tests/__init__.py +0 -0
  205. jaxsim-0.2.dev191/tests/test_ad_physics.py +0 -190
  206. jaxsim-0.2.dev191/tests/test_eom.py +0 -130
  207. jaxsim-0.2.dev191/tests/test_forward_dynamics.py +0 -71
  208. jaxsim-0.2.dev191/tests/test_jax_oop.py +0 -422
  209. jaxsim-0.2.dev191/tests/utils_idyntree.py +0 -236
  210. jaxsim-0.2.dev191/tests/utils_models.py +0 -56
  211. jaxsim-0.2.dev191/tests/utils_rng.py +0 -96
  212. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/.github/workflows/read_the_docs.yml +0 -0
  213. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/CONTRIBUTING.md +0 -0
  214. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/docs/Makefile +0 -0
  215. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/docs/make.bat +0 -0
  216. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/setup.py +0 -0
  217. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/mujoco/__main__.py +0 -0
  218. {jaxsim-0.2.dev191/src/jaxsim/math → jaxsim-0.6.1.dev2/src/jaxsim/parsers}/__init__.py +0 -0
  219. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim/parsers/rod/__init__.py +0 -0
  220. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim.egg-info/dependency_links.txt +0 -0
  221. {jaxsim-0.2.dev191 → jaxsim-0.6.1.dev2}/src/jaxsim.egg-info/top_level.txt +0 -0
  222. {jaxsim-0.2.dev191/src/jaxsim/physics/algos → jaxsim-0.6.1.dev2/tests}/__init__.py +0 -0
@@ -0,0 +1,19 @@
1
+ # syntax=docker/dockerfile:1.4
2
+ FROM mcr.microsoft.com/devcontainers/base:jammy
3
+
4
+ ARG PROJECT_NAME=jaxsim
5
+ ARG PIXI_VERSION=v0.35.0
6
+
7
+ RUN curl -o /usr/local/bin/pixi -SL https://github.com/prefix-dev/pixi/releases/download/${PIXI_VERSION}/pixi-$(uname -m)-unknown-linux-musl \
8
+ && chmod +x /usr/local/bin/pixi \
9
+ && pixi info
10
+
11
+ # Add LFS repository and install.
12
+ RUN apt-get update && apt-get install -y curl \
13
+ && curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash \
14
+ && apt install -y git-lfs
15
+
16
+ USER vscode
17
+ WORKDIR /home/vscode
18
+
19
+ RUN echo 'eval "$(pixi completion -s bash)"' >> /home/vscode/.bashrc
@@ -0,0 +1,51 @@
1
+ // For format details, see https://aka.ms/devcontainer.json. For config options, see the
2
+ // README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
3
+ {
4
+ "name": "Ubuntu",
5
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6
+ "build": {
7
+ "context": "..",
8
+ "dockerfile": "Dockerfile"
9
+ },
10
+
11
+ // Features to add to the dev container. More info: https://containers.dev/features.
12
+ "features": {
13
+ "ghcr.io/devcontainers/features/docker-in-docker:2": {}
14
+ },
15
+
16
+ // Put `.pixi` folder in a mounted volume of a case-insensitive filesystem.
17
+ "mounts": ["source=${localWorkspaceFolderBasename}-pixi,target=${containerWorkspaceFolder}/.pixi,type=volume"],
18
+
19
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
20
+ // "forwardPorts": [],
21
+
22
+ // Use 'postCreateCommand' to run commands after the container is created.
23
+ "postCreateCommand": "sudo chown vscode .pixi && git lfs pull --include='pixi.lock' && pixi install --environment=test-cpu",
24
+
25
+ // Configure tool-specific properties.
26
+ // "customizations": {},
27
+
28
+ // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
29
+ // "remoteUser": "root"
30
+
31
+ // VSCode extensions
32
+ "customizations": {
33
+ "vscode": {
34
+ "settings": {
35
+ "python.pythonPath": "/workspaces/jaxsim/.pixi/envs/test-cpu/bin/python",
36
+ "python.defaultInterpreterPath": "/workspaces/jaxsim/.pixi/envs/test-cpu/bin/python",
37
+ "python.terminal.activateEnvironment": true,
38
+ "python.terminal.activateEnvInCurrentTerminal": true
39
+ },
40
+ "extensions": [
41
+ "ms-python.python",
42
+ "donjayamanne.python-extension-pack",
43
+ "ms-toolsai.jupyter",
44
+ "GitHub.codespaces",
45
+ "GitHub.copilot",
46
+ "ms-azuretools.vscode-docker",
47
+ "charliermarsh.ruff"
48
+ ]
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,2 @@
1
+ # GitHub syntax highlighting
2
+ pixi.lock filter=lfs diff=lfs merge=lfs -text
@@ -0,0 +1 @@
1
+ * @flferretti @xela-95
@@ -0,0 +1,15 @@
1
+ version: 2
2
+ updates:
3
+
4
+ # Check for updates to GitHub Actions every month.
5
+ - package-ecosystem: github-actions
6
+ directory: /
7
+ schedule:
8
+ interval: monthly
9
+ # Disable rebasing automatically existing pull requests.
10
+ rebase-strategy: "disabled"
11
+ # Group updates to a single PR.
12
+ groups:
13
+ dependencies:
14
+ patterns:
15
+ - '*'
@@ -8,8 +8,7 @@ on:
8
8
  types:
9
9
  - published
10
10
  schedule:
11
- # * is a special character in YAML so you have to quote this string
12
- # Execute a "nightly" build at 2 AM UTC
11
+ # Execute a nightly build at 2am UTC.
13
12
  - cron: '0 2 * * *'
14
13
 
15
14
 
@@ -21,12 +20,12 @@ jobs:
21
20
 
22
21
  steps:
23
22
 
24
- - uses: actions/checkout@v3
23
+ - uses: actions/checkout@v4
25
24
  with:
26
25
  fetch-depth: 0
27
26
 
28
27
  - name: Set up Python
29
- uses: actions/setup-python@v4
28
+ uses: actions/setup-python@v5
30
29
  with:
31
30
  python-version: "3.11"
32
31
 
@@ -46,7 +45,7 @@ jobs:
46
45
  run: twine check dist/*
47
46
 
48
47
  - name: Upload artifacts
49
- uses: actions/upload-artifact@v3
48
+ uses: actions/upload-artifact@v4
50
49
  with:
51
50
  path: dist/*
52
51
  name: dist
@@ -63,18 +62,19 @@ jobs:
63
62
  - macos-latest
64
63
  - windows-latest
65
64
  python:
65
+ - "3.10"
66
66
  - "3.11"
67
67
  - "3.12"
68
68
 
69
69
  steps:
70
70
 
71
71
  - name: Set up Python
72
- uses: actions/setup-python@v4
72
+ uses: actions/setup-python@v5
73
73
  with:
74
74
  python-version: ${{ matrix.python }}
75
75
 
76
76
  - name: Download Python packages
77
- uses: actions/download-artifact@v3
77
+ uses: actions/download-artifact@v4
78
78
  with:
79
79
  path: dist
80
80
  name: dist
@@ -92,35 +92,66 @@ jobs:
92
92
  - name: Document installed pip packages
93
93
  shell: bash
94
94
  run: pip list --verbose
95
-
95
+
96
96
  - name: Import the package
97
97
  run: python -c "import jaxsim"
98
98
 
99
- - uses: actions/checkout@v3
99
+ - uses: actions/checkout@v4
100
100
  with:
101
101
  fetch-depth: 0
102
102
 
103
- - name: Install Gazebo Classic
104
- if: contains(matrix.os, 'ubuntu')
103
+ - uses: dorny/paths-filter@v3
104
+ id: changes
105
+ with:
106
+ filters: |
107
+ conf: &conf
108
+ - 'pyproject.toml'
109
+ - 'setup.cfg'
110
+ - 'setup.py'
111
+ src: &src
112
+ - 'src/**'
113
+ tests: &tests
114
+ - 'tests/**'
115
+ all:
116
+ - *conf
117
+ - *src
118
+ - *tests
119
+
120
+ - name: Install 'gz sdf' system command
121
+ if: |
122
+ contains(matrix.os, 'ubuntu') &&
123
+ (github.event_name != 'pull_request' ||
124
+ steps.changes.outputs.all == 'true')
105
125
  run: |
106
126
  sudo apt-get update
107
- sudo apt-get install gazebo
127
+ sudo apt-get install lsb-release wget gnupg
128
+ sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
129
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
130
+ sudo apt-get update
131
+ sudo apt-get install --no-install-recommends libsdformat13 gz-tools2
108
132
 
109
133
  - name: Run the Python tests
110
- if: contains(matrix.os, 'ubuntu')
134
+ if: |
135
+ contains(matrix.os, 'ubuntu') &&
136
+ (github.event_name != 'pull_request' ||
137
+ steps.changes.outputs.all == 'true')
111
138
  run: pytest
112
139
  env:
140
+ # https://github.com/pytest-dev/pytest/issues/7443#issuecomment-656642591
141
+ PY_COLORS: "1"
113
142
  JAX_PLATFORM_NAME: cpu
114
143
 
115
144
  publish:
116
145
  name: Publish to PyPI
117
146
  needs: test
118
147
  runs-on: ubuntu-22.04
148
+ permissions:
149
+ id-token: write
119
150
 
120
151
  steps:
121
152
 
122
153
  - name: Download Python packages
123
- uses: actions/download-artifact@v3
154
+ uses: actions/download-artifact@v4
124
155
  with:
125
156
  path: dist
126
157
  name: dist
@@ -135,6 +166,4 @@ jobs:
135
166
  (github.event_name == 'release'))
136
167
  uses: pypa/gh-action-pypi-publish@release/v1
137
168
  with:
138
- user: __token__
139
- password: ${{ secrets.PYPI_TOKEN }}
140
- skip_existing: true
169
+ skip-existing: true
@@ -0,0 +1,57 @@
1
+ name: Pixi
2
+
3
+ permissions:
4
+ contents: write
5
+ pull-requests: write
6
+
7
+ on:
8
+ workflow_dispatch:
9
+ schedule:
10
+ # Execute at 5am UTC on the first day of the month.
11
+ - cron: '0 5 1 * *'
12
+
13
+ jobs:
14
+
15
+ pixi-update:
16
+ runs-on: ubuntu-24.04
17
+
18
+ steps:
19
+
20
+ - uses: actions/checkout@v4
21
+ with:
22
+ lfs: true
23
+
24
+ - name: Set up pixi
25
+ uses: prefix-dev/setup-pixi@v0.8.1
26
+ with:
27
+ run-install: false
28
+
29
+ - name: Install pixi-diff-to-markdown
30
+ run: pixi global install pixi-diff-to-markdown
31
+
32
+ - name: Update pixi lockfile and generate diff
33
+ run: |
34
+ set -o pipefail
35
+ pixi update --json | pixi exec pixi-diff-to-markdown --explicit-column > diff.md
36
+
37
+ - name: Test project against updated pixi
38
+ run: pixi run --environment tasks-cpu test
39
+ env:
40
+ PY_COLORS: "1"
41
+ JAX_PLATFORM_NAME: cpu
42
+
43
+ - name: Commit and push changes
44
+ run: echo "BRANCH_NAME=update-pixi-$(date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV
45
+
46
+ - name: Create pull request
47
+ uses: peter-evans/create-pull-request@v7
48
+ with:
49
+ token: ${{ secrets.GITHUB_TOKEN }}
50
+ commit-message: Update `pixi.lock`
51
+ title: Update `pixi` lockfile
52
+ body-path: diff.md
53
+ branch: ${{ env.BRANCH_NAME }}
54
+ base: main
55
+ labels: pixi
56
+ add-paths: pixi.lock
57
+ delete-branch: true
@@ -1,5 +1,6 @@
1
1
  # IDEs
2
2
  .idea*
3
+ .vscode/
3
4
 
4
5
  # Matlab
5
6
  *.m~
@@ -76,6 +77,10 @@ instance/
76
77
 
77
78
  # Sphinx documentation
78
79
  docs/_build/
80
+ docs/_collections/
81
+ docs/modules/_autosummary/
82
+ docs/modules/generated
83
+ docs/sg_execution_times.rst
79
84
 
80
85
  # PyBuilder
81
86
  target/
@@ -136,3 +141,13 @@ dmypy.json
136
141
 
137
142
  # setuptools_scm dynamic version
138
143
  src/jaxsim/_version.py
144
+
145
+ # ruff
146
+ .ruff_cache/
147
+
148
+ # pixi environments
149
+ .pixi
150
+
151
+ # data
152
+ .mp4
153
+ .png
@@ -0,0 +1,54 @@
1
+ ci:
2
+ autofix_prs: false
3
+ autoupdate_schedule: quarterly
4
+ submodules: false
5
+
6
+ default_language_version:
7
+ python: python3
8
+
9
+ repos:
10
+ - repo: https://github.com/pre-commit/pre-commit-hooks
11
+ rev: v5.0.0
12
+ hooks:
13
+ - id: check-ast
14
+ - id: check-merge-conflict
15
+ - id: check-yaml
16
+ - id: end-of-file-fixer
17
+ - id: trailing-whitespace
18
+ - id: check-toml
19
+ - id: check-added-large-files
20
+ args: ["--maxkb=2000"]
21
+
22
+ - repo: https://github.com/psf/black-pre-commit-mirror
23
+ rev: 24.10.0
24
+ hooks:
25
+ - id: black
26
+ args: ["--check", "--diff"]
27
+
28
+ - repo: https://github.com/pycqa/isort
29
+ rev: 5.13.2
30
+ hooks:
31
+ - id: isort
32
+ args: ["--check", "--diff"]
33
+
34
+ - repo: https://github.com/pre-commit/pygrep-hooks
35
+ rev: v1.10.0
36
+ hooks:
37
+ - id: rst-backticks
38
+ - id: rst-directive-colons
39
+ - id: rst-inline-touching-normal
40
+
41
+ - repo: https://github.com/codespell-project/codespell
42
+ rev: v2.3.0
43
+ hooks:
44
+ - id: codespell
45
+
46
+ - repo: https://github.com/astral-sh/ruff-pre-commit
47
+ rev: v0.8.6
48
+ hooks:
49
+ - id: ruff
50
+
51
+ - repo: https://github.com/kynan/nbstripout
52
+ rev: 0.8.1
53
+ hooks:
54
+ - id: nbstripout
@@ -1,9 +1,9 @@
1
1
  version: "2"
2
2
 
3
3
  build:
4
- os: ubuntu-22.04
4
+ os: ubuntu-24.04
5
5
  tools:
6
- python: "mambaforge-22.9"
6
+ python: "mambaforge-23.11"
7
7
 
8
8
  conda:
9
9
  environment: environment.yml
@@ -1,6 +1,6 @@
1
1
  BSD 3-Clause License
2
2
 
3
- Copyright (c) 2022, Artificial and Mechanical Intelligence
3
+ Copyright (c) 2022, Artificial and Mechanical Intelligence
4
4
  All rights reserved.
5
5
 
6
6
  Redistribution and use in source and binary forms, with or without